2008-05-22 空のルールの取り扱い C++ 空のルールの取り扱いが分かってきた。 空のルールがある場合は、 goto 先の状態が、更に空のルールを含む終端で goto する可能性がある場合、更にその先の先読みトークンをマージする。 つまり、 goto 先の状態が、更に空のルールで goto するものの goto -> goto のグラフを構築し、先読みトークンの推移閉包を取る reduction する直前(空の終端の場合は、その更に直前も含む)の goto と reduction 後の goto がある場合、更にその先の先読みトークンをマージする。 つまり、 reduction する直前の goto と reduction 後の goto のグラフを構築し、先読みトークンの推移閉包を取る こうやって、二回推移閉包を取ると空のルールを解決できる。