IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

空のルールの取り扱い

空のルールの取り扱いが分かってきた。

  • 空のルールがある場合は、 goto 先の状態が、更に空のルールを含む終端で goto する可能性がある場合、更にその先の先読みトークンをマージする。
    • つまり、 goto 先の状態が、更に空のルールで goto するものの goto -> goto のグラフを構築し、先読みトークンの推移閉包を取る
  • reduction する直前(空の終端の場合は、その更に直前も含む)の goto と reduction 後の goto がある場合、更にその先の先読みトークンをマージする。
    • つまり、 reduction する直前の goto と reduction 後の goto のグラフを構築し、先読みトークンの推移閉包を取る

こうやって、二回推移閉包を取ると空のルールを解決できる。