%{ /* In der Vorlesung am 18.12.2006 gemeinsam erstellte Lösung für eine * nicht mehr mehrdeutige Grammatik mit äußerer und innerer Liste. */ #include #define YYERROR_VERBOSE void yyerror(char *); %} %verbose %token ';' ',' ID ILLEGAL_CHAR %% list: outerList ';' ; outerList: /* empty */ | outerList ',' outerListItem ; outerListItem: innerList ; innerList: /* empty */ | innerList innerListItem ; innerListItem: ID ; %% void yyerror(char *msg) { printf("\n%s\n", msg); } int main() { return yyparse(); }