101e04c3fSmrg/* Legal characters in GLSL are: 201e04c3fSmrg * 301e04c3fSmrg * Identifier characters: 401e04c3fSmrg * 501e04c3fSmrg * Letters a-z 601e04c3fSmrg * Letters A-Z 701e04c3fSmrg * Underscore 801e04c3fSmrg * Numbers 0-9 901e04c3fSmrg * 1001e04c3fSmrg * Punctuation: 1101e04c3fSmrg * 1201e04c3fSmrg * Period, plus, dash, slash, asterisk, percent, angled brackets, 1301e04c3fSmrg * square brackets, parentheses, braces, caret, vertical bar, 1401e04c3fSmrg * ampersand, tilde, equals, exclamation point, colon, semicolon, 1501e04c3fSmrg * comma, and question mark 1601e04c3fSmrg * 1701e04c3fSmrg * Special: 1801e04c3fSmrg * 1901e04c3fSmrg * Number sign (as used in preprocessor) 2001e04c3fSmrg * 2101e04c3fSmrg * Backslash just before newline as line continuation 2201e04c3fSmrg * 2301e04c3fSmrg * White space: 2401e04c3fSmrg * 2501e04c3fSmrg * Space, horizontal tab, vertical tab, form feed, carriage-return, 2601e04c3fSmrg * and line-feed. 2701e04c3fSmrg * 2801e04c3fSmrg * [GLSL Language Specficiation 4.30.6, section 3.1] 2901e04c3fSmrg * 3001e04c3fSmrg * In this file, we test each of these in turn as follows: 3101e04c3fSmrg * 3201e04c3fSmrg * Identifier characters: All pass through unchanged 3301e04c3fSmrg * Punctuation: All pass through unchanged 3401e04c3fSmrg * Special: Empty directive replaced with blank line 3501e04c3fSmrg * Line continuation merges two lines, then a blank line 3601e04c3fSmrg * Whitespace: 4 horizontal space characters each replaced with space 3701e04c3fSmrg * 2 newline characters each replaced with a newline 3801e04c3fSmrg * 3901e04c3fSmrg */ 4001e04c3fSmrgabcdefghijklmnopqrstuvwxyz 4101e04c3fSmrgABCDEFGHIJKMLNOPQRSTUVWXYZ 4201e04c3fSmrg_ 4301e04c3fSmrg0123456789 4401e04c3fSmrg. 4501e04c3fSmrg+ 4601e04c3fSmrg- 4701e04c3fSmrg/ 4801e04c3fSmrg* 4901e04c3fSmrg% 5001e04c3fSmrg< 5101e04c3fSmrg> 5201e04c3fSmrg[ 5301e04c3fSmrg] 5401e04c3fSmrg( 5501e04c3fSmrg) 5601e04c3fSmrg{ 5701e04c3fSmrg} 5801e04c3fSmrg^ 5901e04c3fSmrg| 6001e04c3fSmrg& 6101e04c3fSmrg~ 6201e04c3fSmrg= 6301e04c3fSmrg! 6401e04c3fSmrg: 6501e04c3fSmrg; 6601e04c3fSmrg, 6701e04c3fSmrg? 6801e04c3fSmrg# 6901e04c3fSmrg.\ 7001e04c3fSmrg. 7101e04c3fSmrg. . 7201e04c3fSmrg. . 7301e04c3fSmrg.. 7401e04c3fSmrg.. 7501e04c3fSmrg.. 7601e04c3fSmrg. 7701e04c3fSmrg. 78