[BACK]Return to awkgram.y CVS log [TXT][DIR] Up to [local] / src / usr.bin / awk

Diff for /src/usr.bin/awk/awkgram.y between version 1.15 and 1.16

version 1.15, 2022/09/01 15:21:28 version 1.16, 2023/09/10 14:59:00
Line 205 
Line 205 
                 { $$ = 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));
Line 233 
Line 233 
         | 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));
Line 283 
Line 283 
   
 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)); }
         ;          ;
   
Line 407 
Line 407 
                   $$ = 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));
Line 418 
Line 418 
         | 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());
Line 432 
Line 432 
                   } 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);

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16