Ich habe wirklich einfach DSL in ANTLR wie folgt definiert.ANTLR wie man einen "Rest davon" Token
grammar Transformer;
fragment Digit : [0-9];
Amp:'\'';
Left:'(';
Right: ')';
Comma: ',';
Id: [A-Za-z][a-zA-Z0-9]+;
Int: '-'? Digit+;
WS: [\n\r\t]+ ->skip;
FuncStart: '>';
DataStart: '#';
parse: (datainput | function)+;
qoutedtext: Amp .*? Amp;
datainput: DataStart Id;
function: FuncStart Id Left param (Comma param)* Right;
param: (datainput|function|qoutedtext|Int);
Wenn dieser Text Parsen
#Id;>ToUpper(#Name);ThisShouldEndUpAsAToken>FillLeft(#EmpNo,20,'abc')
Dies ist der "Baum" i erhalten:
Der Baum sieht aus, als expecte, außer, dass ich nicht in der Lage bin, die ThisShouldEndUpAsAToken tekst zu fangen als ein Token. Ich weiß, dass ich keine Grammatikanalyse habe, die das jetzt tun sollte, aber ich bin nicht in der Lage, herauszufinden, wie es geht.
HEEELP :)