Import ANTLR-指定多个目录以搜索包含的语法

Import ANTLR-指定多个目录以搜索包含的语法,import,antlr,directory,Import,Antlr,Directory,我正在扩展一个现有的开源项目,它在ANTLR中已经有一个非常高级的Lexer/Parser/TreeParser。我希望遵循当前的目录结构,因此我创建了自己的目录,我希望将新的(已经编写的)语法文件放在其中。他们正在导入这三个原始语法文件,为了编译代码,我可以使用java org.antlr.Tool,在这里我可以指定一个目录,用-lib选项参数搜索导入的语法 我的问题是,这三个原始导入的语法文件本身有一些导入,并且再次导入到不同的目录中。要说明(继承/导入到顶部): 这是层次结构。我遇到的麻烦

我正在扩展一个现有的开源项目,它在ANTLR中已经有一个非常高级的Lexer/Parser/TreeParser。我希望遵循当前的目录结构,因此我创建了自己的目录,我希望将新的(已经编写的)语法文件放在其中。他们正在导入这三个原始语法文件,为了编译代码,我可以使用java org.antlr.Tool,在这里我可以指定一个目录,用-lib选项参数搜索导入的语法

我的问题是,这三个原始导入的语法文件本身有一些导入,并且再次导入到不同的目录中。要说明(继承/导入到顶部):

这是层次结构。我遇到的麻烦是,如何在命令行上为ANTLR工具(或任何其他允许我编译语法的解决方案,导入具有给定目录结构的原始语法)使用-lib选项同时指定“抽象语法目录”和“原始语法目录”

我尝试了-lib directory1 directory2,它似乎忽略了directory2(然后尝试编译它,但它无法编译,因为它是一个目录,而不是ANTLR语法)。我尝试指定“-lib directory1-lib directory2”,“-lib directory2”只是覆盖“-lib directory1”

我认为,在任何更复杂的语法系统中,指定要搜索的多个目录是一种相当基本的需要,因此我确信我遗漏了一些东西。我就是不能用谷歌搜索出任何有用的东西

如果您需要更多详细信息,我很乐意提供,这是我的硕士论文,扩展了一个开源项目,所以我不需要保守任何秘密。:)如果不可能,我可以没有它生活,但我真的希望保持原始项目的一致性。

查看:

似乎只读取了一个
-lib
目录


我假设你的(暗示的)问题在此得到了回答(不可能指向超过1个
-lib
目录)。

谢谢你,巴特。我对此很不满意,这似乎是更复杂语法的基本特征,但我能应付。不管怎么说,这个问题已经得到了明确的回答(除非有其他的方法——lib论证)。
Abstract syntax directory: lexer           parser           tree parser
Original syntax directory: lexer           parser           tree parser
My new   syntax directory: lexer           parser           tree parser
else if (args[i].equals("-lib")) {
  if (i + 1 >= args.length) {
    System.err.println("missing library directory with -lib option; ignoring");
  }
  else {
    i++;
    libDirectory = args[i];
    if (libDirectory.endsWith("/") || libDirectory.endsWith("\\")) {
      libDirectory = libDirectory.substring(0,libDirectory.length()-1);
    }
    File outDir = new File(libDirectory);
    if (!outDir.exists()) {
      ErrorManager.error(ErrorManager.MSG_DIR_NOT_FOUND,libDirectory);
      libDirectory = ".";
    }
  }
}