yaccやbison使うのってなんかなぁって気がして・・・

そう、なんか手で書いていったほうがパーサーは早そうな気がする。
でも、FSMが完結していなくて穴をあけるのは嫌だなという気がする。
自分でなんらかの定義式を作ってそれを元にどうにかこうにか出来ないものだろうかと感じた。


とりあえず、そんな理想を妄想するのは自由だから以下に妄想してみようと思う。
例えばC言語のような(は)と対でないといけないという規則がある。


expression_define("(" ,
next(//次に来て良い条件(次の状態に行ってよい条件)
alphabet(),
numeric(),
c_individual_expression(),// ! とか ^とか~とか
)
not_next(//次に来てはいけない条件(次の状態に行ってはダメな条件)
c_equation_expression()// == とか < とか != とか >=とか
)
)
こんな感じで、後はこれらによる別の状態への通り道やエラーハンドリング等が必要なわけだが・・・
うーむ、後はどうしようか・・・