• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            RFC-語(yǔ)法規(guī)范的擴(kuò)展巴科斯范式:ABNF

            本備忘錄的狀態(tài)
            本文檔講述了一種Internet社區(qū)的Internet標(biāo)準(zhǔn)跟蹤協(xié)議,它需要進(jìn)一步進(jìn)行討論和建
            議以得到改進(jìn)。請(qǐng)參考最新版的“Internet正式協(xié)議標(biāo)準(zhǔn)”(STD1)來(lái)獲得本協(xié)議的標(biāo)準(zhǔn)化程
            度和狀態(tài)。本備忘錄的發(fā)布不受任何限制。
            版權(quán)聲明
            Copyright(C)TheInternetSociety(1997).


            目錄
            1.
            介紹 2
            2.
            規(guī)則定義 2
            2.1
            規(guī)則命名 2
            2.2
            規(guī)則格式 3
            2.3
            終結(jié)符值 3
            2.4
            外部編碼 4
            3.
            操作符 4
            3.1
            連接規(guī)則1規(guī)則2 4
            3.2
            選擇 規(guī)則1/規(guī)則2 4
            3.3
            增式選擇 規(guī)則1=/規(guī)則2 5
            3.4
            值域選擇 %c##-## 5
            3.5
            序列組 (Rule1Rule2) 5
            3.6
            不定循環(huán) *Rule 5
            3.7
            指定循環(huán) nRule 6
            3.8
            可選序列 [RULE] 6
            3.9
            ;注釋 6
            3.10
            操作符優(yōu)先級(jí) 6
            4.
            擴(kuò)展巴克斯范式形式的擴(kuò)展巴克斯范式定義 7
            5.安全
            考慮 7
            6.
            附錄A-核心 8
            6.1
            核心規(guī)則 8
            6.2
            公共編碼 9
            7.
            致謝 9
            8.
            參考 9
            9.
            作者地址 9
            10.
            完整版權(quán)聲明 10

            1.
            介紹
            互聯(lián)網(wǎng)技術(shù)規(guī)范經(jīng)常需要定義一種格式化語(yǔ)法并能自由地使用作者認(rèn)為是有用的任何符
            號(hào)。多年來(lái),巴克斯范式(BNF)的一個(gè)修訂版,即擴(kuò)展巴克斯范式(ABNF),已經(jīng)在許多互
            聯(lián)網(wǎng)規(guī)范中流行。該版本平衡了壓縮性和簡(jiǎn)單性,具有合理的表達(dá)能力。在早期的ARPA網(wǎng)
            絡(luò)中,每個(gè)規(guī)范都包含了自己的一個(gè)擴(kuò)展巴克斯范式定義。這樣的規(guī)范包括電子郵件規(guī)范
            RFC733
            和之后的RFC822,這些規(guī)范已經(jīng)成為定義擴(kuò)展巴克斯范式的公共引用。本文檔將
            這些定義分離出來(lái),以供有選擇的引用。可以預(yù)言,它也進(jìn)行了一些修改和增強(qiáng)。
            標(biāo)準(zhǔn)巴克斯范式與擴(kuò)展巴克斯范式的區(qū)別包括命名規(guī)則,循環(huán),選擇,次序獨(dú)立以及值
            域。附錄A(核心)提供了一組規(guī)則定義和編碼,該規(guī)則定義和編碼適用于某些互聯(lián)網(wǎng)規(guī)范
            的核心詞法分析器。作為一種便利,在此給出了這些規(guī)則定義和編碼,另一方面,將它從本
            文正文中定義的元語(yǔ)言中抽取出來(lái),同時(shí)也是將它從它的形式狀態(tài)中的分離出來(lái)。

            2.
            規(guī)則定義
            2.1
            規(guī)則命名
            一個(gè)規(guī)則的名字簡(jiǎn)而言之就是名字本身;即,一個(gè)符號(hào)序列,該符號(hào)序列以字母打頭,
            后跟一個(gè)字母或數(shù)字或連字符(下劃線)的組合。
            注意:規(guī)則名大小寫不敏感
            規(guī)則名<rulename><Rulename><RULENAME><rULENamE>都指同一個(gè)規(guī)則。
            與原版的巴克斯范式不同,擴(kuò)展巴克斯范式中的中括號(hào)(“<”,“>”)不再需要。不過,
            無(wú)論何時(shí)只要中括號(hào)有利于辨別規(guī)則名字的使用,它們都可以用來(lái)包括規(guī)則名字。這種表示
            典型地用于限制自由格式的行文中規(guī)則名字的引用,或是區(qū)分結(jié)合在字符串中的未用空格符
            分割的局部規(guī)則,這樣的例子,將在后邊討論循環(huán)時(shí)給出。
            2.2
            規(guī)則格式
            一個(gè)規(guī)則是由下面的序列定義的:
            name=elementscrlf
            此處<name>指規(guī)則名,<elements>指一個(gè)或多個(gè)規(guī)則名或是終結(jié)符,<crlf>是行結(jié)束標(biāo)
            志,回車符后緊跟換行符。等號(hào)將規(guī)則名和規(guī)則的定義分隔開。元素構(gòu)成一個(gè)或多個(gè)規(guī)則名
            (和/或)值的定義的序列,這些規(guī)則名(和/或)值依照本文中定義的各種操作符,如選擇
            和循環(huán),結(jié)合在一起。
            為了視覺舒適,規(guī)則定義按左對(duì)齊格式。當(dāng)一個(gè)規(guī)則需要多行時(shí),連續(xù)行要縮進(jìn)。左對(duì)
            齊和縮進(jìn)是相對(duì)于擴(kuò)展巴克斯范式規(guī)則首行而言的,不必與文檔左邊界相齊。
            2.3
            終結(jié)符值
            規(guī)則分解成一串終結(jié)符值,有時(shí)也叫字符。在擴(kuò)展巴克斯范式中,一個(gè)字符僅僅是一個(gè)
            非負(fù)整數(shù)。在某些特定環(huán)境中,將指定從值到字符集(如ASCII碼)的一個(gè)特殊映射(編碼)。
            終結(jié)符由一個(gè)或多個(gè)數(shù)字字符說(shuō)明,這些數(shù)字字符的基本說(shuō)明由其他字符顯式指出。以
            下的基是目前已經(jīng)定義的:
            b=binary
            d=decimal
            x=hexadecimal
            因此:
            CR=%d13
            CR=%x0D
            分別說(shuō)明了[US-ASCII]中回車符的十進(jìn)制和十六進(jìn)制的表示。
            下例是一個(gè)連續(xù)串值的壓縮表示,使用句點(diǎn)(“.”)來(lái)說(shuō)明在值中的符號(hào)間的分隔。因此:
            CRLF=%d13.10
            擴(kuò)展巴克斯范式允許在雙引號(hào)中直接說(shuō)明文字文本串。因此:
            command="commandstring"
            文字文本串解釋為可打印的字符連續(xù)集。
            注意:擴(kuò)展巴克斯范式字符串大小寫不敏感,并且這些串的字符集使用us-ascii字符集。
            因此:
            rulename="abc"
            以及:
            rulename="aBc"
            將與“abc”,“Abc”,“aBc”,“abC”,“ABc”,“aBC”,“AbC”和“ABC”相匹配。
            為了說(shuō)明某個(gè)規(guī)則是大小寫敏感的,請(qǐng)單獨(dú)說(shuō)明該規(guī)則使用的字符。
            例如:
            rulename=%d97%d98%d99

            rulename=%d97.98.99
            將僅與只由小寫字符abc組成的串匹配。
            2.4
            外部編碼
            終結(jié)符值的外部表示根據(jù)存儲(chǔ)或傳輸環(huán)境的限制而變化。因此,基于相同的擴(kuò)展巴科斯
            范式的語(yǔ)法可能有多個(gè)外部編碼,如其中之一是7US-ASCII環(huán)境下的;另一個(gè)是二進(jìn)制
            八位位組環(huán)境下的;當(dāng)使用16Unicode編碼時(shí),還會(huì)有另一個(gè)不同的外部編碼。盡管附
            A(核心)給出了7US-ASCII編碼環(huán)境的定義,該環(huán)境在大多數(shù)互聯(lián)網(wǎng)應(yīng)用中很普遍,但
            是,編碼細(xì)節(jié)超出了擴(kuò)展巴克斯范式的描述范圍。
            將外部編碼從語(yǔ)法中分離出來(lái),目的是使得可替換的編碼環(huán)境能用于同一語(yǔ)法。

            3.
            操作符

            3.1
            連接規(guī)則1規(guī)則2
            通過列出一系列規(guī)則名,一條規(guī)則可用于定義一個(gè)簡(jiǎn)單有序的值串--即,一連串鄰接的
            字符。例如:
            foo=%x61;a
            bar=%x62;b
            mumble=foobarfoo
            因此規(guī)則<mumble>與小寫字符串"aba"匹配。
            線性空白字符:連接操作處于擴(kuò)展巴克斯范式解析模型的核心。一串相鄰的字符(值)
            根據(jù)擴(kuò)展巴克斯范式定義的規(guī)則進(jìn)行解析。就互聯(lián)網(wǎng)規(guī)范而言,過去允許線性空白字符(空
            格符和水平制表符)在主結(jié)構(gòu),如分界特殊字符或原子字符串,兩邊自由發(fā)展以及隱含打印。
            注意:本擴(kuò)展巴克斯范式規(guī)范沒有提供線性空白字符的隱式規(guī)范。
            任何希望允許在分界符或字符串兩邊出現(xiàn)線性空白字符的語(yǔ)法必須顯式說(shuō)明之。對(duì)于那
            些被更高層規(guī)則多次使用的“核心”規(guī)則,在其中提供這些空白字符常常是有用的。“核心”
            規(guī)則可以編入一個(gè)詞法分析器中或簡(jiǎn)單地作為主規(guī)則集的一部分。

            3.2
            選擇 規(guī)則1/規(guī)則2
            由斜杠(“/”)分隔的元素是可選的。
            因此,
            foo/bar
            將接受<foo><bar>
            注意:一個(gè)包含字母字符的引用串,是用于說(shuō)明選擇字符的特殊形式,它被解釋為一個(gè)
            非終結(jié)符,該非終結(jié)符用所包含的字符,以指定的順序但可以是任意大小寫的混合方式,來(lái)
            描述組合串集。

            3.3
            增式選擇 規(guī)則1=/規(guī)則2
            在段落中指定一列選擇有時(shí)會(huì)很方便。即,通過稍后的規(guī)則定義增加選擇集,一個(gè)初始
            規(guī)則可能匹配一個(gè)或多個(gè)選擇。這對(duì)于那些源于同一父規(guī)則集而其他方面獨(dú)立的規(guī)范尤其有
            用,如常出現(xiàn)于參數(shù)列表中。使用如下結(jié)構(gòu),擴(kuò)展巴克斯范式允許這樣的增式定義:
            oldrule=/additional-alternatives
            因此規(guī)則集
            ruleset=alt1/alt2
            ruleset=/alt3
            ruleset=/alt4/alt5
            與以下說(shuō)明相同:
            ruleset=alt1/alt2/alt3/alt4/alt5

            3.4
            值域選擇 %c##-##
            通過使用連字符(“-”)表明可選值域的方式,可以緊縮說(shuō)明可選數(shù)值域。因此:
            DIGIT=%x30-39
            等同于:
            DIGIT="0"/"1"/"2"/"3"/"4"/"5"/"6"/
            "7"/"8"/"9"
            連接的數(shù)值和數(shù)值域不能在同一串中說(shuō)明。一個(gè)數(shù)值可以用點(diǎn)號(hào)連接或使用連字符說(shuō)明
            一個(gè)值域。因此,為了在行序列結(jié)束之間說(shuō)明一個(gè)可打印的字符,說(shuō)明格式如下:
            char-line=%x0D.0A%x20-7E%x0D.0A

            3.5
            序列組 (Rule1Rule2)
            括號(hào)里的元素看作一個(gè)單一的元素,其內(nèi)容嚴(yán)格排序。因而,
            (elemfoo)
            (barblat)符合要求。
            注意:當(dāng)選擇由多個(gè)規(guī)則名或文字組成時(shí),強(qiáng)烈建議使用分組符,而不要依賴“空”間
            隔的正確閱讀。
            因此推薦用如下形式代替上述形式:
            (elemfoo)/(barblat)
            該形式可以避免粗心讀者的誤解。
            序列分組符也用于在自由行文中將一個(gè)元素序列從行文中分隔出來(lái)。

            3.6
            不定循環(huán) *Rule
            在元素前的操作符“*”表示重復(fù)。完整形式為:
            <a>*<b>element
            此處<a><b>是可選的十進(jìn)制值,表示元素出現(xiàn)至少<a>次,至多<b>次。
            默認(rèn)值是0和無(wú)窮,因此*<element>允許任何數(shù)字,包括01*<element>需要至少1
            3*3<element>
            只允許31*2<element>允許12

            3.7
            指定循環(huán) nRule
            如下形式的規(guī)則:
            <n>element
            等同于
            <n>*<n>element
            即,<element>正好出現(xiàn)<N>次。因而2DIGIT是一個(gè)2位數(shù),而3ALPHA是一個(gè)3
            母字符串。

            3.8
            可選序列 [RULE]
            方括弧包括了一個(gè)可選元素序列:
            [foobar]
            等同于
            *1(foobar).

            3.9
            ;注釋
            分號(hào)起始一行注釋直到行末。這是一個(gè)簡(jiǎn)單的方法,用于在說(shuō)明中平行地包括有用的注
            解。

            3.10
            操作符優(yōu)先級(jí)
            上述各種機(jī)制具有以下優(yōu)先級(jí)關(guān)系,從上到下,優(yōu)先級(jí)依次從高(結(jié)合最緊密)到低(結(jié)
            合最松散):
            字符串,名字格式
            注釋
            值域
            循環(huán)
            分組,可選項(xiàng)
            連接
            選擇
            隨意混用選擇操作符與連接操作符,會(huì)引起混淆。
            再次提醒,推薦使用分組操作符顯式表明連接分組。

            4.
            擴(kuò)展巴克斯范式形式的擴(kuò)展巴克斯范式定義
            本語(yǔ)法使用附錄A(核心)中提供的規(guī)則
            rulelist=1*(rule/(*c-wspc-nl))
            rule=rulenamedefined-aselementsc-nl
            ;若下一行以空白字符開頭則繼續(xù)
            rulename=ALPHA*(ALPHA/DIGIT/"-")
            defined-as=*c-wsp("="/"=/")*c-wsp
            ;基本規(guī)則定義以及增式選擇
            elements=alternation*c-wsp
            c-wsp=WSP/(c-nlWSP)
            c-nl=comment/CRLF
            ;注釋或新的一行
            comment=";"*(WSP/VCHAR)CRLF
            alternation=concatenation
            *(*c-wsp"/"*c-wspconcatenation)
            concatenation=repetition*(1*c-wsprepetition)
            repetition=[repeat]element
            repeat=1*DIGIT/(*DIGIT"*"*DIGIT)
            element=rulename/group/option/
            char-val/num-val/prose-val
            group="("*c-wspalternation*c-wsp")"
            option="["*c-wspalternation*c-wsp"]"
            char-val=DQUOTE*(%x20-21/%x23-7E)DQUOTE
            SPVCHAR的引用串,不使用DQUOTE
            num-val="%"(bin-val/dec-val/hex-val)
            bin-val="b"1*BIT
            [1*("."1*BIT)/("-"1*BIT)]
            ;一系列的連續(xù)位值或單個(gè)ONEOF
            dec-val="d"1*DIGIT
            [1*("."1*DIGIT)/("-"1*DIGIT)]
            hex-val="x"1*HEXDIG
            [1*("."1*HEXDIG)/("-"1*HEXDIG)]
            prose-val="<"*(%x20-3D/%x3F-7E)">"
            ;括起來(lái)的SPVCHAR字符串,不含尖括號(hào)
            ;行文描述,作為最后的方法來(lái)使用

            5.安全
            考慮
            本文檔確信與安全無(wú)關(guān)。

            6.
            附錄A-核心
            本附錄給出一個(gè)特定語(yǔ)法的便捷核心。附錄中的定義可作為規(guī)則的核心集使用。

            6.1
            核心規(guī)則
            某些基本規(guī)則使用大寫,如SP,HTAB,CRLF,DIGIT,ALPHA,等等。
            ALPHA=%x41-5A/%x61-7A;A-Z/a-z
            BIT="0"/"1"
            CHAR=%x01-7F
            ;除NUL以外的任何7US-ASCII字符
            CR=%x0D
            ;回車
            CRLF=CRLF
            ;互聯(lián)網(wǎng)標(biāo)準(zhǔn)格式的換行
            CTL=%x00-1F/%x7F
            ;控制字符
            DIGIT=%x30-39
            0-9
            DQUOTE=%x22
            "(雙引號(hào))
            HEXDIG=DIGIT/"A"/"B"/"C"/"D"/"E"/"F"
            HTAB=%x09
            ;水平制表符
            LF=%x0A
            ;換行
            LWSP=*(WSP/CRLFWSP)
            ;線性空白字符(過去的換行)
            OCTET=%x00-FF
            8位數(shù)據(jù)
            SP=%x20
            ;空格符
            VCHAR=%x21-7E
            ;可見(可打印)字符
            WSP=SP/HTAB
            ;空白字符

            6.2
            公共編碼
            形式上,數(shù)據(jù)被描述成“網(wǎng)絡(luò)虛ASCII”,即有8位域的7US-ASCII編碼,其中最高
            位(第8位)置0。值串按“網(wǎng)絡(luò)字節(jié)順序”排列,高位字節(jié)在左邊并且在網(wǎng)絡(luò)中首先發(fā)送。

            7.
            致謝
            擴(kuò)展巴克斯范式的語(yǔ)法最初在RFC733中說(shuō)明。SRTInternationalKenL.Harrenstien
            負(fù)責(zé)將巴克斯范式重新編碼成擴(kuò)展巴克斯范式,這樣使得描述更簡(jiǎn)短且更容易理解。
            該新近項(xiàng)目始于一項(xiàng)簡(jiǎn)單的工作,希望從RFC822中精選出反復(fù)被非電子郵件規(guī)范作
            者引用的部分,即,擴(kuò)展巴科斯范式的描述。工作組并非簡(jiǎn)單盲目地將已存在的文本轉(zhuǎn)變成
            單獨(dú)的文檔,而是經(jīng)過15年對(duì)已有規(guī)范及相關(guān)規(guī)范優(yōu)缺點(diǎn)的仔細(xì)考慮,以求進(jìn)一步提高。
            這使項(xiàng)目變得比最初的想法艱巨得多。有趣的是,盡管作出諸如刪除列表符這樣的讓人意外
            的決定,結(jié)果并非與原作非常的不同。
            最近一輪的規(guī)范由DRUMS工作組完成,感謝JeromeAbela,HaraldAlvestrand,Robert
            Elz,RogerFajman,AvivaGarrett,TomHarsch,DanKohn,BillMcQuillan,KeithMoore,
            ChrisNewman,PeteResnick
            HenningSchulzrinne的杰出貢獻(xiàn)。

            8.
            參考

            [US-ASCII]CodedCharacterSet--7-BitAmericanStandardCodefor
            InformationInterchange,ANSIX3.4-1986.

            [RFC733]Crocker,D.,Vittal,J.,Pogran,K.,andD.Henderson,
            "StandardfortheFormatofARPANetworkTextMessage,"RFC733,
            November1977.

            [RFC822]Crocker,D.,"StandardfortheFormatofARPAInternetText
            Messages",STD11,RFC822,August1982.

            9.
            作者地址
            DavidH.CrockerPaulOverell

            InternetMailConsortiumDemonInternetLtd
            675SpruceDr.DorkingBusinessPark
            Sunnyvale,CA94086USADorking
            Surrey,RH41HN
            UK

            Phone:+14082468253
            Fax:+14082496205
            EMail:dcrocker@imc.orgpaulo@turnpike.com

            10.
            完整版權(quán)聲明
            Copyright(C)TheInternetSociety(1997).AllRightsReserved.

            Thisdocumentandtranslationsofitmaybecopiedandfurnishedto
            others,andderivativeworksthatcommentonorotherwiseexplainit
            orassistinitsimplementationmaybeprepared,copied,published
            anddistributed,inwholeorinpart,withoutrestrictionofany
            kind,providedthattheabovecopyrightnoticeandthisparagraphare
            includedonallsuchcopiesandderivativeworks.However,this
            documentitselfmaynotbemodifiedinanyway,suchasbyremoving
            thecopyrightnoticeorreferencestotheInternetSocietyorother
            Internetorganizations,exceptasneededforthepurposeof
            developingInternetstandardsinwhichcasetheproceduresfor
            copyrightsdefinedintheInternetStandardsprocessmustbe
            followed,orasrequiredtotranslateitintolanguagesotherthan
            English.

            Thelimitedpermissionsgrantedaboveareperpetualandwillnotbe
            revokedbytheInternetSocietyoritssuccessorsorassigns.

            Thisdocumentandtheinformationcontainedhereinisprovidedonan
            "ASIS"basisandTHEINTERNETSOCIETYANDTHEINTERNET
            ENGINEERING
            TASKFORCEDISCLAIMSALLWARRANTIES,EXPRESSORIMPLIED,
            INCLUDING
            BUTNOTLIMITEDTOANYWARRANTYTHATTHEUSEOFTHE
            INFORMATION
            HEREINWILLNOTINFRINGEANYRIGHTSORANYIMPLIEDWARRANTIES
            OF
            MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE.

             

            posted on 2008-12-28 18:45 肥仔 閱讀(1225) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程

            国产成人精品久久一区二区三区av| 2021精品国产综合久久| 欧美久久久久久| 7777久久久国产精品消防器材| 欧美喷潮久久久XXXXx| 99久久亚洲综合精品成人| 欧美精品一区二区久久| 国产精品9999久久久久| 久久精品女人天堂AV麻| 国产高潮国产高潮久久久| 亚洲国产天堂久久久久久| 精品久久久久久久久午夜福利| 久久AⅤ人妻少妇嫩草影院| 久久夜色精品国产噜噜麻豆| 蜜臀久久99精品久久久久久| 国产精品免费看久久久| 久久精品国产乱子伦| 国产高潮久久免费观看| 久久久久高潮毛片免费全部播放 | 亚洲精品高清国产一线久久| 久久综合给合久久国产免费| 亚洲精品高清一二区久久| 97热久久免费频精品99| 日韩精品久久久肉伦网站 | 久久国产精品99精品国产987| 久久SE精品一区二区| 亚洲国产成人久久综合碰| 日本三级久久网| 久久99精品国产99久久6男男| 亚洲国产另类久久久精品小说| 热久久最新网站获取| 色偷偷91久久综合噜噜噜噜| 久久久精品久久久久久| 99久久精品免费国产大片| 青青国产成人久久91网| 曰曰摸天天摸人人看久久久| 久久久久国产一级毛片高清版| 久久99精品国产99久久6男男| 久久久久国产一级毛片高清版| 精品久久久久久中文字幕| 亚洲国产精品久久久久久|