grammar: strip all keywords.
This commit is contained in:
parent
0ee86aa981
commit
f6a9bb4109
|
@ -139,23 +139,23 @@
|
||||||
subshell <-- lpar compound rpar#
|
subshell <-- lpar compound rpar#
|
||||||
brace-group <-- lbrace ws* compound rbrace#
|
brace-group <-- lbrace ws* compound rbrace#
|
||||||
|
|
||||||
case-clause <-- 'case' sp* word sp* 'in'# ws* case-item+ ws* 'esac'#
|
case-clause <-- case-keyword sp* word sp* in-keyword# ws* case-item+ ws* esac-keyword#
|
||||||
case-item <-- pattern sp* colon? ws* compound? case-sep?
|
case-item <-- pattern sp* colon? ws* compound? case-sep?
|
||||||
colon < ':'
|
colon < ':'
|
||||||
case-sep < ';;' ws*
|
case-sep < ';;' ws*
|
||||||
pattern <-- (word (!rpar '|'# / !'|' &rpar))+ rpar#
|
pattern <-- (word (!rpar '|'# / !'|' &rpar))+ rpar#
|
||||||
|
|
||||||
for-clause <-- 'for' sp+ identifier ws+ ('in' sp+ expression)? sep# do-group
|
for-clause <-- for-keyword sp+ identifier ws+ (in-keyword sp+ expression)? sep# do-group
|
||||||
expression <-- command
|
expression <-- command
|
||||||
do-group <-- 'do' ws+ compound 'done'#
|
do-group <-- do-keyword ws+ compound 'done'#
|
||||||
|
|
||||||
if-clause <-- 'if' sp+ compound 'then'# ws+ compound else-part? 'fi'#
|
if-clause <-- if-keyword sp+ compound then-keyword# ws+ compound else-part? fi-keyword#
|
||||||
else-part <-- 'else' ws+ compound /
|
else-part <-- else-keyword ws+ compound /
|
||||||
'elif' ws+ compound 'then'# ws+ compound else-part?
|
elif-keyword ws+ compound then-keyword# ws+ compound else-part?
|
||||||
|
|
||||||
while-clause <-- 'while' compound do-group
|
while-clause <-- while-keyword compound do-group
|
||||||
|
|
||||||
until-clause <-- 'until' compound do-group
|
until-clause <-- until-keyword compound do-group
|
||||||
|
|
||||||
reserved < ('case' / 'esac' / 'in' / 'if' / 'fi' / 'then' / 'else' /
|
reserved < ('case' / 'esac' / 'in' / 'if' / 'fi' / 'then' / 'else' /
|
||||||
'elif' / 'for' / 'done' / 'do' / 'until' / 'while') &ws
|
'elif' / 'for' / 'done' / 'do' / 'until' / 'while') &ws
|
||||||
|
@ -203,7 +203,22 @@
|
||||||
sq < [']
|
sq < [']
|
||||||
dq < [\"]
|
dq < [\"]
|
||||||
singlequotes <- sq (!['] .)* sq#
|
singlequotes <- sq (!['] .)* sq#
|
||||||
doublequotes <- dq (substitution / variable / (![\"] .))* dq#")
|
doublequotes <- dq (substitution / variable / (![\"] .))* dq#
|
||||||
|
|
||||||
|
case-keyword < 'case'
|
||||||
|
do-keyword < 'do'
|
||||||
|
done-keyword < 'done'
|
||||||
|
elif-keyword < 'elif'
|
||||||
|
else-keyword < 'else'
|
||||||
|
esac-keyword < 'esac'
|
||||||
|
fi-keyword < 'fi'
|
||||||
|
for-keyword < 'for'
|
||||||
|
if-keyword < 'if'
|
||||||
|
in-keyword < 'in'
|
||||||
|
then-keyword < 'then'
|
||||||
|
until-keyword < 'until'
|
||||||
|
while-keyword < 'while'
|
||||||
|
")
|
||||||
|
|
||||||
(catch 'syntax-error
|
(catch 'syntax-error
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
|
Loading…
Reference in New Issue