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