2011-04-01から1ヶ月間の記事一覧

関数型のテンプレートエンジンを作ってみる(0.2.3) - 実行系を書く

前回の続きで、テンプレートエンジンのエンジン部分を書く。 今回実装したところまでをVers_0.2というブランチにしてみた。 方針 0.1の時点ではモナド則とか考えたけど、あんまり純粋さには拘らない。 パース結果をASTとして実行部分は別個に評価器として実…

関数型のテンプレートエンジンを作ってみる(0.2.2) - パーサを書く

前回の続きで、前回作ったトークナイザからパーサを書く。パーサの作成には引き続きJParsecのライブラリを使用する。 おさらい&今日のミッション 前回作ったnewTokenizer(Terminals)で生成するトークナイザ(字句解析部)は、Stringを受け取りListを生成するP…

関数型のテンプレートエンジンを作ってみる(0.2.1) - パース用のトークナイザを書く。

関数型のテンプレートエンジンを作ってみる(0.2) - スコープ・変数定義の導入 - terazzoの日記で定義したタグのパーサを書く。 パーサの実装にはJparsec*1を使用する。シンボルと属性名はJparsecに用意されているTerminals.Identifierを、属性値のExpression…

関数型のテンプレートエンジンを作ってみる(0.2) - スコープ・変数定義の導入

前回は、テンプレート中のプレースホルダ(変数)を置き換える部分を作ったので、次はテンプレート中で変数を定義できるようにする。また、変数の有効な範囲(スコープ)を明確にする。スコープは静的スコープにしたい。 要素がプレースホルダだけなら単純に「{…