fix: allow parenthesized expressions inside subscripts

pull/504/merge
Amaan Qureshi 2023-08-21 19:34:53 +07:00
parent 258b34e3af
commit b3256b57d0
2 changed files with 20 additions and 2 deletions

@ -410,7 +410,7 @@ module.exports = grammar({
subscript: $ => seq(
field('name', $.variable_name),
'[',
field('index', choice($._literal, $.binary_expression, $.unary_expression)),
field('index', choice($._literal, $.binary_expression, $.unary_expression, $.parenthesized_expression)),
optional($._concat),
']',
optional($._concat),

@ -399,6 +399,10 @@ echo ${b[1234 % 2]}
${words[++counter]}
${array[(($number+1))]}
${array[((number+1))]}
---
(program
@ -413,4 +417,18 @@ ${words[++counter]}
(command
(command_name
(expansion
(subscript (variable_name) (unary_expression (word)))))))
(subscript (variable_name) (unary_expression (word))))))
(command
(command_name
(expansion
(subscript
(variable_name)
(parenthesized_expression
(parenthesized_expression
(concatenation (simple_expansion (variable_name)) (word))))))))
(command
(command_name
(expansion
(subscript
(variable_name)
(parenthesized_expression (parenthesized_expression (word))))))))