SIP ヘッダー (ABNF 形式の文法) を解析し、ヘッダー文字列が正しいかどうかを確認する必要があります。
(例: "Accept: application/sdp,application/3gpp-imp+xml" のような文字列をチェックして、テストケースの合格/不合格を提供します)。
現在、私は perl Parse::ABNFを使用しようとしています。現在、このコンテキストでのサンプルの使用法を理解できません。
私のParse::ABNF
モジュールは ABNF 文法を読み取り、文法の規則にアクセスできるようにします。floating-point-number
「ルールはルールを参照しています」などのことを伝えますがdigit
、浮動小数点数のパーサーは生成しません。Parse::RecDescent
このモジュールを使用して、適切な ABNF 文法をや などのパーサー ジェネレーターで使用できる形式に変換できますMarpa2
。このような変換のサンプル スクリプトは、配布物に含まれていeg/abnf2xlx.pl
ます。ただし、リンク先のページの文法は、 が期待する標準に準拠した形式ではないことに注意してくださいParse::ABNF
。
このモジュールは次のように使用できます。
use Parse::ABNF;
use Test::More;
use Data::Dumper;
my $parser = Parse::ABNF->new;
my $rules = $parser->parse($sip_message);
ok(defined $rules,'The SIP messgae is parseable') or diag(Dumper($sip_message));
ヘッダーだけを解析する簡単な方法:
use Test::More;
use Data::Dumper;
ok($sip_message =~ m!Accept: application/sdp,application/3gpp-imp+xml!,'The SIP header looks found') or diag(Dumper($sip_message));