0

当我从我的 Grammarfile 生成 Parser 和 Lexer 时,一切正常而不是问题,ANTLR 自动将整个用户目录添加到任何返回和注释。这是不好的。例如:

return "C:\\Users\\##\\workspace\\project\\src\\Grammar.g"

这个工具也对任何评论做同样的事情:

// $ANTLR 3.4 C:\\Users\\##\\workspace\\project\\src\\Grammar.g 2012-06-18 18:25:20

我必须发布我的项目,所以有什么办法可以禁用这个“功能”?

问候,红线。

4

1 回答 1

1

路径似乎取决于您调用 ANTLR 的位置和方式。我无法使用 ANTLRWorks 实现这一点,但使用命令行 ANTLR 你可以执行此操作。您可以执行以下操作(示例适用于 Windows,但也应该可以在其他操作系统上重现):

  1. 为命令行下载Antlr 并将其复制到 eg

    C:\Program Files (x86)\ANTLRworks\antlr-3.4-complete.jar.

  2. 打开 Windows 命令行 ( cmd.exe) 并切换到语法文件所在的目录:

    cd C:\Users[path to the eclipse project]\src\some\package\name

  3. 调用

    java -jar "C:\Program Files (x86)\ANTLRworks\antlr-3.4-complete.jar" MyGrammar.g
    

    从命令行。

生成的 java 文件将只包含您的语法文件的名称,不再包含路径。

这个答案来自我自己的问题Remove (absolute) paths in ANTLR generated java classes:最后我自己回答了。

于 2012-09-12T12:38:19.497 回答