Я расширяю существующий проект с открытым исходным кодом, в котором уже есть очень продвинутый Lexer / Parser / TreeParser в ANTLR. Я хотел бы придерживаться текущей структуры каталогов, поэтому я создал свой собственный каталог, в который я хотел бы поместить мои новые (уже написанные) файлы грамматики. Они импортируют эти три исходных файла грамматики, и для компиляции кода я могу использовать java org.antlr.Tool, где я могу указать один каталог для поиска импортированных грамматик с аргументом -lib option.
Моя проблема в том, что эти три оригинальных импортированных файла грамматики сами импортируются и снова в другом каталоге. Чтобы проиллюстрировать (наследование / импорт идут наверх):
Abstract syntax directory: lexer parser tree parser
Original syntax directory: lexer parser tree parser
My new syntax directory: lexer parser tree parser
Это иерархия. Проблема, с которой я сталкиваюсь, заключается в том, как указать «Каталог абстрактного синтаксиса», а также «Исходный каталог синтаксиса» сразу с параметром -lib в командной строке для инструмента ANTLR (или любого другого решения, которое позволило бы мне скомпилировать импорт грамматики исходный с заданной структурой каталогов).
Я попробовал -lib directory1 directory2, который, кажется, просто игнорирует каталог2 (а затем пытается скомпилировать его, чего не может сделать, потому что это каталог, а не грамматика ANTLR). Я попытался указать "-lib directory1 -lib directory2", тогда "-lib directory2" просто перезаписывает "-lib directory1".
Это то, что я считаю довольно простой необходимостью указывать несколько каталогов для поиска в любой более сложной системе грамматик, поэтому я уверен, что что-то упустил. Я просто не могу гуглить что-нибудь полезное.
Если вам нужны какие-либо подробности, я с радостью их предоставлю, это мой главный тезис о расширении проекта с открытым исходным кодом, поэтому мне не нужно ничего хранить в секрете. :) Если это невозможно, я могу жить без него, но очень хотелось бы сохранить последовательность оригинального проекта.