こんにちは私は、antlr4を使用してSIP Uriを解析しようとしています。時間については 、私は簡単な質問を保つために複雑さを取り除く持っているsip uriパーサーantlr4を使用
Antlr4文法
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') ;
列入力1:SIP:ユーザー:[email protected]
文字列Input2:sip:[email protected]
第二の入力、「SIP」で「SIP」は文法通りのユーザ/パスワードであること資格のでUSERおよび「ユーザ」は、パスワードとして解析されたように解析されました。
私は自分の問題を説明しました。 この状況でどのように進めるのか分かりませんか?
私は以前これを理解していましたが、uri params、headersなどを含むようにsip uriの文法を拡張すると複雑さが増したので、userInfoをパーサールールにすることはできません。 –
移動しない限りすべての構造体をパーサーに渡して、キャラクタセットの問題に遭遇します。 **もちろん、チートしてSIP_SCHEMEをフラグメント化してUSER_INFOに追加できます – mabe