誰でもこのANTLR 2.0文法ファイルをANTLR 3.0構文に変換するのを手伝ってもらえますか?

StackOverflow https://stackoverflow.com/questions/244936

  •  05-07-2019
  •  | 
  •  

質問

「簡単」な部分(フラグメント、@ 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を使用する必要があります。
    「結果」。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top