Actions
Feature #14506
closedPossible bug in cmdarg_stack
Feature #14506:
Possible bug in cmdarg_stack
Description
cmdarg stack is a stack of bytes that has 1 on top of it when the parser is in the command mode.
But for this code:
And this line in parse.y:
> SHOW_BITSTACK(p->cmdarg_stack, "BEFORE kDO_BLOCK");
if (CMDARG_P() && !IS_lex_state_for(state, EXPR_CMDARG))
return keyword_do_block;
It prints:
So CMDARG_P is false. I understand that 'keyword_do_block" is handled later in the "if (IS_lex_state_for(state, (EXPR_BEG | EXPR_ENDARG)))" section, but is it possible to change parser to rely only on cmdarg stack?
Actions