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