%{ #include extern void yyerror(char*); %} %token START KLART ENHET STRANG TAL %define parse.error verbose %start kop %% kop : START varurader KLART ; varurader : varurad varurader | /* empty */ ; varurad : TAL optional_enhet STRANG ; optional_enhet : ENHET | /* empty */ ; %% int main() { printf("Mata in ett köp. Avsluta med EOF.\n"); yyparse(); printf("Klart!\n"); return 0; } void yyerror(char *s) { printf("Ogiltigt köp! Felmeddelande: %s\n", s); } int yywrap(void) { return 1; }