1/* The GLSL specification is not specific about how to handle a non-space
2 * character separating a macro identifier from the replacement list. It says
3 * only "as is standard for C++ preprocessors". GCC accepts these and warns of
4 * "missing whitespace". So we'll accept these, (though we don't warn).
5 *
6 * Note: 'O' is intentionally omitted to leave room for "octothorpe" if we
7 *       decide it should be legal to use a hash here, (in fact, hash has no
8 *       legal use as the first token in a macro replacement list, but one
9 *       could argue that that could still be allowed if the macro were never
10 *       instantiated).
11 */
12#define A& ampersand
13#define B! bang
14#define C, comma
15#define D/ divider
16#define E= equals
17#define F. full stop
18#define G> greater than
19#define H- hyphen
20#define I+ incrementor
21#define J[ JSON array
22#define K} kurly brace?
23#define L< less than
24#define M{ moustache
25#define N^ nose
26#define P) parenthesis (right)
27#define Q? question mark
28#define R% ratio indicator
29#define S] square bracket (right)
30#define T~ tilde
31#define U: umlaut?
32#define V| vertical bar
33#define W; wink
34#define X* X (as multiplication)
35A
36B
37C
38D
39E
40F
41G
42H
43I
44J
45K
46L
47M
48N
49P
50Q
51R
52S
53T
54U
55V
56W
57X
58
59