2010-11-22 62 views
2

我最近開始學習Antlr並下載AntlrWorks 1.4,其中應該包含Antlr 3.2。現在,3.2應該支持重寫規則語法像「 - >」,但我還沒有能夠得到即使最簡單的情況下,我可以構建或者基於詞法或語法規則的工作:Antlr 3.2重寫規則

grammar TestRewrite; 

ab : a b -> a; 

a : A; 
b : B; 

A : 'a'; 
B : 'b'; 

當我試圖編譯這個,我得到的錯誤:

[11:26:29] error(100): TestRewrite.g:3:13: syntax error: antlr: TestRewrite.g:3:13: unexpected token: a 

這是爲什麼。構造看起來很簡單:ab應該生成一棵只有一個節點被捕獲的樹。這不是你怎麼做的嗎?我無法讓它與rooting('^')或忽略('!')一起工作。我很困惑。

回答

8

選擇{輸出= AST;}

+0

@TimeHorse的`選項{輸出= AST;};``說法應該是你的`語法TestRewrite後直接放置。 – 2010-11-22 19:46:21