ppc: eq (codea_abgabe_ak.0)
[uebersetzerbau-ss10.git] / parser / parser.y
index 2618f192e6ebdc24314272949f0042e53d2400f1..4031e7b4086e0d01718a3442ca9ba7866000c56a 100644 (file)
@@ -5,7 +5,7 @@
 
 %start Program
 %token STRUCT END METHOD VAR IF THEN ELSE WHILE DO RETURN NOT OR THIS
-%token IDENT NUM ASSIGN
+%token IDENT NUM
 
 %%
 
@@ -34,8 +34,8 @@ Statseq:
        ;
 
 Statement:
-         Lexpr ASSIGN Expr
-       | VAR IDENT ASSIGN Expr
+         Lexpr ':=' Expr
+       | VAR IDENT ':=' Expr
        | Expr
        | IF Expr THEN Statseq END
        | IF Expr THEN Statseq ELSE Statseq END
@@ -51,16 +51,16 @@ Lexpr:
 Expr:
          Term
        | NOT Term
-       | Term Plusterm
+       | Term Minusterm
        | Term Multerm
        | Term Orterm
        | Term '<' Term
        | Term '=' Term
        ;
 
-Plusterm:
-         '+' Term Plusterm
-       | '+' Term
+Minusterm:
+         '-' Term Minusterm
+       | '-' Term
        ;
 
 Multerm:
@@ -81,17 +81,14 @@ Term:
        | THIS
        | IDENT
        | Term '.' IDENT
-       | Methcall
-       ;
-
-Methcall:
-         IDENT '(' Exprs ')'
+       | IDENT '(' Exprs ')'
        | Term '.' IDENT '(' Exprs ')'
        ;
 
 Exprs:
-         Expr
-       | Exprs ',' Expr
+         Expr ',' Exprs
+       | Expr
+       |
        ;
 
 %%
@@ -101,7 +98,7 @@ extern int yylineno;
 
 int yyerror(char *error_text)
 {
-       fprintf(stderr,"Line %i: %s\n", yylineno, error_text);
+       fprintf(stderr,"Zeile %i: %s\n", yylineno, error_text);
        exit(2);
 }