Итак, я пишу компилятор в Java, который переводит мой язык на язык CUDA. Для этой задачи я написал грамматику в ANTLR4, получив лексер и парсер.Упрощение структуры класса компилятора
Теперь ANTLR дает мне прослушиватель с реализуемыми методами, которые в основном являются узлами абстрактного дерева синтаксического разбора. Затем я украшаю это дерево кодом, который хочу сгенерировать, на основе токенов на этом узле.
Моя проблема заключается в том, что у меня есть 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