aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parse.y9
1 files changed, 4 insertions, 5 deletions
diff --git a/parse.y b/parse.y
index 60d40e2b92..3b84c2e4e7 100644
--- a/parse.y
+++ b/parse.y
@@ -4195,7 +4195,7 @@ f_arglist : '(' f_args rparen
| {
$<num>$ = parser->in_kwarg;
parser->in_kwarg = 1;
- lex_state |= EXPR_LABEL; /* force for args */
+ SET_LEX_STATE(lex_state|EXPR_LABEL); /* force for args */
}
f_args term
{
@@ -8478,8 +8478,8 @@ parser_yylex(struct parser_params *parser)
case '[':
paren_nest++;
if (IS_AFTER_OPERATOR()) {
- SET_LEX_STATE(EXPR_ARG);
if ((c = nextc()) == ']') {
+ SET_LEX_STATE(EXPR_ARG);
if ((c = nextc()) == '=') {
return tASET;
}
@@ -8487,7 +8487,7 @@ parser_yylex(struct parser_params *parser)
return tAREF;
}
pushback(c);
- lex_state |= EXPR_LABEL;
+ SET_LEX_STATE(EXPR_ARG|EXPR_LABEL);
return '[';
}
else if (IS_BEG()) {
@@ -8521,8 +8521,7 @@ parser_yylex(struct parser_params *parser)
c = tLBRACE; /* hash */
COND_PUSH(0);
CMDARG_PUSH(0);
- SET_LEX_STATE(EXPR_BEG);
- if (c != tLBRACE_ARG) lex_state |= EXPR_LABEL;
+ SET_LEX_STATE(c == tLBRACE_ARG ? EXPR_BEG : EXPR_BEG|EXPR_LABEL);
if (c != tLBRACE) command_start = TRUE;
return c;