我不喜欢将 ANTLR 生成的文件与我的.g4语法和其他版本控制文档放在同一位置。我想将所有生成的文件放在一个单独的嵌套文件夹中,可以通过.gitignore. 到目前为止,我尝试的是<someFolder>在主文件夹内创建一个文件夹,然后从该文件夹内运行:
cd <someFolder>
antlr ../<grammarFile.g4>
Run Code Online (Sandbox Code Playgroud)
但是,它仍然会溢出父文件夹中的所有生成的文件。
PS这应该不重要,但我的环境是 macOS。
来自https://github.com/antlr/antlr4/blob/master/doc/tool-options.md:
-o 外部目录
ANTLR默认在当前目录中生成输出文件。此选项指定 ANTLR 应在其中生成解析器、侦听器、访问者和标记文件的输出目录。
在上面的示例中,从主文件夹运行
antlr <grammarFile.g4> -o <someFolder>
Run Code Online (Sandbox Code Playgroud)