MLLex と MLYacc を Poly/ML に移植

移植

MLLex と MLYacc を Poly/ML で使えるように移植しました。
移植と言うよりは使える状態のリポジトリを作って Makefile とか書きましたというだけですが、やはりこの二つは重要なので使える状態で維持したいですね。


移植先のリポジトリeldesh/mllex-polymleldesh/mlyacc-polyml です。
どちらも MLton のリポジトリから持ってきたもので、ドキュメントなどもビルド出来るようにはしてますが中身はそのままです。

インストール

以下のようにしてインストール出来ます。

$ make install PREFIX=~/.sml/polyml/5.8.1

他の処理系向けのコマンドと区別が付かないので、実行コマンド名はそれぞれ mllex-polymlmlyacc-polyml としてあります*1

SML/NJ では mlyacc-lib.cm が提供されていたりするので今回の移植版でもライブラリをインストールします。

Poly/ML のパーサ事情

他の SML 処理系は大抵 mllex/mlyacc を使ってパーサが書いてあります。このため実装がそれぞれの内部に mllex と mlyacc を抱え込んでます。
一方 Poly/ML は全部手書きパーサで頑張ってますので独立した lex/yacc を持っていないため移植する必要がありました。

*1:mllex と mlyacc にシンボリックリンク張るとかしてもいいかも?