簡體   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