version 1.14, 2020/06/13 01:21:01 |
version 1.15, 2022/09/01 15:21:28 |
|
|
{ $$ = op2(AND, notnull($1), notnull($3)); } |
{ $$ = op2(AND, notnull($1), notnull($3)); } |
| ppattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); } |
| ppattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); } |
| ppattern MATCHOP ppattern |
| ppattern MATCHOP ppattern |
{ if (constnode($3)) |
{ if (constnode($3)) { |
$$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0)); |
$$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0)); |
else |
free($3); |
|
} else |
$$ = op3($2, (Node *)1, $1, $3); } |
$$ = op3($2, (Node *)1, $1, $3); } |
| ppattern IN varname { $$ = op2(INTEST, $1, makearr($3)); } |
| ppattern IN varname { $$ = op2(INTEST, $1, makearr($3)); } |
| '(' plist ')' IN varname { $$ = op2(INTEST, $2, makearr($5)); } |
| '(' plist ')' IN varname { $$ = op2(INTEST, $2, makearr($5)); } |
|
|
| pattern NE pattern { $$ = op2($2, $1, $3); } |
| pattern NE pattern { $$ = op2($2, $1, $3); } |
| pattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); } |
| pattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); } |
| pattern MATCHOP pattern |
| pattern MATCHOP pattern |
{ if (constnode($3)) |
{ if (constnode($3)) { |
$$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0)); |
$$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0)); |
else |
free($3); |
|
} else |
$$ = op3($2, (Node *)1, $1, $3); } |
$$ = op3($2, (Node *)1, $1, $3); } |
| pattern IN varname { $$ = op2(INTEST, $1, makearr($3)); } |
| pattern IN varname { $$ = op2(INTEST, $1, makearr($3)); } |
| '(' plist ')' IN varname { $$ = op2(INTEST, $2, makearr($5)); } |
| '(' plist ')' IN varname { $$ = op2(INTEST, $2, makearr($5)); } |
|
|
| GENSUB '(' reg_expr comma pattern comma pattern ')' |
| GENSUB '(' reg_expr comma pattern comma pattern ')' |
{ $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, rectonode()); } |
{ $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, rectonode()); } |
| GENSUB '(' pattern comma pattern comma pattern ')' |
| GENSUB '(' pattern comma pattern comma pattern ')' |
{ if (constnode($3)) |
{ if (constnode($3)) { |
$$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3), 1), $5, $7, rectonode()); |
$$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3), 1), $5, $7, rectonode()); |
else |
free($3); |
|
} else |
$$ = op5(GENSUB, (Node *)1, $3, $5, $7, rectonode()); |
$$ = op5(GENSUB, (Node *)1, $3, $5, $7, rectonode()); |
} |
} |
| GENSUB '(' reg_expr comma pattern comma pattern comma pattern ')' |
| GENSUB '(' reg_expr comma pattern comma pattern comma pattern ')' |
{ $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, $9); } |
{ $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, $9); } |
| GENSUB '(' pattern comma pattern comma pattern comma pattern ')' |
| GENSUB '(' pattern comma pattern comma pattern comma pattern ')' |
{ if (constnode($3)) |
{ if (constnode($3)) { |
$$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3),1), $5,$7,$9); |
$$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3),1), $5,$7,$9); |
else |
free($3); |
|
} else |
$$ = op5(GENSUB, (Node *)1, $3, $5, $7, $9); |
$$ = 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); } |
|
|
| MATCHFCN '(' pattern comma reg_expr ')' |
| MATCHFCN '(' pattern comma reg_expr ')' |
{ $$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa($5, 1)); } |
{ $$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa($5, 1)); } |
| MATCHFCN '(' pattern comma pattern ')' |
| MATCHFCN '(' pattern comma pattern ')' |
{ if (constnode($5)) |
{ if (constnode($5)) { |
$$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa(strnode($5), 1)); |
$$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa(strnode($5), 1)); |
else |
free($5); |
|
} else |
$$ = op3(MATCHFCN, (Node *)1, $3, $5); } |
$$ = op3(MATCHFCN, (Node *)1, $3, $5); } |
| NUMBER { $$ = celltonode($1, CCON); } |
| NUMBER { $$ = celltonode($1, CCON); } |
| SPLIT '(' pattern comma varname comma pattern ')' /* string */ |
| SPLIT '(' pattern comma varname comma pattern ')' /* string */ |
|
|
| subop '(' reg_expr comma pattern ')' |
| subop '(' reg_expr comma pattern ')' |
{ $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, rectonode()); } |
{ $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, rectonode()); } |
| subop '(' pattern comma pattern ')' |
| subop '(' pattern comma pattern ')' |
{ if (constnode($3)) |
{ if (constnode($3)) { |
$$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, rectonode()); |
$$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, rectonode()); |
else |
free($3); |
|
} else |
$$ = op4($1, (Node *)1, $3, $5, rectonode()); } |
$$ = op4($1, (Node *)1, $3, $5, rectonode()); } |
| subop '(' reg_expr comma pattern comma var ')' |
| subop '(' reg_expr comma pattern comma var ')' |
{ $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, $7); } |
{ $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, $7); } |
| subop '(' pattern comma pattern comma var ')' |
| subop '(' pattern comma pattern comma var ')' |
{ if (constnode($3)) |
{ if (constnode($3)) { |
$$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, $7); |
$$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, $7); |
else |
free($3); |
|
} else |
$$ = op4($1, (Node *)1, $3, $5, $7); } |
$$ = op4($1, (Node *)1, $3, $5, $7); } |
| SUBSTR '(' pattern comma pattern comma pattern ')' |
| SUBSTR '(' pattern comma pattern comma pattern ')' |
{ $$ = op3(SUBSTR, $3, $5, $7); } |
{ $$ = op3(SUBSTR, $3, $5, $7); } |