0
所以我正在编写一个java编译器,将我自己的语言翻译成CUDA语言。为了这个任务,我在ANTLR4中编写了一个语法,得到一个词法分析器和解析器。简化编译器的类结构
现在,ANTLR给了我一个Listener的可执行方法,它们基本上都是抽象分析树中的节点。然后,我根据此节点上的令牌,用我想要生成的代码修饰此树。
我的问题是,我有45个方法在这个CUDAEmitter类和830行代码。我正在努力弄清楚如何构建和划分这些方法。我用这3个装饰我的节点:代码生成的
private final ParseTreeProperty<String> cuda = new ParseTreeProperty<String>();
String getCode(ParseTree ctx) { return cuda.get(ctx); }
void setCode(ParseTree ctx, String s) { cuda.put(ctx, s); }
例如:
public void exitIdvalString(ParmaParser.IdvalStringContext ctx) {
String str = ctx.STRING().getText();
setCode(ctx, str);
}
我怎么去分裂这个类?谢谢你的时间!
我如何在Linux中生成?似乎没有run.bat文件 – Saph