如何使用方法将 ANTLR 语法翻译器写入 return a java class?

How to write ANTLR grammar translator to return a java class with methods?

我正在尝试编写输出 java 方法的 ANTLR 语法。 IE。 我为以下公式编写了语法:

expr("L") + expr("R")

我希望我的语法翻译器在翻译后使用以下方法 return a java class:

public class FormulaExecutor(){

    public Double formula1234(FormulaAPI apiReference) {
        return apiReference.evaluateResult("L") + apiReference.evaluateResult("R") ;
    }
}

expr("L") 的翻译应该生成 apiReference.evaluateResult("L") 行,expr("R") 应该生成 apiReference.evaluateResult("R") 并且输出应该像 class 和上面的可执行方法。

如何在翻译过程中实现这一点?我见过翻译器 returning 双精度值或字符串值,但没有看到翻译器 returning a class 本身和可执行方法。

想法是这个 class 翻译器 return 将被编译为字节码,供使用它的程序使用。

额外信息:上面代码中引用的classFormulaAPI是这样的。 class 已经在语法之外定义了。

public class FormulaAPI(){

     public Double evaluateResult(String input){
        Double d = <value obtained from DB based on input string>;
        return d;
     }
}

好像是想用某种表达式语法(网上有很多例子),生成:

1) class声明的开头:

public class FormulaExecutor{

    public Double formula1234(FormulaAPI apiReference) {
        return 

2) 翻译后的表达式

3) class声明结束:

;
    }
}

翻译后的表达式与输入表达式相同,除了 expr(<subexpression>) 将被翻译为 apiReference.evaluateResult(<subexpression>)