summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToby Goodwin <toby@paccrat.org>2017-06-23 22:29:00 +0100
committerToby Goodwin <toby@paccrat.org>2017-06-23 22:29:00 +0100
commitd2a398257626faf73fd7a5326b31bbc3f613e3da (patch)
tree58b352e824cd136bba15e0f8a5f61ed42fb469e2
parentdfc639b58490bc5c00da9c17e6c4dc367909b5e5 (diff)
fix prefix redir precedence bug, github #33
-rw-r--r--parse.y3
1 files changed, 2 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index bde299e..276961a 100644
--- a/parse.y
+++ b/parse.y
@@ -21,6 +21,7 @@ Node *parsetree; /* not using yylval because bison declares it as an auto */
%left ANDAND OROR '\n'
%left BANG SUBSHELL
%left PIPE
+%left PREDIR /* fictitious */
%right '$'
%left SUB
/*
@@ -110,7 +111,7 @@ cmd : /* empty */ %prec WHILE { $$ = NULL; }
| cmd ANDAND optnl cmd { $$ = mk(nAndalso,$1,$4); }
| cmd OROR optnl cmd { $$ = mk(nOrelse,$1,$4); }
| cmd PIPE optnl cmd { $$ = mk(nPipe,$2.left,$2.right,$1,$4); }
- | redir cmd %prec BANG { $$ = ($2 != NULL ? mk(nPre,$1,$2) : $1); }
+ | redir cmd %prec PREDIR { $$ = ($2 != NULL ? mk(nPre,$1,$2) : $1); }
| assign cmd %prec BANG { $$ = ($2 != NULL ? mk(nPre,$1,$2) : $1); }
| BANG optcaret cmd { $$ = mk(nBang,$3); }
| SUBSHELL optcaret cmd { $$ = mk(nSubshell,$3); }