SParser-2.3

http://fhuman.esys.tsukuba.ac.jp/~nozom/SParser-2.3.zip

主な変更点:

  • Evaluatorを導入して、各オブジェクトの持っていたeval()をEvaluatorに集約した
  • quasiquote(`)、unquote(,)、unquote-splicing(,@)を実装
  • let、lambdaで新しい変数束縛が作られない大バグを修正
  • 組み込み関数を、CORE::プリフィックスを付けて呼び出せるようにした(ユーザ定義関数で組み込み関数をオーバーロードできるように)

Evaluatorの導入は来るべきコンパイラの実装に備えて。continuationがあるせいで、quasiquoteを実装するのは非常にややこしかった。どっかにバグがあるかも。