前提・実現したいこと
yaccで四則演算の定義を行ったのですが、掛け算が足し算、引き算よりも優先的に実行されるようにするにはどうすればいいでしょうか。
該当のソースコード
yacc
1%token NUM; 2%% 3explist : 4| explist expr '\n' { printf("%d\n", $2); } 5; 6expr : prim { $$ = $1; } 7| expr '+' prim { $$ = $1 + $3; } 8| expr '-' prim { $$ = $1 + $3; } 9| expr '*' prim { $$ = $1 * $3; } 10; 11prim : NUM { $$ = atoi(yytext); } 12|'(' expr ')' { $$ = $2; } 13; 14
試したこと
% ./a.out
(1 + 2) * (3 + 1)
12
1 + 2 * 3 + 1
10
このように前から順に計算されます。通常の四則演算のように掛け算が先に行われるにはどうしたらよいでしょうか
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。