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