aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/rc
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-06-27 17:41:48 +0000
committerrsc <devnull@localhost>2006-06-27 17:41:48 +0000
commitaec641d24c0e41671097563d938a9ed21999c0ab (patch)
treeef46f989144449255ee8301a8e235d18a1266397 /src/cmd/rc
parentb7d8e86a72da7d644b7cf689545a66d15b608cd2 (diff)
downloadplan9port-aec641d24c0e41671097563d938a9ed21999c0ab.tar.gz
plan9port-aec641d24c0e41671097563d938a9ed21999c0ab.tar.bz2
plan9port-aec641d24c0e41671097563d938a9ed21999c0ab.zip
experiment - allow = in words late in the command line
Diffstat (limited to 'src/cmd/rc')
-rw-r--r--src/cmd/rc/syn.y3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/rc/syn.y b/src/cmd/rc/syn.y
index c7de3531..5123ce4a 100644
--- a/src/cmd/rc/syn.y
+++ b/src/cmd/rc/syn.y
@@ -2,6 +2,7 @@
%term WORD REDIR DUP PIPE SUB
%term SIMPLE ARGLIST WORDS BRACE PAREN PCMD PIPEFD /* not used in syntax */
/* operator priorities -- lowest first */
+%left LOW
%left IF WHILE FOR SWITCH ')' NOT
%left ANDAND OROR
%left BANG SUBSHELL
@@ -9,6 +10,7 @@
%left '^'
%right '$' COUNT '"'
%left SUB
+%left '='
%{
#include "rc.h"
#include "fns.h"
@@ -78,6 +80,7 @@ first: comword
word: keyword {lastword=1; $1->type=WORD;}
| comword
| word '^' word {$$=tree2('^', $1, $3);}
+| word '=' word %prec LOW {$$=tree2('^', tree2('^', $1, token("=", WORD)), $3);}
comword: '$' word {$$=tree1('$', $2);}
| '$' word SUB words ')' {$$=tree2(SUB, $2, $4);}
| '"' word {$$=tree1('"', $2);}