总是当我从我的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。
答案 0 :(得分:1)
路径似乎取决于您调用ANTLR的位置和方式。我无法通过ANTLRWorks实现这一目标,但使用命令行ANTLR可以执行此操作。您可以执行以下操作(示例适用于Windows,但也应在其他操作系统上可重现):
Download Antlr用于命令行并将其复制到例如。
C:\Program Files (x86)\ANTLRworks\antlr-3.4-complete.jar
。
打开Windows命令行(cmd.exe
)并切换到语法文件所在的目录:
cd C:\Users[path to the eclipse project]\src\some\package\name
调用
java -jar "C:\Program Files (x86)\ANTLRworks\antlr-3.4-complete.jar" MyGrammar.g
来自命令行。
生成的java文件只包含语法文件的名称,不再包含路径。
这个答案来自我自己的问题Remove (absolute) paths in ANTLR generated java classes:,最后我回答了自己。