23 case PM_TOKEN_BRACE_RIGHT:
27 case PM_TOKEN_EMBEXPR_END:
29 case PM_TOKEN_KEYWORD_DO:
31 case PM_TOKEN_KEYWORD_ELSE:
32 return "KEYWORD_ELSE";
33 case PM_TOKEN_KEYWORD_ELSIF:
34 return "KEYWORD_ELSIF";
35 case PM_TOKEN_KEYWORD_END:
37 case PM_TOKEN_KEYWORD_ENSURE:
38 return "KEYWORD_ENSURE";
39 case PM_TOKEN_KEYWORD_IN:
41 case PM_TOKEN_KEYWORD_RESCUE:
42 return "KEYWORD_RESCUE";
43 case PM_TOKEN_KEYWORD_THEN:
44 return "KEYWORD_THEN";
45 case PM_TOKEN_KEYWORD_WHEN:
46 return "KEYWORD_WHEN";
47 case PM_TOKEN_NEWLINE:
49 case PM_TOKEN_PARENTHESIS_RIGHT:
50 return "PARENTHESIS_RIGHT";
53 case PM_TOKEN_SEMICOLON:
55 case PM_TOKEN_AMPERSAND:
57 case PM_TOKEN_AMPERSAND_AMPERSAND:
58 return "AMPERSAND_AMPERSAND";
59 case PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL:
60 return "AMPERSAND_AMPERSAND_EQUAL";
61 case PM_TOKEN_AMPERSAND_DOT:
62 return "AMPERSAND_DOT";
63 case PM_TOKEN_AMPERSAND_EQUAL:
64 return "AMPERSAND_EQUAL";
65 case PM_TOKEN_BACKTICK:
67 case PM_TOKEN_BACK_REFERENCE:
68 return "BACK_REFERENCE";
71 case PM_TOKEN_BANG_EQUAL:
73 case PM_TOKEN_BANG_TILDE:
75 case PM_TOKEN_BRACE_LEFT:
77 case PM_TOKEN_BRACKET_LEFT:
78 return "BRACKET_LEFT";
79 case PM_TOKEN_BRACKET_LEFT_ARRAY:
80 return "BRACKET_LEFT_ARRAY";
81 case PM_TOKEN_BRACKET_LEFT_RIGHT:
82 return "BRACKET_LEFT_RIGHT";
83 case PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL:
84 return "BRACKET_LEFT_RIGHT_EQUAL";
85 case PM_TOKEN_BRACKET_RIGHT:
86 return "BRACKET_RIGHT";
89 case PM_TOKEN_CARET_EQUAL:
91 case PM_TOKEN_CHARACTER_LITERAL:
92 return "CHARACTER_LITERAL";
93 case PM_TOKEN_CLASS_VARIABLE:
94 return "CLASS_VARIABLE";
97 case PM_TOKEN_COLON_COLON:
99 case PM_TOKEN_COMMENT:
101 case PM_TOKEN_CONSTANT:
105 case PM_TOKEN_DOT_DOT:
107 case PM_TOKEN_DOT_DOT_DOT:
108 return "DOT_DOT_DOT";
109 case PM_TOKEN_EMBDOC_BEGIN:
110 return "EMBDOC_BEGIN";
111 case PM_TOKEN_EMBDOC_END:
113 case PM_TOKEN_EMBDOC_LINE:
114 return "EMBDOC_LINE";
115 case PM_TOKEN_EMBEXPR_BEGIN:
116 return "EMBEXPR_BEGIN";
117 case PM_TOKEN_EMBVAR:
121 case PM_TOKEN_EQUAL_EQUAL:
122 return "EQUAL_EQUAL";
123 case PM_TOKEN_EQUAL_EQUAL_EQUAL:
124 return "EQUAL_EQUAL_EQUAL";
125 case PM_TOKEN_EQUAL_GREATER:
126 return "EQUAL_GREATER";
127 case PM_TOKEN_EQUAL_TILDE:
128 return "EQUAL_TILDE";
131 case PM_TOKEN_FLOAT_IMAGINARY:
132 return "FLOAT_IMAGINARY";
133 case PM_TOKEN_FLOAT_RATIONAL:
134 return "FLOAT_RATIONAL";
135 case PM_TOKEN_FLOAT_RATIONAL_IMAGINARY:
136 return "FLOAT_RATIONAL_IMAGINARY";
137 case PM_TOKEN_GLOBAL_VARIABLE:
138 return "GLOBAL_VARIABLE";
139 case PM_TOKEN_GREATER:
141 case PM_TOKEN_GREATER_EQUAL:
142 return "GREATER_EQUAL";
143 case PM_TOKEN_GREATER_GREATER:
144 return "GREATER_GREATER";
145 case PM_TOKEN_GREATER_GREATER_EQUAL:
146 return "GREATER_GREATER_EQUAL";
147 case PM_TOKEN_HEREDOC_END:
148 return "HEREDOC_END";
149 case PM_TOKEN_HEREDOC_START:
150 return "HEREDOC_START";
151 case PM_TOKEN_IDENTIFIER:
153 case PM_TOKEN_IGNORED_NEWLINE:
154 return "IGNORED_NEWLINE";
155 case PM_TOKEN_INSTANCE_VARIABLE:
156 return "INSTANCE_VARIABLE";
157 case PM_TOKEN_INTEGER:
159 case PM_TOKEN_INTEGER_IMAGINARY:
160 return "INTEGER_IMAGINARY";
161 case PM_TOKEN_INTEGER_RATIONAL:
162 return "INTEGER_RATIONAL";
163 case PM_TOKEN_INTEGER_RATIONAL_IMAGINARY:
164 return "INTEGER_RATIONAL_IMAGINARY";
165 case PM_TOKEN_KEYWORD_ALIAS:
166 return "KEYWORD_ALIAS";
167 case PM_TOKEN_KEYWORD_AND:
168 return "KEYWORD_AND";
169 case PM_TOKEN_KEYWORD_BEGIN:
170 return "KEYWORD_BEGIN";
171 case PM_TOKEN_KEYWORD_BEGIN_UPCASE:
172 return "KEYWORD_BEGIN_UPCASE";
173 case PM_TOKEN_KEYWORD_BREAK:
174 return "KEYWORD_BREAK";
175 case PM_TOKEN_KEYWORD_CASE:
176 return "KEYWORD_CASE";
177 case PM_TOKEN_KEYWORD_CLASS:
178 return "KEYWORD_CLASS";
179 case PM_TOKEN_KEYWORD_DEF:
180 return "KEYWORD_DEF";
181 case PM_TOKEN_KEYWORD_DEFINED:
182 return "KEYWORD_DEFINED";
183 case PM_TOKEN_KEYWORD_DO_LOOP:
184 return "KEYWORD_DO_LOOP";
185 case PM_TOKEN_KEYWORD_END_UPCASE:
186 return "KEYWORD_END_UPCASE";
187 case PM_TOKEN_KEYWORD_FALSE:
188 return "KEYWORD_FALSE";
189 case PM_TOKEN_KEYWORD_FOR:
190 return "KEYWORD_FOR";
191 case PM_TOKEN_KEYWORD_IF:
193 case PM_TOKEN_KEYWORD_IF_MODIFIER:
194 return "KEYWORD_IF_MODIFIER";
195 case PM_TOKEN_KEYWORD_MODULE:
196 return "KEYWORD_MODULE";
197 case PM_TOKEN_KEYWORD_NEXT:
198 return "KEYWORD_NEXT";
199 case PM_TOKEN_KEYWORD_NIL:
200 return "KEYWORD_NIL";
201 case PM_TOKEN_KEYWORD_NOT:
202 return "KEYWORD_NOT";
203 case PM_TOKEN_KEYWORD_OR:
205 case PM_TOKEN_KEYWORD_REDO:
206 return "KEYWORD_REDO";
207 case PM_TOKEN_KEYWORD_RESCUE_MODIFIER:
208 return "KEYWORD_RESCUE_MODIFIER";
209 case PM_TOKEN_KEYWORD_RETRY:
210 return "KEYWORD_RETRY";
211 case PM_TOKEN_KEYWORD_RETURN:
212 return "KEYWORD_RETURN";
213 case PM_TOKEN_KEYWORD_SELF:
214 return "KEYWORD_SELF";
215 case PM_TOKEN_KEYWORD_SUPER:
216 return "KEYWORD_SUPER";
217 case PM_TOKEN_KEYWORD_TRUE:
218 return "KEYWORD_TRUE";
219 case PM_TOKEN_KEYWORD_UNDEF:
220 return "KEYWORD_UNDEF";
221 case PM_TOKEN_KEYWORD_UNLESS:
222 return "KEYWORD_UNLESS";
223 case PM_TOKEN_KEYWORD_UNLESS_MODIFIER:
224 return "KEYWORD_UNLESS_MODIFIER";
225 case PM_TOKEN_KEYWORD_UNTIL:
226 return "KEYWORD_UNTIL";
227 case PM_TOKEN_KEYWORD_UNTIL_MODIFIER:
228 return "KEYWORD_UNTIL_MODIFIER";
229 case PM_TOKEN_KEYWORD_WHILE:
230 return "KEYWORD_WHILE";
231 case PM_TOKEN_KEYWORD_WHILE_MODIFIER:
232 return "KEYWORD_WHILE_MODIFIER";
233 case PM_TOKEN_KEYWORD_YIELD:
234 return "KEYWORD_YIELD";
235 case PM_TOKEN_KEYWORD___ENCODING__:
236 return "KEYWORD___ENCODING__";
237 case PM_TOKEN_KEYWORD___FILE__:
238 return "KEYWORD___FILE__";
239 case PM_TOKEN_KEYWORD___LINE__:
240 return "KEYWORD___LINE__";
243 case PM_TOKEN_LABEL_END:
245 case PM_TOKEN_LAMBDA_BEGIN:
246 return "LAMBDA_BEGIN";
249 case PM_TOKEN_LESS_EQUAL:
251 case PM_TOKEN_LESS_EQUAL_GREATER:
252 return "LESS_EQUAL_GREATER";
253 case PM_TOKEN_LESS_LESS:
255 case PM_TOKEN_LESS_LESS_EQUAL:
256 return "LESS_LESS_EQUAL";
257 case PM_TOKEN_METHOD_NAME:
258 return "METHOD_NAME";
261 case PM_TOKEN_MINUS_EQUAL:
262 return "MINUS_EQUAL";
263 case PM_TOKEN_MINUS_GREATER:
264 return "MINUS_GREATER";
265 case PM_TOKEN_NUMBERED_REFERENCE:
266 return "NUMBERED_REFERENCE";
267 case PM_TOKEN_PARENTHESIS_LEFT:
268 return "PARENTHESIS_LEFT";
269 case PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES:
270 return "PARENTHESIS_LEFT_PARENTHESES";
271 case PM_TOKEN_PERCENT:
273 case PM_TOKEN_PERCENT_EQUAL:
274 return "PERCENT_EQUAL";
275 case PM_TOKEN_PERCENT_LOWER_I:
276 return "PERCENT_LOWER_I";
277 case PM_TOKEN_PERCENT_LOWER_W:
278 return "PERCENT_LOWER_W";
279 case PM_TOKEN_PERCENT_LOWER_X:
280 return "PERCENT_LOWER_X";
281 case PM_TOKEN_PERCENT_UPPER_I:
282 return "PERCENT_UPPER_I";
283 case PM_TOKEN_PERCENT_UPPER_W:
284 return "PERCENT_UPPER_W";
285 case PM_TOKEN_PIPE_EQUAL:
287 case PM_TOKEN_PIPE_PIPE:
289 case PM_TOKEN_PIPE_PIPE_EQUAL:
290 return "PIPE_PIPE_EQUAL";
293 case PM_TOKEN_PLUS_EQUAL:
295 case PM_TOKEN_QUESTION_MARK:
296 return "QUESTION_MARK";
297 case PM_TOKEN_REGEXP_BEGIN:
298 return "REGEXP_BEGIN";
299 case PM_TOKEN_REGEXP_END:
303 case PM_TOKEN_SLASH_EQUAL:
304 return "SLASH_EQUAL";
307 case PM_TOKEN_STAR_EQUAL:
309 case PM_TOKEN_STAR_STAR:
311 case PM_TOKEN_STAR_STAR_EQUAL:
312 return "STAR_STAR_EQUAL";
313 case PM_TOKEN_STRING_BEGIN:
314 return "STRING_BEGIN";
315 case PM_TOKEN_STRING_CONTENT:
316 return "STRING_CONTENT";
317 case PM_TOKEN_STRING_END:
319 case PM_TOKEN_SYMBOL_BEGIN:
320 return "SYMBOL_BEGIN";
323 case PM_TOKEN_UAMPERSAND:
325 case PM_TOKEN_UCOLON_COLON:
326 return "UCOLON_COLON";
327 case PM_TOKEN_UDOT_DOT:
329 case PM_TOKEN_UDOT_DOT_DOT:
330 return "UDOT_DOT_DOT";
331 case PM_TOKEN_UMINUS:
333 case PM_TOKEN_UMINUS_NUM:
339 case PM_TOKEN_USTAR_STAR:
341 case PM_TOKEN_WORDS_SEP:
343 case PM_TOKEN___END__:
345 case PM_TOKEN_MISSING:
347 case PM_TOKEN_NOT_PROVIDED:
348 return "NOT_PROVIDED";
349 case PM_TOKEN_MAXIMUM:
350 assert(
false &&
"unreachable");
356 assert(
false &&
"unreachable");
365 switch (token_type) {
367 return "end-of-input";
368 case PM_TOKEN_MISSING:
369 return "missing token";
370 case PM_TOKEN_NOT_PROVIDED:
371 return "not provided token";
372 case PM_TOKEN_AMPERSAND:
374 case PM_TOKEN_AMPERSAND_AMPERSAND:
376 case PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL:
378 case PM_TOKEN_AMPERSAND_DOT:
380 case PM_TOKEN_AMPERSAND_EQUAL:
382 case PM_TOKEN_BACKTICK:
384 case PM_TOKEN_BACK_REFERENCE:
385 return "back reference";
388 case PM_TOKEN_BANG_EQUAL:
390 case PM_TOKEN_BANG_TILDE:
392 case PM_TOKEN_BRACE_LEFT:
394 case PM_TOKEN_BRACE_RIGHT:
396 case PM_TOKEN_BRACKET_LEFT:
398 case PM_TOKEN_BRACKET_LEFT_ARRAY:
400 case PM_TOKEN_BRACKET_LEFT_RIGHT:
402 case PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL:
404 case PM_TOKEN_BRACKET_RIGHT:
408 case PM_TOKEN_CARET_EQUAL:
410 case PM_TOKEN_CHARACTER_LITERAL:
411 return "character literal";
412 case PM_TOKEN_CLASS_VARIABLE:
413 return "class variable";
416 case PM_TOKEN_COLON_COLON:
420 case PM_TOKEN_COMMENT:
422 case PM_TOKEN_CONSTANT:
426 case PM_TOKEN_DOT_DOT:
428 case PM_TOKEN_DOT_DOT_DOT:
430 case PM_TOKEN_EMBDOC_BEGIN:
432 case PM_TOKEN_EMBDOC_END:
434 case PM_TOKEN_EMBDOC_LINE:
435 return "embedded documentation line";
436 case PM_TOKEN_EMBEXPR_BEGIN:
438 case PM_TOKEN_EMBEXPR_END:
440 case PM_TOKEN_EMBVAR:
444 case PM_TOKEN_EQUAL_EQUAL:
446 case PM_TOKEN_EQUAL_EQUAL_EQUAL:
448 case PM_TOKEN_EQUAL_GREATER:
450 case PM_TOKEN_EQUAL_TILDE:
454 case PM_TOKEN_FLOAT_IMAGINARY:
456 case PM_TOKEN_FLOAT_RATIONAL:
458 case PM_TOKEN_FLOAT_RATIONAL_IMAGINARY:
460 case PM_TOKEN_GLOBAL_VARIABLE:
461 return "global variable";
462 case PM_TOKEN_GREATER:
464 case PM_TOKEN_GREATER_EQUAL:
466 case PM_TOKEN_GREATER_GREATER:
468 case PM_TOKEN_GREATER_GREATER_EQUAL:
470 case PM_TOKEN_HEREDOC_END:
471 return "heredoc ending";
472 case PM_TOKEN_HEREDOC_START:
473 return "heredoc beginning";
474 case PM_TOKEN_IDENTIFIER:
475 return "local variable or method";
476 case PM_TOKEN_IGNORED_NEWLINE:
477 return "ignored newline";
478 case PM_TOKEN_INSTANCE_VARIABLE:
479 return "instance variable";
480 case PM_TOKEN_INTEGER:
482 case PM_TOKEN_INTEGER_IMAGINARY:
484 case PM_TOKEN_INTEGER_RATIONAL:
486 case PM_TOKEN_INTEGER_RATIONAL_IMAGINARY:
488 case PM_TOKEN_KEYWORD_ALIAS:
490 case PM_TOKEN_KEYWORD_AND:
492 case PM_TOKEN_KEYWORD_BEGIN:
494 case PM_TOKEN_KEYWORD_BEGIN_UPCASE:
496 case PM_TOKEN_KEYWORD_BREAK:
498 case PM_TOKEN_KEYWORD_CASE:
500 case PM_TOKEN_KEYWORD_CLASS:
502 case PM_TOKEN_KEYWORD_DEF:
504 case PM_TOKEN_KEYWORD_DEFINED:
506 case PM_TOKEN_KEYWORD_DO:
508 case PM_TOKEN_KEYWORD_DO_LOOP:
510 case PM_TOKEN_KEYWORD_ELSE:
512 case PM_TOKEN_KEYWORD_ELSIF:
514 case PM_TOKEN_KEYWORD_END:
516 case PM_TOKEN_KEYWORD_END_UPCASE:
518 case PM_TOKEN_KEYWORD_ENSURE:
520 case PM_TOKEN_KEYWORD_FALSE:
522 case PM_TOKEN_KEYWORD_FOR:
524 case PM_TOKEN_KEYWORD_IF:
526 case PM_TOKEN_KEYWORD_IF_MODIFIER:
528 case PM_TOKEN_KEYWORD_IN:
530 case PM_TOKEN_KEYWORD_MODULE:
532 case PM_TOKEN_KEYWORD_NEXT:
534 case PM_TOKEN_KEYWORD_NIL:
536 case PM_TOKEN_KEYWORD_NOT:
538 case PM_TOKEN_KEYWORD_OR:
540 case PM_TOKEN_KEYWORD_REDO:
542 case PM_TOKEN_KEYWORD_RESCUE:
544 case PM_TOKEN_KEYWORD_RESCUE_MODIFIER:
545 return "'rescue' modifier";
546 case PM_TOKEN_KEYWORD_RETRY:
548 case PM_TOKEN_KEYWORD_RETURN:
550 case PM_TOKEN_KEYWORD_SELF:
552 case PM_TOKEN_KEYWORD_SUPER:
554 case PM_TOKEN_KEYWORD_THEN:
556 case PM_TOKEN_KEYWORD_TRUE:
558 case PM_TOKEN_KEYWORD_UNDEF:
560 case PM_TOKEN_KEYWORD_UNLESS:
562 case PM_TOKEN_KEYWORD_UNLESS_MODIFIER:
564 case PM_TOKEN_KEYWORD_UNTIL:
566 case PM_TOKEN_KEYWORD_UNTIL_MODIFIER:
568 case PM_TOKEN_KEYWORD_WHEN:
570 case PM_TOKEN_KEYWORD_WHILE:
572 case PM_TOKEN_KEYWORD_WHILE_MODIFIER:
574 case PM_TOKEN_KEYWORD_YIELD:
576 case PM_TOKEN_KEYWORD___ENCODING__:
577 return "'__ENCODING__'";
578 case PM_TOKEN_KEYWORD___FILE__:
580 case PM_TOKEN_KEYWORD___LINE__:
584 case PM_TOKEN_LABEL_END:
585 return "label terminator";
586 case PM_TOKEN_LAMBDA_BEGIN:
590 case PM_TOKEN_LESS_EQUAL:
592 case PM_TOKEN_LESS_EQUAL_GREATER:
594 case PM_TOKEN_LESS_LESS:
596 case PM_TOKEN_LESS_LESS_EQUAL:
598 case PM_TOKEN_METHOD_NAME:
599 return "method name";
602 case PM_TOKEN_MINUS_EQUAL:
604 case PM_TOKEN_MINUS_GREATER:
606 case PM_TOKEN_NEWLINE:
608 case PM_TOKEN_NUMBERED_REFERENCE:
609 return "numbered reference";
610 case PM_TOKEN_PARENTHESIS_LEFT:
612 case PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES:
614 case PM_TOKEN_PARENTHESIS_RIGHT:
616 case PM_TOKEN_PERCENT:
618 case PM_TOKEN_PERCENT_EQUAL:
620 case PM_TOKEN_PERCENT_LOWER_I:
622 case PM_TOKEN_PERCENT_LOWER_W:
624 case PM_TOKEN_PERCENT_LOWER_X:
626 case PM_TOKEN_PERCENT_UPPER_I:
628 case PM_TOKEN_PERCENT_UPPER_W:
632 case PM_TOKEN_PIPE_EQUAL:
634 case PM_TOKEN_PIPE_PIPE:
636 case PM_TOKEN_PIPE_PIPE_EQUAL:
640 case PM_TOKEN_PLUS_EQUAL:
642 case PM_TOKEN_QUESTION_MARK:
644 case PM_TOKEN_REGEXP_BEGIN:
645 return "regular expression beginning";
646 case PM_TOKEN_REGEXP_END:
647 return "regular expression ending";
648 case PM_TOKEN_SEMICOLON:
652 case PM_TOKEN_SLASH_EQUAL:
656 case PM_TOKEN_STAR_EQUAL:
658 case PM_TOKEN_STAR_STAR:
660 case PM_TOKEN_STAR_STAR_EQUAL:
662 case PM_TOKEN_STRING_BEGIN:
663 return "string literal";
664 case PM_TOKEN_STRING_CONTENT:
665 return "string content";
666 case PM_TOKEN_STRING_END:
667 return "string ending";
668 case PM_TOKEN_SYMBOL_BEGIN:
669 return "symbol literal";
672 case PM_TOKEN_UAMPERSAND:
674 case PM_TOKEN_UCOLON_COLON:
676 case PM_TOKEN_UDOT_DOT:
678 case PM_TOKEN_UDOT_DOT_DOT:
680 case PM_TOKEN_UMINUS:
682 case PM_TOKEN_UMINUS_NUM:
688 case PM_TOKEN_USTAR_STAR:
690 case PM_TOKEN_WORDS_SEP:
691 return "string separator";
692 case PM_TOKEN___END__:
694 case PM_TOKEN_MAXIMUM:
695 assert(
false &&
"unreachable");
701 assert(
false &&
"unreachable");