字句解析・構文解析

有名なパーサジェネレーターライブラリを用いて字句解析と構文解析を実装しました.現在それぞれplex, lalrpopしかメンテナンスされていませんが,今後複数のバックエンドをサポートする可能性があります.

対応予定/済のバックエンド:

クレート名対応状況
lexer: plex対応済み
lexer: logos未対応
parser: lalrpop対応済み
parser: peg対応遅れ
parser: parol未対応

構文解析の時点では,Setの左辺には任意の式が来て良いものとしています.これにより,ref <- 0のような入力に対して専用のエラーメッセージを発行できる他,パーサジェネレーターの定義を簡単に保つことができます.

.mliファイルを構文解析する機能も同じクレートに含まれています.