/* 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
.
+
-
/
*
%
<
>
[
]
(
)
{
}
^
|
&
~
=
!
:
;
,
?
#
.\
.
. .
.	.
..
..
..
.
.
