diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-10 01:18:27 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-10 01:18:27 +0000 |
commit | ae32e9a225d075d28a95da0537e098989fb42494 (patch) | |
tree | 73d7441a34967f56d80a7389a7afe55f4a1b59ce /parse.y | |
parent | 2924c95347ce9dd37029cee358eba91102f29ceb (diff) | |
download | ruby-ae32e9a225d075d28a95da0537e098989fb42494.tar.gz |
parse.y: debugging stuff
* parse.y (lex_state_name): returns name for lex_state_e, for debug
use.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -11,6 +11,9 @@ %{ +#ifndef PARSER_DEBUG +#define PARSER_DEBUG 0 +#endif #define YYDEBUG 1 #define YYERROR_VERBOSE 1 #define YYSTACK_USE_ALLOCA 0 @@ -74,6 +77,10 @@ enum lex_state_e { EXPR_MAX_STATE }; +#if PARSER_DEBUG +static const char *lex_state_name(enum lex_state_e state); +#endif + typedef VALUE stack_type; # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1)) @@ -8479,6 +8486,28 @@ id_is_var_gen(struct parser_params *parser, ID id) } #endif /* !RIPPER */ +#if PARSER_DEBUG +static const char * +lex_state_name(enum lex_state_e state) +{ + switch (state) { + case EXPR_BEG: return "EXPR_BEG"; + case EXPR_END: return "EXPR_END"; + case EXPR_ENDARG: return "EXPR_ENDARG"; + case EXPR_ENDFN: return "EXPR_ENDFN"; + case EXPR_ARG: return "EXPR_ARG"; + case EXPR_CMDARG: return "EXPR_CMDARG"; + case EXPR_MID: return "EXPR_MID"; + case EXPR_FNAME: return "EXPR_FNAME"; + case EXPR_DOT: return "EXPR_DOT"; + case EXPR_CLASS: return "EXPR_CLASS"; + case EXPR_VALUE: return "EXPR_VALUE"; + case EXPR_MAX_STATE: break; + } + return NULL; +} +#endif + #ifdef RIPPER static VALUE assignable_gen(struct parser_params *parser, VALUE lhs) @@ -9807,6 +9836,9 @@ Init_sym(void) (void)nodetype; (void)nodeline; +#if PARSER_DEBUG + (void)lex_state_name(-1); +#endif Init_id(); } |