私はこのようなルールを持っています:
A --> a B C d
ここで、 a, d
は終端記号であり、B, C
は非終端記号です。
B --> a1 | a2 | a3
C --> a4 | a5 | a6
私はバイソンでこのルールを書いています:
my_rule:
a B C d { handler->handle_B_C(handle_B($2), handle_C($3)); }
B :
a1 { $$ = ONE; }
| a2 { $$ = TWO; }
| a3 { $$ = THREE; }
;
C:
a4 { $$ = FOUR; }
| a5 { $$ = FIVE; }
| a6 { $$ = SIX }
このルールを次のように書きたいと思います。
A --> a B
A --> errorCase
B --> a1 C | a2 C | a3 C
B --> errorCase
C --> a4 D | a5 D | a6D
D --> d
D -->errorCase
しかし、バイソンでの書き方がわかりません。バイソンで書くのを手伝ってくれる人はいますか?(B と D の値を取得する方法がわかりません)