簡體   English   中英

Antlr AST樹結構

[英]Antlr AST tree construction

我正在嘗試使用ANTLR樹語法創建AST。

給出如下語法:

rule    : head ':-' litlist (';' ':-' litlist)* DOT_END

我想創建一個像下面的樹

 ^(RULES ^(head litlist)+)

也就是說,我希望(head litlist)重復語法中的litlist數量。 我嘗試了類似上面的操作,但是出現了這樣的錯誤:

語法錯誤:必需(...)+循環在輸入EXPR處不匹配任何內容,其中EXPR是語法中的另一術語。

基本上我想要類似以下內容:

a : type ID (',' ID)* ';' -> ^(type ID)+;

樹構建中描述。

但是我的語法在重復子句中有多個標記,這似乎是一個問題。

什么是正確的方法?

您是否嘗試過另一種間接方式? 如:

rule    : clauses DOT_END ->  ^(RULES clauses)
clauses : head ':-' litlist (';' ':-' litlist)* -> ^(head litlist)+

語法可能還不正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM