- 492 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 16:23:51.40 ID:5kOZtFPy0.net]
- >>482
再帰的下向きコンパイラ見たいな構造で、expressionに、乗算2つ入ってます。 %prec を排除して文法作ってましたが、曖昧な表現が衝突の原因っぽいですね。 文法修正してみます。ありがとうございました。 expression : term1 | expression "||" term1 {$$=省略;} ; term1 : term2 | term1 "&&" term2 {$$=省略;}; 省略 ... term7 : term8 | term7 '+' term8 {$$=省略;}; term7 '-' term8 {$$=省略;}; term8 : factor | term8 '*' factor {$$=省略;} | term8 '/' factor {$$=省略;} | term8 '%' factor {$$=省略;} factor: '-' factor {$$=省略} // -xxの時 NEGの処理 | '*' factor {$$=省略;} // *xxの時 ポインターの処理 | '(' expr '){ $$ = $2; } // () | func // 関数呼び出し | value // 変数 | number { $$ = $1; }// 数値 ;
|

|