もう一度修正。再帰を削除し、中置式のコードを記述した後: 優先度チェックも含まれ、再帰文法も開始非端末もエラー メッセージもありません。
%{
#include<stdio.h>
%}
%token ALPHA NUMBER PLUS MINUS MUL DIV LPAR RPAR
%%
expr : expr PLUS term { printf("its an infix expression"); }
| expr MINUS term
| term
;
term : term MUL factor
| term DIV factor
| factor
;
factor : LPAR expr RPAR
| NUMBER
| ALPHA
;
%%
main()
{
yyparse();
}
int yyerror (char *s)
{
printf("Not an infix expression");
}
これで大丈夫ですか?