[英]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.