Hallo, ich versuche, einen Schluck Uri mit Antlr4 zu analysieren. Zur Zeit ich die Komplexität haben zu halten, die Frage einfachSip-Uri-Parser mit Antlr4
Antlr4 Grammar
sipUri : SIP_SCHEME coreUri EOF ;
coreUri : USER_INFO? hostPort ;
hostPort : 'abc.com' ;
SIP_SCHEME : 'sip:';
USER_INFO : USER PASSWORD? '@' ;
fragment USER : ALPHA_NUM+ ;
fragment PASSWORD : ':' ALPHA_NUM+ ;
fragment ALPHA_NUM : ALPHA | DIGIT ;
fragment ALPHA : ('a'..'z' | 'A'..'Z') ;
fragment DIGIT : ('0'..'9') ;
String Input 1 abzustreifen: sip: user: [email protected]
String-Eingang2: sip: [email protected]
Im zweiten Eingang, „SIP“ wurde als USER und „user“ geparst wurden als Passwort analysiert, da „SIP“ qualifiziert gemäß Grammatik ein Benutzer/Passwort sein.
Ich hoffe, ich habe mein Problem beschrieben. Sie wissen jetzt nicht, wie Sie vorgehen sollen?
Ich hatte dies früher herausgefunden, aber ich kann nicht BenutzerInfo als Parser-Regel machen, da es mehr Komplexität hinzugefügt, wenn ich die Grammatik für Sip-Uri zu Uri Params, Header usw. hinzufügen –
Ich denke, es wird, wenn Sie nicht bewegen die ganze Struktur an den Parser, und dann werden Sie in den Zeichensatz Probleme laufen ... Sie ** könnte natürlich schummeln und machen Sie SIP_SCHEME ein Fragment und fügen Sie es zu USER_INFO – mabe