2004-10-01から1ヶ月間の記事一覧

LALRに宗旨替え

作成中の言語の文法がついにLL(k)パーサーで受理できなくなったので、LALR(1)パーサーへと移行した。いくつかのパーサージェネレータを使ってみた結果、monoのC#コンパイラの作成に使われていたC#対応jayを使うことにした(オリジナルのjayはここ)。jayを使う…

型推論とエラーメッセージの可読性

先週の土日を使って、型推論アルゴリズムを実装してみた。id:kkanda:20041004でLLパーサーのエラーメッセージは分かり易くて良いという話をしたが、型推論アルゴリズムを導入した瞬間すべてがぶち壊しになったorz 型推論アルゴリズムとは、制約条件を満たす…

LLパーサのエラー処理に感動

最近VS2005で、関数型言語のおもちゃを作っている。現在、Type Checkerまで実装が完了している。この言語のパーサーはCOCO/RというLL(k)パーサージェネレータで生成している。パーサージェネレータといえばyaccやbisonが有名だが、これらのパーサージェネレ…