ANTLR4:添加替代标签后,我可以为原始规则添加标签吗?

ANTLR4:添加替代标签后,我可以为原始规则添加标签吗?,antlr,antlr4,Antlr,Antlr4,我添加了一些替代标签,如下所示。现在为enterSomeType,enterSomeOtherType生成解析器方法。但是如何获得原始类型,即:enterType type : IDENTIFIER # someType | typeDescriptor # someOtherType ; 我不确定这是否回答了你的问题(语言?时间?) 在Python中,当我遍历树(因此为“child”)时: rule=str(parser.ruleNames[child.getPayloa

我添加了一些替代标签,如下所示。现在为
enterSomeType
enterSomeOtherType
生成解析器方法。但是如何获得原始类型,即:
enterType

type
  : IDENTIFIER     # someType
  | typeDescriptor # someOtherType
  ;

我不确定这是否回答了你的问题(语言?时间?)

在Python中,当我遍历树(因此为“child”)时:
rule=str(parser.ruleNames[child.getPayload().getRuleIndex()])
给出规则的名称(例如,“type”)
lbl=child.\uuuuu class\uuuu.\uuuu name\uuuuu[:-7]
给出了备选标签(例如,“SomeOtherType”)

我不确定这是否回答了您的问题(语言?时间?)

在Python中,当我遍历树(因此为“child”)时:
rule=str(parser.ruleNames[child.getPayload().getRuleIndex()])
给出规则的名称(例如,“type”)
lbl=child.\uuuuuu class\uuuuu.\uuuuu name\uuuu[:-7]
给出了替代标签(例如,“SomeOtherType”)

而不是直接给出。“看这个!”格罗森伯格仍然有疑问。假设我使用
baseType
规则包装
type
。在我的解析器中,当我得到一个
TypeContext
(使用
baseTypeContext.type()
)时,我如何识别这个
TypeContext
SomeTypeContext
还是
SomeOtherTypeContext
?这个标识是必需的,因为我需要传入相应的侦听器。答案可以像“instanceof”一样简单。但是,也可以是“使用术语标签而不是alt标签”。另外,我不确定你所说的“我需要传给相应的听众”是什么意思。我真的应该解释你问题的全部背景,以得到有意义的答案。而不是直接回答。“看这个!”格罗森伯格仍然有疑问。假设我使用
baseType
规则包装
type
。在我的解析器中,当我得到一个
TypeContext
(使用
baseTypeContext.type()
)时,我如何识别这个
TypeContext
SomeTypeContext
还是
SomeOtherTypeContext
?这个标识是必需的,因为我需要传入相应的侦听器。答案可以像“instanceof”一样简单。但是,也可以是“使用术语标签而不是alt标签”。另外,我不确定你所说的“我需要传给相应的听众”是什么意思。我真的应该解释你问题的全部背景,以得到有意义的答案。