- { $$ = make_op($1,1,cmd_to_arg($2),Nullarg,Nullarg); }
- | UNIOP sexpr
- { $$ = make_op($1,1,$2,Nullarg,Nullarg); }
- | SSELECT
- { $$ = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);}
- | SSELECT WORD
- { $$ = make_op(O_SELECT, 1,
- stab2arg(A_WORD,stabent($2,TRUE)),
- Nullarg,
- Nullarg);
- Safefree($2); $2 = Nullch; }
- | SSELECT '(' handle ')'
- { $$ = make_op(O_SELECT, 1, $3, Nullarg, Nullarg); }
- | SSELECT '(' sexpr csexpr csexpr csexpr ')'
- { arg4 = $6;
- $$ = make_op(O_SSELECT, 4, $3, $4, $5); }
- | OPEN WORD %prec '('
- { $$ = make_op(O_OPEN, 2,
- stab2arg(A_WORD,stabent($2,TRUE)),
- stab2arg(A_STAB,stabent($2,TRUE)),
- Nullarg); }
- | OPEN '(' WORD ')'
- { $$ = make_op(O_OPEN, 2,
- stab2arg(A_WORD,stabent($3,TRUE)),
- stab2arg(A_STAB,stabent($3,TRUE)),
- Nullarg); }
- | OPEN '(' handle cexpr ')'
- { $$ = make_op(O_OPEN, 2,
- $3,
- $4, Nullarg); }
- | FILOP '(' handle ')'
- { $$ = make_op($1, 1,
- $3,
- Nullarg, Nullarg); }
- | FILOP WORD
- { $$ = make_op($1, 1,
- stab2arg(A_WORD,stabent($2,TRUE)),
- Nullarg, Nullarg);
- Safefree($2); $2 = Nullch; }
- | FILOP REG
- { $$ = make_op($1, 1,
- stab2arg(A_STAB,$2),
- Nullarg, Nullarg); }
- | FILOP '(' ')'
- { $$ = make_op($1, 1,
- stab2arg(A_WORD,Nullstab),
- Nullarg, Nullarg); }
- | FILOP %prec '('
- { $$ = make_op($1, 0,
- Nullarg, Nullarg, Nullarg); }
- | FILOP2 '(' handle cexpr ')'
- { $$ = make_op($1, 2, $3, $4, Nullarg); }
- | FILOP3 '(' handle csexpr cexpr ')'
- { $$ = make_op($1, 3, $3, $4, make_list($5)); }
- | FILOP22 '(' handle ',' handle ')'
- { $$ = make_op($1, 2, $3, $5, Nullarg); }
- | FILOP4 '(' handle csexpr csexpr cexpr ')'
- { arg4 = $6; $$ = make_op($1, 4, $3, $4, $5); }
- | FILOP25 '(' handle ',' handle csexpr csexpr cexpr ')'
- { arg4 = $7; arg5 = $8;
- $$ = make_op($1, 5, $3, $5, $6); }
- | PUSH '(' aryword ',' expr crp
- { $$ = make_op($1, 2,
- $3,
- make_list($5),
- Nullarg); }
- | POP aryword %prec '('
- { $$ = make_op(O_POP, 1, $2, Nullarg, Nullarg); }
- | POP '(' aryword ')'
- { $$ = make_op(O_POP, 1, $3, Nullarg, Nullarg); }
- | SHIFT aryword %prec '('
- { $$ = make_op(O_SHIFT, 1, $2, Nullarg, Nullarg); }
- | SHIFT '(' aryword ')'
- { $$ = make_op(O_SHIFT, 1, $3, Nullarg, Nullarg); }
- | SHIFT %prec '('
- { $$ = make_op(O_SHIFT, 1,
- stab2arg(A_STAB,
- aadd(stabent(subline ? "_" : "ARGV", TRUE))),
- Nullarg, Nullarg); }
- | SPLIT %prec '('
- { static char p[]="/\\s+/";
- char *oldend = bufend;
- ARG *oldarg = yylval.arg;
-
- bufend=p+5;
- (void)scanpat(p);
- bufend=oldend;
- $$ = make_split(defstab,yylval.arg,Nullarg);
- yylval.arg = oldarg; }
- | SPLIT '(' sexpr csexpr csexpr ')'
- { $$ = mod_match(O_MATCH, $4,
- make_split(defstab,$3,$5));}
- | SPLIT '(' sexpr csexpr ')'
- { $$ = mod_match(O_MATCH, $4,
- make_split(defstab,$3,Nullarg) ); }
- | SPLIT '(' sexpr ')'
- { $$ = mod_match(O_MATCH,
- stab2arg(A_STAB,defstab),
- make_split(defstab,$3,Nullarg) ); }
- | FLIST2 '(' sexpr cexpr ')'
- { $$ = make_op($1, 2,
- $3,
- listish(make_list($4)),
- Nullarg); }
- | FLIST '(' expr crp
- { $$ = make_op($1, 1,
- make_list($3),
- Nullarg,
- Nullarg); }
- | LVALFUN sexpr %prec '('
- { $$ = l(make_op($1, 1, fixl($1,$2),
- Nullarg, Nullarg)); }
- | LVALFUN
- { $$ = l(make_op($1, 1,
- stab2arg(A_STAB,defstab),
- Nullarg, Nullarg)); }