OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SKSL_TOKEN | 8 #ifndef SKSL_TOKEN |
9 #define SKSL_TOKEN | 9 #define SKSL_TOKEN |
10 | 10 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 PLUS, | 42 PLUS, |
43 MINUS, | 43 MINUS, |
44 STAR, | 44 STAR, |
45 SLASH, | 45 SLASH, |
46 PERCENT, | 46 PERCENT, |
47 SHL, | 47 SHL, |
48 SHR, | 48 SHR, |
49 BITWISEOR, | 49 BITWISEOR, |
50 BITWISEXOR, | 50 BITWISEXOR, |
51 BITWISEAND, | 51 BITWISEAND, |
52 BITWISENOT, | |
53 LOGICALOR, | 52 LOGICALOR, |
54 LOGICALXOR, | 53 LOGICALXOR, |
55 LOGICALAND, | 54 LOGICALAND, |
56 LOGICALNOT, | 55 NOT, |
57 QUESTION, | 56 QUESTION, |
58 COLON, | 57 COLON, |
59 EQ, | 58 EQ, |
60 EQEQ, | 59 EQEQ, |
61 NEQ, | 60 NEQ, |
62 GT, | 61 GT, |
63 LT, | 62 LT, |
64 GTEQ, | 63 GTEQ, |
65 LTEQ, | 64 LTEQ, |
66 PLUSEQ, | 65 PLUSEQ, |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 | 104 |
106 static std::string OperatorName(Kind kind) { | 105 static std::string OperatorName(Kind kind) { |
107 switch (kind) { | 106 switch (kind) { |
108 case Token::PLUS: return "+"; | 107 case Token::PLUS: return "+"; |
109 case Token::MINUS: return "-"; | 108 case Token::MINUS: return "-"; |
110 case Token::STAR: return "*"; | 109 case Token::STAR: return "*"; |
111 case Token::SLASH: return "/"; | 110 case Token::SLASH: return "/"; |
112 case Token::PERCENT: return "%"; | 111 case Token::PERCENT: return "%"; |
113 case Token::SHL: return "<<"; | 112 case Token::SHL: return "<<"; |
114 case Token::SHR: return ">>"; | 113 case Token::SHR: return ">>"; |
115 case Token::LOGICALNOT: return "!"; | |
116 case Token::LOGICALAND: return "&&"; | 114 case Token::LOGICALAND: return "&&"; |
117 case Token::LOGICALOR: return "||"; | 115 case Token::LOGICALOR: return "||"; |
118 case Token::LOGICALXOR: return "^^"; | 116 case Token::LOGICALXOR: return "^^"; |
119 case Token::BITWISENOT: return "~"; | |
120 case Token::BITWISEAND: return "&"; | 117 case Token::BITWISEAND: return "&"; |
121 case Token::BITWISEOR: return "|"; | 118 case Token::BITWISEOR: return "|"; |
122 case Token::BITWISEXOR: return "^"; | 119 case Token::BITWISEXOR: return "^"; |
123 case Token::EQ: return "="; | 120 case Token::EQ: return "="; |
124 case Token::EQEQ: return "=="; | 121 case Token::EQEQ: return "=="; |
125 case Token::NEQ: return "!="; | 122 case Token::NEQ: return "!="; |
126 case Token::LT: return "<"; | 123 case Token::LT: return "<"; |
127 case Token::GT: return ">"; | 124 case Token::GT: return ">"; |
128 case Token::LTEQ: return "<="; | 125 case Token::LTEQ: return "<="; |
129 case Token::GTEQ: return ">="; | 126 case Token::GTEQ: return ">="; |
130 case Token::PLUSEQ: return "+="; | 127 case Token::PLUSEQ: return "+="; |
131 case Token::MINUSEQ: return "-="; | 128 case Token::MINUSEQ: return "-="; |
132 case Token::STAREQ: return "*="; | 129 case Token::STAREQ: return "*="; |
133 case Token::SLASHEQ: return "/="; | 130 case Token::SLASHEQ: return "/="; |
134 case Token::PERCENTEQ: return "%="; | 131 case Token::PERCENTEQ: return "%="; |
135 case Token::SHLEQ: return "<<="; | 132 case Token::SHLEQ: return "<<="; |
136 case Token::SHREQ: return ">>="; | 133 case Token::SHREQ: return ">>="; |
137 case Token::LOGICALANDEQ: return "&&="; | 134 case Token::LOGICALANDEQ: return "&&="; |
138 case Token::LOGICALOREQ: return "||="; | 135 case Token::LOGICALOREQ: return "||="; |
139 case Token::LOGICALXOREQ: return "^^="; | 136 case Token::LOGICALXOREQ: return "^^="; |
140 case Token::BITWISEANDEQ: return "&="; | 137 case Token::BITWISEANDEQ: return "&="; |
141 case Token::BITWISEOREQ: return "|="; | 138 case Token::BITWISEOREQ: return "|="; |
142 case Token::BITWISEXOREQ: return "^="; | 139 case Token::BITWISEXOREQ: return "^="; |
143 case Token::PLUSPLUS: return "++"; | 140 case Token::PLUSPLUS: return "++"; |
144 case Token::MINUSMINUS: return "--"; | 141 case Token::MINUSMINUS: return "--"; |
| 142 case Token::NOT: return "!"; |
145 default: | 143 default: |
146 ABORT("unsupported operator: %d\n", kind); | 144 ABORT("unsupported operator: %d\n", kind); |
147 } | 145 } |
148 } | 146 } |
149 | 147 |
150 Token() { | 148 Token() { |
151 } | 149 } |
152 | 150 |
153 Token(Position position, Kind kind, std::string text) | 151 Token(Position position, Kind kind, std::string text) |
154 : fPosition(position) | 152 : fPosition(position) |
155 , fKind(kind) | 153 , fKind(kind) |
156 , fText(std::move(text)) {} | 154 , fText(std::move(text)) {} |
157 | 155 |
158 Position fPosition; | 156 Position fPosition; |
159 Kind fKind; | 157 Kind fKind; |
160 std::string fText; | 158 std::string fText; |
161 }; | 159 }; |
162 | 160 |
163 } // namespace | 161 } // namespace |
164 #endif | 162 #endif |
OLD | NEW |