From: Bernhard Urban Date: Sun, 6 Jun 2010 19:14:42 +0000 (+0200) Subject: gesamt: methodenaufrufe der art 'Term.ID(...)' X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=uebersetzerbau-ss10.git;a=commitdiff_plain;h=7b22a2a8269d60132324fdfa02e16cac946f5d4b gesamt: methodenaufrufe der art 'Term.ID(...)' --- diff --git a/gesamt/parser.y b/gesamt/parser.y index 052e67f..4722ff8 100644 --- a/gesamt/parser.y +++ b/gesamt/parser.y @@ -556,7 +556,6 @@ Term: | IDENT '(' Exprs ')' @{ - /* TODO: soffset sollte eigentlich anzahl des paramcounts in Exprs + vars die existieren sein */ @i { @Term.node@ = new_call(@IDENT.name@, new_arg(new_nothing(), new_nothing(), 0) /*this*/, @Exprs.node@, @Term.gparamges@, @Term.vars_in@); @@ -569,9 +568,14 @@ Term: | Term '.' IDENT '(' Exprs ')' @{ - @i @Term.node@ = new_node(O_CALL, TREENULL, TREENULL); + @i { + @Term.node@ = new_call(@IDENT.name@, new_arg(@Term.1.node@, new_nothing(), 0) /*this*/, + @Exprs.node@, @Term.gparamges@, @Term.vars_in@); + @Term.node@->soffset = @Exprs.paramcount@; + } @i @Term.imm@ = 0; @i @Term.call@ = 1; + @reg @Exprs.node@->reg = @Term.1.node@->reg = @Term.node@->kids[0]->reg = @Term.node@->reg; @} ;