C# Evaluator

折角、svnからMonoをビルドしたのでC# Evaluatorをいじってみます。

// vim:set ts=4 sts=4 sw=4: 
using System;
using Mono.CSharp;

class Program 
{
    public static void Main(string[] args)
    {
        var val = Evaluator.Evaluate("10 + 20;");
        Console.WriteLine (val);
    }
}

これをeval.csとかで保存して、

$ gmcs /r:Mono.CSharp.dll eval.cs
$ mono eval.exe
30

使えますね。

これをMS風にいうとCompiler as a Serviceって呼ぶんでしたっけ。MS側の実装はC#5.0待ちでしょうから、まだまだ先の話ですね。