OILS / _gen / frontend / id_kind.asdl.h View on Github | oils.pub

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