ANTLR在注释中禁用特定的Userpath并返回

时间:2012-06-18 16:29:13

标签: comments antlr

总是当我从我的Grammarfile生成Parser和Lexer时,一切正常而不是问题,ANTLR会自动将整个User目录添加到任何返回和注释中。这是不好的。 E.g:

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

此工具也对任何评论都一样:

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

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

此致 redstreak。

1 个答案:

答案 0 :(得分:1)

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

  1. Download Antlr用于命令行并将其复制到例如。

    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
    

    来自命令行。

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

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