Ignore:
Timestamp:
20/01/14 07:43:53 (8 years ago)
Author:
julian.reschke@…
Message:

update rfc2617.xml (ABNF alignment was off from published version), regen all HTML

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/orig/rfc4234.html

    r1305 r2564  
    22  PUBLIC "-//W3C//DTD HTML 4.01//EN">
    33<html lang="en">
    4    <head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/">
     4   <head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
    55      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    66      <title>Augmented BNF for Syntax Specifications: ABNF</title><style type="text/css" title="Xml2Rfc (sans serif)">
     
    2424body {
    2525  color: black;
    26   font-family: verdana, helvetica, arial, sans-serif;
    27   font-size: 10pt;
     26  font-family: cambria, helvetica, arial, sans-serif;
     27  font-size: 11pt;
     28  margin-right: 2em;
    2829}
    2930cite {
    3031  font-style: normal;
    3132}
    32 dd {
    33   margin-right: 2em;
    34 }
    3533dl {
    3634  margin-left: 2em;
    3735}
    38 
    3936ul.empty {
    4037  list-style-type: none;
     
    5047}
    5148h1 {
    52   font-size: 14pt;
     49  font-size: 130%;
    5350  line-height: 21pt;
    5451  page-break-after: avoid;
     
    5754  page-break-before: always;
    5855}
    59 h1 a {
    60   color: #333333;
    61 }
    6256h2 {
    63   font-size: 12pt;
     57  font-size: 120%;
    6458  line-height: 15pt;
    6559  page-break-after: avoid;
    6660}
    67 h3, h4, h5, h6 {
    68   font-size: 10pt;
     61h3 {
     62  font-size: 110%;
    6963  page-break-after: avoid;
    7064}
    71 h2 a, h3 a, h4 a, h5 a, h6 a {
     65h4, h5, h6 {
     66  page-break-after: avoid;
     67}
     68h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    7269  color: black;
    7370}
     
    7774li {
    7875  margin-left: 2em;
    79   margin-right: 2em;
    8076}
    8177ol {
    8278  margin-left: 2em;
    83   margin-right: 2em;
    8479}
    8580ol.la {
     
    9489p {
    9590  margin-left: 2em;
    96   margin-right: 2em;
    9791}
    9892pre {
     
    10094  background-color: lightyellow;
    10195  padding: .25em;
     96  page-break-inside: avoid;
    10297}
    10398pre.text2 {
     
    129124  border-spacing: 1px;
    130125  width: 95%;
    131   font-size: 10pt;
     126  font-size: 11pt;
    132127  color: white;
    133128}
     
    137132td.topnowrap {
    138133  vertical-align: top;
    139   white-space: nowrap; 
     134  white-space: nowrap;
    140135}
    141136table.header td {
     
    157152  list-style: none;
    158153  margin-left: 1.5em;
    159   margin-right: 0em;
    160154  padding-left: 0em;
    161155}
     
    163157  line-height: 150%;
    164158  font-weight: bold;
    165   font-size: 10pt;
    166159  margin-left: 0em;
    167   margin-right: 0em;
    168160}
    169161ul.toc li li {
    170162  line-height: normal;
    171163  font-weight: normal;
    172   font-size: 9pt;
     164  font-size: 10pt;
    173165  margin-left: 0em;
    174   margin-right: 0em;
    175166}
    176167li.excluded {
     
    179170ul p {
    180171  margin-left: 0em;
     172}
     173.title, .filename, h1, h2, h3, h4 {
     174  font-family: candara, helvetica, arial, sans-serif;
     175}
     176samp, tt, code, pre {
     177  font: consolas, monospace;
    181178}
    182179
     
    195192  font-weight: bold;
    196193  text-align: center;
    197   font-size: 9pt;
     194  font-size: 10pt;
    198195}
    199196.filename {
    200197  color: #333333;
     198  font-size: 75%;
    201199  font-weight: bold;
    202   font-size: 12pt;
    203200  line-height: 21pt;
    204201  text-align: center;
     
    207204  font-weight: bold;
    208205}
    209 .hidden {
    210   display: none;
    211 }
    212206.left {
    213207  text-align: left;
     
    217211}
    218212.title {
    219   color: #990000;
    220   font-size: 18pt;
     213  color: green;
     214  font-size: 150%;
    221215  line-height: 18pt;
    222216  font-weight: bold;
     
    224218  margin-top: 36pt;
    225219}
    226 .vcardline {
    227   display: block;
    228 }
    229220.warning {
    230   font-size: 14pt;
     221  font-size: 130%;
    231222  background-color: yellow;
    232223}
     
    237228    display: none;
    238229  }
    239  
     230
    240231  a {
    241232    color: black;
     
    252243    background-color: white;
    253244    vertical-align: top;
    254     font-size: 12pt;
    255   }
    256 
    257   ul.toc a::after {
     245    font-size: 110%;
     246  }
     247
     248  ul.toc a:nth-child(2)::after {
    258249    content: leader('.') target-counter(attr(href), page);
    259250  }
    260  
     251
    261252  ul.ind li li a {
    262253    content: target-counter(attr(href), page);
    263254  }
    264  
     255
    265256  .print2col {
    266257    column-count: 2;
     
    272263@page {
    273264  @top-left {
    274        content: "RFC 4234"; 
    275   } 
     265       content: "RFC 4234";
     266  }
    276267  @top-right {
    277        content: "October 2005"; 
    278   } 
     268       content: "October 2005";
     269  }
    279270  @top-center {
    280        content: "ABNF"; 
    281   } 
     271       content: "ABNF";
     272  }
    282273  @bottom-left {
    283        content: "Crocker & Overell"; 
    284   } 
     274       content: "Crocker & Overell";
     275  }
    285276  @bottom-center {
    286        content: "Standards Track"; 
    287   } 
     277       content: "Standards Track";
     278  }
    288279  @bottom-right {
    289        content: "[Page " counter(page) "]"; 
    290   } 
    291 }
    292 
    293 @page:first { 
     280       content: "[Page " counter(page) "]";
     281  }
     282}
     283
     284@page:first {
    294285    @top-left {
    295286      content: normal;
     
    316307      <link rel="Help" title="RFC-Editor's Status Page" href="http://www.rfc-editor.org/info/rfc4234">
    317308      <link rel="Help" title="Additional Information on tools.ietf.org" href="http://tools.ietf.org/html/rfc4234">
    318       <meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.550, 2011-05-30 14:02:12, XSLT vendor: SAXON 8.9 from Saxonica http://www.saxonica.com/">
     309      <meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.611, 2013/11/27 12:23:51, XSLT vendor: SAXON 8.9 from Saxonica http://www.saxonica.com/">
    319310      <meta name="keywords" content="ABNF, Augmented, Backus-Naur, Form, electronic, mail">
    320311      <link rel="schema.dct" href="http://purl.org/dc/terms/">
     
    354345      </table>
    355346      <p class="title">Augmented BNF for Syntax Specifications: ABNF</p>
    356       <h1><a id="rfc.status" href="#rfc.status">Status of this Memo</a></h1>
    357       <p>This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions
    358          for improvements. Please refer to the current edition of the “Internet Official Protocol Standards” (STD 1) for the standardization
    359          state and status of this protocol. Distribution of this memo is unlimited.
    360       </p>
    361       <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1>
    362       <p>Copyright © The Internet Society (2005). All Rights Reserved.</p>
    363       <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1>
     347      <div id="rfc.status">
     348         <h1><a href="#rfc.status">Status of this Memo</a></h1>
     349         <p>This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions
     350            for improvements. Please refer to the current edition of the “Internet Official Protocol Standards” (STD 1) for the standardization
     351            state and status of this protocol. Distribution of this memo is unlimited.
     352         </p>
     353      </div>
     354      <div id="rfc.copyrightnotice">
     355         <h1><a href="#rfc.copyrightnotice">Copyright Notice</a></h1>
     356         <p>Copyright © The Internet Society (2005). All Rights Reserved.</p>
     357      </div>
     358      <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1>
    364359      <p>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur
    365360         Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents
     
    367362         and ABNF involve naming rules, repetition, alternatives, order- independence, and value ranges. This specification also supplies
    368363         additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.
    369       </p> 
     364      </p>
    370365      <hr class="noprint">
    371366      <h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1>
    372367      <ul class="toc">
    373          <li>1.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1">INTRODUCTION</a></li>
    374          <li>2.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2">RULE DEFINITION</a><ul>
    375                <li>2.1.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.1">Rule Naming</a></li>
    376                <li>2.2.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.2">Rule Form</a></li>
    377                <li>2.3.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.3">Terminal Values</a></li>
    378                <li>2.4.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.4">External Encodings</a></li>
     368         <li><a href="#rfc.section.1">1.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1">INTRODUCTION</a></li>
     369         <li><a href="#rfc.section.2">2.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2">RULE DEFINITION</a><ul>
     370               <li><a href="#rfc.section.2.1">2.1.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.1">Rule Naming</a></li>
     371               <li><a href="#rfc.section.2.2">2.2.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.2">Rule Form</a></li>
     372               <li><a href="#rfc.section.2.3">2.3.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.3">Terminal Values</a></li>
     373               <li><a href="#rfc.section.2.4">2.4.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.4">External Encodings</a></li>
    379374            </ul>
    380375         </li>
    381          <li>3.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3">OPERATORS</a><ul>
    382                <li>3.1.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.1">Concatenation:  Rule1 Rule2</a></li>
    383                <li>3.2.&nbsp;&nbsp;&nbsp;<a href="#Alternatives">Alternatives:  Rule1 / Rule2</a></li>
    384                <li>3.3.&nbsp;&nbsp;&nbsp;<a href="#Incremental">Incremental Alternatives: Rule1 =/ Rule2</a></li>
    385                <li>3.4.&nbsp;&nbsp;&nbsp;<a href="#Range">Value Range Alternatives:  %c##-##</a></li>
    386                <li>3.5.&nbsp;&nbsp;&nbsp;<a href="#Sequence">Sequence Group:  (Rule1 Rule2)</a></li>
    387                <li>3.6.&nbsp;&nbsp;&nbsp;<a href="#VarRep">Variable Repetition:  *Rule</a></li>
    388                <li>3.7.&nbsp;&nbsp;&nbsp;<a href="#SpecRep">Specific Repetition:  nRule</a></li>
    389                <li>3.8.&nbsp;&nbsp;&nbsp;<a href="#OptSeq">Optional Sequence:  [RULE]</a></li>
    390                <li>3.9.&nbsp;&nbsp;&nbsp;<a href="#Comment">Comment:  ; Comment</a></li>
    391                <li>3.10.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.10">Operator Precedence</a></li>
     376         <li><a href="#rfc.section.3">3.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3">OPERATORS</a><ul>
     377               <li><a href="#rfc.section.3.1">3.1.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.1">Concatenation:  Rule1 Rule2</a></li>
     378               <li><a href="#rfc.section.3.2">3.2.</a>&nbsp;&nbsp;&nbsp;<a href="#Alternatives">Alternatives:  Rule1 / Rule2</a></li>
     379               <li><a href="#rfc.section.3.3">3.3.</a>&nbsp;&nbsp;&nbsp;<a href="#Incremental">Incremental Alternatives: Rule1 =/ Rule2</a></li>
     380               <li><a href="#rfc.section.3.4">3.4.</a>&nbsp;&nbsp;&nbsp;<a href="#Range">Value Range Alternatives:  %c##-##</a></li>
     381               <li><a href="#rfc.section.3.5">3.5.</a>&nbsp;&nbsp;&nbsp;<a href="#Sequence">Sequence Group:  (Rule1 Rule2)</a></li>
     382               <li><a href="#rfc.section.3.6">3.6.</a>&nbsp;&nbsp;&nbsp;<a href="#VarRep">Variable Repetition:  *Rule</a></li>
     383               <li><a href="#rfc.section.3.7">3.7.</a>&nbsp;&nbsp;&nbsp;<a href="#SpecRep">Specific Repetition:  nRule</a></li>
     384               <li><a href="#rfc.section.3.8">3.8.</a>&nbsp;&nbsp;&nbsp;<a href="#OptSeq">Optional Sequence:  [RULE]</a></li>
     385               <li><a href="#rfc.section.3.9">3.9.</a>&nbsp;&nbsp;&nbsp;<a href="#Comment">Comment:  ; Comment</a></li>
     386               <li><a href="#rfc.section.3.10">3.10.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.10">Operator Precedence</a></li>
    392387            </ul>
    393388         </li>
    394          <li>4.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4">ABNF DEFINITION OF ABNF</a></li>
    395          <li>5.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5">SECURITY CONSIDERATIONS</a></li>
    396          <li>6.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a><ul>
    397                <li>6.1.&nbsp;&nbsp;&nbsp;<a href="#rfc.references.1">Normative References</a></li>
    398                <li>6.2.&nbsp;&nbsp;&nbsp;<a href="#rfc.references.2">Informative References</a></li>
     389         <li><a href="#rfc.section.4">4.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4">ABNF DEFINITION OF ABNF</a></li>
     390         <li><a href="#rfc.section.5">5.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5">SECURITY CONSIDERATIONS</a></li>
     391         <li><a href="#rfc.section.6">6.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a><ul>
     392               <li><a href="#rfc.section.6.1">6.1.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references.1">Normative References</a></li>
     393               <li><a href="#rfc.section.6.2">6.2.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references.2">Informative References</a></li>
    399394            </ul>
    400395         </li>
    401396         <li><a href="#rfc.authors">Authors' Addresses</a></li>
    402          <li>A.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.A">ACKNOWLEDGEMENTS</a></li>
    403          <li>B.&nbsp;&nbsp;&nbsp;<a href="#CORE">APPENDIX - CORE ABNF OF ABNF</a><ul>
    404                <li>B.1.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B.1">Core Rules</a></li>
    405                <li>B.2.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B.2">Common Encoding</a></li>
     397         <li><a href="#rfc.section.A">A.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.A">ACKNOWLEDGEMENTS</a></li>
     398         <li><a href="#rfc.section.B">B.</a>&nbsp;&nbsp;&nbsp;<a href="#CORE">APPENDIX - CORE ABNF OF ABNF</a><ul>
     399               <li><a href="#rfc.section.B.1">B.1.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B.1">Core Rules</a></li>
     400               <li><a href="#rfc.section.B.2">B.2.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B.2">Common Encoding</a></li>
    406401            </ul>
    407402         </li>
    408403         <li><a href="#rfc.ipr">Intellectual Property and Copyright Statements</a></li>
    409404      </ul>
    410       <h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a>&nbsp;INTRODUCTION
    411       </h1>
    412       <p id="rfc.section.1.p.1">Internet technical specifications often need to define a formal syntax and are free to employ whatever notation their authors
    413          deem useful. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among
    414          many Internet specifications. It balances compactness and simplicity, with reasonable representational power. In the early
    415          days of the Arpanet, each specification contained its own definition of ABNF. This included the email specifications, <a href="#RFC733"><cite title="Standard for the format of ARPA network text messages">[RFC733]</cite></a> and then <a href="#RFC822"><cite title="Standard for the format of ARPA Internet text messages">[RFC822]</cite></a>, which came to be the common citations for defining ABNF. The current document separates those definitions to permit selective
    416          reference. Predictably, it also provides some modifications and enhancements.
    417       </p>
    418       <p id="rfc.section.1.p.2">The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value
    419          ranges. <a href="#CORE" title="APPENDIX - CORE ABNF OF ABNF">Appendix&nbsp;B</a> supplies rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.
    420          It is provided as a convenience and is otherwise separate from the meta language defined in the body of this document, and
    421          separate from its formal status.
    422       </p>
    423       <dl>
    424          <dt>Changes since [RFC2234]:</dt>
    425          <dd>In <a href="#SpecRep" title="Specific Repetition:  nRule">Section&nbsp;3.7</a>, the phrase: "That is, exactly &lt;N&gt; occurrences of &lt;element&gt;." was corrected to: "That is, exactly &lt;n&gt; occurrences of &lt;element&gt;."
    426          </dd>
    427          <dd>Some continuation comment lines needed to be corrected to begin with comment character (";").</dd>
    428       </dl>
    429       <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;RULE DEFINITION
    430       </h1>
    431       <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1.</a>&nbsp;Rule Naming
    432       </h2>
    433       <p id="rfc.section.2.1.p.1">The name of a rule is simply the name itself; that is, a sequence of characters, beginning with an alphabetic character, and
    434          followed by a combination of alphabetics, digits, and hyphens (dashes).
    435       </p>
    436       <p id="rfc.section.2.1.p.2"> </p>
    437       <dl>
    438          <dt>NOTE:  </dt>
    439          <dd>Rule names are case-insensitive</dd>
    440       </dl>
    441       <p id="rfc.section.2.1.p.3">The names &lt;rulename&gt;, &lt;Rulename&gt;, &lt;RULENAME&gt;, and &lt;rUlENamE&gt; all refer to the same rule.</p>
    442       <p id="rfc.section.2.1.p.4">Unlike original BNF, angle brackets ("&lt;", "&gt;") are not required. However, angle brackets may be used around a rule name whenever
    443          their presence facilitates in discerning the use of a rule name. This is typically restricted to rule name references in free-form
    444          prose, or to distinguish partial rules that combine into a string not separated by white space, such as shown in the discussion
    445          about repetition, below.
    446       </p>
    447       <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2.</a>&nbsp;Rule Form
    448       </h2>
    449       <p id="rfc.section.2.2.p.1">A rule is defined by the following sequence:</p>
    450       <div id="rfc.figure.u.1"></div> <pre class="text">
    451       name =  elements crlf </pre> <p id="rfc.section.2.2.p.3">where &lt;name&gt; is the name of the rule, &lt;elements&gt; is one or more rule names or terminal specifications, and &lt;crlf&gt; is the end-of-line
    452          indicator (carriage return followed by line feed). The equal sign separates the name from the definition of the rule. The
    453          elements form a sequence of one or more rule names and/or value definitions, combined according to the various operators defined
    454          in this document, such as alternative and repetition.
    455       </p>
    456       <p id="rfc.section.2.2.p.4">For visual ease, rule definitions are left aligned. When a rule requires multiple lines, the continuation lines are indented.
    457          The left alignment and indentation are relative to the first lines of the ABNF rules and need not match the left margin of
    458          the document.
    459       </p>
    460       <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3.</a>&nbsp;Terminal Values
    461       </h2>
    462       <p id="rfc.section.2.3.p.1">Rules resolve into a string of terminal values, sometimes called characters. In ABNF, a character is merely a non-negative
    463          integer. In certain contexts, a specific mapping (encoding) of values into a character set (such as ASCII) will be specified.
    464       </p>
    465       <div id="rfc.figure.u.2"></div>
    466       <p>Terminals are specified by one or more numeric characters, with the base interpretation of those characters indicated explicitly.
    467          The following bases are currently defined:
    468       </p>  <pre class="text">
     405      <div>
     406         <h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a>&nbsp;INTRODUCTION
     407         </h1>
     408         <p id="rfc.section.1.p.1">Internet technical specifications often need to define a formal syntax and are free to employ whatever notation their authors
     409            deem useful. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among
     410            many Internet specifications. It balances compactness and simplicity, with reasonable representational power. In the early
     411            days of the Arpanet, each specification contained its own definition of ABNF. This included the email specifications, <a href="#RFC733"><cite title="Standard for the format of ARPA network text messages">[RFC733]</cite></a> and then <a href="#RFC822"><cite title="Standard for the format of ARPA Internet text messages">[RFC822]</cite></a>, which came to be the common citations for defining ABNF. The current document separates those definitions to permit selective
     412            reference. Predictably, it also provides some modifications and enhancements.
     413         </p>
     414         <p id="rfc.section.1.p.2">The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value
     415            ranges. <a href="#CORE" title="APPENDIX - CORE ABNF OF ABNF">Appendix&nbsp;B</a> supplies rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.
     416            It is provided as a convenience and is otherwise separate from the meta language defined in the body of this document, and
     417            separate from its formal status.
     418         </p>
     419         <dl>
     420            <dt>Changes since [RFC2234]:</dt>
     421            <dd>In <a href="#SpecRep" title="Specific Repetition:  nRule">Section&nbsp;3.7</a>, the phrase: "That is, exactly &lt;N&gt; occurrences of &lt;element&gt;." was corrected to: "That is, exactly &lt;n&gt; occurrences of &lt;element&gt;."
     422            </dd>
     423            <dd>Some continuation comment lines needed to be corrected to begin with comment character (";").</dd>
     424         </dl>
     425      </div>
     426      <div>
     427         <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;RULE DEFINITION
     428         </h1>
     429         <div>
     430            <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1.</a>&nbsp;Rule Naming
     431            </h2>
     432            <p id="rfc.section.2.1.p.1">The name of a rule is simply the name itself; that is, a sequence of characters, beginning with an alphabetic character, and
     433               followed by a combination of alphabetics, digits, and hyphens (dashes).
     434            </p>
     435            <p id="rfc.section.2.1.p.2"></p>
     436            <dl>
     437               <dt>NOTE:  </dt>
     438               <dd>Rule names are case-insensitive</dd>
     439            </dl>
     440            <p id="rfc.section.2.1.p.3">The names &lt;rulename&gt;, &lt;Rulename&gt;, &lt;RULENAME&gt;, and &lt;rUlENamE&gt; all refer to the same rule.</p>
     441            <p id="rfc.section.2.1.p.4">Unlike original BNF, angle brackets ("&lt;", "&gt;") are not required. However, angle brackets may be used around a rule name whenever
     442               their presence facilitates in discerning the use of a rule name. This is typically restricted to rule name references in free-form
     443               prose, or to distinguish partial rules that combine into a string not separated by white space, such as shown in the discussion
     444               about repetition, below.
     445            </p>
     446         </div>
     447         <div>
     448            <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2.</a>&nbsp;Rule Form
     449            </h2>
     450            <p id="rfc.section.2.2.p.1">A rule is defined by the following sequence:</p>
     451            <div id="rfc.figure.u.1"></div><pre class="text">
     452      name =  elements crlf </pre><p id="rfc.section.2.2.p.3">where &lt;name&gt; is the name of the rule, &lt;elements&gt; is one or more rule names or terminal specifications, and &lt;crlf&gt; is the end-of-line
     453               indicator (carriage return followed by line feed). The equal sign separates the name from the definition of the rule. The
     454               elements form a sequence of one or more rule names and/or value definitions, combined according to the various operators defined
     455               in this document, such as alternative and repetition.
     456            </p>
     457            <p id="rfc.section.2.2.p.4">For visual ease, rule definitions are left aligned. When a rule requires multiple lines, the continuation lines are indented.
     458               The left alignment and indentation are relative to the first lines of the ABNF rules and need not match the left margin of
     459               the document.
     460            </p>
     461         </div>
     462         <div>
     463            <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3.</a>&nbsp;Terminal Values
     464            </h2>
     465            <p id="rfc.section.2.3.p.1">Rules resolve into a string of terminal values, sometimes called characters. In ABNF, a character is merely a non-negative
     466               integer. In certain contexts, a specific mapping (encoding) of values into a character set (such as ASCII) will be specified.
     467            </p>
     468            <div id="rfc.figure.u.2"></div>
     469            <p>Terminals are specified by one or more numeric characters, with the base interpretation of those characters indicated explicitly.
     470               The following bases are currently defined:
     471            </p><pre class="text">
    469472      b           =  binary
    470473
    471474      d           =  decimal
    472475
    473       x           =  hexadecimal </pre> <div id="rfc.figure.u.3"></div>
    474       <p>Hence:</p>  <pre class="text">
     476      x           =  hexadecimal </pre><div id="rfc.figure.u.3"></div>
     477            <p>Hence:</p><pre class="text">
    475478      CR          =  %d13
    476479
    477       CR          =  %x0D </pre>  <p>respectively specify the decimal and hexadecimal representation of <a href="#US-ASCII"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[US-ASCII]</cite></a> for carriage return.
    478       </p>
    479       <div id="rfc.figure.u.4"></div>
    480       <p>A concatenated string of such values is specified compactly, using a period (".") to indicate a separation of characters within
    481          that value. Hence:
    482       </p>  <pre class="text">
    483       CRLF        =  %d13.10 </pre> <div id="rfc.figure.u.5"></div>
    484       <p>ABNF permits the specification of literal text strings directly, enclosed in quotation-marks. Hence:</p>  <pre class="text">
    485       command     =  "command string" </pre> <p id="rfc.section.2.3.p.6">Literal text strings are interpreted as a concatenated set of printable characters.</p>
    486       <p id="rfc.section.2.3.p.7"> </p>
    487       <dl>
    488          <dt>NOTE:  </dt>
    489          <dd>ABNF strings are case-insensitive and the character set for these strings is us-ascii.</dd>
    490       </dl>
    491       <div id="rfc.figure.u.6"></div>
    492       <p>Hence:</p>  <pre class="text">
    493       rulename = "abc" </pre> <div id="rfc.figure.u.7"></div>
    494       <p>and:</p>  <pre class="text">
     480      CR          =  %x0D </pre><p>respectively specify the decimal and hexadecimal representation of <a href="#US-ASCII"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[US-ASCII]</cite></a> for carriage return.
     481            </p>
     482            <div id="rfc.figure.u.4"></div>
     483            <p>A concatenated string of such values is specified compactly, using a period (".") to indicate a separation of characters within
     484               that value. Hence:
     485            </p><pre class="text">
     486      CRLF        =  %d13.10 </pre><div id="rfc.figure.u.5"></div>
     487            <p>ABNF permits the specification of literal text strings directly, enclosed in quotation-marks. Hence:</p><pre class="text">
     488      command     =  "command string" </pre><p id="rfc.section.2.3.p.6">Literal text strings are interpreted as a concatenated set of printable characters.</p>
     489            <p id="rfc.section.2.3.p.7"></p>
     490            <dl>
     491               <dt>NOTE:  </dt>
     492               <dd>ABNF strings are case-insensitive and the character set for these strings is us-ascii.</dd>
     493            </dl>
     494            <div id="rfc.figure.u.6"></div>
     495            <p>Hence:</p><pre class="text">
     496      rulename = "abc" </pre><div id="rfc.figure.u.7"></div>
     497            <p>and:</p><pre class="text">
    495498      rulename = "aBc"
    496 </pre>  <p>will match "abc", "Abc", "aBc", "abC", "ABc", "aBC", "AbC", and "ABC".</p>
    497       <p id="rfc.section.2.3.p.10"> </p>
    498       <ul class="empty">
    499          <li>To specify a rule that IS case SENSITIVE, specify the characters individually.</li>
    500       </ul>
    501       <div id="rfc.figure.u.8"></div>
    502       <p>For example:</p>  <pre class="text">
     499</pre><p>will match "abc", "Abc", "aBc", "abC", "ABc", "aBC", "AbC", and "ABC".</p>
     500            <p id="rfc.section.2.3.p.10"></p>
     501            <ul class="empty">
     502               <li>To specify a rule that IS case SENSITIVE, specify the characters individually.</li>
     503            </ul>
     504            <div id="rfc.figure.u.8"></div>
     505            <p>For example:</p><pre class="text">
    503506      rulename    =  %d97 %d98 %d99
    504 </pre> <div id="rfc.figure.u.9"></div>
    505       <p>or</p>  <pre class="text">
     507</pre><div id="rfc.figure.u.9"></div>
     508            <p>or</p><pre class="text">
    506509      rulename    =  %d97.98.99
    507 </pre>  <p>will match only the string that comprises only the lowercased characters, abc.</p>
    508       <h2 id="rfc.section.2.4"><a href="#rfc.section.2.4">2.4.</a>&nbsp;External Encodings
    509       </h2>
    510       <p id="rfc.section.2.4.p.1">External representations of terminal value characters will vary according to constraints in the storage or transmission environment.
    511          Hence, the same ABNF-based grammar may have multiple external encodings, such as one for a 7-bit US-ASCII environment, another
    512          for a binary octet environment, and still a different one when 16-bit Unicode is used. Encoding details are beyond the scope
    513          of ABNF, although Appendix A (Core) provides definitions for a 7-bit US-ASCII environment as has been common to much of the
    514          Internet.
    515       </p>
    516       <p id="rfc.section.2.4.p.2">By separating external encoding from the syntax, it is intended that alternate encoding environments can be used for the same
    517          syntax.
    518       </p>
    519       <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;OPERATORS
    520       </h1>
    521       <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1.</a>&nbsp;Concatenation:  Rule1 Rule2
    522       </h2>
    523       <p id="rfc.section.3.1.p.1">A rule can define a simple, ordered string of values (i.e., a concatenation of contiguous characters) by listing a sequence
    524          of rule names. For example:
    525       </p>
    526       <div id="rfc.figure.u.10"></div> <pre class="text">
     510</pre><p>will match only the string that comprises only the lowercased characters, abc.</p>
     511         </div>
     512         <div>
     513            <h2 id="rfc.section.2.4"><a href="#rfc.section.2.4">2.4.</a>&nbsp;External Encodings
     514            </h2>
     515            <p id="rfc.section.2.4.p.1">External representations of terminal value characters will vary according to constraints in the storage or transmission environment.
     516               Hence, the same ABNF-based grammar may have multiple external encodings, such as one for a 7-bit US-ASCII environment, another
     517               for a binary octet environment, and still a different one when 16-bit Unicode is used. Encoding details are beyond the scope
     518               of ABNF, although Appendix A (Core) provides definitions for a 7-bit US-ASCII environment as has been common to much of the
     519               Internet.
     520            </p>
     521            <p id="rfc.section.2.4.p.2">By separating external encoding from the syntax, it is intended that alternate encoding environments can be used for the same
     522               syntax.
     523            </p>
     524         </div>
     525      </div>
     526      <div>
     527         <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;OPERATORS
     528         </h1>
     529         <div>
     530            <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1.</a>&nbsp;Concatenation:  Rule1 Rule2
     531            </h2>
     532            <p id="rfc.section.3.1.p.1">A rule can define a simple, ordered string of values (i.e., a concatenation of contiguous characters) by listing a sequence
     533               of rule names. For example:
     534            </p>
     535            <div id="rfc.figure.u.10"></div><pre class="text">
    527536      foo         =  %x61           ; a
    528537
    529538      bar         =  %x62           ; b
    530539
    531       mumble      =  foo bar foo </pre> <p id="rfc.section.3.1.p.3">So that the rule &lt;mumble&gt; matches the lowercase string "aba".</p>
    532       <p id="rfc.section.3.1.p.4">LINEAR WHITE SPACE: Concatenation is at the core of the ABNF parsing model. A string of contiguous characters (values) is
    533          parsed according to the rules defined in ABNF. For Internet specifications, there is some history of permitting linear white
    534          space (space and horizontal tab) to be freely and implicitly interspersed around major constructs, such as delimiting special
    535          characters or atomic strings.
    536       </p>
    537       <p id="rfc.section.3.1.p.5">NOTE: </p>
    538       <ul class="empty">
    539          <li>This specification for ABNF does not provide for implicit specification of linear white space.</li>
    540       </ul>
    541       <p id="rfc.section.3.1.p.6">Any grammar that wishes to permit linear white space around delimiters or string segments must specify it explicitly. It is
    542          often useful to provide for such white space in "core" rules that are then used variously among higher-level rules. The "core"
    543          rules might be formed into a lexical analyzer or simply be part of the main ruleset.
    544       </p>
    545       <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2.</a>&nbsp;<a id="Alternatives" href="#Alternatives">Alternatives:  Rule1 / Rule2</a></h2>
    546       <p id="rfc.section.3.2.p.1">Elements separated by a forward slash ("/") are alternatives. Therefore,</p>
    547       <div id="rfc.figure.u.11"></div> <pre class="text">
     540      mumble      =  foo bar foo </pre><p id="rfc.section.3.1.p.3">So that the rule &lt;mumble&gt; matches the lowercase string "aba".</p>
     541            <p id="rfc.section.3.1.p.4">LINEAR WHITE SPACE: Concatenation is at the core of the ABNF parsing model. A string of contiguous characters (values) is
     542               parsed according to the rules defined in ABNF. For Internet specifications, there is some history of permitting linear white
     543               space (space and horizontal tab) to be freely and implicitly interspersed around major constructs, such as delimiting special
     544               characters or atomic strings.
     545            </p>
     546            <p id="rfc.section.3.1.p.5">NOTE: </p>
     547            <ul class="empty">
     548               <li>This specification for ABNF does not provide for implicit specification of linear white space.</li>
     549            </ul>
     550            <p id="rfc.section.3.1.p.6">Any grammar that wishes to permit linear white space around delimiters or string segments must specify it explicitly. It is
     551               often useful to provide for such white space in "core" rules that are then used variously among higher-level rules. The "core"
     552               rules might be formed into a lexical analyzer or simply be part of the main ruleset.
     553            </p>
     554         </div>
     555         <div id="Alternatives">
     556            <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2.</a>&nbsp;<a href="#Alternatives">Alternatives:  Rule1 / Rule2</a></h2>
     557            <p id="rfc.section.3.2.p.1">Elements separated by a forward slash ("/") are alternatives. Therefore,</p>
     558            <div id="rfc.figure.u.11"></div><pre class="text">
    548559      foo / bar 
    549 </pre>  <p>will accept &lt;foo&gt; or &lt;bar&gt;.</p>
    550       <p id="rfc.section.3.2.p.3"> </p>
    551       <dl>
    552          <dt>NOTE:  </dt>
    553          <dd>A quoted string containing alphabetic characters is a special form for specifying alternative characters and is interpreted
    554             as a non-terminal representing the set of combinatorial strings with the contained characters, in the specified order but
    555             with any mixture of upper and lower case.
    556          </dd>
    557       </dl>
    558       <h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3.</a>&nbsp;<a id="Incremental" href="#Incremental">Incremental Alternatives: Rule1 =/ Rule2</a></h2>
    559       <p id="rfc.section.3.3.p.1">It is sometimes convenient to specify a list of alternatives in fragments. That is, an initial rule may match one or more
    560          alternatives, with later rule definitions adding to the set of alternatives. This is particularly useful for otherwise, independent
    561          specifications that derive from the same parent rule set, such as often occurs with parameter lists. ABNF permits this incremental
    562          definition through the construct:
    563       </p>
    564       <div id="rfc.figure.u.12"></div> <pre class="text">
    565       oldrule     =/ additional-alternatives </pre> <div id="rfc.figure.u.13"></div>
    566       <p>So that the rule set</p>  <pre class="text">
     560</pre><p>will accept &lt;foo&gt; or &lt;bar&gt;.</p>
     561            <p id="rfc.section.3.2.p.3"></p>
     562            <dl>
     563               <dt>NOTE:  </dt>
     564               <dd>A quoted string containing alphabetic characters is a special form for specifying alternative characters and is interpreted
     565                  as a non-terminal representing the set of combinatorial strings with the contained characters, in the specified order but
     566                  with any mixture of upper and lower case.
     567               </dd>
     568            </dl>
     569         </div>
     570         <div id="Incremental">
     571            <h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3.</a>&nbsp;<a href="#Incremental">Incremental Alternatives: Rule1 =/ Rule2</a></h2>
     572            <p id="rfc.section.3.3.p.1">It is sometimes convenient to specify a list of alternatives in fragments. That is, an initial rule may match one or more
     573               alternatives, with later rule definitions adding to the set of alternatives. This is particularly useful for otherwise, independent
     574               specifications that derive from the same parent rule set, such as often occurs with parameter lists. ABNF permits this incremental
     575               definition through the construct:
     576            </p>
     577            <div id="rfc.figure.u.12"></div><pre class="text">
     578      oldrule     =/ additional-alternatives </pre><div id="rfc.figure.u.13"></div>
     579            <p>So that the rule set</p><pre class="text">
    567580      ruleset     =  alt1 / alt2
    568581
    569582      ruleset     =/ alt3
    570583
    571       ruleset     =/ alt4 / alt5 </pre> <div id="rfc.figure.u.14"></div>
    572       <p>is the same as specifying</p>  <pre class="text">
    573       ruleset     =  alt1 / alt2 / alt3 / alt4 / alt5 </pre> <h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4.</a>&nbsp;<a id="Range" href="#Range">Value Range Alternatives:  %c##-##</a></h2>
    574       <div id="rfc.figure.u.15"></div>
    575       <p>A range of alternative numeric values can be specified compactly, using dash ("-") to indicate the range of alternative values.
    576          Hence:
    577       </p>  <pre class="text">
    578       DIGIT       =  %x30-39 </pre> <div id="rfc.figure.u.16"></div>
    579       <p>is equivalent to:</p>  <pre class="text">
     584      ruleset     =/ alt4 / alt5 </pre><div id="rfc.figure.u.14"></div>
     585            <p>is the same as specifying</p><pre class="text">
     586      ruleset     =  alt1 / alt2 / alt3 / alt4 / alt5 </pre></div>
     587         <div id="Range">
     588            <h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4.</a>&nbsp;<a href="#Range">Value Range Alternatives:  %c##-##</a></h2>
     589            <div id="rfc.figure.u.15"></div>
     590            <p>A range of alternative numeric values can be specified compactly, using dash ("-") to indicate the range of alternative values.
     591               Hence:
     592            </p><pre class="text">
     593      DIGIT       =  %x30-39 </pre><div id="rfc.figure.u.16"></div>
     594            <p>is equivalent to:</p><pre class="text">
    580595      DIGIT       =  "0" / "1" / "2" / "3" / "4" / "5" / "6" /
    581596
    582                      "7" / "8" / "9" </pre> <div id="rfc.figure.u.17"></div>
    583       <p>Concatenated numeric values and numeric value ranges cannot be specified in the same string. A numeric value may use the dotted
    584          notation for concatenation or it may use the dash notation to specify one value range. Hence, to specify one printable character
    585          between end of line sequences, the specification could be:
    586       </p>  <pre class="text">
    587       char-line = %x0D.0A %x20-7E %x0D.0A </pre> <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5.</a>&nbsp;<a id="Sequence" href="#Sequence">Sequence Group:  (Rule1 Rule2)</a></h2>
    588       <div id="rfc.figure.u.18"></div>
    589       <p>Elements enclosed in parentheses are treated as a single element, whose contents are STRICTLY ORDERED. Thus,</p>  <pre class="text">
     597                     "7" / "8" / "9" </pre><div id="rfc.figure.u.17"></div>
     598            <p>Concatenated numeric values and numeric value ranges cannot be specified in the same string. A numeric value may use the dotted
     599               notation for concatenation or it may use the dash notation to specify one value range. Hence, to specify one printable character
     600               between end of line sequences, the specification could be:
     601            </p><pre class="text">
     602      char-line = %x0D.0A %x20-7E %x0D.0A </pre></div>
     603         <div id="Sequence">
     604            <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5.</a>&nbsp;<a href="#Sequence">Sequence Group:  (Rule1 Rule2)</a></h2>
     605            <div id="rfc.figure.u.18"></div>
     606            <p>Elements enclosed in parentheses are treated as a single element, whose contents are STRICTLY ORDERED. Thus,</p><pre class="text">
    590607      elem (foo / bar) blat
    591 </pre>  <p>matches (elem foo blat) or (elem bar blat), and</p>
    592       <div id="rfc.figure.u.19"></div> <pre class="text">
     608</pre><p>matches (elem foo blat) or (elem bar blat), and</p>
     609            <div id="rfc.figure.u.19"></div><pre class="text">
    593610      elem foo / bar blat
    594 </pre>  <p>matches (elem foo) or (bar blat).</p>
    595       <p id="rfc.section.3.5.p.3"> </p>
    596       <dl>
    597          <dt>NOTE:  </dt>
    598          <dd>It is strongly advised that grouping notation be used, rather than relying on the proper reading of "bare" alternations, when
    599             alternatives consist of multiple rule names or literals.
    600          </dd>
    601       </dl>
    602       <div id="rfc.figure.u.20"></div>
    603       <p>Hence, it is recommended that the following form be used:</p>  <pre class="text">
     611</pre><p>matches (elem foo) or (bar blat).</p>
     612            <p id="rfc.section.3.5.p.3"></p>
     613            <dl>
     614               <dt>NOTE:  </dt>
     615               <dd>It is strongly advised that grouping notation be used, rather than relying on the proper reading of "bare" alternations, when
     616                  alternatives consist of multiple rule names or literals.
     617               </dd>
     618            </dl>
     619            <div id="rfc.figure.u.20"></div>
     620            <p>Hence, it is recommended that the following form be used:</p><pre class="text">
    604621     (elem foo) / (bar blat)
    605 </pre>  <p>It will avoid misinterpretation by casual readers.</p>
    606       <p id="rfc.section.3.5.p.5">The sequence group notation is also used within free text to set off an element sequence from the prose.</p>
    607       <h2 id="rfc.section.3.6"><a href="#rfc.section.3.6">3.6.</a>&nbsp;<a id="VarRep" href="#VarRep">Variable Repetition:  *Rule</a></h2>
    608       <div id="rfc.figure.u.21"></div>
    609       <p>The operator "*" preceding an element indicates repetition. The full form is:</p>  <pre class="text">
     622</pre><p>It will avoid misinterpretation by casual readers.</p>
     623            <p id="rfc.section.3.5.p.5">The sequence group notation is also used within free text to set off an element sequence from the prose.</p>
     624         </div>
     625         <div id="VarRep">
     626            <h2 id="rfc.section.3.6"><a href="#rfc.section.3.6">3.6.</a>&nbsp;<a href="#VarRep">Variable Repetition:  *Rule</a></h2>
     627            <div id="rfc.figure.u.21"></div>
     628            <p>The operator "*" preceding an element indicates repetition. The full form is:</p><pre class="text">
    610629      &lt;a&gt;*&lt;b&gt;element
    611 </pre>  <p>where &lt;a&gt; and &lt;b&gt; are optional decimal values, indicating at least &lt;a&gt; and at most &lt;b&gt; occurrences of the element.</p>
    612       <p id="rfc.section.3.6.p.2">Default values are 0 and infinity so that *&lt;element&gt; allows any number, including zero; 1*&lt;element&gt; requires at least one;
    613          3*3&lt;element&gt; allows exactly 3 and 1*2&lt;element&gt; allows one or two.
    614       </p>
    615       <h2 id="rfc.section.3.7"><a href="#rfc.section.3.7">3.7.</a>&nbsp;<a id="SpecRep" href="#SpecRep">Specific Repetition:  nRule</a></h2>
    616       <div id="rfc.figure.u.22"></div>
    617       <p>A rule of the form:</p>  <pre class="text">
    618       &lt;n&gt;element </pre> <div id="rfc.figure.u.23"></div>
    619       <p>is equivalent to</p>  <pre class="text">
    620       &lt;n&gt;*&lt;n&gt;element </pre> <p id="rfc.section.3.7.p.3">That is, exactly &lt;n&gt; occurrences of &lt;element&gt;. Thus, 2DIGIT is a 2-digit number, and 3ALPHA is a string of three alphabetic
    621          characters.
    622       </p>
    623       <h2 id="rfc.section.3.8"><a href="#rfc.section.3.8">3.8.</a>&nbsp;<a id="OptSeq" href="#OptSeq">Optional Sequence:  [RULE]</a></h2>
    624       <div id="rfc.figure.u.24"></div>
    625       <p>Square brackets enclose an optional element sequence:</p>  <pre class="text">
    626       [foo bar] </pre> <div id="rfc.figure.u.25"></div>
    627       <p>is equivalent to</p>  <pre class="text">
    628       *1(foo bar). </pre> <h2 id="rfc.section.3.9"><a href="#rfc.section.3.9">3.9.</a>&nbsp;<a id="Comment" href="#Comment">Comment:  ; Comment</a></h2>
    629       <p id="rfc.section.3.9.p.1">A semi-colon starts a comment that continues to the end of line. This is a simple way of including useful notes in parallel
    630          with the specifications.
    631       </p>
    632       <h2 id="rfc.section.3.10"><a href="#rfc.section.3.10">3.10.</a>&nbsp;Operator Precedence
    633       </h2>
    634       <p id="rfc.section.3.10.p.1">The various mechanisms described above have the following precedence, from highest (binding tightest) at the top, to lowest
    635          (loosest) at the bottom:
    636       </p>
    637       <ul class="empty">
    638          <li>Strings, Names formation</li>
    639          <li>Comment</li>
    640          <li>Value range</li>
    641          <li>Repetition</li>
    642          <li>Grouping, Optional</li>
    643          <li>Concatenation</li>
    644          <li>Alternative</li>
    645       </ul>
    646       <p id="rfc.section.3.10.p.2">Use of the alternative operator, freely mixed with concatenations, can be confusing.</p>
    647       <p id="rfc.section.3.10.p.3"> </p>
    648       <ul class="empty">
    649          <li>Again, it is recommended that the grouping operator be used to make explicit concatenation groups.</li>
    650       </ul>
    651       <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a>&nbsp;ABNF DEFINITION OF ABNF
    652       </h1>
    653       <p id="rfc.section.4.p.1"> </p>
    654       <dl>
    655          <dt>NOTES:</dt>
    656          <dd>
    657             <ol>
    658                <li>This syntax requires a formatting of rules that is relatively strict. Hence, the version of a ruleset included in a specification
    659                   might need preprocessing to ensure that it can be interpreted by an ABNF parser.
    660                </li>
    661                <li>This syntax uses the rules provided in <a href="#CORE" title="APPENDIX - CORE ABNF OF ABNF">Appendix&nbsp;B</a> (Core).
    662                </li>
    663             </ol>
    664          </dd>
    665       </dl>
    666       <div id="rfc.figure.u.26"></div> <pre class="inline">
     630</pre><p>where &lt;a&gt; and &lt;b&gt; are optional decimal values, indicating at least &lt;a&gt; and at most &lt;b&gt; occurrences of the element.</p>
     631            <p id="rfc.section.3.6.p.2">Default values are 0 and infinity so that *&lt;element&gt; allows any number, including zero; 1*&lt;element&gt; requires at least one;
     632               3*3&lt;element&gt; allows exactly 3 and 1*2&lt;element&gt; allows one or two.
     633            </p>
     634         </div>
     635         <div id="SpecRep">
     636            <h2 id="rfc.section.3.7"><a href="#rfc.section.3.7">3.7.</a>&nbsp;<a href="#SpecRep">Specific Repetition:  nRule</a></h2>
     637            <div id="rfc.figure.u.22"></div>
     638            <p>A rule of the form:</p><pre class="text">
     639      &lt;n&gt;element </pre><div id="rfc.figure.u.23"></div>
     640            <p>is equivalent to</p><pre class="text">
     641      &lt;n&gt;*&lt;n&gt;element </pre><p id="rfc.section.3.7.p.3">That is, exactly &lt;n&gt; occurrences of &lt;element&gt;. Thus, 2DIGIT is a 2-digit number, and 3ALPHA is a string of three alphabetic
     642               characters.
     643            </p>
     644         </div>
     645         <div id="OptSeq">
     646            <h2 id="rfc.section.3.8"><a href="#rfc.section.3.8">3.8.</a>&nbsp;<a href="#OptSeq">Optional Sequence:  [RULE]</a></h2>
     647            <div id="rfc.figure.u.24"></div>
     648            <p>Square brackets enclose an optional element sequence:</p><pre class="text">
     649      [foo bar] </pre><div id="rfc.figure.u.25"></div>
     650            <p>is equivalent to</p><pre class="text">
     651      *1(foo bar). </pre></div>
     652         <div id="Comment">
     653            <h2 id="rfc.section.3.9"><a href="#rfc.section.3.9">3.9.</a>&nbsp;<a href="#Comment">Comment:  ; Comment</a></h2>
     654            <p id="rfc.section.3.9.p.1">A semi-colon starts a comment that continues to the end of line. This is a simple way of including useful notes in parallel
     655               with the specifications.
     656            </p>
     657         </div>
     658         <div>
     659            <h2 id="rfc.section.3.10"><a href="#rfc.section.3.10">3.10.</a>&nbsp;Operator Precedence
     660            </h2>
     661            <p id="rfc.section.3.10.p.1">The various mechanisms described above have the following precedence, from highest (binding tightest) at the top, to lowest
     662               (loosest) at the bottom:
     663            </p>
     664            <ul class="empty">
     665               <li>Strings, Names formation</li>
     666               <li>Comment</li>
     667               <li>Value range</li>
     668               <li>Repetition</li>
     669               <li>Grouping, Optional</li>
     670               <li>Concatenation</li>
     671               <li>Alternative</li>
     672            </ul>
     673            <p id="rfc.section.3.10.p.2">Use of the alternative operator, freely mixed with concatenations, can be confusing.</p>
     674            <p id="rfc.section.3.10.p.3"></p>
     675            <ul class="empty">
     676               <li>Again, it is recommended that the grouping operator be used to make explicit concatenation groups.</li>
     677            </ul>
     678         </div>
     679      </div>
     680      <div>
     681         <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a>&nbsp;ABNF DEFINITION OF ABNF
     682         </h1>
     683         <p id="rfc.section.4.p.1"></p>
     684         <dl>
     685            <dt>NOTES:</dt>
     686            <dd>
     687               <ol>
     688                  <li>This syntax requires a formatting of rules that is relatively strict. Hence, the version of a ruleset included in a specification
     689                     might need preprocessing to ensure that it can be interpreted by an ABNF parser.
     690                  </li>
     691                  <li>This syntax uses the rules provided in <a href="#CORE" title="APPENDIX - CORE ABNF OF ABNF">Appendix&nbsp;B</a> (Core).
     692                  </li>
     693               </ol>
     694            </dd>
     695         </dl>
     696         <div id="rfc.figure.u.26"></div><pre class="inline">
    667697      rulelist       =  1*( rule / (*c-wsp c-nl) )
    668698
     
    724754                             ; prose description, to be used as
    725755                             ;  last resort
    726 </pre> <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a>&nbsp;SECURITY CONSIDERATIONS
    727       </h1>
    728       <p id="rfc.section.5.p.1">Security is truly believed to be irrelevant to this document.</p>
     756</pre></div>
     757      <div>
     758         <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a>&nbsp;SECURITY CONSIDERATIONS
     759         </h1>
     760         <p id="rfc.section.5.p.1">Security is truly believed to be irrelevant to this document.</p>
     761      </div>
    729762      <h1 id="rfc.references"><a id="rfc.section.6" href="#rfc.section.6">6.</a> References
    730763      </h1>
    731764      <h2 id="rfc.references.1"><a href="#rfc.section.6.1" id="rfc.section.6.1">6.1.</a> Normative References
    732765      </h2>
    733       <table> 
     766      <table>
    734767         <tr>
    735768            <td class="reference"><b id="US-ASCII">[US-ASCII]</b></td>
     
    741774      <h2 id="rfc.references.2"><a href="#rfc.section.6.2" id="rfc.section.6.2">6.2.</a> Informative References
    742775      </h2>
    743       <table>     
     776      <table>
    744777         <tr>
    745778            <td class="reference"><b id="RFC2234">[RFC2234]</b></td>
     
    760793      <div class="avoidbreak">
    761794         <h1 id="rfc.authors"><a href="#rfc.authors">Authors' Addresses</a></h1>
    762          <address class="vcard"><span class="vcardline"><span class="fn">Dave Crocker</span>
    763                (editor)
    764                <span class="n hidden"><span class="family-name">Crocker</span><span class="given-name">Dave</span></span></span><span class="org vcardline">Brandenburg InternetWorking</span><span class="adr"><span class="street-address vcardline">675 Spruce Dr.</span><span class="vcardline"><span class="locality">Sunnyvale</span>, <span class="region">CA</span>&nbsp;<span class="postal-code">94086</span></span><span class="country-name vcardline">US</span></span><span class="vcardline tel">Phone: <a href="tel:+1.408.246.8253"><span class="value">+1.408.246.8253</span></a></span><span class="vcardline">EMail: <a href="mailto:dcrocker@bbiw.net"><span class="email">dcrocker@bbiw.net</span></a></span></address>
    765          <address class="vcard"><span class="vcardline"><span class="fn">Paul Overell</span><span class="n hidden"><span class="family-name">Overell</span><span class="given-name">Paul</span></span></span><span class="org vcardline">THUS plc.</span><span class="adr"><span class="street-address vcardline">1/2 Berkeley Square,</span><span class="street-address vcardline">99 Berkeley Street</span><span class="vcardline"><span class="locality">Glasgow</span>, <span class="postal-code">G3 7HR</span></span><span class="country-name vcardline">UK</span></span><span class="vcardline">EMail: <a href="mailto:paul.overell@thus.net"><span class="email">paul.overell@thus.net</span></a></span></address>
    766       </div>
    767       <h1 id="rfc.section.A" class="np"><a href="#rfc.section.A">A.</a>&nbsp;ACKNOWLEDGEMENTS
    768       </h1>
    769       <p id="rfc.section.A.p.1">The syntax for ABNF was originally specified in RFC 733. Ken L. Harrenstien, of SRI International, was responsible for re-coding
    770          the BNF into an augmented BNF that makes the representation smaller and easier to understand.
    771       </p>
    772       <p id="rfc.section.A.p.2">This recent project began as a simple effort to cull out the portion of RFC 822 that has been repeatedly cited by non-email
    773          specification writers, namely the description of augmented BNF. Rather than simply and blindly converting the existing text
    774          into a separate document, the working group chose to give careful consideration to the deficiencies, as well as benefits,
    775          of the existing specification and related specifications made available over the last 15 years, and therefore to pursue enhancement.
    776          This turned the project into something rather more ambitious than was first intended. Interestingly, the result is not massively
    777          different from that original, although decisions, such as removing the list notation, came as a surprise.
    778       </p>
    779       <p id="rfc.section.A.p.3">This "separated" version of the specification was part of the DRUMS working group, with significant contributions from Jerome
    780          Abela, Harald Alvestrand, Robert Elz, Roger Fajman, Aviva Garrett, Tom Harsch, Dan Kohn, Bill McQuillan, Keith Moore, Chris
    781          Newman, Pete Resnick, and Henning Schulzrinne.
    782       </p>
    783       <p id="rfc.section.A.p.4">Julian Reschke warrants a special thanks for converting the Draft Standard version to XML source form.</p>
    784       <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a id="CORE" href="#CORE">APPENDIX - CORE ABNF OF ABNF</a></h1>
    785       <p id="rfc.section.B.p.1">This Appendix is provided as a convenient core for specific grammars. The definitions may be used as a core set of rules.</p>
    786       <h2 id="rfc.section.B.1"><a href="#rfc.section.B.1">B.1.</a>&nbsp;Core Rules
    787       </h2>
    788       <p id="rfc.section.B.1.p.1">Certain basic rules are in uppercase, such as SP, HTAB, CRLF, DIGIT, ALPHA, etc.</p>
    789       <div id="rfc.figure.u.27"></div> <pre class="inline">
     795         <p><b>Dave Crocker</b>
     796            (editor)
     797            <br>Brandenburg InternetWorking<br>675 Spruce Dr.<br>Sunnyvale, CA&nbsp;94086<br>US<br>Phone: <a href="tel:+1.408.246.8253">+1.408.246.8253</a><br>EMail: <a href="mailto:dcrocker@bbiw.net">dcrocker@bbiw.net</a></p>
     798         <p><b>Paul Overell</b><br>THUS plc.<br>1/2 Berkeley Square,<br>99 Berkeley Street<br>Glasgow, G3 7HR<br>UK<br>EMail: <a href="mailto:paul.overell@thus.net">paul.overell@thus.net</a></p>
     799      </div>
     800      <div>
     801         <h1 id="rfc.section.A" class="np"><a href="#rfc.section.A">A.</a>&nbsp;ACKNOWLEDGEMENTS
     802         </h1>
     803         <p id="rfc.section.A.p.1">The syntax for ABNF was originally specified in RFC 733. Ken L. Harrenstien, of SRI International, was responsible for re-coding
     804            the BNF into an augmented BNF that makes the representation smaller and easier to understand.
     805         </p>
     806         <p id="rfc.section.A.p.2">This recent project began as a simple effort to cull out the portion of RFC 822 that has been repeatedly cited by non-email
     807            specification writers, namely the description of augmented BNF. Rather than simply and blindly converting the existing text
     808            into a separate document, the working group chose to give careful consideration to the deficiencies, as well as benefits,
     809            of the existing specification and related specifications made available over the last 15 years, and therefore to pursue enhancement.
     810            This turned the project into something rather more ambitious than was first intended. Interestingly, the result is not massively
     811            different from that original, although decisions, such as removing the list notation, came as a surprise.
     812         </p>
     813         <p id="rfc.section.A.p.3">This "separated" version of the specification was part of the DRUMS working group, with significant contributions from Jerome
     814            Abela, Harald Alvestrand, Robert Elz, Roger Fajman, Aviva Garrett, Tom Harsch, Dan Kohn, Bill McQuillan, Keith Moore, Chris
     815            Newman, Pete Resnick, and Henning Schulzrinne.
     816         </p>
     817         <p id="rfc.section.A.p.4">Julian Reschke warrants a special thanks for converting the Draft Standard version to XML source form.</p>
     818      </div>
     819      <div id="CORE">
     820         <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a>&nbsp;<a href="#CORE">APPENDIX - CORE ABNF OF ABNF</a></h1>
     821         <p id="rfc.section.B.p.1">This Appendix is provided as a convenient core for specific grammars. The definitions may be used as a core set of rules.</p>
     822         <div>
     823            <h2 id="rfc.section.B.1"><a href="#rfc.section.B.1">B.1.</a>&nbsp;Core Rules
     824            </h2>
     825            <p id="rfc.section.B.1.p.1">Certain basic rules are in uppercase, such as SP, HTAB, CRLF, DIGIT, ALPHA, etc.</p>
     826            <div id="rfc.figure.u.27"></div><pre class="inline">
    790827      ALPHA          =  %x41-5A / %x61-7A   ; A-Z / a-z
    791828
     
    832869      WSP            =  SP / HTAB
    833870                             ; white space
    834 </pre> <h2 id="rfc.section.B.2"><a href="#rfc.section.B.2">B.2.</a>&nbsp;Common Encoding
    835       </h2>
    836       <p id="rfc.section.B.2.p.1">Externally, data are represented as "network virtual ASCII" (namely, 7-bit US-ASCII in an 8-bit field), with the high (8th)
    837          bit set to zero. A string of values is in "network byte order", in which the higher-valued bytes are represented on the left-hand
    838          side and are sent over the network first.
    839       </p>
    840       <h1><a id="rfc.copyright" href="#rfc.copyright">Full Copyright Statement</a></h1>
    841       <p>Copyright © The Internet Society (2005).</p>
    842       <p>This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the
    843          authors retain all their rights.
    844       </p>
    845       <p>This document and the information contained herein are provided on an “AS IS” basis and THE CONTRIBUTOR, THE ORGANIZATION
    846          HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
    847          EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
    848          RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
    849       </p>
    850       <h1><a id="rfc.ipr" href="#rfc.ipr">Intellectual Property</a></h1>
    851       <p>The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might
    852          be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any
    853          license under such rights might or might not be available; nor does it represent that it has made any independent effort to
    854          identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and
    855          BCP 79.
    856       </p>
    857       <p>Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result
    858          of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users
    859          of this specification can be obtained from the IETF on-line IPR repository at <a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.
    860       </p>
    861       <p>The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary
    862          rights that may cover technology that may be required to implement this standard. Please address the information to the IETF
    863          at <a href="mailto:ietf-ipr@ietf.org">ietf-ipr@ietf.org</a>.
    864       </p>
    865       <h1>Acknowledgment</h1>
    866       <p>Funding for the RFC Editor function is currently provided by the Internet Society.</p>
     871</pre></div>
     872         <div>
     873            <h2 id="rfc.section.B.2"><a href="#rfc.section.B.2">B.2.</a>&nbsp;Common Encoding
     874            </h2>
     875            <p id="rfc.section.B.2.p.1">Externally, data are represented as "network virtual ASCII" (namely, 7-bit US-ASCII in an 8-bit field), with the high (8th)
     876               bit set to zero. A string of values is in "network byte order", in which the higher-valued bytes are represented on the left-hand
     877               side and are sent over the network first.
     878            </p>
     879         </div>
     880      </div>
     881      <div id="rfc.copyright">
     882         <h1><a href="#rfc.copyright">Full Copyright Statement</a></h1>
     883         <p>Copyright © The Internet Society (2005).</p>
     884         <p>This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the
     885            authors retain all their rights.
     886         </p>
     887         <p>This document and the information contained herein are provided on an “AS IS” basis and THE CONTRIBUTOR, THE ORGANIZATION
     888            HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
     889            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
     890            RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
     891         </p>
     892      </div>
     893      <div id="rfc.ipr">
     894         <h1><a href="#rfc.ipr">Intellectual Property</a></h1>
     895         <p>The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might
     896            be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any
     897            license under such rights might or might not be available; nor does it represent that it has made any independent effort to
     898            identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and
     899            BCP 79.
     900         </p>
     901         <p>Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result
     902            of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users
     903            of this specification can be obtained from the IETF on-line IPR repository at <a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.
     904         </p>
     905         <p>The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary
     906            rights that may cover technology that may be required to implement this standard. Please address the information to the IETF
     907            at <a href="mailto:ietf-ipr@ietf.org">ietf-ipr@ietf.org</a>.
     908         </p>
     909      </div>
     910      <div>
     911         <h1>Acknowledgment</h1>
     912         <p>Funding for the RFC Editor function is currently provided by the Internet Society.</p>
     913      </div>
    867914   </body>
    868915</html>
Note: See TracChangeset for help on using the changeset viewer.