diff options
Diffstat (limited to 'bashast/bashast.g')
-rw-r--r-- | bashast/bashast.g | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/bashast/bashast.g b/bashast/bashast.g index 73249ef..92f4f92 100644 --- a/bashast/bashast.g +++ b/bashast/bashast.g @@ -461,7 +461,18 @@ array_atom ); builtin_variable_definition_item - : ((~EOL) => expansion_base)+; +scope { + int parens; +} +@init { + $builtin_variable_definition_item::parens = 0; +} + : ( + (LPAREN) => LPAREN { ++$builtin_variable_definition_item::parens; } + |(RPAREN) => RPAREN { --$builtin_variable_definition_item::parens; } + |(~EOL) => expansion_base + | {LA(1) == EOL && $builtin_variable_definition_item::parens > 0}? => EOL + )+; #ifdef OUTPUT_C builtin_variable_definitions[bool local] |