зеркало из https://github.com/github/ruby.git
parse.y: disentangle the lexer handling of ')', ']', and '}'
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
f2bffa1686
Коммит
69c8feb253
23
parse.y
23
parse.y
|
@ -8488,18 +8488,25 @@ parser_yylex(struct parser_params *parser)
|
|||
return parse_numeric(parser, c);
|
||||
|
||||
case ')':
|
||||
COND_LEXPOP();
|
||||
CMDARG_LEXPOP();
|
||||
SET_LEX_STATE(EXPR_ENDFN);
|
||||
paren_nest--;
|
||||
return c;
|
||||
|
||||
case ']':
|
||||
COND_LEXPOP();
|
||||
CMDARG_LEXPOP();
|
||||
SET_LEX_STATE(EXPR_END);
|
||||
paren_nest--;
|
||||
return c;
|
||||
|
||||
case '}':
|
||||
COND_LEXPOP();
|
||||
CMDARG_LEXPOP();
|
||||
if (c == ')')
|
||||
SET_LEX_STATE(EXPR_ENDFN);
|
||||
else
|
||||
SET_LEX_STATE(EXPR_END);
|
||||
if (c == '}') {
|
||||
if (!brace_nest--) c = tSTRING_DEND;
|
||||
}
|
||||
if (c != tSTRING_DEND) paren_nest--;
|
||||
SET_LEX_STATE(EXPR_END);
|
||||
if (!brace_nest--) return tSTRING_DEND;
|
||||
paren_nest--;
|
||||
return c;
|
||||
|
||||
case ':':
|
||||
|
|
Загрузка…
Ссылка в новой задаче