Javascript 在ANTLR规则上下文中获取标记的备选名称
有没有办法在Javascript 在ANTLR规则上下文中获取标记的备选名称,javascript,antlr,antlr4,Javascript,Antlr,Antlr4,有没有办法在规则上下文中获得匹配的带标签的备选名称 例: 我想从RuleContext 我有一个很大的语法,我正在开发一个访问者,因此我构建了一个工具来帮助我可视化正在实现的访问者方法的结果,以及缺少哪些方法(因为每个访问者方法的默认实现是调用visitChildren(ctx),我已经重写visitChildren,以返回“未实现:{ruleName}”消息 ANTLR生成的访问者代码为标记的备选方案生成特定的RuleContext(在上面的示例中,FooRuleContext和BarRule
规则上下文
中获得匹配的带标签的备选名称
例:
我想从RuleContext
我有一个很大的语法,我正在开发一个访问者,因此我构建了一个工具来帮助我可视化正在实现的访问者方法的结果,以及缺少哪些方法(因为每个访问者方法的默认实现是调用visitChildren(ctx)
,我已经重写visitChildren
,以返回“未实现:{ruleName}”消息
ANTLR生成的访问者代码为标记的备选方案生成特定的RuleContext
(在上面的示例中,FooRuleContext
和BarRuleContext
)并为这些备选方案创建访问者方法(visitFooRule
和visitBarRule
),但这些上下文的基础规则索引仍然是父规则(在本例中,myRule
)
除了调用
ctx.constructor.name
之外,我无法在生成的解析树或任何API类中找到上下文所指的特定备选方案的名称。我不完全确定您的意思,您能添加代码以澄清吗?编辑了更多详细信息我认为不可能获得这些名称,因为它们不是规则本身,只是帮助者。我不完全确定你的意思,你能添加代码来澄清吗?编辑了更多细节我认为不可能得到这些名称,因为它们不是规则本身,只是帮助者。
myRule:
foo # fooRule
| bar # barRule
;