1b8e80941Smrg/* Legal characters in GLSL are: 2b8e80941Smrg * 3b8e80941Smrg * Identifier characters: 4b8e80941Smrg * 5b8e80941Smrg * Letters a-z 6b8e80941Smrg * Letters A-Z 7b8e80941Smrg * Underscore 8b8e80941Smrg * Numbers 0-9 9b8e80941Smrg * 10b8e80941Smrg * Punctuation: 11b8e80941Smrg * 12b8e80941Smrg * Period, plus, dash, slash, asterisk, percent, angled brackets, 13b8e80941Smrg * square brackets, parentheses, braces, caret, vertical bar, 14b8e80941Smrg * ampersand, tilde, equals, exclamation point, colon, semicolon, 15b8e80941Smrg * comma, and question mark 16b8e80941Smrg * 17b8e80941Smrg * Special: 18b8e80941Smrg * 19b8e80941Smrg * Number sign (as used in preprocessor) 20b8e80941Smrg * 21b8e80941Smrg * Backslash just before newline as line continuation 22b8e80941Smrg * 23b8e80941Smrg * White space: 24b8e80941Smrg * 25b8e80941Smrg * Space, horizontal tab, vertical tab, form feed, carriage-return, 26b8e80941Smrg * and line-feed. 27b8e80941Smrg * 28b8e80941Smrg * [GLSL Language Specficiation 4.30.6, section 3.1] 29b8e80941Smrg * 30b8e80941Smrg * In this file, we test each of these in turn as follows: 31b8e80941Smrg * 32b8e80941Smrg * Identifier characters: All pass through unchanged 33b8e80941Smrg * Punctuation: All pass through unchanged 34b8e80941Smrg * Special: Empty directive replaced with blank line 35b8e80941Smrg * Line continuation merges two lines, then a blank line 36b8e80941Smrg * Whitespace: 4 horizontal space characters each replaced with space 37b8e80941Smrg * 2 newline characters each replaced with a newline 38b8e80941Smrg * 39b8e80941Smrg */ 40b8e80941Smrgabcdefghijklmnopqrstuvwxyz 41b8e80941SmrgABCDEFGHIJKMLNOPQRSTUVWXYZ 42b8e80941Smrg_ 43b8e80941Smrg0123456789 44b8e80941Smrg. 45b8e80941Smrg+ 46b8e80941Smrg- 47b8e80941Smrg/ 48b8e80941Smrg* 49b8e80941Smrg% 50b8e80941Smrg< 51b8e80941Smrg> 52b8e80941Smrg[ 53b8e80941Smrg] 54b8e80941Smrg( 55b8e80941Smrg) 56b8e80941Smrg{ 57b8e80941Smrg} 58b8e80941Smrg^ 59b8e80941Smrg| 60b8e80941Smrg& 61b8e80941Smrg~ 62b8e80941Smrg= 63b8e80941Smrg! 64b8e80941Smrg: 65b8e80941Smrg; 66b8e80941Smrg, 67b8e80941Smrg? 68b8e80941Smrg# 69b8e80941Smrg.\ 70b8e80941Smrg. 71b8e80941Smrg. . 72b8e80941Smrg. . 73b8e80941Smrg.. 74b8e80941Smrg.. 75b8e80941Smrg.. 76b8e80941Smrg. 77b8e80941Smrg. 78