%{ /* In der Vorlesung am 17.12.2007 gemeinsam erstellte Loesung fuer die * konfliktfreie Erkennung von if-then-else-Ausdruecken mit lex und yacc. */ #include #define YYERROR_VERBOSE void yyerror(char *); %} %verbose %token IF THEN ELSE EXPR ILLEGAL_CHAR %% statement: ifThenStatement | ifThenElseStatement ; ifThenStatement: IF EXPR THEN statement | IF EXPR THEN ifThenElseStatement ELSE ifThenStatement ; ifThenElseStatement: IF EXPR THEN ifThenElseStatement ELSE ifThenElseStatement | other ; other: EXPR ; %% void yyerror(char *msg) { printf("\n%s\n", msg); } int main() { return yyparse(); }