OILS / _gen / frontend / id_kind.asdl.h View on Github | oilshell.org

464 lines, 452 significant
1#ifndef ID_KIND_ASDL_H
2#define ID_KIND_ASDL_H
3
4#include <stdint.h> // uint16_t
5
6class BigStr;
7
8namespace id_kind_asdl {
9
10#define ASDL_NAMES struct
11ASDL_NAMES Id {
12 enum no_name {
13 Word_Compound = 1,
14 Arith_Semi = 2,
15 Arith_Comma = 3,
16 Arith_Plus = 4,
17 Arith_Minus = 5,
18 Arith_Star = 6,
19 Arith_Slash = 7,
20 Arith_Percent = 8,
21 Arith_DPlus = 9,
22 Arith_DMinus = 10,
23 Arith_DStar = 11,
24 Arith_LParen = 12,
25 Arith_RParen = 13,
26 Arith_LBracket = 14,
27 Arith_RBracket = 15,
28 Arith_RBrace = 16,
29 Arith_QMark = 17,
30 Arith_Colon = 18,
31 Arith_LessEqual = 19,
32 Arith_Less = 20,
33 Arith_GreatEqual = 21,
34 Arith_Great = 22,
35 Arith_DEqual = 23,
36 Arith_NEqual = 24,
37 Arith_DAmp = 25,
38 Arith_DPipe = 26,
39 Arith_Bang = 27,
40 Arith_DGreat = 28,
41 Arith_DLess = 29,
42 Arith_Amp = 30,
43 Arith_Pipe = 31,
44 Arith_Caret = 32,
45 Arith_Tilde = 33,
46 Arith_Equal = 34,
47 Arith_PlusEqual = 35,
48 Arith_MinusEqual = 36,
49 Arith_StarEqual = 37,
50 Arith_SlashEqual = 38,
51 Arith_PercentEqual = 39,
52 Arith_DGreatEqual = 40,
53 Arith_DLessEqual = 41,
54 Arith_AmpEqual = 42,
55 Arith_CaretEqual = 43,
56 Arith_PipeEqual = 44,
57 Eof_Real = 45,
58 Eof_RParen = 46,
59 Eof_Backtick = 47,
60 Undefined_Tok = 48,
61 Unknown_Tok = 49,
62 Unknown_Backslash = 50,
63 Unknown_DEqual = 51,
64 Eol_Tok = 52,
65 Ignored_LineCont = 53,
66 Ignored_Space = 54,
67 Ignored_Comment = 55,
68 WS_Space = 56,
69 Lit_Chars = 57,
70 Lit_CharsWithoutPrefix = 58,
71 Lit_VarLike = 59,
72 Lit_ArrayLhsOpen = 60,
73 Lit_ArrayLhsClose = 61,
74 Lit_Splice = 62,
75 Lit_AtLBracket = 63,
76 Lit_AtLBraceDot = 64,
77 Lit_Other = 65,
78 Lit_EscapedChar = 66,
79 Lit_RegexMeta = 67,
80 Lit_LBracket = 68,
81 Lit_RBracket = 69,
82 Lit_Star = 70,
83 Lit_QMark = 71,
84 Lit_LBrace = 72,
85 Lit_RBrace = 73,
86 Lit_Comma = 74,
87 Lit_Equals = 75,
88 Lit_Dollar = 76,
89 Lit_DRightBracket = 77,
90 Lit_Tilde = 78,
91 Lit_Pound = 79,
92 Lit_TPound = 80,
93 Lit_TDot = 81,
94 Lit_Slash = 82,
95 Lit_Percent = 83,
96 Lit_Colon = 84,
97 Lit_Digits = 85,
98 Lit_At = 86,
99 Lit_ArithVarLike = 87,
100 Lit_BadBackslash = 88,
101 Lit_CompDummy = 89,
102 Backtick_Right = 90,
103 Backtick_Quoted = 91,
104 Backtick_DoubleQuote = 92,
105 Backtick_Other = 93,
106 History_Op = 94,
107 History_Num = 95,
108 History_Search = 96,
109 History_Other = 97,
110 Op_Newline = 98,
111 Op_Amp = 99,
112 Op_Pipe = 100,
113 Op_PipeAmp = 101,
114 Op_DAmp = 102,
115 Op_DPipe = 103,
116 Op_Semi = 104,
117 Op_DSemi = 105,
118 Op_SemiAmp = 106,
119 Op_DSemiAmp = 107,
120 Op_LParen = 108,
121 Op_RParen = 109,
122 Op_DLeftParen = 110,
123 Op_DRightParen = 111,
124 Op_Less = 112,
125 Op_Great = 113,
126 Op_Bang = 114,
127 Op_LBracket = 115,
128 Op_RBracket = 116,
129 Op_LBrace = 117,
130 Op_RBrace = 118,
131 Expr_Reserved = 119,
132 Expr_Symbol = 120,
133 Expr_Name = 121,
134 Expr_DecInt = 122,
135 Expr_BinInt = 123,
136 Expr_OctInt = 124,
137 Expr_HexInt = 125,
138 Expr_Float = 126,
139 Expr_Bang = 127,
140 Expr_Dot = 128,
141 Expr_DDot = 129,
142 Expr_Colon = 130,
143 Expr_RArrow = 131,
144 Expr_RDArrow = 132,
145 Expr_DSlash = 133,
146 Expr_TEqual = 134,
147 Expr_NotDEqual = 135,
148 Expr_TildeDEqual = 136,
149 Expr_At = 137,
150 Expr_DoubleAt = 138,
151 Expr_Ellipsis = 139,
152 Expr_Dollar = 140,
153 Expr_NotTilde = 141,
154 Expr_DTilde = 142,
155 Expr_NotDTilde = 143,
156 Expr_DStarEqual = 144,
157 Expr_DSlashEqual = 145,
158 Expr_CastedDummy = 146,
159 Expr_Null = 147,
160 Expr_True = 148,
161 Expr_False = 149,
162 Expr_And = 150,
163 Expr_Or = 151,
164 Expr_Not = 152,
165 Expr_For = 153,
166 Expr_Is = 154,
167 Expr_In = 155,
168 Expr_If = 156,
169 Expr_Else = 157,
170 Expr_Func = 158,
171 Expr_Capture = 159,
172 Expr_As = 160,
173 Expr_While = 161,
174 Expr_Break = 162,
175 Expr_Continue = 163,
176 Expr_Return = 164,
177 Char_OneChar = 165,
178 Char_Stop = 166,
179 Char_Hex = 167,
180 Char_YHex = 168,
181 Char_Octal3 = 169,
182 Char_Octal4 = 170,
183 Char_Unicode4 = 171,
184 Char_SurrogatePair = 172,
185 Char_Unicode8 = 173,
186 Char_UBraced = 174,
187 Char_Pound = 175,
188 Char_AsciiControl = 176,
189 Re_Start = 177,
190 Re_End = 178,
191 Re_Dot = 179,
192 Redir_Less = 180,
193 Redir_Great = 181,
194 Redir_DLess = 182,
195 Redir_TLess = 183,
196 Redir_DGreat = 184,
197 Redir_GreatAnd = 185,
198 Redir_LessAnd = 186,
199 Redir_DLessDash = 187,
200 Redir_LessGreat = 188,
201 Redir_Clobber = 189,
202 Redir_AndGreat = 190,
203 Redir_AndDGreat = 191,
204 Left_DoubleQuote = 192,
205 Left_SingleQuote = 193,
206 Left_DollarSingleQuote = 194,
207 Left_RSingleQuote = 195,
208 Left_USingleQuote = 196,
209 Left_BSingleQuote = 197,
210 Left_TDoubleQuote = 198,
211 Left_TSingleQuote = 199,
212 Left_RTSingleQuote = 200,
213 Left_UTSingleQuote = 201,
214 Left_BTSingleQuote = 202,
215 Left_Backtick = 203,
216 Left_DollarParen = 204,
217 Left_DollarBrace = 205,
218 Left_DollarDParen = 206,
219 Left_DollarBracket = 207,
220 Left_DollarDoubleQuote = 208,
221 Left_ProcSubIn = 209,
222 Left_ProcSubOut = 210,
223 Left_AtParen = 211,
224 Left_CaretParen = 212,
225 Left_CaretBracket = 213,
226 Left_CaretBrace = 214,
227 Left_CaretDoubleQuote = 215,
228 Left_ColonPipe = 216,
229 Left_PercentParen = 217,
230 Right_DoubleQuote = 218,
231 Right_SingleQuote = 219,
232 Right_Backtick = 220,
233 Right_DollarBrace = 221,
234 Right_DollarDParen = 222,
235 Right_DollarDoubleQuote = 223,
236 Right_DollarSingleQuote = 224,
237 Right_Subshell = 225,
238 Right_ShFunction = 226,
239 Right_CasePat = 227,
240 Right_ShArrayLiteral = 228,
241 Right_ExtGlob = 229,
242 Right_BlockLiteral = 230,
243 ExtGlob_Comma = 231,
244 ExtGlob_At = 232,
245 ExtGlob_Star = 233,
246 ExtGlob_Plus = 234,
247 ExtGlob_QMark = 235,
248 ExtGlob_Bang = 236,
249 VSub_DollarName = 237,
250 VSub_Name = 238,
251 VSub_Number = 239,
252 VSub_Bang = 240,
253 VSub_At = 241,
254 VSub_Pound = 242,
255 VSub_Dollar = 243,
256 VSub_Star = 244,
257 VSub_Hyphen = 245,
258 VSub_QMark = 246,
259 VSub_Dot = 247,
260 VTest_ColonHyphen = 248,
261 VTest_Hyphen = 249,
262 VTest_ColonEquals = 250,
263 VTest_Equals = 251,
264 VTest_ColonQMark = 252,
265 VTest_QMark = 253,
266 VTest_ColonPlus = 254,
267 VTest_Plus = 255,
268 VOp0_Q = 256,
269 VOp0_E = 257,
270 VOp0_P = 258,
271 VOp0_A = 259,
272 VOp0_a = 260,
273 VOp1_Percent = 261,
274 VOp1_DPercent = 262,
275 VOp1_Pound = 263,
276 VOp1_DPound = 264,
277 VOp1_Caret = 265,
278 VOp1_DCaret = 266,
279 VOp1_Comma = 267,
280 VOp1_DComma = 268,
281 VOpYsh_Pipe = 269,
282 VOpYsh_Space = 270,
283 VOp2_Slash = 271,
284 VOp2_Colon = 272,
285 VOp2_LBracket = 273,
286 VOp2_RBracket = 274,
287 VOp3_At = 275,
288 VOp3_Star = 276,
289 Node_PostDPlus = 277,
290 Node_PostDMinus = 278,
291 Node_UnaryPlus = 279,
292 Node_UnaryMinus = 280,
293 Node_NotIn = 281,
294 Node_IsNot = 282,
295 KW_DLeftBracket = 283,
296 KW_Bang = 284,
297 KW_For = 285,
298 KW_While = 286,
299 KW_Until = 287,
300 KW_Do = 288,
301 KW_Done = 289,
302 KW_In = 290,
303 KW_Case = 291,
304 KW_Esac = 292,
305 KW_If = 293,
306 KW_Fi = 294,
307 KW_Then = 295,
308 KW_Else = 296,
309 KW_Elif = 297,
310 KW_Function = 298,
311 KW_Time = 299,
312 KW_Const = 300,
313 KW_Var = 301,
314 KW_SetVar = 302,
315 KW_SetGlobal = 303,
316 KW_Call = 304,
317 KW_Proc = 305,
318 KW_Func = 306,
319 ControlFlow_Break = 307,
320 ControlFlow_Continue = 308,
321 ControlFlow_Return = 309,
322 ControlFlow_Exit = 310,
323 LookAhead_FuncParens = 311,
324 Glob_LBracket = 312,
325 Glob_RBracket = 313,
326 Glob_Star = 314,
327 Glob_QMark = 315,
328 Glob_Bang = 316,
329 Glob_Caret = 317,
330 Glob_EscapedChar = 318,
331 Glob_BadBackslash = 319,
332 Glob_CleanLiterals = 320,
333 Glob_OtherLiteral = 321,
334 Format_EscapedPercent = 322,
335 Format_Percent = 323,
336 Format_Flag = 324,
337 Format_Num = 325,
338 Format_Dot = 326,
339 Format_Type = 327,
340 Format_Star = 328,
341 Format_Time = 329,
342 Format_Zero = 330,
343 PS_Subst = 331,
344 PS_Octal3 = 332,
345 PS_LBrace = 333,
346 PS_RBrace = 334,
347 PS_Literals = 335,
348 PS_BadBackslash = 336,
349 Range_Int = 337,
350 Range_Char = 338,
351 Range_Dots = 339,
352 Range_Other = 340,
353 J8_LBracket = 341,
354 J8_RBracket = 342,
355 J8_LBrace = 343,
356 J8_RBrace = 344,
357 J8_Comma = 345,
358 J8_Colon = 346,
359 J8_Null = 347,
360 J8_Bool = 348,
361 J8_Int = 349,
362 J8_Float = 350,
363 J8_String = 351,
364 J8_Identifier = 352,
365 J8_LParen = 353,
366 J8_RParen = 354,
367 J8_Operator = 355,
368 BoolUnary_z = 356,
369 BoolUnary_n = 357,
370 BoolUnary_o = 358,
371 BoolUnary_t = 359,
372 BoolUnary_v = 360,
373 BoolUnary_R = 361,
374 BoolUnary_a = 362,
375 BoolUnary_b = 363,
376 BoolUnary_c = 364,
377 BoolUnary_d = 365,
378 BoolUnary_e = 366,
379 BoolUnary_f = 367,
380 BoolUnary_g = 368,
381 BoolUnary_h = 369,
382 BoolUnary_k = 370,
383 BoolUnary_L = 371,
384 BoolUnary_p = 372,
385 BoolUnary_r = 373,
386 BoolUnary_s = 374,
387 BoolUnary_S = 375,
388 BoolUnary_u = 376,
389 BoolUnary_w = 377,
390 BoolUnary_x = 378,
391 BoolUnary_O = 379,
392 BoolUnary_G = 380,
393 BoolUnary_N = 381,
394 BoolBinary_GlobEqual = 382,
395 BoolBinary_GlobDEqual = 383,
396 BoolBinary_GlobNEqual = 384,
397 BoolBinary_EqualTilde = 385,
398 BoolBinary_ef = 386,
399 BoolBinary_nt = 387,
400 BoolBinary_ot = 388,
401 BoolBinary_eq = 389,
402 BoolBinary_ne = 390,
403 BoolBinary_gt = 391,
404 BoolBinary_ge = 392,
405 BoolBinary_lt = 393,
406 BoolBinary_le = 394,
407 BoolBinary_Equal = 395,
408 BoolBinary_DEqual = 396,
409 BoolBinary_NEqual = 397,
410 ARRAY_SIZE = 398,
411 };
412};
413
414BigStr* Id_str(int tag, bool dot = true);
415
416typedef uint16_t Id_t;
417
418enum class Kind {
419 Word = 1,
420 Arith = 2,
421 Eof = 3,
422 Undefined = 4,
423 Unknown = 5,
424 Eol = 6,
425 Ignored = 7,
426 WS = 8,
427 Lit = 9,
428 Backtick = 10,
429 History = 11,
430 Op = 12,
431 Expr = 13,
432 Char = 14,
433 Re = 15,
434 Redir = 16,
435 Left = 17,
436 Right = 18,
437 ExtGlob = 19,
438 VSub = 20,
439 VTest = 21,
440 VOp0 = 22,
441 VOp1 = 23,
442 VOpYsh = 24,
443 VOp2 = 25,
444 VOp3 = 26,
445 Node = 27,
446 KW = 28,
447 ControlFlow = 29,
448 LookAhead = 30,
449 Glob = 31,
450 Format = 32,
451 PS = 33,
452 Range = 34,
453 J8 = 35,
454 BoolUnary = 36,
455 BoolBinary = 37,
456};
457typedef Kind Kind_t;
458
459BigStr* Kind_str(Kind tag, bool dot = true);
460
461
462} // namespace id_kind_asdl
463
464#endif // ID_KIND_ASDL_H