ruby-changes:57892
From: Nobuyoshi <ko1@a...>
Date: Wed, 25 Sep 2019 11:33:00 +0900 (JST)
Subject: [ruby-changes:57892] e663299a5f (master): Simplified duplicate code
https://git.ruby-lang.org/ruby.git/commit/?id=e663299a5f From e663299a5f7a980aae39f3e87cec064ae19a870c Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Wed, 25 Sep 2019 10:14:36 +0900 Subject: Simplified duplicate code diff --git a/parse.y b/parse.y index 8adf0fc..8686bd4 100644 --- a/parse.y +++ b/parse.y @@ -9311,15 +9311,9 @@ parser_yylex(struct parser_params *p) https://github.com/ruby/ruby/blob/trunk/parse.y#L9311 case '{': ++p->lex.brace_nest; - if (lambda_beginning_p()) { - SET_LEX_STATE(EXPR_BEG); - COND_PUSH(0); - CMDARG_PUSH(0); - p->lex.paren_nest++; - return tLAMBEG; - } - p->lex.paren_nest++; - if (IS_lex_state(EXPR_LABELED)) + if (lambda_beginning_p()) + c = tLAMBEG; + else if (IS_lex_state(EXPR_LABELED)) c = tLBRACE; /* hash */ else if (IS_lex_state(EXPR_ARG_ANY | EXPR_END | EXPR_ENDFN)) c = '{'; /* block (primary) */ @@ -9327,10 +9321,16 @@ parser_yylex(struct parser_params *p) https://github.com/ruby/ruby/blob/trunk/parse.y#L9321 c = tLBRACE_ARG; /* block (expr) */ else c = tLBRACE; /* hash */ + if (c != tLBRACE) { + p->command_start = TRUE; + SET_LEX_STATE(EXPR_BEG); + } + else { + SET_LEX_STATE(EXPR_BEG|EXPR_LABEL); + } + ++p->lex.paren_nest; /* after lambda_beginning_p() */ COND_PUSH(0); CMDARG_PUSH(0); - SET_LEX_STATE(c != tLBRACE ? EXPR_BEG : EXPR_BEG|EXPR_LABEL); - if (c != tLBRACE) p->command_start = TRUE; return c; case '\\': -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/