ANTLR是否提供语义

时间:2012-03-31 11:34:14

标签: java python compiler-construction antlr semantics

我目前正在使用来自ANTLR网站的Python 2.5示例。我实际上想知道语法是否已经产生了语义。如果没有,我可以做什么或者我可以使用什么(工具)在用ANTLR解析它之后为python生成语义?

3 个答案:

答案 0 :(得分:2)

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

现在你已经解析了Python代码,你可以先做一些必要的处理,再把它作为Python代码输出,然后使用Python语言的现有实现来执行。

答案 1 :(得分:1)

ANTLR处理解析,但不处理语义;毕竟,它是一个解析器生成工具。如果您添加了语义,那么您将拥有一个完整的python实现(模块化充实库)。

答案 2 :(得分:1)

ANTLR允许您根据与语法规则相关的操作指定语义。对于简单的任务,这可能很方便,但对于较大的语法,您通常要做的就是生成一个AST(抽象语法树),即您解析的内容的表示,它比程序内的句柄更方便,而不是非常长的字符串。 / p>

在没有看到代码的情况下,您正在使用的示例中是否包含这些内容很难或多少是很难说的; - )