/* :markup: markdown */
/*----------------------------------------------------------------------------*/
/* This file is generated by the templates/template.rb script and should not */
/* be modified manually. See */
/* templates/src/token_type.c.erb */
/* if you are looking to modify the */
/* template */
/*----------------------------------------------------------------------------*/
#include
#include "prism/ast.h"
/**
* Returns a string representation of the given token type.
*/
PRISM_EXPORTED_FUNCTION const char *
pm_token_type_name(pm_token_type_t token_type) {
switch (token_type) {
case PM_TOKEN_EOF:
return "EOF";
case PM_TOKEN_BRACE_RIGHT:
return "BRACE_RIGHT";
case PM_TOKEN_COMMA:
return "COMMA";
case PM_TOKEN_EMBEXPR_END:
return "EMBEXPR_END";
case PM_TOKEN_KEYWORD_DO:
return "KEYWORD_DO";
case PM_TOKEN_KEYWORD_ELSE:
return "KEYWORD_ELSE";
case PM_TOKEN_KEYWORD_ELSIF:
return "KEYWORD_ELSIF";
case PM_TOKEN_KEYWORD_END:
return "KEYWORD_END";
case PM_TOKEN_KEYWORD_ENSURE:
return "KEYWORD_ENSURE";
case PM_TOKEN_KEYWORD_IN:
return "KEYWORD_IN";
case PM_TOKEN_KEYWORD_RESCUE:
return "KEYWORD_RESCUE";
case PM_TOKEN_KEYWORD_THEN:
return "KEYWORD_THEN";
case PM_TOKEN_KEYWORD_WHEN:
return "KEYWORD_WHEN";
case PM_TOKEN_NEWLINE:
return "NEWLINE";
case PM_TOKEN_PARENTHESIS_RIGHT:
return "PARENTHESIS_RIGHT";
case PM_TOKEN_PIPE:
return "PIPE";
case PM_TOKEN_SEMICOLON:
return "SEMICOLON";
case PM_TOKEN_AMPERSAND:
return "AMPERSAND";
case PM_TOKEN_AMPERSAND_AMPERSAND:
return "AMPERSAND_AMPERSAND";
case PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL:
return "AMPERSAND_AMPERSAND_EQUAL";
case PM_TOKEN_AMPERSAND_DOT:
return "AMPERSAND_DOT";
case PM_TOKEN_AMPERSAND_EQUAL:
return "AMPERSAND_EQUAL";
case PM_TOKEN_BACKTICK:
return "BACKTICK";
case PM_TOKEN_BACK_REFERENCE:
return "BACK_REFERENCE";
case PM_TOKEN_BANG:
return "BANG";
case PM_TOKEN_BANG_EQUAL:
return "BANG_EQUAL";
case PM_TOKEN_BANG_TILDE:
return "BANG_TILDE";
case PM_TOKEN_BRACE_LEFT:
return "BRACE_LEFT";
case PM_TOKEN_BRACKET_LEFT:
return "BRACKET_LEFT";
case PM_TOKEN_BRACKET_LEFT_ARRAY:
return "BRACKET_LEFT_ARRAY";
case PM_TOKEN_BRACKET_LEFT_RIGHT:
return "BRACKET_LEFT_RIGHT";
case PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL:
return "BRACKET_LEFT_RIGHT_EQUAL";
case PM_TOKEN_BRACKET_RIGHT:
return "BRACKET_RIGHT";
case PM_TOKEN_CARET:
return "CARET";
case PM_TOKEN_CARET_EQUAL:
return "CARET_EQUAL";
case PM_TOKEN_CHARACTER_LITERAL:
return "CHARACTER_LITERAL";
case PM_TOKEN_CLASS_VARIABLE:
return "CLASS_VARIABLE";
case PM_TOKEN_COLON:
return "COLON";
case PM_TOKEN_COLON_COLON:
return "COLON_COLON";
case PM_TOKEN_COMMENT:
return "COMMENT";
case PM_TOKEN_CONSTANT:
return "CONSTANT";
case PM_TOKEN_DOT:
return "DOT";
case PM_TOKEN_DOT_DOT:
return "DOT_DOT";
case PM_TOKEN_DOT_DOT_DOT:
return "DOT_DOT_DOT";
case PM_TOKEN_EMBDOC_BEGIN:
return "EMBDOC_BEGIN";
case PM_TOKEN_EMBDOC_END:
return "EMBDOC_END";
case PM_TOKEN_EMBDOC_LINE:
return "EMBDOC_LINE";
case PM_TOKEN_EMBEXPR_BEGIN:
return "EMBEXPR_BEGIN";
case PM_TOKEN_EMBVAR:
return "EMBVAR";
case PM_TOKEN_EQUAL:
return "EQUAL";
case PM_TOKEN_EQUAL_EQUAL:
return "EQUAL_EQUAL";
case PM_TOKEN_EQUAL_EQUAL_EQUAL:
return "EQUAL_EQUAL_EQUAL";
case PM_TOKEN_EQUAL_GREATER:
return "EQUAL_GREATER";
case PM_TOKEN_EQUAL_TILDE:
return "EQUAL_TILDE";
case PM_TOKEN_FLOAT:
return "FLOAT";
case PM_TOKEN_FLOAT_IMAGINARY:
return "FLOAT_IMAGINARY";
case PM_TOKEN_FLOAT_RATIONAL:
return "FLOAT_RATIONAL";
case PM_TOKEN_FLOAT_RATIONAL_IMAGINARY:
return "FLOAT_RATIONAL_IMAGINARY";
case PM_TOKEN_GLOBAL_VARIABLE:
return "GLOBAL_VARIABLE";
case PM_TOKEN_GREATER:
return "GREATER";
case PM_TOKEN_GREATER_EQUAL:
return "GREATER_EQUAL";
case PM_TOKEN_GREATER_GREATER:
return "GREATER_GREATER";
case PM_TOKEN_GREATER_GREATER_EQUAL:
return "GREATER_GREATER_EQUAL";
case PM_TOKEN_HEREDOC_END:
return "HEREDOC_END";
case PM_TOKEN_HEREDOC_START:
return "HEREDOC_START";
case PM_TOKEN_IDENTIFIER:
return "IDENTIFIER";
case PM_TOKEN_IGNORED_NEWLINE:
return "IGNORED_NEWLINE";
case PM_TOKEN_INSTANCE_VARIABLE:
return "INSTANCE_VARIABLE";
case PM_TOKEN_INTEGER:
return "INTEGER";
case PM_TOKEN_INTEGER_IMAGINARY:
return "INTEGER_IMAGINARY";
case PM_TOKEN_INTEGER_RATIONAL:
return "INTEGER_RATIONAL";
case PM_TOKEN_INTEGER_RATIONAL_IMAGINARY:
return "INTEGER_RATIONAL_IMAGINARY";
case PM_TOKEN_KEYWORD_ALIAS:
return "KEYWORD_ALIAS";
case PM_TOKEN_KEYWORD_AND:
return "KEYWORD_AND";
case PM_TOKEN_KEYWORD_BEGIN:
return "KEYWORD_BEGIN";
case PM_TOKEN_KEYWORD_BEGIN_UPCASE:
return "KEYWORD_BEGIN_UPCASE";
case PM_TOKEN_KEYWORD_BREAK:
return "KEYWORD_BREAK";
case PM_TOKEN_KEYWORD_CASE:
return "KEYWORD_CASE";
case PM_TOKEN_KEYWORD_CLASS:
return "KEYWORD_CLASS";
case PM_TOKEN_KEYWORD_DEF:
return "KEYWORD_DEF";
case PM_TOKEN_KEYWORD_DEFINED:
return "KEYWORD_DEFINED";
case PM_TOKEN_KEYWORD_DO_LOOP:
return "KEYWORD_DO_LOOP";
case PM_TOKEN_KEYWORD_END_UPCASE:
return "KEYWORD_END_UPCASE";
case PM_TOKEN_KEYWORD_FALSE:
return "KEYWORD_FALSE";
case PM_TOKEN_KEYWORD_FOR:
return "KEYWORD_FOR";
case PM_TOKEN_KEYWORD_IF:
return "KEYWORD_IF";
case PM_TOKEN_KEYWORD_IF_MODIFIER:
return "KEYWORD_IF_MODIFIER";
case PM_TOKEN_KEYWORD_MODULE:
return "KEYWORD_MODULE";
case PM_TOKEN_KEYWORD_NEXT:
return "KEYWORD_NEXT";
case PM_TOKEN_KEYWORD_NIL:
return "KEYWORD_NIL";
case PM_TOKEN_KEYWORD_NOT:
return "KEYWORD_NOT";
case PM_TOKEN_KEYWORD_OR:
return "KEYWORD_OR";
case PM_TOKEN_KEYWORD_REDO:
return "KEYWORD_REDO";
case PM_TOKEN_KEYWORD_RESCUE_MODIFIER:
return "KEYWORD_RESCUE_MODIFIER";
case PM_TOKEN_KEYWORD_RETRY:
return "KEYWORD_RETRY";
case PM_TOKEN_KEYWORD_RETURN:
return "KEYWORD_RETURN";
case PM_TOKEN_KEYWORD_SELF:
return "KEYWORD_SELF";
case PM_TOKEN_KEYWORD_SUPER:
return "KEYWORD_SUPER";
case PM_TOKEN_KEYWORD_TRUE:
return "KEYWORD_TRUE";
case PM_TOKEN_KEYWORD_UNDEF:
return "KEYWORD_UNDEF";
case PM_TOKEN_KEYWORD_UNLESS:
return "KEYWORD_UNLESS";
case PM_TOKEN_KEYWORD_UNLESS_MODIFIER:
return "KEYWORD_UNLESS_MODIFIER";
case PM_TOKEN_KEYWORD_UNTIL:
return "KEYWORD_UNTIL";
case PM_TOKEN_KEYWORD_UNTIL_MODIFIER:
return "KEYWORD_UNTIL_MODIFIER";
case PM_TOKEN_KEYWORD_WHILE:
return "KEYWORD_WHILE";
case PM_TOKEN_KEYWORD_WHILE_MODIFIER:
return "KEYWORD_WHILE_MODIFIER";
case PM_TOKEN_KEYWORD_YIELD:
return "KEYWORD_YIELD";
case PM_TOKEN_KEYWORD___ENCODING__:
return "KEYWORD___ENCODING__";
case PM_TOKEN_KEYWORD___FILE__:
return "KEYWORD___FILE__";
case PM_TOKEN_KEYWORD___LINE__:
return "KEYWORD___LINE__";
case PM_TOKEN_LABEL:
return "LABEL";
case PM_TOKEN_LABEL_END:
return "LABEL_END";
case PM_TOKEN_LAMBDA_BEGIN:
return "LAMBDA_BEGIN";
case PM_TOKEN_LESS:
return "LESS";
case PM_TOKEN_LESS_EQUAL:
return "LESS_EQUAL";
case PM_TOKEN_LESS_EQUAL_GREATER:
return "LESS_EQUAL_GREATER";
case PM_TOKEN_LESS_LESS:
return "LESS_LESS";
case PM_TOKEN_LESS_LESS_EQUAL:
return "LESS_LESS_EQUAL";
case PM_TOKEN_METHOD_NAME:
return "METHOD_NAME";
case PM_TOKEN_MINUS:
return "MINUS";
case PM_TOKEN_MINUS_EQUAL:
return "MINUS_EQUAL";
case PM_TOKEN_MINUS_GREATER:
return "MINUS_GREATER";
case PM_TOKEN_NUMBERED_REFERENCE:
return "NUMBERED_REFERENCE";
case PM_TOKEN_PARENTHESIS_LEFT:
return "PARENTHESIS_LEFT";
case PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES:
return "PARENTHESIS_LEFT_PARENTHESES";
case PM_TOKEN_PERCENT:
return "PERCENT";
case PM_TOKEN_PERCENT_EQUAL:
return "PERCENT_EQUAL";
case PM_TOKEN_PERCENT_LOWER_I:
return "PERCENT_LOWER_I";
case PM_TOKEN_PERCENT_LOWER_W:
return "PERCENT_LOWER_W";
case PM_TOKEN_PERCENT_LOWER_X:
return "PERCENT_LOWER_X";
case PM_TOKEN_PERCENT_UPPER_I:
return "PERCENT_UPPER_I";
case PM_TOKEN_PERCENT_UPPER_W:
return "PERCENT_UPPER_W";
case PM_TOKEN_PIPE_EQUAL:
return "PIPE_EQUAL";
case PM_TOKEN_PIPE_PIPE:
return "PIPE_PIPE";
case PM_TOKEN_PIPE_PIPE_EQUAL:
return "PIPE_PIPE_EQUAL";
case PM_TOKEN_PLUS:
return "PLUS";
case PM_TOKEN_PLUS_EQUAL:
return "PLUS_EQUAL";
case PM_TOKEN_QUESTION_MARK:
return "QUESTION_MARK";
case PM_TOKEN_REGEXP_BEGIN:
return "REGEXP_BEGIN";
case PM_TOKEN_REGEXP_END:
return "REGEXP_END";
case PM_TOKEN_SLASH:
return "SLASH";
case PM_TOKEN_SLASH_EQUAL:
return "SLASH_EQUAL";
case PM_TOKEN_STAR:
return "STAR";
case PM_TOKEN_STAR_EQUAL:
return "STAR_EQUAL";
case PM_TOKEN_STAR_STAR:
return "STAR_STAR";
case PM_TOKEN_STAR_STAR_EQUAL:
return "STAR_STAR_EQUAL";
case PM_TOKEN_STRING_BEGIN:
return "STRING_BEGIN";
case PM_TOKEN_STRING_CONTENT:
return "STRING_CONTENT";
case PM_TOKEN_STRING_END:
return "STRING_END";
case PM_TOKEN_SYMBOL_BEGIN:
return "SYMBOL_BEGIN";
case PM_TOKEN_TILDE:
return "TILDE";
case PM_TOKEN_UAMPERSAND:
return "UAMPERSAND";
case PM_TOKEN_UCOLON_COLON:
return "UCOLON_COLON";
case PM_TOKEN_UDOT_DOT:
return "UDOT_DOT";
case PM_TOKEN_UDOT_DOT_DOT:
return "UDOT_DOT_DOT";
case PM_TOKEN_UMINUS:
return "UMINUS";
case PM_TOKEN_UMINUS_NUM:
return "UMINUS_NUM";
case PM_TOKEN_UPLUS:
return "UPLUS";
case PM_TOKEN_USTAR:
return "USTAR";
case PM_TOKEN_USTAR_STAR:
return "USTAR_STAR";
case PM_TOKEN_WORDS_SEP:
return "WORDS_SEP";
case PM_TOKEN___END__:
return "__END__";
case PM_TOKEN_MISSING:
return "MISSING";
case PM_TOKEN_NOT_PROVIDED:
return "NOT_PROVIDED";
case PM_TOKEN_MAXIMUM:
assert(false && "unreachable");
return "";
}
// Provide a default, because some compilers can't determine that the above
// switch is exhaustive.
assert(false && "unreachable");
return "";
}
/**
* Returns the human name of the given token type.
*/
const char *
pm_token_type_human(pm_token_type_t token_type) {
switch (token_type) {
case PM_TOKEN_EOF:
return "end-of-input";
case PM_TOKEN_MISSING:
return "missing token";
case PM_TOKEN_NOT_PROVIDED:
return "not provided token";
case PM_TOKEN_AMPERSAND:
return "'&'";
case PM_TOKEN_AMPERSAND_AMPERSAND:
return "'&&'";
case PM_TOKEN_AMPERSAND_AMPERSAND_EQUAL:
return "'&&='";
case PM_TOKEN_AMPERSAND_DOT:
return "'&.'";
case PM_TOKEN_AMPERSAND_EQUAL:
return "'&='";
case PM_TOKEN_BACKTICK:
return "'`'";
case PM_TOKEN_BACK_REFERENCE:
return "back reference";
case PM_TOKEN_BANG:
return "'!'";
case PM_TOKEN_BANG_EQUAL:
return "'!='";
case PM_TOKEN_BANG_TILDE:
return "'!~'";
case PM_TOKEN_BRACE_LEFT:
return "'{'";
case PM_TOKEN_BRACE_RIGHT:
return "'}'";
case PM_TOKEN_BRACKET_LEFT:
return "'['";
case PM_TOKEN_BRACKET_LEFT_ARRAY:
return "'['";
case PM_TOKEN_BRACKET_LEFT_RIGHT:
return "'[]'";
case PM_TOKEN_BRACKET_LEFT_RIGHT_EQUAL:
return "'[]='";
case PM_TOKEN_BRACKET_RIGHT:
return "']'";
case PM_TOKEN_CARET:
return "'^'";
case PM_TOKEN_CARET_EQUAL:
return "'^='";
case PM_TOKEN_CHARACTER_LITERAL:
return "character literal";
case PM_TOKEN_CLASS_VARIABLE:
return "class variable";
case PM_TOKEN_COLON:
return "':'";
case PM_TOKEN_COLON_COLON:
return "'::'";
case PM_TOKEN_COMMA:
return "','";
case PM_TOKEN_COMMENT:
return "comment";
case PM_TOKEN_CONSTANT:
return "constant";
case PM_TOKEN_DOT:
return "'.'";
case PM_TOKEN_DOT_DOT:
return "..";
case PM_TOKEN_DOT_DOT_DOT:
return "...";
case PM_TOKEN_EMBDOC_BEGIN:
return "'=begin'";
case PM_TOKEN_EMBDOC_END:
return "'=end'";
case PM_TOKEN_EMBDOC_LINE:
return "embedded documentation line";
case PM_TOKEN_EMBEXPR_BEGIN:
return "'#{'";
case PM_TOKEN_EMBEXPR_END:
return "'}'";
case PM_TOKEN_EMBVAR:
return "'#'";
case PM_TOKEN_EQUAL:
return "'='";
case PM_TOKEN_EQUAL_EQUAL:
return "'=='";
case PM_TOKEN_EQUAL_EQUAL_EQUAL:
return "'==='";
case PM_TOKEN_EQUAL_GREATER:
return "'=>'";
case PM_TOKEN_EQUAL_TILDE:
return "'=~'";
case PM_TOKEN_FLOAT:
return "float";
case PM_TOKEN_FLOAT_IMAGINARY:
return "imaginary";
case PM_TOKEN_FLOAT_RATIONAL:
return "rational";
case PM_TOKEN_FLOAT_RATIONAL_IMAGINARY:
return "imaginary";
case PM_TOKEN_GLOBAL_VARIABLE:
return "global variable";
case PM_TOKEN_GREATER:
return "'>'";
case PM_TOKEN_GREATER_EQUAL:
return "'>='";
case PM_TOKEN_GREATER_GREATER:
return ">>";
case PM_TOKEN_GREATER_GREATER_EQUAL:
return ">>=";
case PM_TOKEN_HEREDOC_END:
return "heredoc ending";
case PM_TOKEN_HEREDOC_START:
return "heredoc beginning";
case PM_TOKEN_IDENTIFIER:
return "local variable or method";
case PM_TOKEN_IGNORED_NEWLINE:
return "ignored newline";
case PM_TOKEN_INSTANCE_VARIABLE:
return "instance variable";
case PM_TOKEN_INTEGER:
return "integer";
case PM_TOKEN_INTEGER_IMAGINARY:
return "imaginary";
case PM_TOKEN_INTEGER_RATIONAL:
return "rational";
case PM_TOKEN_INTEGER_RATIONAL_IMAGINARY:
return "imaginary";
case PM_TOKEN_KEYWORD_ALIAS:
return "'alias'";
case PM_TOKEN_KEYWORD_AND:
return "'and'";
case PM_TOKEN_KEYWORD_BEGIN:
return "'begin'";
case PM_TOKEN_KEYWORD_BEGIN_UPCASE:
return "'BEGIN'";
case PM_TOKEN_KEYWORD_BREAK:
return "'break'";
case PM_TOKEN_KEYWORD_CASE:
return "'case'";
case PM_TOKEN_KEYWORD_CLASS:
return "'class'";
case PM_TOKEN_KEYWORD_DEF:
return "'def'";
case PM_TOKEN_KEYWORD_DEFINED:
return "'defined?'";
case PM_TOKEN_KEYWORD_DO:
return "'do'";
case PM_TOKEN_KEYWORD_DO_LOOP:
return "'do'";
case PM_TOKEN_KEYWORD_ELSE:
return "'else'";
case PM_TOKEN_KEYWORD_ELSIF:
return "'elsif'";
case PM_TOKEN_KEYWORD_END:
return "'end'";
case PM_TOKEN_KEYWORD_END_UPCASE:
return "'END'";
case PM_TOKEN_KEYWORD_ENSURE:
return "'ensure'";
case PM_TOKEN_KEYWORD_FALSE:
return "'false'";
case PM_TOKEN_KEYWORD_FOR:
return "'for'";
case PM_TOKEN_KEYWORD_IF:
return "'if'";
case PM_TOKEN_KEYWORD_IF_MODIFIER:
return "'if'";
case PM_TOKEN_KEYWORD_IN:
return "'in'";
case PM_TOKEN_KEYWORD_MODULE:
return "'module'";
case PM_TOKEN_KEYWORD_NEXT:
return "'next'";
case PM_TOKEN_KEYWORD_NIL:
return "'nil'";
case PM_TOKEN_KEYWORD_NOT:
return "'not'";
case PM_TOKEN_KEYWORD_OR:
return "'or'";
case PM_TOKEN_KEYWORD_REDO:
return "'redo'";
case PM_TOKEN_KEYWORD_RESCUE:
return "'rescue'";
case PM_TOKEN_KEYWORD_RESCUE_MODIFIER:
return "'rescue' modifier";
case PM_TOKEN_KEYWORD_RETRY:
return "'retry'";
case PM_TOKEN_KEYWORD_RETURN:
return "'return'";
case PM_TOKEN_KEYWORD_SELF:
return "'self'";
case PM_TOKEN_KEYWORD_SUPER:
return "'super'";
case PM_TOKEN_KEYWORD_THEN:
return "'then'";
case PM_TOKEN_KEYWORD_TRUE:
return "'true'";
case PM_TOKEN_KEYWORD_UNDEF:
return "'undef'";
case PM_TOKEN_KEYWORD_UNLESS:
return "'unless'";
case PM_TOKEN_KEYWORD_UNLESS_MODIFIER:
return "'unless'";
case PM_TOKEN_KEYWORD_UNTIL:
return "'until'";
case PM_TOKEN_KEYWORD_UNTIL_MODIFIER:
return "'until'";
case PM_TOKEN_KEYWORD_WHEN:
return "'when'";
case PM_TOKEN_KEYWORD_WHILE:
return "'while'";
case PM_TOKEN_KEYWORD_WHILE_MODIFIER:
return "'while'";
case PM_TOKEN_KEYWORD_YIELD:
return "'yield'";
case PM_TOKEN_KEYWORD___ENCODING__:
return "'__ENCODING__'";
case PM_TOKEN_KEYWORD___FILE__:
return "'__FILE__'";
case PM_TOKEN_KEYWORD___LINE__:
return "'__LINE__'";
case PM_TOKEN_LABEL:
return "label";
case PM_TOKEN_LABEL_END:
return "label terminator";
case PM_TOKEN_LAMBDA_BEGIN:
return "'{'";
case PM_TOKEN_LESS:
return "'<'";
case PM_TOKEN_LESS_EQUAL:
return "'<='";
case PM_TOKEN_LESS_EQUAL_GREATER:
return "'<=>'";
case PM_TOKEN_LESS_LESS:
return "<<";
case PM_TOKEN_LESS_LESS_EQUAL:
return "<<=";
case PM_TOKEN_METHOD_NAME:
return "method name";
case PM_TOKEN_MINUS:
return "'-'";
case PM_TOKEN_MINUS_EQUAL:
return "'-='";
case PM_TOKEN_MINUS_GREATER:
return "'->'";
case PM_TOKEN_NEWLINE:
return "newline";
case PM_TOKEN_NUMBERED_REFERENCE:
return "numbered reference";
case PM_TOKEN_PARENTHESIS_LEFT:
return "'('";
case PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES:
return "'('";
case PM_TOKEN_PARENTHESIS_RIGHT:
return "')'";
case PM_TOKEN_PERCENT:
return "'%'";
case PM_TOKEN_PERCENT_EQUAL:
return "'%='";
case PM_TOKEN_PERCENT_LOWER_I:
return "'%i'";
case PM_TOKEN_PERCENT_LOWER_W:
return "'%w'";
case PM_TOKEN_PERCENT_LOWER_X:
return "'%x'";
case PM_TOKEN_PERCENT_UPPER_I:
return "'%I'";
case PM_TOKEN_PERCENT_UPPER_W:
return "'%W'";
case PM_TOKEN_PIPE:
return "'|'";
case PM_TOKEN_PIPE_EQUAL:
return "'|='";
case PM_TOKEN_PIPE_PIPE:
return "'||'";
case PM_TOKEN_PIPE_PIPE_EQUAL:
return "'||='";
case PM_TOKEN_PLUS:
return "'+'";
case PM_TOKEN_PLUS_EQUAL:
return "'+='";
case PM_TOKEN_QUESTION_MARK:
return "'?'";
case PM_TOKEN_REGEXP_BEGIN:
return "regular expression beginning";
case PM_TOKEN_REGEXP_END:
return "regular expression ending";
case PM_TOKEN_SEMICOLON:
return "';'";
case PM_TOKEN_SLASH:
return "'/'";
case PM_TOKEN_SLASH_EQUAL:
return "'/='";
case PM_TOKEN_STAR:
return "'*'";
case PM_TOKEN_STAR_EQUAL:
return "'*='";
case PM_TOKEN_STAR_STAR:
return "'**'";
case PM_TOKEN_STAR_STAR_EQUAL:
return "'**='";
case PM_TOKEN_STRING_BEGIN:
return "string literal";
case PM_TOKEN_STRING_CONTENT:
return "string content";
case PM_TOKEN_STRING_END:
return "string ending";
case PM_TOKEN_SYMBOL_BEGIN:
return "symbol literal";
case PM_TOKEN_TILDE:
return "'~'";
case PM_TOKEN_UAMPERSAND:
return "'&'";
case PM_TOKEN_UCOLON_COLON:
return "'::'";
case PM_TOKEN_UDOT_DOT:
return "'..'";
case PM_TOKEN_UDOT_DOT_DOT:
return "'...'";
case PM_TOKEN_UMINUS:
return "'-'";
case PM_TOKEN_UMINUS_NUM:
return "'-'";
case PM_TOKEN_UPLUS:
return "'+'";
case PM_TOKEN_USTAR:
return "*";
case PM_TOKEN_USTAR_STAR:
return "**";
case PM_TOKEN_WORDS_SEP:
return "string separator";
case PM_TOKEN___END__:
return "'__END__'";
case PM_TOKEN_MAXIMUM:
assert(false && "unreachable");
return "";
}
// Provide a default, because some compilers can't determine that the above
// switch is exhaustive.
assert(false && "unreachable");
return "";
}