2014-02-21 7 views
0

SIP 헤더 (ABNF 형식의 grammar)를 구문 분석하고 헤더 문자열이 정상인지 확인해야합니다.Parse :: ABNF perl usage

(예 : "Accept : application/sdp, application/3gpp-imp + xml"과 같은 체크 문자열은 테스트 케이스 합격/불합격을 제공합니다).

현재 perl Parse::ABNF을 사용하려고합니다. 이제는이 컨텍스트에서 샘플 사용법을 이해할 수 없습니다.

당신은이 방법으로이 모듈을 사용 할 수
+0

입력 해 주셔서 감사합니다. 나는 아직도 내 문제를 해결하는 데 어려움에 직면 해있다. 아래 내 문제를보고 솔루션에 대한 조언을 제공하십시오. – user3336154

답변

0

:

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)); 
1

Parse::ABNF 모듈이 ABNF 문법을 읽고 당신이 규칙에 액세스 할 수 있습니다를 문법. "floating-point-number 규칙은 digit 규칙을 참조합니다"와 같은 것을 알려주지 만 부동 소수점에 대한 파서는 생성하지 않습니다. 이 모듈을 사용하여 적절한 ABNF 문법을 Parse::RecDescent 또는 Marpa2과 같은 파서 생성기에서 사용할 수있는 형식으로 변환 할 수 있습니다. 이러한 변환을위한 예제 스크립트는 배포본에 eg/abnf2xlx.pl으로 포함되어 있습니다. 그러나 링크하려는 페이지의 문법은 Parse::ABNF이 요구하는 표준 호환 형식이 아닙니다.