python的语法是在antlr站点上给出的,但是在使用它生成AST时,它会产生错误。我使用与生成AST的java语法相同的过程。
错误:
> C:\testpython>java -cp antlr-3.2.jar org.antlr.Tool Python.g错误(10):内部错误::java.lang.Error:错误解析Python.g:'class‘不期望’语法‘org.antlr.tool.GrammarSpelunker.match(GrammarSpelunker.java:74) org.antlr.tool.GrammarSpelunker.grammarHeader(GrammarSpelunker.java:112) org.antlr.tool.GrammarSpelunker.parse(GrammarSpelunker.java:84) org.antlr.Tool.sortGrammarFiles(Tool.java:552) org.antlr.Tool.process(Tool.java:408) org.antlr.Tool.main(Tool.java:91)错误(100):Python.g:56:1:语法错误: antlr: Python.g:56:1:意外令牌:类错误(8):文件Python.g包含语法PythonParser;名称必须是相同的错误(100):Python.g:56:20:语法错误: antlr: Python.g:56:20:预期半,发现‘扩展’错误(100):语法错误:无效字符文字:'\014‘错误(150):语法文件Python.g没有规则错误(100):Python.g:0:0:语法错误: assign.types::0:0:意外结束子树错误(100):Python.g:0:0:语法错误:定义:0:0:意外结束的子树
有什么帮助吗?
发布于 2013-06-10 06:39:21
您正在尝试使用为ANTLR v3编写的语法生成带有ANTLR v2的解析器。要么为v3找到一个语法,要么保留该语法并使用ANTLR v2:http://www.antlr2.org/download.html
像这样开始的语法是v2的目标:
class FooParser extends Parser;对于v3来说:
grammar FooParser;https://stackoverflow.com/questions/17017794
复制相似问题