41 {", 0, kNoAttribute) \
42 TOK(kRBRACE, "}", 0, kNoAttribute) \
43 TOK(kARROW, "=>", 0, kNoAttribute) \
44 TOK(kCOLON, ":", 0, kNoAttribute) \
45 TOK(kSEMICOLON, ";", 0, kNoAttribute) \
46 TOK(kPERIOD, ".", 0, kNoAttribute) \
47 TOK(kQM_PERIOD, "?.", 0, kNoAttribute) \
48 TOK(kINCR, "++", 0, kNoAttribute) \
49 TOK(kDECR, "--", 0, kNoAttribute) \
50 \
51 /* Assignment operators. */ \
52 /* Please update IsAssignmentOperator() if you make */ \
53 /* any changes to this block. */ \
54 TOK(kASSIGN, "=", 2, kNoAttribute) \
55 TOK(kASSIGN_OR, "|=", 2, kNoAttribute) \
56 TOK(kASSIGN_XOR, "^=", 2, kNoAttribute) \
57 TOK(kASSIGN_AND, "&=", 2, kNoAttribute) \
58 TOK(kASSIGN_SHL, "<<=", 2, kNoAttribute) \
59 TOK(kASSIGN_SHR, ">>=", 2, kNoAttribute) \
60 TOK(kASSIGN_USHR, ">>>=", 2, kNoAttribute) \
61 TOK(kASSIGN_ADD, "+=", 2, kNoAttribute) \
62 TOK(kASSIGN_SUB, "-=", 2, kNoAttribute) \
63 TOK(kASSIGN_MUL, "*=", 2, kNoAttribute) \
64 TOK(kASSIGN_TRUNCDIV, "~/=", 2, kNoAttribute) \
65 TOK(kASSIGN_DIV, "/=", 2, kNoAttribute) \
66 TOK(kASSIGN_MOD, "%=", 2, kNoAttribute) \
67 /* Avoid trigraph ??= below. */ \
68 TOK(kASSIGN_COND, "?\?=", 2, kNoAttribute) \
69 \
70 TOK(kCASCADE, "..", 2, kNoAttribute) \
71 \
72 TOK(kCOMMA, ",", 1, kNoAttribute) \
73 TOK(kOR, "||", 5, kNoAttribute) \
74 TOK(kAND, "&&", 6, kNoAttribute) \
75 TOK(kBIT_OR, "|", 9, kNoAttribute) \
76 TOK(kBIT_XOR, "^", 10, kNoAttribute) \
77 TOK(kBIT_AND, "&", 11, kNoAttribute) \
78 TOK(kBIT_NOT, "~", 0, kNoAttribute) \
79 \
80 /* Shift operators. */ \
81 TOK(kSHL, "<<", 12, kNoAttribute) \
82 TOK(kSHR, ">>", 12, kNoAttribute) \
83 TOK(kUSHR, ">>>", 12, kNoAttribute) \
84 \
85 /* Additive operators. */ \
86 TOK(kADD, "+", 13, kNoAttribute) \
87 TOK(kSUB, "-", 13, kNoAttribute) \
88 \
89 /* Multiplicative operators */ \
90 TOK(kMUL, "*", 14, kNoAttribute) \
91 TOK(kDIV, "/", 14, kNoAttribute) \
92 TOK(kTRUNCDIV, "~/", 14, kNoAttribute) \
93 TOK(kMOD, "%", 14, kNoAttribute) \
94 \
95 TOK(kNOT, "!", 0, kNoAttribute) \
96 TOK(kCONDITIONAL, "?", 3, kNoAttribute) \
97 TOK(kIFnullptr, "??", 4, kNoAttribute) \
98 \
99 /* Equality operators. */ \
100 /* Please update IsEqualityOperator() if you make */ \
101 /* any changes to this block. */ \
102 TOK(kEQ, "==", 7, kNoAttribute) \
103 TOK(kNE, "!=", 7, kNoAttribute) \
104 TOK(kEQ_STRICT, "===", 7, kNoAttribute) \
105 TOK(kNE_STRICT, "!==", 7, kNoAttribute) \
106 \
107 /* Relational operators. */ \
108 /* Please update IsRelationalOperator() if you make */ \
109 /* any changes to this block. */ \
110 TOK(kLT, "<", 8, kNoAttribute) \
111 TOK(kGT, ">", 8, kNoAttribute) \
112 TOK(kLTE, "<=", 8, kNoAttribute) \
113 TOK(kGTE, ">=", 8, kNoAttribute) \
114 \
115 /* Internal token for !(expr is Type) negative type test operator */ \
116 TOK(kISNOT, "", 11, kNoAttribute) \
117 \
118 TOK(kINDEX, "[]", 0, kNoAttribute) \
119 TOK(kASSIGN_INDEX, "[]=", 0, kNoAttribute) \
120 TOK(kNEGATE, "unary-", 0, kNoAttribute) \
121 \
122 TOK(kIDENT, "", 0, kNoAttribute) \
123 TOK(kSTRING, "", 0, kNoAttribute) \
124 TOK(kINTEGER, "", 0, kNoAttribute) \
125 TOK(kDOUBLE, "", 0, kNoAttribute) \
126 \
127 TOK(kINTERPOL_VAR, "$", 0, kNoAttribute) \
128 TOK(kINTERPOL_START, "${", 0, kNoAttribute) \
129 TOK(kINTERPOL_END, "}", 0, kNoAttribute) \
130 \
131 TOK(kAT, "@", 0, kNoAttribute) \
132 TOK(kHASH, "#", 0, kNoAttribute) \
133 \
134 TOK(kNEWLINE, "\n", 0, kNoAttribute) \
135 TOK(kWHITESP, "", 0, kNoAttribute) \
136 TOK(kERROR, "", 0, kNoAttribute) \
137 TOK(kILLEGAL, "", 0, kNoAttribute) \
138 \
139 /* Support for Dart scripts. */ \
140 TOK(kSCRIPTTAG, "#!", 0, kNoAttribute) \
141 \
142 /* Support for optimized code */ \
143 TOK(kREM, "rem", 0, kNoAttribute) \
144 TOK(kABS, "abs", 0, kNoAttribute) \
145 TOK(kSQRT, "sqrt", 0, kNoAttribute) \
146 TOK(kMIN, "min", 0, kNoAttribute) \
147 TOK(kMAX, "max", 0, kNoAttribute) \
148 TOK(kRECIPROCAL, "reciprocal", 0, kNoAttribute) \
149 TOK(kRECIPROCAL_SQRT, "reciprocal-
sqrt", 0, kNoAttribute) \
150 TOK(kSQUARE, "square", 0, kNoAttribute) \
151 TOK(kTRUNCATE, "truncate", 0, kNoAttribute) \
152 TOK(kFLOOR, "floor", 0, kNoAttribute) \
153 TOK(kCEILING, "ceiling", 0, kNoAttribute)
static float max(float r, float g, float b)
static float min(float r, float g, float b)
SIN Vec< N, float > abs(const Vec< N, float > &x)
SIN Vec< N, float > sqrt(const Vec< N, float > &x)
SIN Vec< N, float > floor(const Vec< N, float > &x)