%{ #define YYERROR_VERBOSE void yyerror(char *); %} %verbose %token ID ILLEGAL_CHAR BOGUS /* Das Token BOGUS wird niemals benutzt. */ %% def: param_spec return_spec ',' ; param_spec: type | name_list ':' type ; return_spec: type | name ':' type | ID BOGUS ; type: ID ; name: ID ; name_list: name | name ',' name_list ; %% void yyerror(char *msg) { printf("\n%s\n", msg); } int main() { return yyparse(); }