%{ #include extern void yyerror(char*); %} %token BORJADE GODISRUNDAN SEMIKOLON BUS GODIS KOLON ORD GICK HEM %define parse.error verbose %start godisrunda %% godisrunda : BORJADE GODISRUNDAN SEMIKOLON busellergodislista GICK HEM SEMIKOLON ; busellergodislista: busellergodis busellergodislista | /* empty */ ; busellergodis : BUS KOLON ordlista SEMIKOLON | GODIS KOLON ordlista SEMIKOLON ; ordlista : ORD | ORD ordlista ; %% int main() { printf("Mata in en godisrunda. Avsluta med EOF.\n"); yyparse(); printf("Klart!\n"); return 0; } void yyerror(char *s) { printf("Ogiltig godisrunda! Felmeddelande: %s\n", s); } int yywrap(void) { return 1; }