From b520b218391b7af434c428f622797ae59b4691c4 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 15 Sep 2012 09:26:26 +0000 Subject: parse.y: static table * parse.y (lex_state_name): use static table. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'parse.y') diff --git a/parse.y b/parse.y index fc99d2ffe6..457d0fb2ba 100644 --- a/parse.y +++ b/parse.y @@ -8571,20 +8571,14 @@ id_is_var_gen(struct parser_params *parser, ID id) 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; - } + static const char names[][12] = { + "EXPR_BEG", "EXPR_END", "EXPR_ENDARG", "EXPR_ENDFN", "EXPR_ARG", + "EXPR_CMDARG", "EXPR_MID", "EXPR_FNAME", "EXPR_DOT", "EXPR_CLASS", + "EXPR_VALUE", + }; + + if ((unsigned)state < EXPR_MAX_STATE) + return names[state]; return NULL; } #endif -- cgit v1.2.3