繁体   English   中英

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

[英]ANTLR4: How to control class hierarchy?

如何配置ANTLR4 生成父类?

给定语法MyGrammar

statement: 'do' | 'check';

ANTLR4生成

class MyGrammar {
    class StatementContext {}
}

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

MyGrammar.StatementContext node = ...;

不能简单地写

NodeContext node = ...;

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

所以,我该如何制作语法MyGrammar

statement: 'do' | 'check';

让ANTLR4生成

class StatementContext {} // look ma: no parent MyGrammar class!

如此简单:您无法更改生成类的方式。 这是一个精心安排的合奏,它会改变很多东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM