%{ #define YYERROR_VERBOSE void yyerror(char *); %} %verbose %token COMMAND ID KEYWORD ILLEGAL_CHAR %% rule: COMMAND '(' KEYWORD ')' '(' ID ')' | COMMAND '(' ID ')' ; %% void yyerror(char *msg) { printf("\n%s\n", msg); } int main() { return yyparse(); }