| /* Legal characters in GLSL are: |
| * |
| * Identifier characters: |
| * |
| * Letters a-z |
| * Letters A-Z |
| * Underscore |
| * Numbers 0-9 |
| * |
| * Punctuation: |
| * |
| * Period, plus, dash, slash, asterisk, percent, angled brackets, |
| * square brackets, parentheses, braces, caret, vertical bar, |
| * ampersand, tilde, equals, exclamation point, colon, semicolon, |
| * comma, and question mark |
| * |
| * Special: |
| * |
| * Number sign (as used in preprocessor) |
| * |
| * Backslash just before newline as line continuation |
| * |
| * White space: |
| * |
| * Space, horizontal tab, vertical tab, form feed, carriage-return, |
| * and line-feed. |
| * |
| * [GLSL Language Specficiation 4.30.6, section 3.1] |
| * |
| * In this file, we test each of these in turn as follows: |
| * |
| * Identifier characters: All pass through unchanged |
| * Punctuation: All pass through unchanged |
| * Special: Empty directive replaced with blank line |
| * Line continuation merges two lines, then a blank line |
| * Whitespace: 4 horizontal space characters each replaced with space |
| * 2 newline characters each replaced with a newline |
| * |
| */ |
| abcdefghijklmnopqrstuvwxyz |
| ABCDEFGHIJKMLNOPQRSTUVWXYZ |
| _ |
| 0123456789 |
| . |
| + |
| - |
| / |
| * |
| % |
| < |
| > |
| [ |
| ] |
| ( |
| ) |
| { |
| } |
| ^ |
| | |
| & |
| ~ |
| = |
| ! |
| : |
| ; |
| , |
| ? |
| # |
| .\ |
| . |
| . . |
| . . |
| .. |
| .. |
| .. |
| . |
| . |