diff options
| author | Toby Goodwin <toby@paccrat.org> | 2018-02-09 06:34:34 +0000 |
|---|---|---|
| committer | Toby Goodwin <toby@paccrat.org> | 2018-02-09 06:34:34 +0000 |
| commit | 5966ab2ca2632c5bed9815def1add4859beececa (patch) | |
| tree | b4624389f9cca13cd30e6f95c60e70fad87871a8 /parse.y | |
| parent | d18aac739636fd9ae1f84fef8347f46216fb8d9c (diff) | |
wip
Diffstat (limited to 'parse.y')
| -rw-r--r-- | parse.y | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -13,7 +13,7 @@ static Node *star, *nolist; Node *parsetree; /* not using yylval because bison declares it as an auto */ %} -%token ANDAND BACKBACK BANG CASE COUNT DUP ELSE END FLAT FN FOR IF IN +%token ANDAND BACKBACK BANG CASE COUNT DUP ELSE END FLAT FN FOR IF IN NOT %token OROR PIPE REDIR SREDIR SUB SUBSHELL SWITCH TWIDDLE WHILE WORD HUH %left '^' '=' @@ -103,6 +103,7 @@ cmd : /* empty */ %prec WHILE { $$ = NULL; } | simple | brace epilog { $$ = mk(nBrace,$1,$2); } | IF paren optnl iftail { $$ = mk(nIf,$2,$4); } + | IF NOT optnl cmd { $$ = mk(nIfnot,$4); } | FOR '(' word IN words ')' optnl cmd { $$ = mk(nForin,$3,$5,$8); } | FOR '(' word ')' optnl cmd { $$ = mk(nForin,$3,star,$6); } | WHILE paren optnl cmd { $$ = mk(nWhile,$2,$4); } @@ -155,6 +156,7 @@ keyword : FOR { $$ = "for"; } | IN { $$ = "in"; } | WHILE { $$ = "while"; } | IF { $$ = "if"; } + | NOT { $$ = "not"; } | SWITCH { $$ = "switch"; } | FN { $$ = "fn"; } | ELSE { $$ = "else"; } |