使用Java创建元语言

Igo*_*pov 0 java metaprogramming

伙计们!我需要创建某种元语言,我可以将其嵌入XML中,然后用Java进行解析.例如:

<code>
    [if value1>value2 then "Hello, Bob!" else "Hello, Jack"]
</code>
Run Code Online (Sandbox Code Playgroud)

要么

 <code>
     [if value1+2>value2 return true]
 </code>
Run Code Online (Sandbox Code Playgroud)

我需要实现条件语句,算术.

我应该从哪里开始寻找建议?

Tom*_*icz 7

Java有一个内置的JavaScript解释器:

ScriptEngine jsEngine = new ScriptEngineManager().getEngineByName("JavaScript");
jsEngine.put("value1", 8);
jsEngine.put("value2", 9);
String script = "if(value1 + 2 > value2) {'Foo'} else {'Bar'}";
final Object result = jsEngine.eval(script);
System.out.println(result);  //yields "Foo" String
Run Code Online (Sandbox Code Playgroud)

当然,你可以自由地都加载脚本从你需要的地方,并与任何上下文提供它(valuevalue2在这个例子中)你想要的.

另请参阅Java平台的脚本文章.


Ish*_*tar 5

这里的用户Bart Kiers。编写了有关使用ANTLR用Java创建简单语言的教程