version 1.13, 2020/06/10 21:05:02 |
version 1.14, 2020/06/13 01:21:01 |
|
|
%token <i> FINAL DOT ALL CCL NCCL CHAR OR STAR QUEST PLUS EMPTYRE ZERO |
%token <i> FINAL DOT ALL CCL NCCL CHAR OR STAR QUEST PLUS EMPTYRE ZERO |
%token <i> AND BOR APPEND EQ GE GT LE LT NE IN |
%token <i> AND BOR APPEND EQ GE GT LE LT NE IN |
%token <i> ARG BLTIN BREAK CLOSE CONTINUE DELETE DO EXIT FOR FUNC |
%token <i> ARG BLTIN BREAK CLOSE CONTINUE DELETE DO EXIT FOR FUNC |
%token <i> SUB GSUB IF INDEX LSUBSTR MATCHFCN NEXT NEXTFILE |
%token <i> GENSUB SUB GSUB IF INDEX LSUBSTR MATCHFCN NEXT NEXTFILE |
%token <i> ADD MINUS MULT DIVIDE MOD |
%token <i> ADD MINUS MULT DIVIDE MOD |
%token <i> ASSIGN ASGNOP ADDEQ SUBEQ MULTEQ DIVEQ MODEQ POWEQ |
%token <i> ASSIGN ASGNOP ADDEQ SUBEQ MULTEQ DIVEQ MODEQ POWEQ |
%token <i> PRINT PRINTF SPRINTF |
%token <i> PRINT PRINTF SPRINTF |
|
|
| INCR var { $$ = op1(PREINCR, $2); } |
| INCR var { $$ = op1(PREINCR, $2); } |
| var DECR { $$ = op1(POSTDECR, $1); } |
| var DECR { $$ = op1(POSTDECR, $1); } |
| var INCR { $$ = op1(POSTINCR, $1); } |
| var INCR { $$ = op1(POSTINCR, $1); } |
|
| GENSUB '(' reg_expr comma pattern comma pattern ')' |
|
{ $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, rectonode()); } |
|
| GENSUB '(' pattern comma pattern comma pattern ')' |
|
{ if (constnode($3)) |
|
$$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3), 1), $5, $7, rectonode()); |
|
else |
|
$$ = op5(GENSUB, (Node *)1, $3, $5, $7, rectonode()); |
|
} |
|
| GENSUB '(' reg_expr comma pattern comma pattern comma pattern ')' |
|
{ $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, $9); } |
|
| GENSUB '(' pattern comma pattern comma pattern comma pattern ')' |
|
{ if (constnode($3)) |
|
$$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3),1), $5,$7,$9); |
|
else |
|
$$ = op5(GENSUB, (Node *)1, $3, $5, $7, $9); |
|
} |
| GETLINE var LT term { $$ = op3(GETLINE, $2, itonp($3), $4); } |
| GETLINE var LT term { $$ = op3(GETLINE, $2, itonp($3), $4); } |
| GETLINE LT term { $$ = op3(GETLINE, NIL, itonp($2), $3); } |
| GETLINE LT term { $$ = op3(GETLINE, NIL, itonp($2), $3); } |
| GETLINE var { $$ = op3(GETLINE, $2, NIL, NIL); } |
| GETLINE var { $$ = op3(GETLINE, $2, NIL, NIL); } |