首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用antlr为Python源代码生成AST(抽象语法树)

如何使用antlr为Python源代码生成AST(抽象语法树)
EN

Stack Overflow用户
提问于 2013-06-10 06:13:05
回答 1查看 1.2K关注 0票数 2

python的语法是在antlr站点上给出的,但是在使用它生成AST时,它会产生错误。我使用与生成AST的java语法相同的过程。

错误:

代码语言:javascript
复制
> 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:意外结束的子树

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-10 06:39:21

您正在尝试使用为ANTLR v3编写的语法生成带有ANTLR v2的解析器。要么为v3找到一个语法,要么保留该语法并使用ANTLR v2:http://www.antlr2.org/download.html

像这样开始的语法是v2的目标:

代码语言:javascript
复制
class FooParser extends Parser;

对于v3来说:

代码语言:javascript
复制
grammar FooParser;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17017794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档