電車の中で思いつき

今朝電車ん中でなんとなく思いついたんだけど・・・LR(0)の話
それをなんとなくコードで書いてみたらperlで120行ほど・・・orz


1. BNF構文の終端情報、非終端記号両方に対してIDを振り
2. 非終端記号へのε遷移を終端記号まで延ばしマージする(nullableの解決)
3. 部分集合構成法を用いて曖昧さを解決する(この時点でreduce/reduce conflictが発生する?)
4. 非到達ノードを削除する


でけてるやん・・・(--;)
小難しく考えすぎてた、結局NFA->DFAの解決とやり口は全く一緒だ
(きっとドラゴンブックの内容がワケワカランすぎるんだわ、うちのレベルやと)
一応PGの中間結果とbyacc -vを比べたところ
やばいぐらい一致(^-^)v





あとはshift/reduce conflictとLR(0)からLR(k)やね
あーエラー復帰もあるか、めんどくさ