ANTLR4 имена целевых файлов - PullRequest
1 голос
/ 02 мая 2020

Для цели TypeScript ANTLR , над которой мы с Сэмом работали, я хотел бы, чтобы инструмент генерирования кода создал один файл машинописного текста для хранения всех классов, сгенерированных из именованного ввода грамматики. Будет ли сложна эта структура выходного файла?

Так, например, я бы хотел Expr.g4 -> Expr.g4.ts . Этот файл TypeScript может содержать именованные экспорты для классов {ExprLexer, ExprParser, и ExprListener}, код посетителя по запросу, может быть, даже некоторые незавершенные фабричные функции и т. Д. c.

Я искал исходный код в tool / src / org / antlr / v4 / codegen , чтобы узнать, как определяется количество и имена выходных файлов, в частности находка CodeGenPipeline. java, Этот класс работает в сочетании с целевым классом c, определяемым языком, но конвейер имеет много (возможно, слишком много) знаний о возможных выходных файлах, встроенных в него. Ничего из того, что я вижу в CodeGenPipeline. java, кажется, не соответствует моей файловой модели ввода-вывода 1: 1.

Похоже, знание того, какие файлы должны быть сгенерированы для данной языковой цели должен исходить из файла language.stg , если это возможно, но я не могу найти никаких доказательств того, что подход был реализован. Может ли кто-нибудь объяснить мне, по каким причинам этот подход не был опробован или не сработал?

...