From 33437225faa005d41bdd807c3a9e4f9a397747e7 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Sat, 8 May 2010 21:48:00 +0200 Subject: [PATCH] codea: thx @ snafu: 'globale' offsets fuer structs war bloedsinn --- codea/parser.y | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/codea/parser.y b/codea/parser.y index 01ff3cf..d1e6024 100644 --- a/codea/parser.y +++ b/codea/parser.y @@ -39,8 +39,8 @@ @attributes { char *name; } IDENT @attributes { long val; } NUM @attributes { struct symbol *f; int paramges; int parms; } Parms -@attributes { struct symbol *f; int soffset; } Program -@attributes { struct symbol *f; int soffset; int offsetcount; } FeldID Structdef +@attributes { struct symbol *f; } Program Structdef; +@attributes { struct symbol *f; int offsetcount; } FeldID @attributes { struct symbol *s; } Methoddef @attributes { struct symbol *s; int gparamges; } Statseq Exprs @attributes { struct symbol *s; int gparamges; struct treenode *node; int exprcount; } Expr Minusterm Multerm Orterm Feld Term @@ -56,7 +56,6 @@ Input: Program @{ @i @Program.f@ = tab_new(); - @i @Program.soffset@ = 0; @gen @revorder(1) printf("\t.text\n"); @} ; @@ -66,14 +65,11 @@ Program: @{ @i @Methoddef.s@ = @Program.0.f@; @i @Program.1.f@ = @Program.0.f@; - @i @Program.1.soffset@ = @Program.0.soffset@; @} | Structdef ';' Program @{ @i @Program.1.f@ = tab_merge(@Program.0.f@, @Structdef.f@, 1); - @i @Structdef.offsetcount@ = @Program.0.soffset@; - @i @Program.1.soffset@ = @Structdef.soffset@; @} | ; @@ -92,8 +88,7 @@ Structdef: STRUCT FeldID END @{ @i @Structdef.f@ = @FeldID.f@; - @i @FeldID.offsetcount@ = @Structdef.offsetcount@; - @i @Structdef.soffset@ = @FeldID.soffset@; + @i @FeldID.offsetcount@ = 0; @} ; @@ -117,15 +112,12 @@ FeldID: IDENT FeldID @{ @i @FeldID.1.offsetcount@ = @FeldID.0.offsetcount@ + 1; - @i @FeldID.0.soffset@ = @FeldID.1.soffset@; - /* TODO: offset hier verwenden */ @i @FeldID.0.f@ = tab_add_symbol(@FeldID.1.f@, @IDENT.name@, S_FIELD, 1, -1, @FeldID.0.offsetcount@); @} | @{ @i @FeldID.f@ = tab_new(); - @i @FeldID.soffset@ = @FeldID.offsetcount@; @} ; -- 2.25.1