2016-05-16 108 views
0

我对antlr 4非常陌生,我的目标语言是PYTHON2。 我无法理解Python中的CommonTokenStream以及如何在antlr 4中访问令牌。 我需要的是访问存在于隐藏通道中的令牌吗? 请有人指点我一些适当的文档,我可以理解如何访问令牌并在python中操纵它们。 如果问题很模糊,我很抱歉,我是新来的。ANTLR 4 Python文档

回答

0

ANTLR书是一个。 https://pragprog.com/book/tpantlr2/the-definitive-antlr-4-reference

在第12章“挥舞词汇黑魔法”中,它有“访问隐藏频道”部分。使用TokenStreamRewriter重写令牌。

您需要将本书中的Java代码精心转换为Python代码。运行时库有细微的差别,但它们实际上是相同的。

这不是唯一的方法。你可以重写lexer的emit()函数(我通常这么做)。然后,您可以完全控制令牌路由。