version 1.15, 2022/09/01 15:21:28 |
version 1.16, 2023/09/10 14:59:00 |
|
|
{ $$ = op2(BOR, notnull($1), notnull($3)); } |
{ $$ = op2(BOR, notnull($1), notnull($3)); } |
| ppattern and ppattern %prec AND |
| ppattern and ppattern %prec AND |
{ $$ = 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)); free($3); } |
| 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)); |
|
|
| pattern LE pattern { $$ = op2($2, $1, $3); } |
| pattern LE pattern { $$ = op2($2, $1, $3); } |
| pattern LT pattern { $$ = op2($2, $1, $3); } |
| pattern LT pattern { $$ = op2($2, $1, $3); } |
| 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)); free($3); } |
| 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)); |
|
|
|
|
re: |
re: |
reg_expr |
reg_expr |
{ $$ = op3(MATCH, NIL, rectonode(), (Node*)makedfa($1, 0)); } |
{ $$ = op3(MATCH, NIL, rectonode(), (Node*)makedfa($1, 0)); free($1); } |
| NOT re { $$ = op1(NOT, notnull($2)); } |
| NOT re { $$ = op1(NOT, notnull($2)); } |
; |
; |
|
|
|
|
$$ = op2(INDEX, $3, (Node*)$5); } |
$$ = op2(INDEX, $3, (Node*)$5); } |
| '(' pattern ')' { $$ = $2; } |
| '(' pattern ')' { $$ = $2; } |
| 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)); free($5); } |
| 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)); |
|
|
| SPLIT '(' pattern comma varname comma pattern ')' /* string */ |
| SPLIT '(' pattern comma varname comma pattern ')' /* string */ |
{ $$ = op4(SPLIT, $3, makearr($5), $7, (Node*)STRING); } |
{ $$ = op4(SPLIT, $3, makearr($5), $7, (Node*)STRING); } |
| SPLIT '(' pattern comma varname comma reg_expr ')' /* const /regexp/ */ |
| SPLIT '(' pattern comma varname comma reg_expr ')' /* const /regexp/ */ |
{ $$ = op4(SPLIT, $3, makearr($5), (Node*)makedfa($7, 1), (Node *)REGEXPR); } |
{ $$ = op4(SPLIT, $3, makearr($5), (Node*)makedfa($7, 1), (Node *)REGEXPR); free($7); } |
| SPLIT '(' pattern comma varname ')' |
| SPLIT '(' pattern comma varname ')' |
{ $$ = op4(SPLIT, $3, makearr($5), NIL, (Node*)STRING); } /* default */ |
{ $$ = op4(SPLIT, $3, makearr($5), NIL, (Node*)STRING); } /* default */ |
| SPRINTF '(' patlist ')' { $$ = op1($1, $3); } |
| SPRINTF '(' patlist ')' { $$ = op1($1, $3); } |
| string { $$ = celltonode($1, CCON); } |
| string { $$ = celltonode($1, CCON); } |
| 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()); free($3); } |
| 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 |
} 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); free($3); } |
| 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); |