空のルールがあるとき、どうしよう
こんなやつがあったら
maybe_space:
/* Empty */
| maybe_space WHITESPACE
;
どうしようどうしよう。
考えながら書く
使うときは
hoge: maybe_space fuga | piyo ; fuga: '1'; piyo: '0';
みたいな感じ
たとえば
パーサの状態が以下のような感じだったら
. maybe_space fuga . piyo
WHITESPACE トークンが来たら
maybe_space . fuga
こうなる
'0' トークンが来たら
'0' .
こうなる
他のが来てたら、そのトークンに行く前に maybe_space をリデュースすればいいのか。
ってことは、
先読みが必要だな。
次が空のルールの可能性がある場合は先読みが必要
ほんとかなあ。おい
違うっぽいなあ
そもそもいままでのやり方だったら
maybe_space:
/* Empty */
| maybe_space WHITESPACE
;
の最初のトークンとか分からんな
あ、違う違う混乱してきた