Ruby 4.1.0dev (2026-10-01 revision 528c70471f4c9fbac6d924e684fc397617bdf4be)
tokens.c
1/*----------------------------------------------------------------------------*/
2/* This file is generated by the templates/template.rb script and should not */
3/* be modified manually. See */
4/* templates/src/tokens.c.erb */
5/* if you are looking to modify the */
6/* template */
7/*----------------------------------------------------------------------------*/
8
9#include "prism/ast.h"
10
11#include <assert.h>
12
16const char *
17pm_token_type(pm_token_type_t token_type) {
18 switch (token_type) {
19 case PM_TOKEN_EOF:
20 return "EOF";
21 case PM_TOKEN_BRACE_RIGHT:
22 return "BRACE_RIGHT";
23 case PM_TOKEN_COMMA:
24 return "COMMA";
25 case PM_TOKEN_EMBEXPR_END:
26 return "EMBEXPR_END";
27 case PM_TOKEN_KEYWORD_DO:
28 return "KEYWORD_DO";
29 case PM_TOKEN_KEYWORD_ELSE:
30 return "KEYWORD_ELSE";
31 case PM_TOKEN_KEYWORD_ELSIF:
32 return "KEYWORD_ELSIF";
33 case PM_TOKEN_KEYWORD_END:
34 return "KEYWORD_END";
35 case PM_TOKEN_KEYWORD_ENSURE:
36 return "KEYWORD_ENSURE";
37 case PM_TOKEN_KEYWORD_IN:
38 return "KEYWORD_IN";
39 case PM_TOKEN_KEYWORD_RESCUE:
40 return "KEYWORD_RESCUE";
41 case PM_TOKEN_KEYWORD_THEN:
42 return "KEYWORD_THEN";
43 case PM_TOKEN_KEYWORD_WHEN:
44 return "KEYWORD_WHEN";
45 case PM_TOKEN_NEWLINE:
46 return "NEWLINE";
47 case PM_TOKEN_NEWLINE_TERMINATOR:
48 return "NEWLINE_TERMINATOR";
49 case PM_TOKEN_PARENTHESIS_RIGHT:
50 return "PARENTHESIS_RIGHT";
51 case PM_TOKEN_PIPE:
52 return "PIPE";
53 case PM_TOKEN_SEMICOLON:
54 return "SEMICOLON";
55 case PM_TOKEN_AMPERSAND:
56 return "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:
66 return "BACKTICK";
67 case PM_TOKEN_BACK_REFERENCE:
68 return "BACK_REFERENCE";
69 case PM_TOKEN_BANG:
70 return "BANG";
71 case PM_TOKEN_BANG_EQUAL:
72 return "BANG_EQUAL";
73 case PM_TOKEN_BANG_TILDE:
74 return "BANG_TILDE";
75 case PM_TOKEN_BRACE_LEFT:
76 return "BRACE_LEFT";
77 case PM_TOKEN_BRACE_LEFT_ARGUMENT:
78 return "BRACE_LEFT_ARGUMENT";
79 case PM_TOKEN_BRACE_LEFT_HASH:
80 return "BRACE_LEFT_HASH";
81 case PM_TOKEN_BRACKET_LEFT:
82 return "BRACKET_LEFT";
83 case PM_TOKEN_BRACKET_LEFT_ARRAY:
84 return "BRACKET_LEFT_ARRAY";
85 case PM_TOKEN_BRACKET_LEFT_RIGHT:
86 return "BRACKET_LEFT_RIGHT";
87 case PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL:
88 return "BRACKET_LEFT_RIGHT_EQUAL";
89 case PM_TOKEN_BRACKET_RIGHT:
90 return "BRACKET_RIGHT";
91 case PM_TOKEN_CARET:
92 return "CARET";
93 case PM_TOKEN_CARET_EQUAL:
94 return "CARET_EQUAL";
95 case PM_TOKEN_CHARACTER_LITERAL:
96 return "CHARACTER_LITERAL";
97 case PM_TOKEN_CLASS_VARIABLE:
98 return "CLASS_VARIABLE";
99 case PM_TOKEN_COLON:
100 return "COLON";
101 case PM_TOKEN_COLON_COLON:
102 return "COLON_COLON";
103 case PM_TOKEN_COMMENT:
104 return "COMMENT";
105 case PM_TOKEN_CONSTANT:
106 return "CONSTANT";
107 case PM_TOKEN_DOT:
108 return "DOT";
109 case PM_TOKEN_DOT_DOT:
110 return "DOT_DOT";
111 case PM_TOKEN_DOT_DOT_DOT:
112 return "DOT_DOT_DOT";
113 case PM_TOKEN_EMBDOC_BEGIN:
114 return "EMBDOC_BEGIN";
115 case PM_TOKEN_EMBDOC_END:
116 return "EMBDOC_END";
117 case PM_TOKEN_EMBDOC_LINE:
118 return "EMBDOC_LINE";
119 case PM_TOKEN_EMBEXPR_BEGIN:
120 return "EMBEXPR_BEGIN";
121 case PM_TOKEN_EMBVAR:
122 return "EMBVAR";
123 case PM_TOKEN_EQUAL:
124 return "EQUAL";
125 case PM_TOKEN_EQUAL_EQUAL:
126 return "EQUAL_EQUAL";
127 case PM_TOKEN_EQUAL_EQUAL_EQUAL:
128 return "EQUAL_EQUAL_EQUAL";
129 case PM_TOKEN_EQUAL_GREATER:
130 return "EQUAL_GREATER";
131 case PM_TOKEN_EQUAL_TILDE:
132 return "EQUAL_TILDE";
133 case PM_TOKEN_FLOAT:
134 return "FLOAT";
135 case PM_TOKEN_FLOAT_IMAGINARY:
136 return "FLOAT_IMAGINARY";
137 case PM_TOKEN_FLOAT_RATIONAL:
138 return "FLOAT_RATIONAL";
139 case PM_TOKEN_FLOAT_RATIONAL_IMAGINARY:
140 return "FLOAT_RATIONAL_IMAGINARY";
141 case PM_TOKEN_GLOBAL_VARIABLE:
142 return "GLOBAL_VARIABLE";
143 case PM_TOKEN_GREATER:
144 return "GREATER";
145 case PM_TOKEN_GREATER_EQUAL:
146 return "GREATER_EQUAL";
147 case PM_TOKEN_GREATER_GREATER:
148 return "GREATER_GREATER";
149 case PM_TOKEN_GREATER_GREATER_EQUAL:
150 return "GREATER_GREATER_EQUAL";
151 case PM_TOKEN_HEREDOC_END:
152 return "HEREDOC_END";
153 case PM_TOKEN_HEREDOC_START:
154 return "HEREDOC_START";
155 case PM_TOKEN_IDENTIFIER:
156 return "IDENTIFIER";
157 case PM_TOKEN_IGNORED_NEWLINE:
158 return "IGNORED_NEWLINE";
159 case PM_TOKEN_INSTANCE_VARIABLE:
160 return "INSTANCE_VARIABLE";
161 case PM_TOKEN_INTEGER:
162 return "INTEGER";
163 case PM_TOKEN_INTEGER_IMAGINARY:
164 return "INTEGER_IMAGINARY";
165 case PM_TOKEN_INTEGER_RATIONAL:
166 return "INTEGER_RATIONAL";
167 case PM_TOKEN_INTEGER_RATIONAL_IMAGINARY:
168 return "INTEGER_RATIONAL_IMAGINARY";
169 case PM_TOKEN_KEYWORD_ALIAS:
170 return "KEYWORD_ALIAS";
171 case PM_TOKEN_KEYWORD_AND:
172 return "KEYWORD_AND";
173 case PM_TOKEN_KEYWORD_BEGIN:
174 return "KEYWORD_BEGIN";
175 case PM_TOKEN_KEYWORD_BEGIN_UPCASE:
176 return "KEYWORD_BEGIN_UPCASE";
177 case PM_TOKEN_KEYWORD_BREAK:
178 return "KEYWORD_BREAK";
179 case PM_TOKEN_KEYWORD_CASE:
180 return "KEYWORD_CASE";
181 case PM_TOKEN_KEYWORD_CLASS:
182 return "KEYWORD_CLASS";
183 case PM_TOKEN_KEYWORD_DEF:
184 return "KEYWORD_DEF";
185 case PM_TOKEN_KEYWORD_DEFINED:
186 return "KEYWORD_DEFINED";
187 case PM_TOKEN_KEYWORD_DO_BLOCK:
188 return "KEYWORD_DO_BLOCK";
189 case PM_TOKEN_KEYWORD_DO_LAMBDA:
190 return "KEYWORD_DO_LAMBDA";
191 case PM_TOKEN_KEYWORD_DO_LOOP:
192 return "KEYWORD_DO_LOOP";
193 case PM_TOKEN_KEYWORD_END_UPCASE:
194 return "KEYWORD_END_UPCASE";
195 case PM_TOKEN_KEYWORD_FALSE:
196 return "KEYWORD_FALSE";
197 case PM_TOKEN_KEYWORD_FOR:
198 return "KEYWORD_FOR";
199 case PM_TOKEN_KEYWORD_IF:
200 return "KEYWORD_IF";
201 case PM_TOKEN_KEYWORD_IF_MODIFIER:
202 return "KEYWORD_IF_MODIFIER";
203 case PM_TOKEN_KEYWORD_MODULE:
204 return "KEYWORD_MODULE";
205 case PM_TOKEN_KEYWORD_NEXT:
206 return "KEYWORD_NEXT";
207 case PM_TOKEN_KEYWORD_NIL:
208 return "KEYWORD_NIL";
209 case PM_TOKEN_KEYWORD_NOT:
210 return "KEYWORD_NOT";
211 case PM_TOKEN_KEYWORD_OR:
212 return "KEYWORD_OR";
213 case PM_TOKEN_KEYWORD_REDO:
214 return "KEYWORD_REDO";
215 case PM_TOKEN_KEYWORD_RESCUE_MODIFIER:
216 return "KEYWORD_RESCUE_MODIFIER";
217 case PM_TOKEN_KEYWORD_RETRY:
218 return "KEYWORD_RETRY";
219 case PM_TOKEN_KEYWORD_RETURN:
220 return "KEYWORD_RETURN";
221 case PM_TOKEN_KEYWORD_SELF:
222 return "KEYWORD_SELF";
223 case PM_TOKEN_KEYWORD_SUPER:
224 return "KEYWORD_SUPER";
225 case PM_TOKEN_KEYWORD_TRUE:
226 return "KEYWORD_TRUE";
227 case PM_TOKEN_KEYWORD_UNDEF:
228 return "KEYWORD_UNDEF";
229 case PM_TOKEN_KEYWORD_UNLESS:
230 return "KEYWORD_UNLESS";
231 case PM_TOKEN_KEYWORD_UNLESS_MODIFIER:
232 return "KEYWORD_UNLESS_MODIFIER";
233 case PM_TOKEN_KEYWORD_UNTIL:
234 return "KEYWORD_UNTIL";
235 case PM_TOKEN_KEYWORD_UNTIL_MODIFIER:
236 return "KEYWORD_UNTIL_MODIFIER";
237 case PM_TOKEN_KEYWORD_WHILE:
238 return "KEYWORD_WHILE";
239 case PM_TOKEN_KEYWORD_WHILE_MODIFIER:
240 return "KEYWORD_WHILE_MODIFIER";
241 case PM_TOKEN_KEYWORD_YIELD:
242 return "KEYWORD_YIELD";
243 case PM_TOKEN_KEYWORD___ENCODING__:
244 return "KEYWORD___ENCODING__";
245 case PM_TOKEN_KEYWORD___FILE__:
246 return "KEYWORD___FILE__";
247 case PM_TOKEN_KEYWORD___LINE__:
248 return "KEYWORD___LINE__";
249 case PM_TOKEN_LABEL:
250 return "LABEL";
251 case PM_TOKEN_LABEL_END:
252 return "LABEL_END";
253 case PM_TOKEN_LAMBDA_BEGIN:
254 return "LAMBDA_BEGIN";
255 case PM_TOKEN_LESS:
256 return "LESS";
257 case PM_TOKEN_LESS_EQUAL:
258 return "LESS_EQUAL";
259 case PM_TOKEN_LESS_EQUAL_GREATER:
260 return "LESS_EQUAL_GREATER";
261 case PM_TOKEN_LESS_LESS:
262 return "LESS_LESS";
263 case PM_TOKEN_LESS_LESS_EQUAL:
264 return "LESS_LESS_EQUAL";
265 case PM_TOKEN_METHOD_NAME:
266 return "METHOD_NAME";
267 case PM_TOKEN_MINUS:
268 return "MINUS";
269 case PM_TOKEN_MINUS_EQUAL:
270 return "MINUS_EQUAL";
271 case PM_TOKEN_MINUS_GREATER:
272 return "MINUS_GREATER";
273 case PM_TOKEN_NUMBERED_REFERENCE:
274 return "NUMBERED_REFERENCE";
275 case PM_TOKEN_PARENTHESIS_LEFT:
276 return "PARENTHESIS_LEFT";
277 case PM_TOKEN_PARENTHESIS_LEFT_GROUPING:
278 return "PARENTHESIS_LEFT_GROUPING";
279 case PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES:
280 return "PARENTHESIS_LEFT_PARENTHESES";
281 case PM_TOKEN_PERCENT:
282 return "PERCENT";
283 case PM_TOKEN_PERCENT_EQUAL:
284 return "PERCENT_EQUAL";
285 case PM_TOKEN_PERCENT_LOWER_I:
286 return "PERCENT_LOWER_I";
287 case PM_TOKEN_PERCENT_LOWER_W:
288 return "PERCENT_LOWER_W";
289 case PM_TOKEN_PERCENT_LOWER_X:
290 return "PERCENT_LOWER_X";
291 case PM_TOKEN_PERCENT_UPPER_I:
292 return "PERCENT_UPPER_I";
293 case PM_TOKEN_PERCENT_UPPER_W:
294 return "PERCENT_UPPER_W";
295 case PM_TOKEN_PIPE_EQUAL:
296 return "PIPE_EQUAL";
297 case PM_TOKEN_PIPE_PIPE:
298 return "PIPE_PIPE";
299 case PM_TOKEN_PIPE_PIPE_EQUAL:
300 return "PIPE_PIPE_EQUAL";
301 case PM_TOKEN_PLUS:
302 return "PLUS";
303 case PM_TOKEN_PLUS_EQUAL:
304 return "PLUS_EQUAL";
305 case PM_TOKEN_QUESTION_MARK:
306 return "QUESTION_MARK";
307 case PM_TOKEN_REGEXP_BEGIN:
308 return "REGEXP_BEGIN";
309 case PM_TOKEN_REGEXP_END:
310 return "REGEXP_END";
311 case PM_TOKEN_SLASH:
312 return "SLASH";
313 case PM_TOKEN_SLASH_EQUAL:
314 return "SLASH_EQUAL";
315 case PM_TOKEN_STAR:
316 return "STAR";
317 case PM_TOKEN_STAR_EQUAL:
318 return "STAR_EQUAL";
319 case PM_TOKEN_STAR_STAR:
320 return "STAR_STAR";
321 case PM_TOKEN_STAR_STAR_EQUAL:
322 return "STAR_STAR_EQUAL";
323 case PM_TOKEN_STRING_BEGIN:
324 return "STRING_BEGIN";
325 case PM_TOKEN_STRING_CONTENT:
326 return "STRING_CONTENT";
327 case PM_TOKEN_STRING_END:
328 return "STRING_END";
329 case PM_TOKEN_SYMBOL_BEGIN:
330 return "SYMBOL_BEGIN";
331 case PM_TOKEN_TILDE:
332 return "TILDE";
333 case PM_TOKEN_UAMPERSAND:
334 return "UAMPERSAND";
335 case PM_TOKEN_UCOLON_COLON:
336 return "UCOLON_COLON";
337 case PM_TOKEN_UDOT_DOT:
338 return "UDOT_DOT";
339 case PM_TOKEN_UDOT_DOT_DOT:
340 return "UDOT_DOT_DOT";
341 case PM_TOKEN_UMINUS:
342 return "UMINUS";
343 case PM_TOKEN_UMINUS_NUM:
344 return "UMINUS_NUM";
345 case PM_TOKEN_UPLUS:
346 return "UPLUS";
347 case PM_TOKEN_USTAR:
348 return "USTAR";
349 case PM_TOKEN_USTAR_STAR:
350 return "USTAR_STAR";
351 case PM_TOKEN_WORDS_SEP:
352 return "WORDS_SEP";
353 case PM_TOKEN_WORDS_SEP_IMPLICIT:
354 return "WORDS_SEP_IMPLICIT";
355 case PM_TOKEN_XSTRING_BEGIN:
356 return "XSTRING_BEGIN";
357 case PM_TOKEN___END__:
358 return "__END__";
359 case PM_TOKEN_MAXIMUM:
360 assert(false && "unreachable");
361 return "";
362 }
363
364 // Provide a default, because some compilers can't determine that the above
365 // switch is exhaustive.
366 assert(false && "unreachable");
367 return "";
368}
369
373const char *
374pm_token_str(pm_token_type_t token_type) {
375 switch (token_type) {
376 case PM_TOKEN_EOF:
377 return "end-of-input";
378 case PM_TOKEN_AMPERSAND:
379 return "'&'";
380 case PM_TOKEN_AMPERSAND_AMPERSAND:
381 return "'&&'";
382 case PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL:
383 return "'&&='";
384 case PM_TOKEN_AMPERSAND_DOT:
385 return "'&.'";
386 case PM_TOKEN_AMPERSAND_EQUAL:
387 return "'&='";
388 case PM_TOKEN_BACKTICK:
389 return "'`'";
390 case PM_TOKEN_BACK_REFERENCE:
391 return "back reference";
392 case PM_TOKEN_BANG:
393 return "'!'";
394 case PM_TOKEN_BANG_EQUAL:
395 return "'!='";
396 case PM_TOKEN_BANG_TILDE:
397 return "'!~'";
398 case PM_TOKEN_BRACE_LEFT:
399 return "'{'";
400 case PM_TOKEN_BRACE_LEFT_ARGUMENT:
401 return "'{'";
402 case PM_TOKEN_BRACE_LEFT_HASH:
403 return "'{'";
404 case PM_TOKEN_BRACE_RIGHT:
405 return "'}'";
406 case PM_TOKEN_BRACKET_LEFT:
407 return "'['";
408 case PM_TOKEN_BRACKET_LEFT_ARRAY:
409 return "'['";
410 case PM_TOKEN_BRACKET_LEFT_RIGHT:
411 return "'[]'";
412 case PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL:
413 return "'[]='";
414 case PM_TOKEN_BRACKET_RIGHT:
415 return "']'";
416 case PM_TOKEN_CARET:
417 return "'^'";
418 case PM_TOKEN_CARET_EQUAL:
419 return "'^='";
420 case PM_TOKEN_CHARACTER_LITERAL:
421 return "character literal";
422 case PM_TOKEN_CLASS_VARIABLE:
423 return "class variable";
424 case PM_TOKEN_COLON:
425 return "':'";
426 case PM_TOKEN_COLON_COLON:
427 return "'::'";
428 case PM_TOKEN_COMMA:
429 return "','";
430 case PM_TOKEN_COMMENT:
431 return "comment";
432 case PM_TOKEN_CONSTANT:
433 return "constant";
434 case PM_TOKEN_DOT:
435 return "'.'";
436 case PM_TOKEN_DOT_DOT:
437 return "..";
438 case PM_TOKEN_DOT_DOT_DOT:
439 return "...";
440 case PM_TOKEN_EMBDOC_BEGIN:
441 return "'=begin'";
442 case PM_TOKEN_EMBDOC_END:
443 return "'=end'";
444 case PM_TOKEN_EMBDOC_LINE:
445 return "embedded documentation line";
446 case PM_TOKEN_EMBEXPR_BEGIN:
447 return "'#{'";
448 case PM_TOKEN_EMBEXPR_END:
449 return "'}'";
450 case PM_TOKEN_EMBVAR:
451 return "'#'";
452 case PM_TOKEN_EQUAL:
453 return "'='";
454 case PM_TOKEN_EQUAL_EQUAL:
455 return "'=='";
456 case PM_TOKEN_EQUAL_EQUAL_EQUAL:
457 return "'==='";
458 case PM_TOKEN_EQUAL_GREATER:
459 return "'=>'";
460 case PM_TOKEN_EQUAL_TILDE:
461 return "'=~'";
462 case PM_TOKEN_FLOAT:
463 return "float";
464 case PM_TOKEN_FLOAT_IMAGINARY:
465 return "imaginary";
466 case PM_TOKEN_FLOAT_RATIONAL:
467 return "rational";
468 case PM_TOKEN_FLOAT_RATIONAL_IMAGINARY:
469 return "imaginary";
470 case PM_TOKEN_GLOBAL_VARIABLE:
471 return "global variable";
472 case PM_TOKEN_GREATER:
473 return "'>'";
474 case PM_TOKEN_GREATER_EQUAL:
475 return "'>='";
476 case PM_TOKEN_GREATER_GREATER:
477 return ">>";
478 case PM_TOKEN_GREATER_GREATER_EQUAL:
479 return ">>=";
480 case PM_TOKEN_HEREDOC_END:
481 return "heredoc ending";
482 case PM_TOKEN_HEREDOC_START:
483 return "heredoc beginning";
484 case PM_TOKEN_IDENTIFIER:
485 return "local variable or method";
486 case PM_TOKEN_IGNORED_NEWLINE:
487 return "ignored newline";
488 case PM_TOKEN_INSTANCE_VARIABLE:
489 return "instance variable";
490 case PM_TOKEN_INTEGER:
491 return "integer";
492 case PM_TOKEN_INTEGER_IMAGINARY:
493 return "imaginary";
494 case PM_TOKEN_INTEGER_RATIONAL:
495 return "rational";
496 case PM_TOKEN_INTEGER_RATIONAL_IMAGINARY:
497 return "imaginary";
498 case PM_TOKEN_KEYWORD_ALIAS:
499 return "'alias'";
500 case PM_TOKEN_KEYWORD_AND:
501 return "'and'";
502 case PM_TOKEN_KEYWORD_BEGIN:
503 return "'begin'";
504 case PM_TOKEN_KEYWORD_BEGIN_UPCASE:
505 return "'BEGIN'";
506 case PM_TOKEN_KEYWORD_BREAK:
507 return "'break'";
508 case PM_TOKEN_KEYWORD_CASE:
509 return "'case'";
510 case PM_TOKEN_KEYWORD_CLASS:
511 return "'class'";
512 case PM_TOKEN_KEYWORD_DEF:
513 return "'def'";
514 case PM_TOKEN_KEYWORD_DEFINED:
515 return "'defined?'";
516 case PM_TOKEN_KEYWORD_DO:
517 return "'do'";
518 case PM_TOKEN_KEYWORD_DO_BLOCK:
519 return "'do'";
520 case PM_TOKEN_KEYWORD_DO_LAMBDA:
521 return "'do'";
522 case PM_TOKEN_KEYWORD_DO_LOOP:
523 return "'do'";
524 case PM_TOKEN_KEYWORD_ELSE:
525 return "'else'";
526 case PM_TOKEN_KEYWORD_ELSIF:
527 return "'elsif'";
528 case PM_TOKEN_KEYWORD_END:
529 return "'end'";
530 case PM_TOKEN_KEYWORD_END_UPCASE:
531 return "'END'";
532 case PM_TOKEN_KEYWORD_ENSURE:
533 return "'ensure'";
534 case PM_TOKEN_KEYWORD_FALSE:
535 return "'false'";
536 case PM_TOKEN_KEYWORD_FOR:
537 return "'for'";
538 case PM_TOKEN_KEYWORD_IF:
539 return "'if'";
540 case PM_TOKEN_KEYWORD_IF_MODIFIER:
541 return "'if'";
542 case PM_TOKEN_KEYWORD_IN:
543 return "'in'";
544 case PM_TOKEN_KEYWORD_MODULE:
545 return "'module'";
546 case PM_TOKEN_KEYWORD_NEXT:
547 return "'next'";
548 case PM_TOKEN_KEYWORD_NIL:
549 return "'nil'";
550 case PM_TOKEN_KEYWORD_NOT:
551 return "'not'";
552 case PM_TOKEN_KEYWORD_OR:
553 return "'or'";
554 case PM_TOKEN_KEYWORD_REDO:
555 return "'redo'";
556 case PM_TOKEN_KEYWORD_RESCUE:
557 return "'rescue'";
558 case PM_TOKEN_KEYWORD_RESCUE_MODIFIER:
559 return "'rescue' modifier";
560 case PM_TOKEN_KEYWORD_RETRY:
561 return "'retry'";
562 case PM_TOKEN_KEYWORD_RETURN:
563 return "'return'";
564 case PM_TOKEN_KEYWORD_SELF:
565 return "'self'";
566 case PM_TOKEN_KEYWORD_SUPER:
567 return "'super'";
568 case PM_TOKEN_KEYWORD_THEN:
569 return "'then'";
570 case PM_TOKEN_KEYWORD_TRUE:
571 return "'true'";
572 case PM_TOKEN_KEYWORD_UNDEF:
573 return "'undef'";
574 case PM_TOKEN_KEYWORD_UNLESS:
575 return "'unless'";
576 case PM_TOKEN_KEYWORD_UNLESS_MODIFIER:
577 return "'unless'";
578 case PM_TOKEN_KEYWORD_UNTIL:
579 return "'until'";
580 case PM_TOKEN_KEYWORD_UNTIL_MODIFIER:
581 return "'until'";
582 case PM_TOKEN_KEYWORD_WHEN:
583 return "'when'";
584 case PM_TOKEN_KEYWORD_WHILE:
585 return "'while'";
586 case PM_TOKEN_KEYWORD_WHILE_MODIFIER:
587 return "'while'";
588 case PM_TOKEN_KEYWORD_YIELD:
589 return "'yield'";
590 case PM_TOKEN_KEYWORD___ENCODING__:
591 return "'__ENCODING__'";
592 case PM_TOKEN_KEYWORD___FILE__:
593 return "'__FILE__'";
594 case PM_TOKEN_KEYWORD___LINE__:
595 return "'__LINE__'";
596 case PM_TOKEN_LABEL:
597 return "label";
598 case PM_TOKEN_LABEL_END:
599 return "label terminator";
600 case PM_TOKEN_LAMBDA_BEGIN:
601 return "'{'";
602 case PM_TOKEN_LESS:
603 return "'<'";
604 case PM_TOKEN_LESS_EQUAL:
605 return "'<='";
606 case PM_TOKEN_LESS_EQUAL_GREATER:
607 return "'<=>'";
608 case PM_TOKEN_LESS_LESS:
609 return "<<";
610 case PM_TOKEN_LESS_LESS_EQUAL:
611 return "<<=";
612 case PM_TOKEN_METHOD_NAME:
613 return "method name";
614 case PM_TOKEN_MINUS:
615 return "'-'";
616 case PM_TOKEN_MINUS_EQUAL:
617 return "'-='";
618 case PM_TOKEN_MINUS_GREATER:
619 return "'->'";
620 case PM_TOKEN_NEWLINE:
621 return "newline";
622 case PM_TOKEN_NEWLINE_TERMINATOR:
623 return "newline";
624 case PM_TOKEN_NUMBERED_REFERENCE:
625 return "numbered reference";
626 case PM_TOKEN_PARENTHESIS_LEFT:
627 return "'('";
628 case PM_TOKEN_PARENTHESIS_LEFT_GROUPING:
629 return "'('";
630 case PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES:
631 return "'('";
632 case PM_TOKEN_PARENTHESIS_RIGHT:
633 return "')'";
634 case PM_TOKEN_PERCENT:
635 return "'%'";
636 case PM_TOKEN_PERCENT_EQUAL:
637 return "'%='";
638 case PM_TOKEN_PERCENT_LOWER_I:
639 return "'%i'";
640 case PM_TOKEN_PERCENT_LOWER_W:
641 return "'%w'";
642 case PM_TOKEN_PERCENT_LOWER_X:
643 return "'%x'";
644 case PM_TOKEN_PERCENT_UPPER_I:
645 return "'%I'";
646 case PM_TOKEN_PERCENT_UPPER_W:
647 return "'%W'";
648 case PM_TOKEN_PIPE:
649 return "'|'";
650 case PM_TOKEN_PIPE_EQUAL:
651 return "'|='";
652 case PM_TOKEN_PIPE_PIPE:
653 return "'||'";
654 case PM_TOKEN_PIPE_PIPE_EQUAL:
655 return "'||='";
656 case PM_TOKEN_PLUS:
657 return "'+'";
658 case PM_TOKEN_PLUS_EQUAL:
659 return "'+='";
660 case PM_TOKEN_QUESTION_MARK:
661 return "'?'";
662 case PM_TOKEN_REGEXP_BEGIN:
663 return "regular expression beginning";
664 case PM_TOKEN_REGEXP_END:
665 return "regular expression ending";
666 case PM_TOKEN_SEMICOLON:
667 return "';'";
668 case PM_TOKEN_SLASH:
669 return "'/'";
670 case PM_TOKEN_SLASH_EQUAL:
671 return "'/='";
672 case PM_TOKEN_STAR:
673 return "'*'";
674 case PM_TOKEN_STAR_EQUAL:
675 return "'*='";
676 case PM_TOKEN_STAR_STAR:
677 return "'**'";
678 case PM_TOKEN_STAR_STAR_EQUAL:
679 return "'**='";
680 case PM_TOKEN_STRING_BEGIN:
681 return "string literal";
682 case PM_TOKEN_STRING_CONTENT:
683 return "string content";
684 case PM_TOKEN_STRING_END:
685 return "string ending";
686 case PM_TOKEN_SYMBOL_BEGIN:
687 return "symbol literal";
688 case PM_TOKEN_TILDE:
689 return "'~'";
690 case PM_TOKEN_UAMPERSAND:
691 return "'&'";
692 case PM_TOKEN_UCOLON_COLON:
693 return "'::'";
694 case PM_TOKEN_UDOT_DOT:
695 return "'..'";
696 case PM_TOKEN_UDOT_DOT_DOT:
697 return "'...'";
698 case PM_TOKEN_UMINUS:
699 return "'-'";
700 case PM_TOKEN_UMINUS_NUM:
701 return "'-'";
702 case PM_TOKEN_UPLUS:
703 return "'+'";
704 case PM_TOKEN_USTAR:
705 return "*";
706 case PM_TOKEN_USTAR_STAR:
707 return "**";
708 case PM_TOKEN_WORDS_SEP:
709 case PM_TOKEN_WORDS_SEP_IMPLICIT:
710 return "string separator";
711 case PM_TOKEN_XSTRING_BEGIN:
712 return "backtick string literal";
713 case PM_TOKEN___END__:
714 return "'__END__'";
715 case PM_TOKEN_MAXIMUM:
716 assert(false && "unreachable");
717 return "";
718 }
719
720 /* Provide a default, because some compilers cannot determine that the above
721 * switch is exhaustive. */
722 assert(false && "unreachable");
723 return "";
724}