私はANTLR文法を書き、それからASTを構築しているところです。当面の問題は、コンテキストに応じて、ルールから異なるサブツリーを生成する必要があることです。グーゲリングは私にこれを与えました:
http://www.antlr.org/wiki/display/~admin/2008/04/11/Rewrite+rules#Rewriterules-Grammaticalcontext
しかし、これらの例から構文を正しく理解することはできません。したがって、問題は次のとおりです。ANTRL3.4でコンテキスト依存の書き換えを使用するための正しい構文は何ですか(この情報が役立つ場合は、Cターゲットを使用)。
最小限の例がここにあり、それを機能させるための私の非機能的な試行の1つがあります。
grammar foo;
tokens {
A;
B;
}
start
: a
| b
;
a
: foo
;
b : foo
;
foo
:
[... a foo]: 'x' -> ^(A 'x')
[... b foo]: 'x' -> ^(B 'x')
;
ありがとう、ジョスト