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

915 lines, 906 significant
1#include <assert.h>
2#include "_gen/frontend/id_kind.asdl.h"
3#include "mycpp/gc_alloc.h" // StrFromC()
4
5namespace id_kind_asdl {
6
7BigStr* Id_str(int tag, bool dot) {
8 char buf[32];
9 const char* v = nullptr;
10 switch (tag) {
11 case Id::Word_Compound:
12 v = "Word_Compound"; break;
13 case Id::Arith_Semi:
14 v = "Arith_Semi"; break;
15 case Id::Arith_Comma:
16 v = "Arith_Comma"; break;
17 case Id::Arith_Plus:
18 v = "Arith_Plus"; break;
19 case Id::Arith_Minus:
20 v = "Arith_Minus"; break;
21 case Id::Arith_Star:
22 v = "Arith_Star"; break;
23 case Id::Arith_Slash:
24 v = "Arith_Slash"; break;
25 case Id::Arith_Percent:
26 v = "Arith_Percent"; break;
27 case Id::Arith_DPlus:
28 v = "Arith_DPlus"; break;
29 case Id::Arith_DMinus:
30 v = "Arith_DMinus"; break;
31 case Id::Arith_DStar:
32 v = "Arith_DStar"; break;
33 case Id::Arith_LParen:
34 v = "Arith_LParen"; break;
35 case Id::Arith_RParen:
36 v = "Arith_RParen"; break;
37 case Id::Arith_LBracket:
38 v = "Arith_LBracket"; break;
39 case Id::Arith_RBracket:
40 v = "Arith_RBracket"; break;
41 case Id::Arith_RBrace:
42 v = "Arith_RBrace"; break;
43 case Id::Arith_QMark:
44 v = "Arith_QMark"; break;
45 case Id::Arith_Colon:
46 v = "Arith_Colon"; break;
47 case Id::Arith_LessEqual:
48 v = "Arith_LessEqual"; break;
49 case Id::Arith_Less:
50 v = "Arith_Less"; break;
51 case Id::Arith_GreatEqual:
52 v = "Arith_GreatEqual"; break;
53 case Id::Arith_Great:
54 v = "Arith_Great"; break;
55 case Id::Arith_DEqual:
56 v = "Arith_DEqual"; break;
57 case Id::Arith_NEqual:
58 v = "Arith_NEqual"; break;
59 case Id::Arith_DAmp:
60 v = "Arith_DAmp"; break;
61 case Id::Arith_DPipe:
62 v = "Arith_DPipe"; break;
63 case Id::Arith_Bang:
64 v = "Arith_Bang"; break;
65 case Id::Arith_DGreat:
66 v = "Arith_DGreat"; break;
67 case Id::Arith_DLess:
68 v = "Arith_DLess"; break;
69 case Id::Arith_Amp:
70 v = "Arith_Amp"; break;
71 case Id::Arith_Pipe:
72 v = "Arith_Pipe"; break;
73 case Id::Arith_Caret:
74 v = "Arith_Caret"; break;
75 case Id::Arith_Tilde:
76 v = "Arith_Tilde"; break;
77 case Id::Arith_Equal:
78 v = "Arith_Equal"; break;
79 case Id::Arith_PlusEqual:
80 v = "Arith_PlusEqual"; break;
81 case Id::Arith_MinusEqual:
82 v = "Arith_MinusEqual"; break;
83 case Id::Arith_StarEqual:
84 v = "Arith_StarEqual"; break;
85 case Id::Arith_SlashEqual:
86 v = "Arith_SlashEqual"; break;
87 case Id::Arith_PercentEqual:
88 v = "Arith_PercentEqual"; break;
89 case Id::Arith_DGreatEqual:
90 v = "Arith_DGreatEqual"; break;
91 case Id::Arith_DLessEqual:
92 v = "Arith_DLessEqual"; break;
93 case Id::Arith_AmpEqual:
94 v = "Arith_AmpEqual"; break;
95 case Id::Arith_CaretEqual:
96 v = "Arith_CaretEqual"; break;
97 case Id::Arith_PipeEqual:
98 v = "Arith_PipeEqual"; break;
99 case Id::Eof_Real:
100 v = "Eof_Real"; break;
101 case Id::Eof_RParen:
102 v = "Eof_RParen"; break;
103 case Id::Eof_Backtick:
104 v = "Eof_Backtick"; break;
105 case Id::Undefined_Tok:
106 v = "Undefined_Tok"; break;
107 case Id::Unknown_Tok:
108 v = "Unknown_Tok"; break;
109 case Id::Unknown_Backslash:
110 v = "Unknown_Backslash"; break;
111 case Id::Unknown_DEqual:
112 v = "Unknown_DEqual"; break;
113 case Id::Eol_Tok:
114 v = "Eol_Tok"; break;
115 case Id::Ignored_LineCont:
116 v = "Ignored_LineCont"; break;
117 case Id::Ignored_Space:
118 v = "Ignored_Space"; break;
119 case Id::Ignored_Comment:
120 v = "Ignored_Comment"; break;
121 case Id::Ignored_Newline:
122 v = "Ignored_Newline"; break;
123 case Id::WS_Space:
124 v = "WS_Space"; break;
125 case Id::Lit_Chars:
126 v = "Lit_Chars"; break;
127 case Id::Lit_CharsWithoutPrefix:
128 v = "Lit_CharsWithoutPrefix"; break;
129 case Id::Lit_VarLike:
130 v = "Lit_VarLike"; break;
131 case Id::Lit_ArrayLhsOpen:
132 v = "Lit_ArrayLhsOpen"; break;
133 case Id::Lit_ArrayLhsClose:
134 v = "Lit_ArrayLhsClose"; break;
135 case Id::Lit_Splice:
136 v = "Lit_Splice"; break;
137 case Id::Lit_AtLBracket:
138 v = "Lit_AtLBracket"; break;
139 case Id::Lit_AtLBraceDot:
140 v = "Lit_AtLBraceDot"; break;
141 case Id::Lit_Other:
142 v = "Lit_Other"; break;
143 case Id::Lit_EscapedChar:
144 v = "Lit_EscapedChar"; break;
145 case Id::Lit_LBracket:
146 v = "Lit_LBracket"; break;
147 case Id::Lit_RBracket:
148 v = "Lit_RBracket"; break;
149 case Id::Lit_Star:
150 v = "Lit_Star"; break;
151 case Id::Lit_QMark:
152 v = "Lit_QMark"; break;
153 case Id::Lit_LBrace:
154 v = "Lit_LBrace"; break;
155 case Id::Lit_RBrace:
156 v = "Lit_RBrace"; break;
157 case Id::Lit_Comma:
158 v = "Lit_Comma"; break;
159 case Id::Lit_Equals:
160 v = "Lit_Equals"; break;
161 case Id::Lit_Dollar:
162 v = "Lit_Dollar"; break;
163 case Id::Lit_DRightBracket:
164 v = "Lit_DRightBracket"; break;
165 case Id::Lit_Tilde:
166 v = "Lit_Tilde"; break;
167 case Id::Lit_Pound:
168 v = "Lit_Pound"; break;
169 case Id::Lit_TPound:
170 v = "Lit_TPound"; break;
171 case Id::Lit_TDot:
172 v = "Lit_TDot"; break;
173 case Id::Lit_Slash:
174 v = "Lit_Slash"; break;
175 case Id::Lit_Percent:
176 v = "Lit_Percent"; break;
177 case Id::Lit_Colon:
178 v = "Lit_Colon"; break;
179 case Id::Lit_Digits:
180 v = "Lit_Digits"; break;
181 case Id::Lit_At:
182 v = "Lit_At"; break;
183 case Id::Lit_ArithVarLike:
184 v = "Lit_ArithVarLike"; break;
185 case Id::Lit_BadBackslash:
186 v = "Lit_BadBackslash"; break;
187 case Id::Lit_CompDummy:
188 v = "Lit_CompDummy"; break;
189 case Id::Backtick_Right:
190 v = "Backtick_Right"; break;
191 case Id::Backtick_Quoted:
192 v = "Backtick_Quoted"; break;
193 case Id::Backtick_DoubleQuote:
194 v = "Backtick_DoubleQuote"; break;
195 case Id::Backtick_Other:
196 v = "Backtick_Other"; break;
197 case Id::History_Op:
198 v = "History_Op"; break;
199 case Id::History_Num:
200 v = "History_Num"; break;
201 case Id::History_Search:
202 v = "History_Search"; break;
203 case Id::History_Other:
204 v = "History_Other"; break;
205 case Id::Op_Newline:
206 v = "Op_Newline"; break;
207 case Id::Op_Amp:
208 v = "Op_Amp"; break;
209 case Id::Op_Pipe:
210 v = "Op_Pipe"; break;
211 case Id::Op_PipeAmp:
212 v = "Op_PipeAmp"; break;
213 case Id::Op_DAmp:
214 v = "Op_DAmp"; break;
215 case Id::Op_DPipe:
216 v = "Op_DPipe"; break;
217 case Id::Op_Semi:
218 v = "Op_Semi"; break;
219 case Id::Op_DSemi:
220 v = "Op_DSemi"; break;
221 case Id::Op_SemiAmp:
222 v = "Op_SemiAmp"; break;
223 case Id::Op_DSemiAmp:
224 v = "Op_DSemiAmp"; break;
225 case Id::Op_LParen:
226 v = "Op_LParen"; break;
227 case Id::Op_RParen:
228 v = "Op_RParen"; break;
229 case Id::Op_DLeftParen:
230 v = "Op_DLeftParen"; break;
231 case Id::Op_DRightParen:
232 v = "Op_DRightParen"; break;
233 case Id::Op_Less:
234 v = "Op_Less"; break;
235 case Id::Op_Great:
236 v = "Op_Great"; break;
237 case Id::Op_Bang:
238 v = "Op_Bang"; break;
239 case Id::Op_LBracket:
240 v = "Op_LBracket"; break;
241 case Id::Op_RBracket:
242 v = "Op_RBracket"; break;
243 case Id::Op_LBrace:
244 v = "Op_LBrace"; break;
245 case Id::Op_RBrace:
246 v = "Op_RBrace"; break;
247 case Id::Expr_Reserved:
248 v = "Expr_Reserved"; break;
249 case Id::Expr_Symbol:
250 v = "Expr_Symbol"; break;
251 case Id::Expr_Name:
252 v = "Expr_Name"; break;
253 case Id::Expr_DecInt:
254 v = "Expr_DecInt"; break;
255 case Id::Expr_BinInt:
256 v = "Expr_BinInt"; break;
257 case Id::Expr_OctInt:
258 v = "Expr_OctInt"; break;
259 case Id::Expr_HexInt:
260 v = "Expr_HexInt"; break;
261 case Id::Expr_Float:
262 v = "Expr_Float"; break;
263 case Id::Expr_Bang:
264 v = "Expr_Bang"; break;
265 case Id::Expr_Dot:
266 v = "Expr_Dot"; break;
267 case Id::Expr_DDot:
268 v = "Expr_DDot"; break;
269 case Id::Expr_Colon:
270 v = "Expr_Colon"; break;
271 case Id::Expr_RArrow:
272 v = "Expr_RArrow"; break;
273 case Id::Expr_RDArrow:
274 v = "Expr_RDArrow"; break;
275 case Id::Expr_DSlash:
276 v = "Expr_DSlash"; break;
277 case Id::Expr_TEqual:
278 v = "Expr_TEqual"; break;
279 case Id::Expr_NotDEqual:
280 v = "Expr_NotDEqual"; break;
281 case Id::Expr_TildeDEqual:
282 v = "Expr_TildeDEqual"; break;
283 case Id::Expr_At:
284 v = "Expr_At"; break;
285 case Id::Expr_DoubleAt:
286 v = "Expr_DoubleAt"; break;
287 case Id::Expr_Ellipsis:
288 v = "Expr_Ellipsis"; break;
289 case Id::Expr_Dollar:
290 v = "Expr_Dollar"; break;
291 case Id::Expr_NotTilde:
292 v = "Expr_NotTilde"; break;
293 case Id::Expr_DTilde:
294 v = "Expr_DTilde"; break;
295 case Id::Expr_NotDTilde:
296 v = "Expr_NotDTilde"; break;
297 case Id::Expr_DStarEqual:
298 v = "Expr_DStarEqual"; break;
299 case Id::Expr_DSlashEqual:
300 v = "Expr_DSlashEqual"; break;
301 case Id::Expr_CastedDummy:
302 v = "Expr_CastedDummy"; break;
303 case Id::Expr_Null:
304 v = "Expr_Null"; break;
305 case Id::Expr_True:
306 v = "Expr_True"; break;
307 case Id::Expr_False:
308 v = "Expr_False"; break;
309 case Id::Expr_And:
310 v = "Expr_And"; break;
311 case Id::Expr_Or:
312 v = "Expr_Or"; break;
313 case Id::Expr_Not:
314 v = "Expr_Not"; break;
315 case Id::Expr_For:
316 v = "Expr_For"; break;
317 case Id::Expr_Is:
318 v = "Expr_Is"; break;
319 case Id::Expr_In:
320 v = "Expr_In"; break;
321 case Id::Expr_If:
322 v = "Expr_If"; break;
323 case Id::Expr_Else:
324 v = "Expr_Else"; break;
325 case Id::Expr_Func:
326 v = "Expr_Func"; break;
327 case Id::Expr_Capture:
328 v = "Expr_Capture"; break;
329 case Id::Expr_As:
330 v = "Expr_As"; break;
331 case Id::Char_OneChar:
332 v = "Char_OneChar"; break;
333 case Id::Char_Stop:
334 v = "Char_Stop"; break;
335 case Id::Char_Hex:
336 v = "Char_Hex"; break;
337 case Id::Char_YHex:
338 v = "Char_YHex"; break;
339 case Id::Char_Octal3:
340 v = "Char_Octal3"; break;
341 case Id::Char_Octal4:
342 v = "Char_Octal4"; break;
343 case Id::Char_Unicode4:
344 v = "Char_Unicode4"; break;
345 case Id::Char_SurrogatePair:
346 v = "Char_SurrogatePair"; break;
347 case Id::Char_Unicode8:
348 v = "Char_Unicode8"; break;
349 case Id::Char_UBraced:
350 v = "Char_UBraced"; break;
351 case Id::Char_Pound:
352 v = "Char_Pound"; break;
353 case Id::Char_AsciiControl:
354 v = "Char_AsciiControl"; break;
355 case Id::BashRegex_LParen:
356 v = "BashRegex_LParen"; break;
357 case Id::BashRegex_AllowedInParens:
358 v = "BashRegex_AllowedInParens"; break;
359 case Id::Eggex_Start:
360 v = "Eggex_Start"; break;
361 case Id::Eggex_End:
362 v = "Eggex_End"; break;
363 case Id::Eggex_Dot:
364 v = "Eggex_Dot"; break;
365 case Id::Redir_Less:
366 v = "Redir_Less"; break;
367 case Id::Redir_Great:
368 v = "Redir_Great"; break;
369 case Id::Redir_DLess:
370 v = "Redir_DLess"; break;
371 case Id::Redir_TLess:
372 v = "Redir_TLess"; break;
373 case Id::Redir_DGreat:
374 v = "Redir_DGreat"; break;
375 case Id::Redir_GreatAnd:
376 v = "Redir_GreatAnd"; break;
377 case Id::Redir_LessAnd:
378 v = "Redir_LessAnd"; break;
379 case Id::Redir_DLessDash:
380 v = "Redir_DLessDash"; break;
381 case Id::Redir_LessGreat:
382 v = "Redir_LessGreat"; break;
383 case Id::Redir_Clobber:
384 v = "Redir_Clobber"; break;
385 case Id::Redir_AndGreat:
386 v = "Redir_AndGreat"; break;
387 case Id::Redir_AndDGreat:
388 v = "Redir_AndDGreat"; break;
389 case Id::Left_DoubleQuote:
390 v = "Left_DoubleQuote"; break;
391 case Id::Left_JDoubleQuote:
392 v = "Left_JDoubleQuote"; break;
393 case Id::Left_SingleQuote:
394 v = "Left_SingleQuote"; break;
395 case Id::Left_DollarSingleQuote:
396 v = "Left_DollarSingleQuote"; break;
397 case Id::Left_RSingleQuote:
398 v = "Left_RSingleQuote"; break;
399 case Id::Left_USingleQuote:
400 v = "Left_USingleQuote"; break;
401 case Id::Left_BSingleQuote:
402 v = "Left_BSingleQuote"; break;
403 case Id::Left_TDoubleQuote:
404 v = "Left_TDoubleQuote"; break;
405 case Id::Left_DollarTDoubleQuote:
406 v = "Left_DollarTDoubleQuote"; break;
407 case Id::Left_TSingleQuote:
408 v = "Left_TSingleQuote"; break;
409 case Id::Left_RTSingleQuote:
410 v = "Left_RTSingleQuote"; break;
411 case Id::Left_UTSingleQuote:
412 v = "Left_UTSingleQuote"; break;
413 case Id::Left_BTSingleQuote:
414 v = "Left_BTSingleQuote"; break;
415 case Id::Left_Backtick:
416 v = "Left_Backtick"; break;
417 case Id::Left_DollarParen:
418 v = "Left_DollarParen"; break;
419 case Id::Left_DollarBrace:
420 v = "Left_DollarBrace"; break;
421 case Id::Left_DollarBraceZsh:
422 v = "Left_DollarBraceZsh"; break;
423 case Id::Left_DollarDParen:
424 v = "Left_DollarDParen"; break;
425 case Id::Left_DollarBracket:
426 v = "Left_DollarBracket"; break;
427 case Id::Left_DollarDoubleQuote:
428 v = "Left_DollarDoubleQuote"; break;
429 case Id::Left_ProcSubIn:
430 v = "Left_ProcSubIn"; break;
431 case Id::Left_ProcSubOut:
432 v = "Left_ProcSubOut"; break;
433 case Id::Left_AtParen:
434 v = "Left_AtParen"; break;
435 case Id::Left_CaretParen:
436 v = "Left_CaretParen"; break;
437 case Id::Left_CaretBracket:
438 v = "Left_CaretBracket"; break;
439 case Id::Left_CaretBrace:
440 v = "Left_CaretBrace"; break;
441 case Id::Left_CaretDoubleQuote:
442 v = "Left_CaretDoubleQuote"; break;
443 case Id::Left_ColonPipe:
444 v = "Left_ColonPipe"; break;
445 case Id::Left_PercentParen:
446 v = "Left_PercentParen"; break;
447 case Id::Right_DoubleQuote:
448 v = "Right_DoubleQuote"; break;
449 case Id::Right_SingleQuote:
450 v = "Right_SingleQuote"; break;
451 case Id::Right_Backtick:
452 v = "Right_Backtick"; break;
453 case Id::Right_DollarBrace:
454 v = "Right_DollarBrace"; break;
455 case Id::Right_DollarDParen:
456 v = "Right_DollarDParen"; break;
457 case Id::Right_DollarDoubleQuote:
458 v = "Right_DollarDoubleQuote"; break;
459 case Id::Right_DollarSingleQuote:
460 v = "Right_DollarSingleQuote"; break;
461 case Id::Right_Subshell:
462 v = "Right_Subshell"; break;
463 case Id::Right_ShFunction:
464 v = "Right_ShFunction"; break;
465 case Id::Right_CasePat:
466 v = "Right_CasePat"; break;
467 case Id::Right_ShArrayLiteral:
468 v = "Right_ShArrayLiteral"; break;
469 case Id::Right_ExtGlob:
470 v = "Right_ExtGlob"; break;
471 case Id::Right_BashRegexGroup:
472 v = "Right_BashRegexGroup"; break;
473 case Id::Right_BlockLiteral:
474 v = "Right_BlockLiteral"; break;
475 case Id::ExtGlob_Comma:
476 v = "ExtGlob_Comma"; break;
477 case Id::ExtGlob_At:
478 v = "ExtGlob_At"; break;
479 case Id::ExtGlob_Star:
480 v = "ExtGlob_Star"; break;
481 case Id::ExtGlob_Plus:
482 v = "ExtGlob_Plus"; break;
483 case Id::ExtGlob_QMark:
484 v = "ExtGlob_QMark"; break;
485 case Id::ExtGlob_Bang:
486 v = "ExtGlob_Bang"; break;
487 case Id::VSub_DollarName:
488 v = "VSub_DollarName"; break;
489 case Id::VSub_Name:
490 v = "VSub_Name"; break;
491 case Id::VSub_Number:
492 v = "VSub_Number"; break;
493 case Id::VSub_Bang:
494 v = "VSub_Bang"; break;
495 case Id::VSub_At:
496 v = "VSub_At"; break;
497 case Id::VSub_Pound:
498 v = "VSub_Pound"; break;
499 case Id::VSub_Dollar:
500 v = "VSub_Dollar"; break;
501 case Id::VSub_Star:
502 v = "VSub_Star"; break;
503 case Id::VSub_Hyphen:
504 v = "VSub_Hyphen"; break;
505 case Id::VSub_QMark:
506 v = "VSub_QMark"; break;
507 case Id::VSub_Dot:
508 v = "VSub_Dot"; break;
509 case Id::VTest_ColonHyphen:
510 v = "VTest_ColonHyphen"; break;
511 case Id::VTest_Hyphen:
512 v = "VTest_Hyphen"; break;
513 case Id::VTest_ColonEquals:
514 v = "VTest_ColonEquals"; break;
515 case Id::VTest_Equals:
516 v = "VTest_Equals"; break;
517 case Id::VTest_ColonQMark:
518 v = "VTest_ColonQMark"; break;
519 case Id::VTest_QMark:
520 v = "VTest_QMark"; break;
521 case Id::VTest_ColonPlus:
522 v = "VTest_ColonPlus"; break;
523 case Id::VTest_Plus:
524 v = "VTest_Plus"; break;
525 case Id::VOp0_Q:
526 v = "VOp0_Q"; break;
527 case Id::VOp0_E:
528 v = "VOp0_E"; break;
529 case Id::VOp0_P:
530 v = "VOp0_P"; break;
531 case Id::VOp0_A:
532 v = "VOp0_A"; break;
533 case Id::VOp0_a:
534 v = "VOp0_a"; break;
535 case Id::VOp1_Percent:
536 v = "VOp1_Percent"; break;
537 case Id::VOp1_DPercent:
538 v = "VOp1_DPercent"; break;
539 case Id::VOp1_Pound:
540 v = "VOp1_Pound"; break;
541 case Id::VOp1_DPound:
542 v = "VOp1_DPound"; break;
543 case Id::VOp1_Caret:
544 v = "VOp1_Caret"; break;
545 case Id::VOp1_DCaret:
546 v = "VOp1_DCaret"; break;
547 case Id::VOp1_Comma:
548 v = "VOp1_Comma"; break;
549 case Id::VOp1_DComma:
550 v = "VOp1_DComma"; break;
551 case Id::VOpYsh_Pipe:
552 v = "VOpYsh_Pipe"; break;
553 case Id::VOpYsh_Space:
554 v = "VOpYsh_Space"; break;
555 case Id::VOp2_Slash:
556 v = "VOp2_Slash"; break;
557 case Id::VOp2_Colon:
558 v = "VOp2_Colon"; break;
559 case Id::VOp2_LBracket:
560 v = "VOp2_LBracket"; break;
561 case Id::VOp2_RBracket:
562 v = "VOp2_RBracket"; break;
563 case Id::VOp3_At:
564 v = "VOp3_At"; break;
565 case Id::VOp3_Star:
566 v = "VOp3_Star"; break;
567 case Id::Node_PostDPlus:
568 v = "Node_PostDPlus"; break;
569 case Id::Node_PostDMinus:
570 v = "Node_PostDMinus"; break;
571 case Id::Node_UnaryPlus:
572 v = "Node_UnaryPlus"; break;
573 case Id::Node_UnaryMinus:
574 v = "Node_UnaryMinus"; break;
575 case Id::Node_NotIn:
576 v = "Node_NotIn"; break;
577 case Id::Node_IsNot:
578 v = "Node_IsNot"; break;
579 case Id::KW_DLeftBracket:
580 v = "KW_DLeftBracket"; break;
581 case Id::KW_Bang:
582 v = "KW_Bang"; break;
583 case Id::KW_For:
584 v = "KW_For"; break;
585 case Id::KW_While:
586 v = "KW_While"; break;
587 case Id::KW_Until:
588 v = "KW_Until"; break;
589 case Id::KW_Do:
590 v = "KW_Do"; break;
591 case Id::KW_Done:
592 v = "KW_Done"; break;
593 case Id::KW_In:
594 v = "KW_In"; break;
595 case Id::KW_Case:
596 v = "KW_Case"; break;
597 case Id::KW_Esac:
598 v = "KW_Esac"; break;
599 case Id::KW_If:
600 v = "KW_If"; break;
601 case Id::KW_Fi:
602 v = "KW_Fi"; break;
603 case Id::KW_Then:
604 v = "KW_Then"; break;
605 case Id::KW_Else:
606 v = "KW_Else"; break;
607 case Id::KW_Elif:
608 v = "KW_Elif"; break;
609 case Id::KW_Function:
610 v = "KW_Function"; break;
611 case Id::KW_Time:
612 v = "KW_Time"; break;
613 case Id::KW_Const:
614 v = "KW_Const"; break;
615 case Id::KW_Var:
616 v = "KW_Var"; break;
617 case Id::KW_SetVar:
618 v = "KW_SetVar"; break;
619 case Id::KW_SetGlobal:
620 v = "KW_SetGlobal"; break;
621 case Id::KW_Call:
622 v = "KW_Call"; break;
623 case Id::KW_Proc:
624 v = "KW_Proc"; break;
625 case Id::KW_Typed:
626 v = "KW_Typed"; break;
627 case Id::KW_Func:
628 v = "KW_Func"; break;
629 case Id::ControlFlow_Break:
630 v = "ControlFlow_Break"; break;
631 case Id::ControlFlow_Continue:
632 v = "ControlFlow_Continue"; break;
633 case Id::ControlFlow_Return:
634 v = "ControlFlow_Return"; break;
635 case Id::ControlFlow_Exit:
636 v = "ControlFlow_Exit"; break;
637 case Id::LookAhead_FuncParens:
638 v = "LookAhead_FuncParens"; break;
639 case Id::Glob_LBracket:
640 v = "Glob_LBracket"; break;
641 case Id::Glob_RBracket:
642 v = "Glob_RBracket"; break;
643 case Id::Glob_Star:
644 v = "Glob_Star"; break;
645 case Id::Glob_QMark:
646 v = "Glob_QMark"; break;
647 case Id::Glob_Bang:
648 v = "Glob_Bang"; break;
649 case Id::Glob_Caret:
650 v = "Glob_Caret"; break;
651 case Id::Glob_EscapedChar:
652 v = "Glob_EscapedChar"; break;
653 case Id::Glob_BadBackslash:
654 v = "Glob_BadBackslash"; break;
655 case Id::Glob_CleanLiterals:
656 v = "Glob_CleanLiterals"; break;
657 case Id::Glob_OtherLiteral:
658 v = "Glob_OtherLiteral"; break;
659 case Id::Format_EscapedPercent:
660 v = "Format_EscapedPercent"; break;
661 case Id::Format_Percent:
662 v = "Format_Percent"; break;
663 case Id::Format_Flag:
664 v = "Format_Flag"; break;
665 case Id::Format_Num:
666 v = "Format_Num"; break;
667 case Id::Format_Dot:
668 v = "Format_Dot"; break;
669 case Id::Format_Type:
670 v = "Format_Type"; break;
671 case Id::Format_Star:
672 v = "Format_Star"; break;
673 case Id::Format_Time:
674 v = "Format_Time"; break;
675 case Id::Format_Zero:
676 v = "Format_Zero"; break;
677 case Id::PS_Subst:
678 v = "PS_Subst"; break;
679 case Id::PS_Octal3:
680 v = "PS_Octal3"; break;
681 case Id::PS_LBrace:
682 v = "PS_LBrace"; break;
683 case Id::PS_RBrace:
684 v = "PS_RBrace"; break;
685 case Id::PS_Literals:
686 v = "PS_Literals"; break;
687 case Id::PS_BadBackslash:
688 v = "PS_BadBackslash"; break;
689 case Id::Range_Int:
690 v = "Range_Int"; break;
691 case Id::Range_Char:
692 v = "Range_Char"; break;
693 case Id::Range_Dots:
694 v = "Range_Dots"; break;
695 case Id::Range_Other:
696 v = "Range_Other"; break;
697 case Id::J8_LBracket:
698 v = "J8_LBracket"; break;
699 case Id::J8_RBracket:
700 v = "J8_RBracket"; break;
701 case Id::J8_LBrace:
702 v = "J8_LBrace"; break;
703 case Id::J8_RBrace:
704 v = "J8_RBrace"; break;
705 case Id::J8_Comma:
706 v = "J8_Comma"; break;
707 case Id::J8_Colon:
708 v = "J8_Colon"; break;
709 case Id::J8_Null:
710 v = "J8_Null"; break;
711 case Id::J8_Bool:
712 v = "J8_Bool"; break;
713 case Id::J8_Int:
714 v = "J8_Int"; break;
715 case Id::J8_Float:
716 v = "J8_Float"; break;
717 case Id::J8_String:
718 v = "J8_String"; break;
719 case Id::J8_Identifier:
720 v = "J8_Identifier"; break;
721 case Id::J8_Newline:
722 v = "J8_Newline"; break;
723 case Id::J8_Tab:
724 v = "J8_Tab"; break;
725 case Id::J8_LParen:
726 v = "J8_LParen"; break;
727 case Id::J8_RParen:
728 v = "J8_RParen"; break;
729 case Id::J8_Operator:
730 v = "J8_Operator"; break;
731 case Id::BoolUnary_z:
732 v = "BoolUnary_z"; break;
733 case Id::BoolUnary_n:
734 v = "BoolUnary_n"; break;
735 case Id::BoolUnary_o:
736 v = "BoolUnary_o"; break;
737 case Id::BoolUnary_t:
738 v = "BoolUnary_t"; break;
739 case Id::BoolUnary_v:
740 v = "BoolUnary_v"; break;
741 case Id::BoolUnary_R:
742 v = "BoolUnary_R"; break;
743 case Id::BoolUnary_a:
744 v = "BoolUnary_a"; break;
745 case Id::BoolUnary_b:
746 v = "BoolUnary_b"; break;
747 case Id::BoolUnary_c:
748 v = "BoolUnary_c"; break;
749 case Id::BoolUnary_d:
750 v = "BoolUnary_d"; break;
751 case Id::BoolUnary_e:
752 v = "BoolUnary_e"; break;
753 case Id::BoolUnary_f:
754 v = "BoolUnary_f"; break;
755 case Id::BoolUnary_g:
756 v = "BoolUnary_g"; break;
757 case Id::BoolUnary_h:
758 v = "BoolUnary_h"; break;
759 case Id::BoolUnary_k:
760 v = "BoolUnary_k"; break;
761 case Id::BoolUnary_L:
762 v = "BoolUnary_L"; break;
763 case Id::BoolUnary_p:
764 v = "BoolUnary_p"; break;
765 case Id::BoolUnary_r:
766 v = "BoolUnary_r"; break;
767 case Id::BoolUnary_s:
768 v = "BoolUnary_s"; break;
769 case Id::BoolUnary_S:
770 v = "BoolUnary_S"; break;
771 case Id::BoolUnary_u:
772 v = "BoolUnary_u"; break;
773 case Id::BoolUnary_w:
774 v = "BoolUnary_w"; break;
775 case Id::BoolUnary_x:
776 v = "BoolUnary_x"; break;
777 case Id::BoolUnary_O:
778 v = "BoolUnary_O"; break;
779 case Id::BoolUnary_G:
780 v = "BoolUnary_G"; break;
781 case Id::BoolUnary_N:
782 v = "BoolUnary_N"; break;
783 case Id::BoolBinary_GlobEqual:
784 v = "BoolBinary_GlobEqual"; break;
785 case Id::BoolBinary_GlobDEqual:
786 v = "BoolBinary_GlobDEqual"; break;
787 case Id::BoolBinary_GlobNEqual:
788 v = "BoolBinary_GlobNEqual"; break;
789 case Id::BoolBinary_EqualTilde:
790 v = "BoolBinary_EqualTilde"; break;
791 case Id::BoolBinary_ef:
792 v = "BoolBinary_ef"; break;
793 case Id::BoolBinary_nt:
794 v = "BoolBinary_nt"; break;
795 case Id::BoolBinary_ot:
796 v = "BoolBinary_ot"; break;
797 case Id::BoolBinary_eq:
798 v = "BoolBinary_eq"; break;
799 case Id::BoolBinary_ne:
800 v = "BoolBinary_ne"; break;
801 case Id::BoolBinary_gt:
802 v = "BoolBinary_gt"; break;
803 case Id::BoolBinary_ge:
804 v = "BoolBinary_ge"; break;
805 case Id::BoolBinary_lt:
806 v = "BoolBinary_lt"; break;
807 case Id::BoolBinary_le:
808 v = "BoolBinary_le"; break;
809 case Id::BoolBinary_Equal:
810 v = "BoolBinary_Equal"; break;
811 case Id::BoolBinary_DEqual:
812 v = "BoolBinary_DEqual"; break;
813 case Id::BoolBinary_NEqual:
814 v = "BoolBinary_NEqual"; break;
815 default:
816 assert(0);
817 }
818 if (dot) {
819 snprintf(buf, 32, "Id.%s", v);
820 return StrFromC(buf);
821 } else {
822 return StrFromC(v);
823 }
824}
825BigStr* Kind_str(Kind tag, bool dot) {
826 char buf[32];
827 const char* v = nullptr;
828 switch (tag) {
829 case Kind::Word:
830 v = "Word"; break;
831 case Kind::Arith:
832 v = "Arith"; break;
833 case Kind::Eof:
834 v = "Eof"; break;
835 case Kind::Undefined:
836 v = "Undefined"; break;
837 case Kind::Unknown:
838 v = "Unknown"; break;
839 case Kind::Eol:
840 v = "Eol"; break;
841 case Kind::Ignored:
842 v = "Ignored"; break;
843 case Kind::WS:
844 v = "WS"; break;
845 case Kind::Lit:
846 v = "Lit"; break;
847 case Kind::Backtick:
848 v = "Backtick"; break;
849 case Kind::History:
850 v = "History"; break;
851 case Kind::Op:
852 v = "Op"; break;
853 case Kind::Expr:
854 v = "Expr"; break;
855 case Kind::Char:
856 v = "Char"; break;
857 case Kind::BashRegex:
858 v = "BashRegex"; break;
859 case Kind::Eggex:
860 v = "Eggex"; break;
861 case Kind::Redir:
862 v = "Redir"; break;
863 case Kind::Left:
864 v = "Left"; break;
865 case Kind::Right:
866 v = "Right"; break;
867 case Kind::ExtGlob:
868 v = "ExtGlob"; break;
869 case Kind::VSub:
870 v = "VSub"; break;
871 case Kind::VTest:
872 v = "VTest"; break;
873 case Kind::VOp0:
874 v = "VOp0"; break;
875 case Kind::VOp1:
876 v = "VOp1"; break;
877 case Kind::VOpYsh:
878 v = "VOpYsh"; break;
879 case Kind::VOp2:
880 v = "VOp2"; break;
881 case Kind::VOp3:
882 v = "VOp3"; break;
883 case Kind::Node:
884 v = "Node"; break;
885 case Kind::KW:
886 v = "KW"; break;
887 case Kind::ControlFlow:
888 v = "ControlFlow"; break;
889 case Kind::LookAhead:
890 v = "LookAhead"; break;
891 case Kind::Glob:
892 v = "Glob"; break;
893 case Kind::Format:
894 v = "Format"; break;
895 case Kind::PS:
896 v = "PS"; break;
897 case Kind::Range:
898 v = "Range"; break;
899 case Kind::J8:
900 v = "J8"; break;
901 case Kind::BoolUnary:
902 v = "BoolUnary"; break;
903 case Kind::BoolBinary:
904 v = "BoolBinary"; break;
905 default:
906 assert(0);
907 }
908 if (dot) {
909 snprintf(buf, 32, "Kind.%s", v);
910 return StrFromC(buf);
911 } else {
912 return StrFromC(v);
913 }
914}
915} // namespace id_kind_asdl