誰でもこのANTLR 2.0文法ファイルをANTLR 3.0構文に変換するのを手伝ってもらえますか?
質問
「簡単」な部分(フラグメント、@ header、@ memberを変換しました デクレレーションなど)、しかし、私はAntlrが初めてなので、本当に難しい Treeステートメントなどの変換時間。
次の移行ガイド。
文法ファイルはこちらにあります。 ...
以下に、私が問題に遭遇するいくつかの例を見つけることができます:
たとえば、次の問題があります:
n3Directive0!:
d:AT_PREFIX ns:nsprefix u:uriref
{directive(#d, #ns, #u);}
;
または
propertyList![AST subj]
: NAME_OP! anonnode[subj] propertyList[subj]
| propValue[subj] (SEMI propertyList[subj])?
| // void : allows for [ :a :b ] and empty list "; .".
;
propValue [AST subj]
: v1:verb objectList[subj, #v1]
// Reverse the subject and object
| v2:verbReverse subjectList[subj, #v2]
;
subjectList![AST oldSub, AST prop]
: obj:item { emitQuad(#obj, prop, oldSub) ; }
(COMMA subjectList[oldSub, prop])? ;
objectList! [AST subj, AST prop]
: obj:item { emitQuad(subj,prop,#obj) ; }
(COMMA objectList[subj, prop])?
| // Allows for empty list ", ."
;
解決
n3Directive0!:
d=AT_PREFIX ns=nsprefix u=uriref
{directive($d, $ns, $u);}
;
- 割り当てには「=」を使用する必要があります。
- トークンは「$ tokenname.getText()」として使用できます、...
- ルールの結果は、コードで「rulename.result」として使用できます
- 結果名を宣言したルールがある場合、これらの名前isoを使用する必要があります。
「結果」。
所属していません StackOverflow