Kann jemand mir helfen, diese 2.0 Grammatikdatei zu ANTLR 3.0 Syntax ANTLR konvertieren?
Frage
Ich habe die 'easy' Teile umgewandelt (Fragment, @header und @Member declerations etc.), aber da ich zu Antlr neu bin habe ich eine wirklich harte Zeit Umwandlung der Baum Aussagen etc.
Ich verwende den folgenden Migrationsleitfaden .
Die Grammatikdatei finden Sie hier. ...
Im Folgenden finden Sie einige Beispiele, wo ich in Probleme laufen:
Zum Beispiel, ich habe Probleme mit:
n3Directive0!:
d:AT_PREFIX ns:nsprefix u:uriref
{directive(#d, #ns, #u);}
;
oder
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 ", ."
;
Lösung
n3Directive0!:
d=AT_PREFIX ns=nsprefix u=uriref
{directive($d, $ns, $u);}
;
- Sie müssen verwenden '=' für Zuweisungen.
- Tokens können dann als '$ tokenname.getText ()' verwendet werden ...
- Regel Ergebnisse können dann in Ihrem Code als 'rulename.result' verwendet werden
- Wenn Sie Regeln haben erklärt Ergebnis Namen haben, müssen Sie diese Namen iso verwenden.
'Ergebnis'.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow