読者です 読者をやめる 読者になる 読者になる

文脈依存字句解析

改行で式が終わるパーサを書きたいけどよく分からない
式の明らか途中なら次行に継続したい
なんかの本に状態付き字句解析だか文脈依存字句解析ってのってた気がする…?

stmt : expr eol
expr : var
     | expr '+' expr
var : VAR
eol : {フラグ立てる} EOL {フラグ下ろす}

これだと行けそうな気がしたけどダメだった
var : VAR . の時点でフラグ立てて先読みEOLを読まないと行けない
でも実際には先読みEOLじゃないと無名アクション実行してくんない
万が一無名アクションを実行しちゃうと先読み'+'でフラグを戻さないといけない

うーん
lex側から遷移テーブル参照する方が楽かしら?