2014-02-21 76 views
0

我需要解析SIP頭文件(grammar ABNF格式)並驗證我的頭文件字符串是否正常。解析:: ABNF perl用法

(例如:檢查字符串如「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::RecDescentMarpa2。這種轉換的示例腳本包含在分配中,作爲eg/abnf2xlx.pl。但請注意,鏈接到的頁面上的語法不完全符合Parse::ABNF預期的符合標準的格式。