这是语法文件:
grammar fred;
test : 'fred';
以下是启动该工具的批处理文件:
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_24
SET PATH=%PATH%;%JAVA_HOME%\bin
SET ANTLR_HOME=c:/users/don/workspace/antlrAssign/lib/
java -cp %ANTLR_HOME%/antlr-3.3-complete.jar antlr.Tool fred.g
结果如下:
ANTLR Parser Generator Version 2.7.7 (20060906) 1989-2005
fred.g:1:1: unexpected token: grammar
error: Token stream error reading grammar(s):
fred.g:3:19: expecting ''', found 'r'
fred.g:1:1: rule grammar trapped:
fred.g:1:1: unexpected token: grammar
TokenStreamException: expecting ''', found 'r'
之前的帖子指的是“org.antlr.Tool”,但3.3 jar的位置如上所示。我们的想法是创建树解析器的调试版本,根据文档,您必须使用命令行工具。
有没有人见过这个?我疯了吗?这是两行长,它在文件中的第一个单词上死亡。
当然这会在antlrworks中编译。
任何帮助表示赞赏,我无法再对我的药物进行调整。
跟进:
我发现如果你使用Run - >它在ANTLRWORKS中的调试菜单选项会生成一个树解析器的调试版本,但在我手中的命令行工具却没有。生成的调试源位于输出文件夹中以进行生成。在ANTLRWORKS中获取非调试版本使用Generate菜单选项。在eclipse中使用树解析器的调试版本,启动测试工具并等待,然后在treegrammar解析器文件上通过Run Remote Debug与ANTRWORKS连接。它遍历了树的解析器并给了我一个不匹配的树节点错误(不是解析器错误,这很好,因为我正在调试树解析器)。所以现在我只需要找到我做过的其他蠢事。 HTH除了我以外的人。
答案 0 :(得分:0)
之前的帖子指的是“org.antlr.Tool”,但3.3 jar的位置如上所示。
旧的ANTLR 2.x Tool
类(antlr.Tool
)仍包含在ANTLR的3.x版本中,但您需要使用ANTLR 3.x {{1 (位于:Tool
)用于你的语法,因为它是一个3.x语法。