ocamllexとocamlyaccでパーサを書く
字句解析器生成器ocamllex
正規表現で定義を.mllに書く
定義からlexerを生成する
生成されたlexerに文字列なりファイルなりを読ませるとtokenizeが完了する
構文解析器生成器
ocamlyacc
.mlyで以下の定義をする
字句
ocamllexで.mllに書いたのとほぼ同じ
先頭記号とその型
文法定義と評価規則
.ml .mliを生成する
先頭記号名の関数が定義される
この関数は字句解析器(lexer関数)と文字バッファを受け取る
ocamlyaccとほぼ互換
新しい
ocamllexとocamlyaccそれぞれで生成したtoken定義は同じだと認識されない
.mll .mlyどちらかにもう一方を参照するようにしたい
たとえばopen Calc_parseとしてcalc_parse.ml内の定義を参照する