2012-03-31 115 views
0

我目前使用ANTLR网站的Python 2.5样本。我真的想知道这个语法是否已经产生了语义。如果没有,我可以做些什么,或者我可以用什么工具(工具)在用ANTLR解析之后为python生成语义?ANTLR是否提供语义

回答

2

没有工具可以生成语言的语义,这是你必须实现的东西。

既然您已经分析了Python代码,那么您可以先做一些必要的处理,再将其作为Python代码输出,并使用现有的Python语言实现来执行。

+0

地说,我对我怎么会做语义完全不知道,你能不能建议我可以用来创建语义的任何资源? – marchemike 2012-03-31 11:55:05

+0

该语言在Python语言参考中进行了描述:http://docs.python.org/reference/这是学习Python语言语义的最佳选择。 – 2012-03-31 11:57:06

1

ANTLR处理解析,但不处理语义;毕竟它是一个解析器生成工具。如果你添加了语义,你会得到一个完整的python实现(模拟库)。

1

ANTLR允许您根据与语法规则相关的操作指定语义。对于简单的任务来说,这可能会很方便,但对于较大的语法,通常所做的就是生成一个AST(抽象语法树),即表示解析出的内容比从一个非常长的字符串中处理程序更方便。

无论有多少,这是包含在正在使用的例子是比较硬,没有看到代码;-)

+0

import_as_name :NAME(NAME NAME)? \t;这是一个语义学的例子吗? – marchemike 2012-03-31 13:50:26

+0

不是这是一个语法规则,即如何形成正确的程序的描述。语义是代码来查找'import'语句中提到的模块并开始读取它的指令。 – 2012-03-31 14:27:29