首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANTLR4:如何控制类层次结构?

ANTLR4:如何控制类层次结构?
EN

Stack Overflow用户
提问于 2017-10-06 17:35:22
回答 1查看 53关注 0票数 0

如何将ANTLR4配置为而不是生成父类?

给定文法MyGrammar

代码语言:javascript
复制
statement: 'do' | 'check';

ANTLR4生成

代码语言:javascript
复制
class MyGrammar {
    class StatementContext {}
}

因为ANTLR4为所有XXXContext类生成一个父类,所以这个类名也必须在任何用法中使用。所以我必须写

代码语言:javascript
复制
MyGrammar.StatementContext node = ...;

不能简单地写

代码语言:javascript
复制
NodeContext node = ...;

这已经足够大了,因为它会污染我的代码的额外字符,不增加任何可读性。因此,它降低了可读性,从而降低了可理解性和可调试性,等等。

那么,如何使语法MyGrammar

代码语言:javascript
复制
statement: 'do' | 'check';

让ANTLR4生成

代码语言:javascript
复制
class StatementContext {} // look ma: no parent MyGrammar class!
EN

回答 1

Stack Overflow用户

发布于 2017-10-07 10:16:33

就这么简单:您不能改变生成类的方式。这是一个精心安排的合奏和改变,这将打破许多事情。

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

https://stackoverflow.com/questions/46611135

复制
相关文章

相似问题

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