grammar: move variable-and, or, regex to variable toplevel.

This commit is contained in:
Jan Nieuwenhuizen 2018-11-12 09:18:45 +01:00
parent b28798b034
commit 0ee86aa981
1 changed files with 8 additions and 6 deletions

View File

@ -162,7 +162,8 @@
nonreserved <- !reserved word
word <-- test / substitution / assignment / number / variable /
word <-- test / substitution / assignment / number /
variable-subst / variable /
delim / literal
test <-- ltest sp+ (word sp+)+ rtest#
@ -185,11 +186,12 @@
assign < '='
variable <-- dollar ('*' / '@' / [0-9] / name /
lbrace name (variable-or / variable-and / variable-word / variable-literal / &rbrace) rbrace)
variable-or <-- min variable-word
variable-and <-- plus variable-word
variable-word <- (variable-regex / substitution / variable / variable-literal)+
variable-regex <-- ('%%' / '%' / '##' / '#' / '^^' / '^' /',,' / ',' / '*' / '@' / '?')+ variable-word
lbrace name (variable-literal / &rbrace) rbrace)
variable-subst <- dollar lbrace (variable-or / variable-and / variable-regex / variable-literal / &rbrace) rbrace
variable-or <-- name min variable-word
variable-and <-- name plus variable-word
variable-word <- (variable-regex / substitution / variable-subst / variable / variable-literal)+
variable-regex <-- name ('%%' / '%' / '##' / '#' / '^^' / '^' /',,' / ',' / '*' / '@' / '?')+ variable-word
variable-literal <- (!rbrace .)+
min < '-'
plus < '+'