codea: equal
[uebersetzerbau-ss10.git] / codea / parser.y
index c64007e30c4605f52319190f7afbabbd0fc3a66a..736cb233a8aa3073ab0547a7608bbfb493dfe4e8 100644 (file)
@@ -259,14 +259,24 @@ Expr:
 
        | Term '<' Term
          @{
-           @i @Expr.node@ = TREENULL;
                @i @Expr.exprcount@ = @Term.0.exprcount@ + @Term.1.exprcount@; fprintf(stderr, "(Expr)- Term < Term\n");
+           @i @Expr.node@ = new_node(O_LESS, @Term.0.node@, @Term.1.node@, @Expr.exprcount@);
+
+               @reg {
+                       @Term.0.node@->reg = @Expr.node@->reg;
+                       @Term.1.node@->reg = next_reg(@Term.0.node@->reg, @Expr.node@->skip, @Expr.gparamges@);
+               }
          @}
 
        | Term '=' Term
          @{
-           @i @Expr.node@ = TREENULL;
                @i @Expr.exprcount@ = @Term.0.exprcount@ + @Term.1.exprcount@; fprintf(stderr, "(Expr)- Term = Term\n");
+           @i @Expr.node@ = new_node(O_EQ, @Term.0.node@, @Term.1.node@, @Expr.exprcount@);
+
+               @reg {
+                       @Term.0.node@->reg = @Expr.node@->reg;
+                       @Term.1.node@->reg = next_reg(@Term.0.node@->reg, @Expr.node@->skip, @Expr.gparamges@);
+               }
          @}
        ;