1
我寫了一個ANTLR語法,現在正在從它構建AST的過程中。現在的問題是,根據上下文,不同的子樹應該根據規則生成。 Googeling給了我這個:ANTLR3,上下文敏感的重寫規則
http://www.antlr.org/wiki/display/~admin/2008/04/11/Rewrite+rules#Rewriterules-Grammaticalcontext
但我不能從這些例子得到語法正確。所以問題是:在ANTRL3.4中使用上下文敏感重寫的正確語法是什麼(使用C-target,如果這些信息有用)?
一個小例子,在這裏,我不工作的一項試驗,以得到它的工作:
grammar foo;
tokens {
A;
B;
}
start
: a
| b
;
a
: foo
;
b : foo
;
foo
:
[... a foo]: 'x' -> ^(A 'x')
[... b foo]: 'x' -> ^(B 'x')
;
感謝, 約斯特
好吧,所以要走的路是「手動」添加功能。對於這個東西有一個特殊的語法會很好,因爲這似乎是一個常見的用例。另一方面,更多的語法結構會混淆ANTLR語言......無論如何,謝謝你的回答。 – Jost
@Jost,不客氣。 –