Я понимаю, что этот вопрос немного мета, но я принципиально хочу разобрать грамматику ANTLR4 (фактический .g4 файл) генерировать документацию и другие артефакты , основанные на грамматика (не экземпляр грамматики).Синтаксического файл G4 для создания DOC/схем
Для примера рассмотрим example Java grammar, содержащий это правило:
compilationUnit
: packageDeclaration? importDeclaration* typeDeclaration* EOF
;
Я хочу, чтобы иметь возможность анализировать файл Java.g4 и выпуск документации, которая говорит «А compilationUnit содержит необязательный packageDeclaration, 0 или больше importDeclarations и 0 или более типовDeclarations ". Или, возможно, я хочу создать XSD с типом данных, называемым «compilationUnit», который содержит элементы «packageDeclaration», «importDeclaration» и «typeDeclaration» (с надлежащим набором мощности).
Каков наилучший способ добиться чего-то подобного? Создать цель (хотя цель состоит не в создании лексеров/парсеров), а в использовании файла example antlr4 grammar для анализа файла g4, или это что-то еще?
Спасибо!
Я думаю, что типичное использование ANTLR заключается в анализе файла, который _conforms_ в грамматике, а не для анализа самого файла грамматики (g4). Например, типичное использование - использовать Java.g4 для анализа файла Java, но я хочу, чтобы непосредственно разбирать Java.g4. Существует пример ANTLR-грамматики, которую я мог бы использовать, но на самом деле это не часть проекта ANTLR4, поэтому я не уверен, насколько он действителен. Знаете ли вы о официальном файле g4, представляющем фактическую грамматику ANTLR4 для определения грамматик? –
Грамматика ANTLR4 в github.com/antlr/grammars-v4' полностью соответствует ANTLR 4.5. Я использую его для анализа других грамматик Antlr - он используется как основа для AntlrDT, редактора грамматики Eclipse ANTLR. – GRosenberg
Отлично. Спасибо огромное! Тогда я возьму тот же подход! –