X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=codea%2Fparser.y;h=0622a80543d273d1eb5baf067d872460300de05f;hb=f099a294f64b898e145c535b45de00895c8fbbd7;hp=3703614027712f99d6cb26e9a95f4767bf8fccd2;hpb=f32813c7bf6a93f526c3e88ed16e0102270df12e;p=uebersetzerbau-ss10.git diff --git a/codea/parser.y b/codea/parser.y index 3703614..0622a80 100644 --- a/codea/parser.y +++ b/codea/parser.y @@ -29,7 +29,8 @@ @attributes { struct symbol *f; int parms; } Parms @attributes { struct symbol *f; } FeldID Structdef Program @attributes { struct symbol *s; } Methoddef Statseq Exprs -@attributes { struct symbol *s; struct treenode *node; } Lexpr Expr Minusterm Multerm Orterm Term Feld +@attributes { struct symbol *s; struct treenode *node; } Expr Minusterm +@attributes { struct symbol *s; struct treenode *node; } Lexpr Multerm Orterm Term Feld @attributes { struct symbol *sin; struct symbol *sout; struct treenode *node; } Statement @traversal @postorder c @@ -206,6 +207,7 @@ Expr: @reg {@Term.node@->reg = @Expr.node@->reg; @Minusterm.node@->reg = next_reg(@Term.node@->reg, @Expr.node@->skip); + fprintf(stderr, "2at-expr_: Term.node \"%s\", Minusterm.node \"%s\"\n", @Term.node@->reg, @Minusterm.node@->reg); } @} @@ -233,16 +235,19 @@ Expr: Minusterm: '-' Term Minusterm @{ - @i @Minusterm.node@ = new_node(O_SUB, @Minusterm.1.node@, @Term.node@); + @i @Minusterm.node@ = new_node(O_ADD, @Minusterm.1.node@, @Term.node@); @reg { @Minusterm.1.node@->reg = @Minusterm.node@->reg; @Term.node@->reg = next_reg(@Minusterm.1.node@->reg, @Minusterm.node@->skip); + fprintf(stderr, "0at-minusterm_: Minusterm.node \"%s\", Minusterm.1.node \"%s\", Term.node \"%s\"\n", @Minusterm.node@->reg, @Minusterm.1.node@->reg, @Term.node@->reg); } @} | '-' Term @{ - @reg @Term.node@->reg = @Minusterm.node@->reg; + @reg @Term.node@->reg = @Minusterm.node@->reg; { + fprintf(stderr, "1at-minusterm_: Minusterm.node \"%s\", Term.node \"%s\"\n", @Minusterm.node@->reg, @Term.node@->reg); + } @} ;