Pnuts
Pnutsは、スクリプト言語とその処理系で、現在はJavaVM上で動作するスクリプト言語です。
前から気になっていたのでevalでスクリプトを実行する簡単なもので弄ってみました。
package jp.co.abby.pnutssample; import pnuts.lang.Context; import pnuts.lang.Package; import pnuts.lang.Pnuts; public class PnutsEvalTest { public static void main(String[] args) { Context context = new Context(); Package pkg = context.getCurrentPackage(); String script1 = "result = 10 + 20"; Pnuts.eval(script1, context); Integer result = (Integer)pkg.get("result".intern()); System.out.println("script=" + script1 + "\nresult=" + result); } }
実行結果
script1=result = 10 + 20 result=30
次に、スクリプトの中の変数arg1とarg2に値を設定してみました
public class PnutsEvalTest { public static void main(String[] args) { Context context = new Context(); Package pkg = context.getCurrentPackage(); String script2 = "result = arg1 + arg2"; pkg.setConstant("arg1", new Integer(10)); pkg.setConstant("arg2", new Integer(20)); Pnuts.eval(script2, context); Integer result = (Integer)pkg.get("result".intern()); System.out.println("script2=" + script2 + "\nresult=" + result); } }
実行結果
script2=result = arg1 + arg2 result=30
正しく設定されていますね。
Pnutsは依存するjarファイルも1つだけですし、非常に簡単に試すことが出来ると思います。
時間のあるときにWebアプリケーション用の機能も触ってみようと思います。