Dragon Book で説明されている正規表現から DFA への直接変換アルゴリズムに基づいて、正規表現ベースの字句解析ジェネレーターを作成しています。
nullable
、firstpos
、lastpos
、およびfollowpos
連結ノード、交互ノード、およびクリーネスター ノードの関数を計算します。+
(1 回以上) および?
(0 回または 1回)の数量詞を追加したい。
nullable
、firstpos
、lastpos
は簡単に計算できますが、 についてはよくわかりませんfollowpos
。これらの量指定子を構文解析段階の一部として実装せず、代わりに字句解析段階で書き直す方がよいでしょうか (これは kleene-star とオルタネーションに対する「構文糖衣」にすぎないと思います)。