29 lines
584 B
Plaintext
29 lines
584 B
Plaintext
|
%{
|
||
|
#include <stdio.h>
|
||
|
extern int yylineno;
|
||
|
%}
|
||
|
|
||
|
%token Variable
|
||
|
%token Integer
|
||
|
%token Ident
|
||
|
%token Number
|
||
|
|
||
|
%%
|
||
|
program: decllist exprlist;
|
||
|
decllist: decl ';' | decllist decl ';' | /* empty */ | error ';' { yyerror(" im Deklarationsteil\n"); };
|
||
|
decl: Variable idlist ':' type;
|
||
|
idlist: Ident | idlist ',' Ident;
|
||
|
type: Integer;
|
||
|
exprlist: /* empty */ ;
|
||
|
%%
|
||
|
|
||
|
int main() {
|
||
|
printf("Bitte geben Sie ein Program ein: \n");
|
||
|
yyparse();
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int yyerror(char *s) {
|
||
|
printf("YACC/[ERR] >>> Failed parsing grammar (%d): ```%s```", yylineno, s);
|
||
|
}
|