projects
/
uebersetzerbau-ss10.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
codea: a-b-c-d sollte jetzt passen... trick: a-b-c-d = a-(b+c+d)
[uebersetzerbau-ss10.git]
/
parser
/
parser.y
diff --git
a/parser/parser.y
b/parser/parser.y
index c76131f8e7b202c11cae7dd6c87513d4ca2cb6fc..4031e7b4086e0d01718a3442ca9ba7866000c56a 100644
(file)
--- a/
parser/parser.y
+++ b/
parser/parser.y
@@
-5,7
+5,7
@@
%start Program
%token STRUCT END METHOD VAR IF THEN ELSE WHILE DO RETURN NOT OR THIS
%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:
;
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
| Expr
| IF Expr THEN Statseq END
| IF Expr THEN Statseq ELSE Statseq END
@@
-81,17
+81,14
@@
Term:
| THIS
| IDENT
| Term '.' IDENT
| THIS
| IDENT
| Term '.' IDENT
- | Methcall
- ;
-
-Methcall:
- IDENT '(' Exprs ')'
+ | IDENT '(' Exprs ')'
| Term '.' IDENT '(' Exprs ')'
;
Exprs:
| Term '.' IDENT '(' Exprs ')'
;
Exprs:
- Expr
- | Exprs ',' Expr
+ Expr ',' Exprs
+ | Expr
+ |
;
%%
;
%%
@@
-101,7
+98,7
@@
extern int yylineno;
int yyerror(char *error_text)
{
int yyerror(char *error_text)
{
- fprintf(stderr,"
Lin
e %i: %s\n", yylineno, error_text);
+ fprintf(stderr,"
Zeil
e %i: %s\n", yylineno, error_text);
exit(2);
}
exit(2);
}