【问题标题】:force ANTLR to generate the output files in a specific folder强制 ANTLR 在特定文件夹中生成输出文件
【发布时间】:2021-04-04 11:32:38
【问题描述】:

我不喜欢将 ANTLR 生成的文件与我的 .g4 语法和其他版本控制文档放在同一位置。我想把所有生成的文件放在一个单独的嵌套文件夹中,可以通过.gitignore 排除。到目前为止,我尝试的是在主文件夹内创建一个文件夹 <someFolder> 并从该文件夹内运行:

cd <someFolder>
antlr ../<grammarFile.g4>

但是,它仍然会溢出父文件夹中所有生成的文件。

P.S.应该没关系,但我的环境是macOS。

【问题讨论】:

    标签: antlr antlr4


    【解决方案1】:

    来自https://github.com/antlr/antlr4/blob/master/doc/tool-options.md

    -o 输出目录

    ANTLR 默认在当前目录生成输出文件。此选项指定 ANTLR 应在其中生成解析器、侦听器、访问者和令牌文件的输出目录。

    在上面的示例中,从主文件夹运行

    antlr <grammarFile.g4> -o <someFolder>
    

    【讨论】:

    • 附加说明:如果您使用语法路径运行 antlr4 jar(不使用同一文件夹中的语法),它将在输出目录中重新创建相同的文件夹路径结构(a对 Java 的回忆,其中包由文件夹表示)。如果您不想这样做,请使用附加参数-Xexact-output-dir
    • @MikeLischke 你认为这就是我坚持使用this issue 的原因吗?
    • 我不能说,因为我用的 Java 不多。
    • @MikeLischke 我按照here 的指示在此页面的结果上运行它,但我得到了these error messages。我尝试了this page 中的-packge 选项,但没有成功。
    • @MikeLischke 非常感谢! -Xexact-output-dir 正是我要找的!
    猜你喜欢
    • 2012-09-29
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多