如何将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!
答案 0 :(得分:0)
就这么简单:你不能改变类的生成方式。它是一个精心安排的整体和改变,会破坏很多东西。