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

Diff for /src/usr.bin/bc/bc.y between version 1.18 and 1.19

version 1.18, 2003/11/13 19:42:21 version 1.19, 2003/11/17 11:20:13
Line 123 
Line 123 
 %token SCALE IBASE OBASE AUTO  %token SCALE IBASE OBASE AUTO
 %token CONTINUE ELSE PRINT  %token CONTINUE ELSE PRINT
   
   %left BOOL_OR
   %left BOOL_AND
   %nonassoc BOOL_NOT
 %nonassoc EQUALS LESS_EQ GREATER_EQ UNEQUALS LESS GREATER  %nonassoc EQUALS LESS_EQ GREATER_EQ UNEQUALS LESS GREATER
 %right <str> ASSIGN_OP  %right <str> ASSIGN_OP
 %left PLUS MINUS  %left PLUS MINUS
Line 464 
Line 467 
                 ;                  ;
   
 relational_expression  relational_expression
                 : expression                  : expression EQUALS expression
                         {                          {
                                 $$ = node($1, cs(" 0!="), END_NODE);  
                         }  
                 | expression EQUALS expression  
                         {  
                                 $$ = node($1, $3, cs("="), END_NODE);                                  $$ = node($1, $3, cs("="), END_NODE);
                         }                          }
                 | expression UNEQUALS expression                  | expression UNEQUALS expression
Line 492 
Line 491 
                         {                          {
                                 $$ = node($1, $3, cs("!>"), END_NODE);                                  $$ = node($1, $3, cs("!>"), END_NODE);
                         }                          }
                   | expression
                           {
                                   $$ = node($1, cs(" 0!="), END_NODE);
                           }
                 ;                  ;
   
   
Line 611 
Line 614 
                 | SCALE LPAR expression RPAR                  | SCALE LPAR expression RPAR
                         {                          {
                                 $$ = node($3, cs("X"), END_NODE);                                  $$ = node($3, cs("X"), END_NODE);
                           }
                   | BOOL_NOT expression
                           {
                                   $$ = node($2, cs("N"), END_NODE);
                           }
                   | expression BOOL_AND alloc_macro pop_nesting expression
                           {
                                   ssize_t n = node(cs("R"), $5, END_NODE);
                                   emit_macro($3, n);
                                   $$ = node($1, cs("d0!="), $3, END_NODE);
                           }
                   | expression BOOL_OR alloc_macro pop_nesting expression
                           {
                                   ssize_t n = node(cs("R"), $5, END_NODE);
                                   emit_macro($3, n);
                                   $$ = node($1, cs("d0="), $3, END_NODE);
                           }
                   | expression EQUALS expression
                           {
                                   $$ = node($1, $3, cs("G"), END_NODE);
                           }
                   | expression UNEQUALS expression
                           {
                                   $$ = node($1, $3, cs("GN"), END_NODE);
                           }
                   | expression LESS expression
                           {
                                   $$ = node($3, $1, cs("("), END_NODE);
                           }
                   | expression LESS_EQ expression
                           {
                                   $$ = node($3, $1, cs("{"), END_NODE);
                           }
                   | expression GREATER expression
                           {
                                   $$ = node($1, $3, cs("("), END_NODE);
                           }
                   | expression GREATER_EQ expression
                           {
                                   $$ = node($1, $3, cs("{"), END_NODE);
                         }                          }
                 ;                  ;
   

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19