我使用的是JavaCC 5.0版。使用Eclipse Galileo。
但是当我在jj文件中设置"static=true“选项时,生成的TokenManager文件会出现许多警告,比如”来自SimpleCharStream类型的静态方法readChar()应该以静态方式访问“。此外,我的jj文件中的所有导入都已复制到TokenManager,在那里它们被标记为未使用。有没有办法防止这种情况发生?
看起来这个issue was fixed in JavaCC v4.1,那我为什么还要面对这个?
发布于 2011-02-18 22:03:06
当您将其切换为静态时,JavaCC不会删除现有的生成类。这种行为是为了防止你对类进行了更改,或者提供了你自己的版本。
删除所有生成的类,设置'static=true',然后重新启动。一切都应该正常工作。
如果您正在自动化构建(如使用Ant),最好总是删除并重新生成JavaCC生成的类,以确保您正在测试的类是可重现的。
至于日食..。当您对JavaCC输入文件进行了更改时,您可以告诉它运行您的Ant脚本。
发布于 2011-02-16 05:39:16
这些警告是由正确但不推荐的代码引起的。由于手动修复生成的代码不是一个好主意,我的建议是在Eclipse中禁用这些警告(Java > Compiler >Error/Warning)。
我建议你使用项目特定的设置来禁用这些警告(这样它就不会在你的所有项目中禁用),你也可以将所有生成的代码放在一个项目中,让你的代码依赖于这个项目,这样你就可以在你的代码中保留这些警告。
https://stackoverflow.com/questions/4907274
复制相似问题