[英]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.