X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=codeb%2Fparser.y;h=39cc35dbe86ea521fc84c18bcccc679ba47ae200;hb=7b8df533cad8c9a84e4da9b60f26b5109daef638;hp=62f4a4c5d2690cca64ce025d8511a260cc2c0241;hpb=57500139afeb0beeec2b91c3c790fb1d5fd861f6;p=uebersetzerbau-ss10.git diff --git a/codeb/parser.y b/codeb/parser.y index 62f4a4c..39cc35d 100644 --- a/codeb/parser.y +++ b/codeb/parser.y @@ -320,9 +320,9 @@ Expr: | NOT Term @{ - @i @Expr.node@ = new_node(O_EQ, @Term.node@, new_node(O_NULL, TREENULL, TREENULL)); + @i @Expr.node@ = new_node(O_BOOL, new_node(O_EQ, @Term.node@, new_node(O_NULL, TREENULL, TREENULL)), TREENULL); - @reg @Term.node@->reg = @Expr.node@->reg; + @reg @Term.node@->reg = @Expr.node@->kids[0]->reg = @Expr.node@->reg; @} | Term Minusterm @@ -370,22 +370,22 @@ Expr: | Term '<' Term @{ - @i @Expr.node@ = new_node(O_LESS, @Term.0.node@, @Term.1.node@); + @i @Expr.node@ = new_node(O_BOOL, new_node(O_LESS, @Term.0.node@, @Term.1.node@), TREENULL); @i @Expr.imm@ = @Term.0.imm@ && @Term.0.imm@; @reg { - @Term.0.node@->reg = @Expr.node@->reg; + @Term.0.node@->reg = @Expr.node@->kids[0]->reg = @Expr.node@->reg; @Term.1.node@->reg = next_reg(@Term.0.node@->reg, @Expr.gparamges@); } @} | Term '=' Term @{ - @i @Expr.node@ = new_node(O_EQ, @Term.0.node@, @Term.1.node@); + @i @Expr.node@ = new_node(O_BOOL, new_node(O_EQ, @Term.0.node@, @Term.1.node@), TREENULL); @i @Expr.imm@ = @Term.0.imm@ && @Term.0.imm@; @reg { - @Term.0.node@->reg = @Expr.node@->reg; + @Term.0.node@->reg = @Expr.node@->kids[0]->reg = @Expr.node@->reg; @Term.1.node@->reg = next_reg(@Term.0.node@->reg, @Expr.gparamges@); } @}