%start Program
%token STRUCT END METHOD VAR IF THEN ELSE WHILE DO RETURN NOT OR THIS
-%token IDENT NUM ASSIGN
+%token IDENT NUM
%%
;
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
| THIS
| IDENT
| Term '.' IDENT
- | Methcall
- ;
-
-Methcall:
- IDENT '(' Exprs ')'
+ | IDENT '(' Exprs ')'
| Term '.' IDENT '(' Exprs ')'
;
Exprs:
- Expr
- | Exprs ',' Expr
+ Expr ',' Exprs
+ | Expr
+ |
;
%%
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);
}