[英]How Execute it On JVM ? (Lexer & Parser with Antlr)
我想在JVM上创建自己的编程语言
第一步,我尝试编写非常简单的语句(添加例如3 + 7)
所以我用Antlr创建了一个词法分析器和解析器
grammar gr;
formula : Digit Add Digit Equal;
Digit
: '0'..'9'
;
Add : '+';
Equal : '=';
WS : [\t\r\n]+ -> skip ;
然后
Antlr生成了Lexer,Parser和Listener
我用过
import java.io.IOException;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
public class gr {
public static void main(String[] args) throws IOException {
String str = "7+8=";
ANTLRInputStream input = new ANTLRInputStream(str);
grLexer lexer = new grLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
grParser parser = new grParser(tokens);
ParseTree tree = parser.formula();
System.out.println(tree.toStringTree(parser));
}
}
结果:
(formula 7 + 8 =)
现在我的问题是在这里!
我如何在JVM上执行这一行(7 + 8 =)? (获得结果15)
似乎我必须使用ASM库? 是的???
如果您的回答是肯定的,请帮助我提供非常简单的示例
请指导我如何使用JVM创建自己的语言
看一下另一个有关发出和运行Java字节码的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.