【发布时间】:2012-04-14 21:05:45
【问题描述】:
我目前正在使用来自 ANTLR 网站的 Python 2.5 示例。我实际上想知道语法是否也已经产生语义。如果没有,我可以做什么或我可以使用什么(工具)在用 ANTLR 解析它后为 python 生成语义?
【问题讨论】:
标签: java python compiler-construction antlr semantics
我目前正在使用来自 ANTLR 网站的 Python 2.5 示例。我实际上想知道语法是否也已经产生语义。如果没有,我可以做什么或我可以使用什么(工具)在用 ANTLR 解析它后为 python 生成语义?
【问题讨论】:
标签: java python compiler-construction antlr semantics
没有工具可以生成语言的语义,这是你必须自己实现的东西。
既然你已经解析了 Python 代码,你可以先做一些必要的处理,再次将其输出为 Python 代码,并使用 Python 语言的现有实现来执行。
【讨论】:
ANTLR 处理解析,但不处理语义;毕竟,它是一个解析器生成工具。如果您添加了语义,您将拥有一个完整的 python 实现(模充实库)。
【讨论】:
ANTLR 允许您根据与语法规则相关的操作来指定语义。对于简单的任务,这可能很方便,但对于较大的语法,您通常所做的只是生成一个 AST(抽象语法树),即您解析的内容的表示,它比非常长的字符串更方便在程序中处理。
如果没有看到代码,很难说您正在使用的示例中是否包含或包含多少;-)
【讨论】:
import 语句中提到的模块并开始从中读取指令的代码。