首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中获取Antlr4规则名称?

问如何在C++中获取Antlr4规则名称?
EN

Stack Overflow用户
提问于 2020-08-10 13:05:57
回答 1查看 124关注 0票数 1

在使用Antlr4生成的C++解析器解析MySQL时,我试图获取特定的语句类型名称。

我使用的是来自here的MySQL Antlr4语法

这就是我现在正在使用的:

代码语言:javascript
复制
rule_index=SelectStatement()->getRuleIndex();
statement_type=getRuleNames()[rule_index];

这是针对SelectStatement分支的,但现在我必须针对每种语句类型的情况执行此操作。有没有更好的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2020-08-12 21:49:41

我认为没有更好的ANTLR特定的解决方案,它是通用的,适用于所有规则而不需要改变任何东西。

我使用C#,并且可以使用反射来获取调用的过程的名称。从名称字符串中,您可以删除修饰(例如,在Visitor中,方法名称以“Visitor”开头),以获得所在方法的名称。但是,反射并不是使用最快的技术。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63334410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档