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标签”。另外,我不确定你所说的“我需要传给相应的听众”是什么意思。我真的应该解释你问题的全部背景,以得到有意义的答案。