Grammar! Grammar! Grammar! Grammar!

Mushroom! Mushroom!

(Use ←/→ arrow keys to navigate)

See also https://github.com/nineml/abnf2ixml/

Internet Engineering Task Force

  • The IETF defines web standards

  • Some of those standards contain grammars

Grammar!

  • For example, Uniform Resource Identifiers (URIs) are defined by RFC 3986

  • RFC 3986 contains a grammar for parsing URIs

  • Unfortunately, uri.abnf is not an iXML grammar

    ;; Transcribed from RFC 3986 by ndw
    
    URI           = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
    
    hier-part     = "//" authority path-abempty
                  / path-absolute
                  / path-rootless
                  / path-empty
    
    URI-reference = URI / relative-ref
    
    absolute-URI  = scheme ":" hier-part [ "?" query ]
    
    relative-ref  = relative-part [ "?" query ] [ "#" fragment ]
    
    relative-part = "//" authority path-abempty
                  / path-absolute
                  / path-noscheme
                  / path-empty
    
    scheme        = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
    
    authority     = [ userinfo "@" ] host [ ":" port ]
    userinfo      = *( unreserved / pct-encoded / sub-delims / ":" )
    host          = IP-literal / IPv4address / reg-name
    port          = *DIGIT
    
    IP-literal    = "[" ( IPv6address / IPvFuture  ) "]"
    
    IPvFuture     = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )
    
    IPv6address   =                            6( h16 ":" ) ls32
                  /                       "::" 5( h16 ":" ) ls32
                  / [               h16 ] "::" 4( h16 ":" ) ls32
                  / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
                  / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
                  / [ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
                  / [ *4( h16 ":" ) h16 ] "::"              ls32
                  / [ *5( h16 ":" ) h16 ] "::"              h16
                  / [ *6( h16 ":" ) h16 ] "::"
    
    h16           = 1*4HEXDIG
    ls32          = ( h16 ":" h16 ) / IPv4address
    IPv4address   = dec-octet "." dec-octet "." dec-octet "." dec-octet
    
    dec-octet     = DIGIT                 ; 0-9
                  / %x31-39 DIGIT         ; 10-99
                  / "1" 2DIGIT            ; 100-199
                  / "2" %x30-34 DIGIT     ; 200-249
                  / "25" %x30-35          ; 250-255
    
    reg-name      = *( unreserved / pct-encoded / sub-delims )
    
    path          = path-abempty    ; begins with "/" or is empty
                  / path-absolute   ; begins with "/" but not "//"
                  / path-noscheme   ; begins with a non-colon segment
                  / path-rootless   ; begins with a segment
                  / path-empty      ; zero characters
    
    path-abempty  = *( "/" segment )
    path-absolute = "/" [ segment-nz *( "/" segment ) ]
    path-noscheme = segment-nz-nc *( "/" segment )
    path-rootless = segment-nz *( "/" segment )
    path-empty    = 0<pchar>
    
    segment       = *pchar
    segment-nz    = 1*pchar
    segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
                  ; non-zero-length segment without any colon ":"
    
    pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
    
    query         = *( pchar / "/" / "?" )
    
    fragment      = *( pchar / "/" / "?" )
    
    pct-encoded   = "%" HEXDIG HEXDIG
    
    unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
    reserved      = gen-delims / sub-delims
    gen-delims    = ":" / "/" / "?" / "#" / "[" / "]" / "@"
    sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                     / "*" / "+" / "," / ";" / "="
    

Grammar! Grammar!

  • Grammars in IETF specifications are defined with Augmented BNF (ABNF)

  • RFC 5234 contains a grammar for ABNF

  • Unfortunately, abnf.abnf it is also not an iXML grammar

    rulelist       =  1*( rule / (*c-wsp c-nl) )
    
    rule           =  rulename defined-as elements c-nl
                           ; continues if next line starts
                           ;  with white space
    
    rulename       =  ALPHA *(ALPHA / DIGIT / "-")
    
    
    defined-as     =  *c-wsp ("=" / "=/") *c-wsp
                           ; basic rules definition and
                           ;  incremental alternatives
    
    elements       =  alternation *c-wsp
    
    c-wsp          =  WSP / (c-nl WSP)
    
    c-nl           =  comment / CRLF
                           ; comment or newline
    
    comment        =  ";" *(WSP / VCHAR) CRLF
    
    alternation    =  concatenation
                      *(*c-wsp "/" *c-wsp concatenation)
    
    concatenation  =  repetition *(1*c-wsp repetition)
    
    repetition     =  [repeat] element
    
    repeat         =  1*DIGIT / (*DIGIT "*" *DIGIT)
    
    element        =  rulename / group / option /
                      char-val / num-val / prose-val
    
    group          =  "(" *c-wsp alternation *c-wsp ")"
    
    option         =  "[" *c-wsp alternation *c-wsp "]"
    
    char-val       =  DQUOTE *(%x20-21 / %x23-7E) DQUOTE
                           ; quoted string of SP and VCHAR
                           ;  without DQUOTE
    
    num-val        =  "%" (bin-val / dec-val / hex-val)
    
    bin-val        =  "b" 1*BIT
                      [ 1*("." 1*BIT) / ("-" 1*BIT) ]
                           ; series of concatenated bit values
                           ;  or single ONEOF range
    
    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) ">"
                           ; bracketed string of SP and VCHAR
                           ;  without angles
                           ; prose description, to be used as
                           ;  last resort
    
    ALPHA          =  %x41-5A / %x61-7A   ; A-Z / a-z
    
    BIT            =  "0" / "1"
    
    CHAR           =  %x01-7F
                           ; any 7-bit US-ASCII character,
                           ;  excluding NUL
    
    CR             =  %x0D
                           ; carriage return
    
    CRLF           =  CR LF
                           ; Internet standard newline
    
    CTL            =  %x00-1F / %x7F
                           ; controls
    
    DIGIT          =  %x30-39
                           ; 0-9
    
    DQUOTE         =  %x22
                           ; " (Double Quote)
    
    HEXDIG         =  DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
    
    HTAB           =  %x09
                           ; horizontal tab
    
    LF             =  %x0A
                           ; linefeed
    
    LWSP           =  *(WSP / CRLF WSP)
                           ; Use of this linear-white-space rule
                           ;  permits lines containing only white
                           ;  space that are no longer legal in
                           ;  mail headers and have caused
                           ;  interoperability problems in other
                           ;  contexts.
                           ; Do not use when defining mail
                           ;  headers and use with caution in
                           ;  other contexts.
    
    OCTET          =  %x00-FF
                           ; 8 bits of data
    
    SP             =  %x20
    
    VCHAR          =  %x21-7E
                           ; visible (printing) characters
    
    WSP            =  SP / HTAB
                           ; white space
    

Grammar! Grammar! Grammar!

  • Michael Sperberg-McQueen wrote an iXML grammar for ABNF

  • It is an iXML grammar!

    { The grammar notation defined by RFC 5234, "Augmented BNF for Syntax
    Specifications: ABNF", ed. D. Crocker and P. Overell, January 2008.
    
    The nonterminals used here are those of RFC 5234, but some definitions
    have been reformulated to use ixml idioms.  The definition of ABNF has
    no analogue to ixml marks for guiding XML serialization; the marks
    used here have been supplied by the transcriber.
    
    Transcribed into ixml by C. M. Sperberg-McQueen, February 2022. }
    
    rulelist      = (rule | (c-wsp*, c-nl))+.
    
    rule          = rulename, defined-as, elements, c-nl.
                         { continues if next line starts 
                           with white space }
    
    rulename      = ALPHA, (ALPHA | DIGIT | "-")*.
    
    defined-as    = c-wsp*, ("=" | "=/"), c-wsp*.
                         {  basic rules definition and 
                            incremental alternatives }
    
    elements      = alternation, c-wsp*.
    
    c-wsp         = WSP | (c-nl, WSP).
    
    c-nl          = comment | CRLF.  { comment or newline }
    
    comment       = ";", (WSP | VCHAR)*, CRLF.
    
    alternation   = concatenation ** (c-wsp*, "/", c-wsp*).
    
    concatenation = repetition ** (c-wsp+).
    
    repetition    = repeat?, element.
    
    repeat        = DIGIT+ | (DIGIT*, "*", DIGIT*).
    
    element       = rulename | group | option 
                  | char-val | num-val | prose-val.
    
    group         = "(", c-wsp*, alternation, c-wsp*, ")".
    
    option        = "[", c-wsp*, alternation, c-wsp*, "]".
    
    char-val      = DQUOTE, [#20 - #21; #23 - #7E]*, DQUOTE.
                         { quoted string of SP and VCHAR 
                           without DQUOTE }
    
    num-val       = "%", (bin-val | dec-val | hex-val).
    
    bin-val       = "b", BIT+, ((".", BIT+)+ | ("-", BIT+))?.
                         { series of concatenated bit values
                           or single ONEOF range }
    
    dec-val       = "d", DIGIT+, ((".", DIGIT+)+ | ("-", DIGIT+))?.
    
    hex-val       = "x", HEXDIG+, ((".", HEXDIG+)+ | ("-", HEXDIG+))?.
    
    prose-val     = "<", [#20 - #3D; #3F - #7E]*, ">".
                         { bracketed string of SP and VCHAR
                           without angles
                           prose description, to be used as
                           last resort }
    
    { 'Core rules' from Appendix B, intended for re-use. }
    
    ALPHA         = ["A"-"Z"; "a"-"z"]. { #41-#5A; #61-#7A }
    
    BIT           = "0"; "1".
    
    CR            = #0D. { carriage return }
    
    CRLF          = CR, LF { Internet standard newline }
                  | LF .   { Extension: support single LF convention for newlines }
    
    DIGIT         = ["0"-"9"]. { #30 - #39 }
    
    DQUOTE        = #22. { (Double Quote) }
    
    HEXDIG        = DIGIT; ["A"-"F"].
    
    HTAB	      = #09. { horizontal tab }
    
    LF	      = #0A. { linefeed }
    
    SP            = #20.
    
    VCHAR         = [#21 - #7E]. { visible (printing) characters }
    
    WSP           = SP | HTAB. { white space }
    
    { Included in Appendix B for reuse elsewhere, but not used
    by ABNF itself: }
    
    {
    
    CHAR          = [#01 - #7F].  
                         { Any 7-bit US-ASCII chracter, 
                           excluding NUL }
    		       
    CTL           = [#00 - #1F; #7F]. { controls }
    		       
    LWSP	      = (WSP | CRLF, WSP)*.
                         { Use of this linear-white-space rule
                           permits lines containing only white
                           space that are no longer legal in
                           mail headers and have caused 
                           interoperability problems in other
                           contexts.
                           Do not use when defining mail
                           headers and use with caution in 
                           other contexts. }
    
    OCTET         = [#00 - #FF]. { 8 bits of data }
    
    }
    
    
    { Notes:
    
    - As noted in the comments, this grammar has been reported ambiguous
      in a couple of places.
    
    - ABNF nonterminals are case-insensitive unless specified using
      numeric values for the characters.
    
    }
    

An XML version of uri.abnf

  • Now we can parse uri.abnf into XML

  • Unfortunately, it is not an iXML grammar

    And it’s a little bit verbose

    <rulelist xmlns:ixml='http://invisiblexml.org/NS' ixml:state='ambiguous'>
       <c-nl>
          <comment>;
             <VCHAR>;</VCHAR>
             <WSP>
                <SP> </SP>
             </WSP>
             <VCHAR>T</VCHAR>
             <VCHAR>r</VCHAR>
             <VCHAR>a</VCHAR>
             <VCHAR>n</VCHAR>
             <VCHAR>s</VCHAR>
             <VCHAR>c</VCHAR>
             <VCHAR>r</VCHAR>
             <VCHAR>i</VCHAR>
             <VCHAR>b</VCHAR>
             <VCHAR>e</VCHAR>
             <VCHAR>d</VCHAR>
             <WSP>
                <SP> </SP>
             </WSP>
             <VCHAR>f</VCHAR>
             <VCHAR>r</VCHAR>
             <VCHAR>o</VCHAR>
             <VCHAR>m</VCHAR>
             <WSP>
                <SP> </SP>
             </WSP>
             <VCHAR>R</VCHAR>
             <VCHAR>F</VCHAR>
             <VCHAR>C</VCHAR>
             <WSP>
                <SP> </SP>
             </WSP>
             <VCHAR>3</VCHAR>
             <VCHAR>9</VCHAR>
             <VCHAR>8</VCHAR>
             <VCHAR>6</VCHAR>
             <WSP>
                <SP> </SP>
             </WSP>
             <VCHAR>b</VCHAR>
             <VCHAR>y</VCHAR>
             <WSP>
                <SP> </SP>
             </WSP>
             <VCHAR>n</VCHAR>
             <VCHAR>d</VCHAR>
             <VCHAR>w</VCHAR>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </comment>
       </c-nl>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>U</ALPHA>
             <ALPHA>R</ALPHA>
             <ALPHA>I</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>s</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>:
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>h</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>r</ALPHA>-
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>?
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>q</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>y</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>#
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>f</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>a</ALPHA>
                                           <ALPHA>g</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>t</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>h</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>r</ALPHA>-
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>t</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>//
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>a</ALPHA>
                            <ALPHA>u</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>a</ALPHA>
                            <ALPHA>b</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>p</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>a</ALPHA>
                            <ALPHA>b</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>u</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>r</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>s</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>p</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>U</ALPHA>
             <ALPHA>R</ALPHA>
             <ALPHA>I</ALPHA>-
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>f</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>c</ALPHA>
             <ALPHA>e</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>U</ALPHA>
                            <ALPHA>R</ALPHA>
                            <ALPHA>I</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>r</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>v</ALPHA>
                            <ALPHA>e</ALPHA>-
                            <ALPHA>r</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>f</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>a</ALPHA>
             <ALPHA>b</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>l</ALPHA>
             <ALPHA>u</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>e</ALPHA>-
             <ALPHA>U</ALPHA>
             <ALPHA>R</ALPHA>
             <ALPHA>I</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>s</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>:
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>h</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>r</ALPHA>-
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>?
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>q</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>y</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>l</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>v</ALPHA>
             <ALPHA>e</ALPHA>-
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>f</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>r</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>v</ALPHA>
                            <ALPHA>e</ALPHA>-
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>?
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>q</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>y</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>#
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>f</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>a</ALPHA>
                                           <ALPHA>g</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>t</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>l</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>v</ALPHA>
             <ALPHA>e</ALPHA>-
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>t</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>//
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>a</ALPHA>
                            <ALPHA>u</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>a</ALPHA>
                            <ALPHA>b</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>p</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>a</ALPHA>
                            <ALPHA>b</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>u</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>n</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>p</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>s</ALPHA>
             <ALPHA>c</ALPHA>
             <ALPHA>h</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>e</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>A</ALPHA>
                            <ALPHA>L</ALPHA>
                            <ALPHA>P</ALPHA>
                            <ALPHA>H</ALPHA>
                            <ALPHA>A</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>A</ALPHA>
                                           <ALPHA>L</ALPHA>
                                           <ALPHA>P</ALPHA>
                                           <ALPHA>H</ALPHA>
                                           <ALPHA>A</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>D</ALPHA>
                                           <ALPHA>I</ALPHA>
                                           <ALPHA>G</ALPHA>
                                           <ALPHA>I</ALPHA>
                                           <ALPHA>T</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>+
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>-
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>.
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>a</ALPHA>
             <ALPHA>u</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>h</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>y</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>i</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>f</ALPHA>
                                           <ALPHA>o</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>@
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>h</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>p</ALPHA>
                                           <ALPHA>o</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>t</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>u</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>f</ALPHA>
             <ALPHA>o</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>v</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>d</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>p</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>t</ALPHA>-
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>o</ALPHA>
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>d</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>b</ALPHA>-
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>l</ALPHA>
                                           <ALPHA>i</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>s</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>h</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>t</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>I</ALPHA>
                            <ALPHA>P</ALPHA>-
                            <ALPHA>l</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>l</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>I</ALPHA>
                            <ALPHA>P</ALPHA>
                            <ALPHA>v</ALPHA>
                            <DIGIT>4</DIGIT>
                            <ALPHA>a</ALPHA>
                            <ALPHA>d</ALPHA>
                            <ALPHA>d</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>s</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>r</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>g</ALPHA>-
                            <ALPHA>n</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>t</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <rulename>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>T</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>I</ALPHA>
             <ALPHA>P</ALPHA>-
             <ALPHA>l</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>l</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>[
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>I</ALPHA>
                                           <ALPHA>P</ALPHA>
                                           <ALPHA>v</ALPHA>
                                           <DIGIT>6</DIGIT>
                                           <ALPHA>a</ALPHA>
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>s</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>I</ALPHA>
                                           <ALPHA>P</ALPHA>
                                           <ALPHA>v</ALPHA>
                                           <ALPHA>F</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>t</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>e</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>]
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>I</ALPHA>
             <ALPHA>P</ALPHA>
             <ALPHA>v</ALPHA>
             <ALPHA>F</ALPHA>
             <ALPHA>u</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>u</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>v
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>
                         <DIGIT>1</DIGIT>*</repeat>
                      <element>
                         <rulename>
                            <ALPHA>H</ALPHA>
                            <ALPHA>E</ALPHA>
                            <ALPHA>X</ALPHA>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>.
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>
                         <DIGIT>1</DIGIT>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>v</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>d</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>b</ALPHA>-
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>l</ALPHA>
                                           <ALPHA>i</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>s</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>I</ALPHA>
             <ALPHA>P</ALPHA>
             <ALPHA>v</ALPHA>
             <DIGIT>6</DIGIT>
             <ALPHA>a</ALPHA>
             <ALPHA>d</ALPHA>
             <ALPHA>d</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>s</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>
                         <DIGIT>6</DIGIT>
                      </repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>l</ALPHA>
                            <ALPHA>s</ALPHA>
                            <DIGIT>3</DIGIT>
                            <DIGIT>2</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>
                         <DIGIT>5</DIGIT>
                      </repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>l</ALPHA>
                            <ALPHA>s</ALPHA>
                            <DIGIT>3</DIGIT>
                            <DIGIT>2</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>
                         <DIGIT>4</DIGIT>
                      </repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>l</ALPHA>
                            <ALPHA>s</ALPHA>
                            <DIGIT>3</DIGIT>
                            <DIGIT>2</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <repeat>*
                                        <DIGIT>1</DIGIT>
                                     </repeat>
                                     <element>
                                        <group>(
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>
                                           <alternation>
                                              <concatenation>
                                                 <repetition>
                                                    <element>
                                                       <rulename>
                                                          <ALPHA>h</ALPHA>
                                                          <DIGIT>1</DIGIT>
                                                          <DIGIT>6</DIGIT>
                                                       </rulename>
                                                    </element>
                                                 </repetition>
                                                 <c-wsp>
                                                    <WSP>
                                                       <SP> </SP>
                                                    </WSP>
                                                 </c-wsp>
                                                 <repetition>
                                                    <element>
                                                       <char-val>
                                                          <DQUOTE>"</DQUOTE>:
                                                          <DQUOTE>"</DQUOTE>
                                                       </char-val>
                                                    </element>
                                                 </repetition>
                                              </concatenation>
                                           </alternation>
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>)</group>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>
                         <DIGIT>3</DIGIT>
                      </repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>l</ALPHA>
                            <ALPHA>s</ALPHA>
                            <DIGIT>3</DIGIT>
                            <DIGIT>2</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <repeat>*
                                        <DIGIT>2</DIGIT>
                                     </repeat>
                                     <element>
                                        <group>(
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>
                                           <alternation>
                                              <concatenation>
                                                 <repetition>
                                                    <element>
                                                       <rulename>
                                                          <ALPHA>h</ALPHA>
                                                          <DIGIT>1</DIGIT>
                                                          <DIGIT>6</DIGIT>
                                                       </rulename>
                                                    </element>
                                                 </repetition>
                                                 <c-wsp>
                                                    <WSP>
                                                       <SP> </SP>
                                                    </WSP>
                                                 </c-wsp>
                                                 <repetition>
                                                    <element>
                                                       <char-val>
                                                          <DQUOTE>"</DQUOTE>:
                                                          <DQUOTE>"</DQUOTE>
                                                       </char-val>
                                                    </element>
                                                 </repetition>
                                              </concatenation>
                                           </alternation>
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>)</group>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>
                         <DIGIT>2</DIGIT>
                      </repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>l</ALPHA>
                            <ALPHA>s</ALPHA>
                            <DIGIT>3</DIGIT>
                            <DIGIT>2</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <repeat>*
                                        <DIGIT>3</DIGIT>
                                     </repeat>
                                     <element>
                                        <group>(
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>
                                           <alternation>
                                              <concatenation>
                                                 <repetition>
                                                    <element>
                                                       <rulename>
                                                          <ALPHA>h</ALPHA>
                                                          <DIGIT>1</DIGIT>
                                                          <DIGIT>6</DIGIT>
                                                       </rulename>
                                                    </element>
                                                 </repetition>
                                                 <c-wsp>
                                                    <WSP>
                                                       <SP> </SP>
                                                    </WSP>
                                                 </c-wsp>
                                                 <repetition>
                                                    <element>
                                                       <char-val>
                                                          <DQUOTE>"</DQUOTE>:
                                                          <DQUOTE>"</DQUOTE>
                                                       </char-val>
                                                    </element>
                                                 </repetition>
                                              </concatenation>
                                           </alternation>
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>)</group>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>h</ALPHA>
                            <DIGIT>1</DIGIT>
                            <DIGIT>6</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>:
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>l</ALPHA>
                            <ALPHA>s</ALPHA>
                            <DIGIT>3</DIGIT>
                            <DIGIT>2</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <repeat>*
                                        <DIGIT>4</DIGIT>
                                     </repeat>
                                     <element>
                                        <group>(
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>
                                           <alternation>
                                              <concatenation>
                                                 <repetition>
                                                    <element>
                                                       <rulename>
                                                          <ALPHA>h</ALPHA>
                                                          <DIGIT>1</DIGIT>
                                                          <DIGIT>6</DIGIT>
                                                       </rulename>
                                                    </element>
                                                 </repetition>
                                                 <c-wsp>
                                                    <WSP>
                                                       <SP> </SP>
                                                    </WSP>
                                                 </c-wsp>
                                                 <repetition>
                                                    <element>
                                                       <char-val>
                                                          <DQUOTE>"</DQUOTE>:
                                                          <DQUOTE>"</DQUOTE>
                                                       </char-val>
                                                    </element>
                                                 </repetition>
                                              </concatenation>
                                           </alternation>
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>)</group>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>l</ALPHA>
                            <ALPHA>s</ALPHA>
                            <DIGIT>3</DIGIT>
                            <DIGIT>2</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <repeat>*
                                        <DIGIT>5</DIGIT>
                                     </repeat>
                                     <element>
                                        <group>(
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>
                                           <alternation>
                                              <concatenation>
                                                 <repetition>
                                                    <element>
                                                       <rulename>
                                                          <ALPHA>h</ALPHA>
                                                          <DIGIT>1</DIGIT>
                                                          <DIGIT>6</DIGIT>
                                                       </rulename>
                                                    </element>
                                                 </repetition>
                                                 <c-wsp>
                                                    <WSP>
                                                       <SP> </SP>
                                                    </WSP>
                                                 </c-wsp>
                                                 <repetition>
                                                    <element>
                                                       <char-val>
                                                          <DQUOTE>"</DQUOTE>:
                                                          <DQUOTE>"</DQUOTE>
                                                       </char-val>
                                                    </element>
                                                 </repetition>
                                              </concatenation>
                                           </alternation>
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>)</group>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>h</ALPHA>
                            <DIGIT>1</DIGIT>
                            <DIGIT>6</DIGIT>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <repeat>*
                                        <DIGIT>6</DIGIT>
                                     </repeat>
                                     <element>
                                        <group>(
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>
                                           <alternation>
                                              <concatenation>
                                                 <repetition>
                                                    <element>
                                                       <rulename>
                                                          <ALPHA>h</ALPHA>
                                                          <DIGIT>1</DIGIT>
                                                          <DIGIT>6</DIGIT>
                                                       </rulename>
                                                    </element>
                                                 </repetition>
                                                 <c-wsp>
                                                    <WSP>
                                                       <SP> </SP>
                                                    </WSP>
                                                 </c-wsp>
                                                 <repetition>
                                                    <element>
                                                       <char-val>
                                                          <DQUOTE>"</DQUOTE>:
                                                          <DQUOTE>"</DQUOTE>
                                                       </char-val>
                                                    </element>
                                                 </repetition>
                                              </concatenation>
                                           </alternation>
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>)</group>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>::
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>h</ALPHA>
             <DIGIT>1</DIGIT>
             <DIGIT>6</DIGIT>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>
                         <DIGIT>1</DIGIT>*
                         <DIGIT>4</DIGIT>
                      </repeat>
                      <element>
                         <rulename>
                            <ALPHA>H</ALPHA>
                            <ALPHA>E</ALPHA>
                            <ALPHA>X</ALPHA>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>l</ALPHA>
             <ALPHA>s</ALPHA>
             <DIGIT>3</DIGIT>
             <DIGIT>2</DIGIT>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>:
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>h</ALPHA>
                                           <DIGIT>1</DIGIT>
                                           <DIGIT>6</DIGIT>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>I</ALPHA>
                            <ALPHA>P</ALPHA>
                            <ALPHA>v</ALPHA>
                            <DIGIT>4</DIGIT>
                            <ALPHA>a</ALPHA>
                            <ALPHA>d</ALPHA>
                            <ALPHA>d</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>s</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>I</ALPHA>
             <ALPHA>P</ALPHA>
             <ALPHA>v</ALPHA>
             <DIGIT>4</DIGIT>
             <ALPHA>a</ALPHA>
             <ALPHA>d</ALPHA>
             <ALPHA>d</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>s</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>c</ALPHA>-
                            <ALPHA>o</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>.
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>c</ALPHA>-
                            <ALPHA>o</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>.
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>c</ALPHA>-
                            <ALPHA>o</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>.
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>c</ALPHA>-
                            <ALPHA>o</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>t</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>d</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>c</ALPHA>-
             <ALPHA>o</ALPHA>
             <ALPHA>c</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>t</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>T</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>0</VCHAR>
                         <VCHAR>-</VCHAR>
                         <VCHAR>9</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <num-val>%
                            <hex-val>x
                               <HEXDIG>
                                  <DIGIT>3</DIGIT>
                               </HEXDIG>
                               <HEXDIG>
                                  <DIGIT>1</DIGIT>
                               </HEXDIG>-
                               <HEXDIG>
                                  <DIGIT>3</DIGIT>
                               </HEXDIG>
                               <HEXDIG>
                                  <DIGIT>9</DIGIT>
                               </HEXDIG>
                            </hex-val>
                         </num-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>T</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>1</VCHAR>
                         <VCHAR>0</VCHAR>
                         <VCHAR>-</VCHAR>
                         <VCHAR>9</VCHAR>
                         <VCHAR>9</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>1
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>
                         <DIGIT>2</DIGIT>
                      </repeat>
                      <element>
                         <rulename>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>T</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>1</VCHAR>
                         <VCHAR>0</VCHAR>
                         <VCHAR>0</VCHAR>
                         <VCHAR>-</VCHAR>
                         <VCHAR>1</VCHAR>
                         <VCHAR>9</VCHAR>
                         <VCHAR>9</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>2
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <num-val>%
                            <hex-val>x
                               <HEXDIG>
                                  <DIGIT>3</DIGIT>
                               </HEXDIG>
                               <HEXDIG>
                                  <DIGIT>0</DIGIT>
                               </HEXDIG>-
                               <HEXDIG>
                                  <DIGIT>3</DIGIT>
                               </HEXDIG>
                               <HEXDIG>
                                  <DIGIT>4</DIGIT>
                               </HEXDIG>
                            </hex-val>
                         </num-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>T</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>2</VCHAR>
                         <VCHAR>0</VCHAR>
                         <VCHAR>0</VCHAR>
                         <VCHAR>-</VCHAR>
                         <VCHAR>2</VCHAR>
                         <VCHAR>4</VCHAR>
                         <VCHAR>9</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>25
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <num-val>%
                            <hex-val>x
                               <HEXDIG>
                                  <DIGIT>3</DIGIT>
                               </HEXDIG>
                               <HEXDIG>
                                  <DIGIT>0</DIGIT>
                               </HEXDIG>-
                               <HEXDIG>
                                  <DIGIT>3</DIGIT>
                               </HEXDIG>
                               <HEXDIG>
                                  <DIGIT>5</DIGIT>
                               </HEXDIG>
                            </hex-val>
                         </num-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </elements>
          <c-nl>
             <comment>;
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>2</VCHAR>
                <VCHAR>5</VCHAR>
                <VCHAR>0</VCHAR>
                <VCHAR>-</VCHAR>
                <VCHAR>2</VCHAR>
                <VCHAR>5</VCHAR>
                <VCHAR>5</VCHAR>
                <CRLF>
                   <LF>
    </LF>
                </CRLF>
             </comment>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>g</ALPHA>-
             <ALPHA>n</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>e</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>v</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>d</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>p</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>t</ALPHA>-
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>o</ALPHA>
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>d</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>b</ALPHA>-
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>l</ALPHA>
                                           <ALPHA>i</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>s</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>h</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>a</ALPHA>
                            <ALPHA>b</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>p</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>b</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>g</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>n</VCHAR>
                         <VCHAR>s</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>w</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>t</VCHAR>
                         <VCHAR>h</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>"</VCHAR>
                         <VCHAR>/</VCHAR>
                         <VCHAR>"</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>o</VCHAR>
                         <VCHAR>r</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>i</VCHAR>
                         <VCHAR>s</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>e</VCHAR>
                         <VCHAR>m</VCHAR>
                         <VCHAR>p</VCHAR>
                         <VCHAR>t</VCHAR>
                         <VCHAR>y</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>a</ALPHA>
                            <ALPHA>b</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>u</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>b</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>g</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>n</VCHAR>
                         <VCHAR>s</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>w</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>t</VCHAR>
                         <VCHAR>h</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>"</VCHAR>
                         <VCHAR>/</VCHAR>
                         <VCHAR>"</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>b</VCHAR>
                         <VCHAR>u</VCHAR>
                         <VCHAR>t</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>n</VCHAR>
                         <VCHAR>o</VCHAR>
                         <VCHAR>t</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>"</VCHAR>
                         <VCHAR>/</VCHAR>
                         <VCHAR>/</VCHAR>
                         <VCHAR>"</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>n</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>e</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>b</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>g</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>n</VCHAR>
                         <VCHAR>s</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>w</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>t</VCHAR>
                         <VCHAR>h</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>a</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>n</VCHAR>
                         <VCHAR>o</VCHAR>
                         <VCHAR>n</VCHAR>
                         <VCHAR>-</VCHAR>
                         <VCHAR>c</VCHAR>
                         <VCHAR>o</VCHAR>
                         <VCHAR>l</VCHAR>
                         <VCHAR>o</VCHAR>
                         <VCHAR>n</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>s</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>g</VCHAR>
                         <VCHAR>m</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>n</VCHAR>
                         <VCHAR>t</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>r</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>s</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <c-nl>
                      <comment>;
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>b</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>g</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>n</VCHAR>
                         <VCHAR>s</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>w</VCHAR>
                         <VCHAR>i</VCHAR>
                         <VCHAR>t</VCHAR>
                         <VCHAR>h</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>a</VCHAR>
                         <WSP>
                            <SP> </SP>
                         </WSP>
                         <VCHAR>s</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>g</VCHAR>
                         <VCHAR>m</VCHAR>
                         <VCHAR>e</VCHAR>
                         <VCHAR>n</VCHAR>
                         <VCHAR>t</VCHAR>
                         <CRLF>
                            <LF>
    </LF>
                         </CRLF>
                      </comment>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>h</ALPHA>-
                            <ALPHA>e</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>p</ALPHA>
                            <ALPHA>t</ALPHA>
                            <ALPHA>y</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </elements>
          <c-nl>
             <comment>;
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>z</VCHAR>
                <VCHAR>e</VCHAR>
                <VCHAR>r</VCHAR>
                <VCHAR>o</VCHAR>
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>c</VCHAR>
                <VCHAR>h</VCHAR>
                <VCHAR>a</VCHAR>
                <VCHAR>r</VCHAR>
                <VCHAR>a</VCHAR>
                <VCHAR>c</VCHAR>
                <VCHAR>t</VCHAR>
                <VCHAR>e</VCHAR>
                <VCHAR>r</VCHAR>
                <VCHAR>s</VCHAR>
                <CRLF>
                   <LF>
    </LF>
                </CRLF>
             </comment>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>h</ALPHA>-
             <ALPHA>a</ALPHA>
             <ALPHA>b</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>p</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>y</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>/
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>g</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>t</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>h</ALPHA>-
             <ALPHA>a</ALPHA>
             <ALPHA>b</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>l</ALPHA>
             <ALPHA>u</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>e</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>/
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <option>[
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>g</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>t</ALPHA>-
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>z</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <repeat>*</repeat>
                                     <element>
                                        <group>(
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>
                                           <alternation>
                                              <concatenation>
                                                 <repetition>
                                                    <element>
                                                       <char-val>
                                                          <DQUOTE>"</DQUOTE>/
                                                          <DQUOTE>"</DQUOTE>
                                                       </char-val>
                                                    </element>
                                                 </repetition>
                                                 <c-wsp>
                                                    <WSP>
                                                       <SP> </SP>
                                                    </WSP>
                                                 </c-wsp>
                                                 <repetition>
                                                    <element>
                                                       <rulename>
                                                          <ALPHA>s</ALPHA>
                                                          <ALPHA>e</ALPHA>
                                                          <ALPHA>g</ALPHA>
                                                          <ALPHA>m</ALPHA>
                                                          <ALPHA>e</ALPHA>
                                                          <ALPHA>n</ALPHA>
                                                          <ALPHA>t</ALPHA>
                                                       </rulename>
                                                    </element>
                                                 </repetition>
                                              </concatenation>
                                           </alternation>
                                           <c-wsp>
                                              <WSP>
                                                 <SP> </SP>
                                              </WSP>
                                           </c-wsp>)</group>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>]</option>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>h</ALPHA>-
             <ALPHA>n</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>c</ALPHA>
             <ALPHA>h</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>e</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>s</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>g</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>n</ALPHA>
                            <ALPHA>t</ALPHA>-
                            <ALPHA>n</ALPHA>
                            <ALPHA>z</ALPHA>-
                            <ALPHA>n</ALPHA>
                            <ALPHA>c</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>/
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>g</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>t</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>h</ALPHA>-
             <ALPHA>r</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>l</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>s</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>s</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>g</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>n</ALPHA>
                            <ALPHA>t</ALPHA>-
                            <ALPHA>n</ALPHA>
                            <ALPHA>z</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>/
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                                  <c-wsp>
                                     <WSP>
                                        <SP> </SP>
                                     </WSP>
                                  </c-wsp>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>g</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>t</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>h</ALPHA>-
             <ALPHA>e</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>p</ALPHA>
             <ALPHA>t</ALPHA>
             <ALPHA>y</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>
                         <DIGIT>0</DIGIT>
                      </repeat>
                      <element>
                         <prose-val>&lt;pchar&gt;</prose-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>s</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>g</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>t</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>r</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>s</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>g</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>t</ALPHA>-
             <ALPHA>n</ALPHA>
             <ALPHA>z</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>
                         <DIGIT>1</DIGIT>*</repeat>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>h</ALPHA>
                            <ALPHA>a</ALPHA>
                            <ALPHA>r</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>s</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>g</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>t</ALPHA>-
             <ALPHA>n</ALPHA>
             <ALPHA>z</ALPHA>-
             <ALPHA>n</ALPHA>
             <ALPHA>c</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>
                         <DIGIT>1</DIGIT>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>r</ALPHA>
                                           <ALPHA>v</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>d</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>p</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>t</ALPHA>-
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>n</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>o</ALPHA>
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>d</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>s</ALPHA>
                                           <ALPHA>u</ALPHA>
                                           <ALPHA>b</ALPHA>-
                                           <ALPHA>d</ALPHA>
                                           <ALPHA>e</ALPHA>
                                           <ALPHA>l</ALPHA>
                                           <ALPHA>i</ALPHA>
                                           <ALPHA>m</ALPHA>
                                           <ALPHA>s</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>@
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
             <c-wsp>
                <c-nl>
                   <CRLF>
                      <LF>
    </LF>
                   </CRLF>
                </c-nl>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </elements>
          <c-nl>
             <comment>;
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>n</VCHAR>
                <VCHAR>o</VCHAR>
                <VCHAR>n</VCHAR>
                <VCHAR>-</VCHAR>
                <VCHAR>z</VCHAR>
                <VCHAR>e</VCHAR>
                <VCHAR>r</VCHAR>
                <VCHAR>o</VCHAR>
                <VCHAR>-</VCHAR>
                <VCHAR>l</VCHAR>
                <VCHAR>e</VCHAR>
                <VCHAR>n</VCHAR>
                <VCHAR>g</VCHAR>
                <VCHAR>t</VCHAR>
                <VCHAR>h</VCHAR>
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>s</VCHAR>
                <VCHAR>e</VCHAR>
                <VCHAR>g</VCHAR>
                <VCHAR>m</VCHAR>
                <VCHAR>e</VCHAR>
                <VCHAR>n</VCHAR>
                <VCHAR>t</VCHAR>
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>w</VCHAR>
                <VCHAR>i</VCHAR>
                <VCHAR>t</VCHAR>
                <VCHAR>h</VCHAR>
                <VCHAR>o</VCHAR>
                <VCHAR>u</VCHAR>
                <VCHAR>t</VCHAR>
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>a</VCHAR>
                <VCHAR>n</VCHAR>
                <VCHAR>y</VCHAR>
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>c</VCHAR>
                <VCHAR>o</VCHAR>
                <VCHAR>l</VCHAR>
                <VCHAR>o</VCHAR>
                <VCHAR>n</VCHAR>
                <WSP>
                   <SP> </SP>
                </WSP>
                <VCHAR>"</VCHAR>
                <VCHAR>:</VCHAR>
                <VCHAR>"</VCHAR>
                <CRLF>
                   <LF>
    </LF>
                </CRLF>
             </comment>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>c</ALPHA>
             <ALPHA>h</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>r</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>u</ALPHA>
                            <ALPHA>n</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>s</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>r</ALPHA>
                            <ALPHA>v</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>d</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>p</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>t</ALPHA>-
                            <ALPHA>e</ALPHA>
                            <ALPHA>n</ALPHA>
                            <ALPHA>c</ALPHA>
                            <ALPHA>o</ALPHA>
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>d</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>s</ALPHA>
                            <ALPHA>u</ALPHA>
                            <ALPHA>b</ALPHA>-
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>s</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>:
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>@
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>q</ALPHA>
             <ALPHA>u</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>y</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>p</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>h</ALPHA>
                                           <ALPHA>a</ALPHA>
                                           <ALPHA>r</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>/
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>?
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>f</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>a</ALPHA>
             <ALPHA>g</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>t</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <repeat>*</repeat>
                      <element>
                         <group>(
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>
                            <alternation>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <rulename>
                                           <ALPHA>p</ALPHA>
                                           <ALPHA>c</ALPHA>
                                           <ALPHA>h</ALPHA>
                                           <ALPHA>a</ALPHA>
                                           <ALPHA>r</ALPHA>
                                        </rulename>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>/
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>/
                               <c-wsp>
                                  <WSP>
                                     <SP> </SP>
                                  </WSP>
                               </c-wsp>
                               <concatenation>
                                  <repetition>
                                     <element>
                                        <char-val>
                                           <DQUOTE>"</DQUOTE>?
                                           <DQUOTE>"</DQUOTE>
                                        </char-val>
                                     </element>
                                  </repetition>
                               </concatenation>
                            </alternation>
                            <c-wsp>
                               <WSP>
                                  <SP> </SP>
                               </WSP>
                            </c-wsp>)</group>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>p</ALPHA>
             <ALPHA>c</ALPHA>
             <ALPHA>t</ALPHA>-
             <ALPHA>e</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>c</ALPHA>
             <ALPHA>o</ALPHA>
             <ALPHA>d</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>d</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>%
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>H</ALPHA>
                            <ALPHA>E</ALPHA>
                            <ALPHA>X</ALPHA>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                   <c-wsp>
                      <WSP>
                         <SP> </SP>
                      </WSP>
                   </c-wsp>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>H</ALPHA>
                            <ALPHA>E</ALPHA>
                            <ALPHA>X</ALPHA>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <c-nl>
          <CRLF>
             <LF>
    </LF>
          </CRLF>
       </c-nl>
       <rule>
          <rulename>
             <ALPHA>u</ALPHA>
             <ALPHA>n</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>v</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>d</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>A</ALPHA>
                            <ALPHA>L</ALPHA>
                            <ALPHA>P</ALPHA>
                            <ALPHA>H</ALPHA>
                            <ALPHA>A</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>D</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>G</ALPHA>
                            <ALPHA>I</ALPHA>
                            <ALPHA>T</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>-
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>.
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>_
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>~
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>r</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>s</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>r</ALPHA>
             <ALPHA>v</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>d</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>g</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>n</ALPHA>-
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>s</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <rulename>
                            <ALPHA>s</ALPHA>
                            <ALPHA>u</ALPHA>
                            <ALPHA>b</ALPHA>-
                            <ALPHA>d</ALPHA>
                            <ALPHA>e</ALPHA>
                            <ALPHA>l</ALPHA>
                            <ALPHA>i</ALPHA>
                            <ALPHA>m</ALPHA>
                            <ALPHA>s</ALPHA>
                         </rulename>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>g</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>n</ALPHA>-
             <ALPHA>d</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>l</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>s</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>:
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>/
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>?
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>#
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>[
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>]
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>@
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
       <rule>
          <rulename>
             <ALPHA>s</ALPHA>
             <ALPHA>u</ALPHA>
             <ALPHA>b</ALPHA>-
             <ALPHA>d</ALPHA>
             <ALPHA>e</ALPHA>
             <ALPHA>l</ALPHA>
             <ALPHA>i</ALPHA>
             <ALPHA>m</ALPHA>
             <ALPHA>s</ALPHA>
          </rulename>
          <defined-as>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>=
             <c-wsp>
                <WSP>
                   <SP> </SP>
                </WSP>
             </c-wsp>
          </defined-as>
          <elements>
             <alternation>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>!
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>$
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>&amp;
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>'
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>(
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>)
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <c-nl>
                      <CRLF>
                         <LF>
    </LF>
                      </CRLF>
                   </c-nl>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>*
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>+
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>,
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>;
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>/
                <c-wsp>
                   <WSP>
                      <SP> </SP>
                   </WSP>
                </c-wsp>
                <concatenation>
                   <repetition>
                      <element>
                         <char-val>
                            <DQUOTE>"</DQUOTE>=
                            <DQUOTE>"</DQUOTE>
                         </char-val>
                      </element>
                   </repetition>
                </concatenation>
             </alternation>
          </elements>
          <c-nl>
             <CRLF>
                <LF>
    </LF>
             </CRLF>
          </c-nl>
       </rule>
    </rulelist>
    

Another XML version of uri.abnf

  • By adding a few marks to abnf.ixml, we can make the result less verbose

  • But it’s still not an iXML grammar

    <rulelist>
       <rule>
          <rulename>URI</rulename>            
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>scheme</rulename>
                </repetition> 
                <repetition>
                   <char-val>:</char-val>
                </repetition> 
                <repetition>
                   <rulename>hier-part</rulename>
                </repetition> 
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>?</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>query</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>#</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>fragment</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>hier-part</rulename>      
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>//</char-val>
                </repetition> 
                <repetition>
                   <rulename>authority</rulename>
                </repetition> 
                <repetition>
                   <rulename>path-abempty</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <rulename>path-absolute</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <rulename>path-rootless</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <rulename>path-empty</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>URI-reference</rulename>  
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>URI</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>relative-ref</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>absolute-URI</rulename>   
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>scheme</rulename>
                </repetition> 
                <repetition>
                   <char-val>:</char-val>
                </repetition> 
                <repetition>
                   <rulename>hier-part</rulename>
                </repetition> 
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>?</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>query</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>relative-ref</rulename>   
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>relative-part</rulename>
                </repetition> 
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>?</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>query</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>#</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>fragment</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>relative-part</rulename>  
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>//</char-val>
                </repetition> 
                <repetition>
                   <rulename>authority</rulename>
                </repetition> 
                <repetition>
                   <rulename>path-abempty</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <rulename>path-absolute</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <rulename>path-noscheme</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <rulename>path-empty</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>scheme</rulename>         
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>ALPHA</rulename>
                </repetition> 
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>ALPHA</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>DIGIT</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>+</char-val>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>-</char-val>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>.</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>authority</rulename>      
          <alternation>
             <concatenation>
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>userinfo</rulename>
                            </repetition> 
                            <repetition>
                               <char-val>@</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <rulename>host</rulename>
                </repetition> 
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>:</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>port</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>userinfo</rulename>       
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>unreserved</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>pct-encoded</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>sub-delims</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>:</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>host</rulename>           
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>IP-literal</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>IPv4address</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>reg-name</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>port</rulename>           
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>*</repeat>
                   <rulename>DIGIT</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>IP-literal</rulename>     
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>[</char-val>
                </repetition> 
                <repetition>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>IPv6address</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>IPvFuture</rulename>
                            </repetition>
                         </concatenation>
                      </alternation>  </group>
                </repetition> 
                <repetition>
                   <char-val>]</char-val>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>IPvFuture</rulename>      
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>v</char-val>
                </repetition> 
                <repetition>
                   <repeat>1*</repeat>
                   <rulename>HEXDIG</rulename>
                </repetition> 
                <repetition>
                   <char-val>.</char-val>
                </repetition> 
                <repetition>
                   <repeat>1*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>unreserved</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>sub-delims</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>:</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>IPv6address</rulename>                               
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>6</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition> 
                            <repetition>
                               <char-val>:</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition> 
                <repetition>
                   <rulename>ls32</rulename>
                </repetition>
             </concatenation>                                     
             <concatenation>
                <repetition>
                   <char-val>::</char-val>
                </repetition> 
                <repetition>
                   <repeat>5</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition> 
                            <repetition>
                               <char-val>:</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition> 
                <repetition>
                   <rulename>ls32</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <option>               
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <char-val>::</char-val>
                </repetition> 
                <repetition>
                   <repeat>4</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition> 
                            <repetition>
                               <char-val>:</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition> 
                <repetition>
                   <rulename>ls32</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <repeat>*1</repeat>
                               <group> 
                                  <alternation>
                                     <concatenation>
                                        <repetition>
                                           <rulename>h16</rulename>
                                        </repetition> 
                                        <repetition>
                                           <char-val>:</char-val>
                                        </repetition>
                                     </concatenation>
                                  </alternation> </group>
                            </repetition> 
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <char-val>::</char-val>
                </repetition> 
                <repetition>
                   <repeat>3</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition> 
                            <repetition>
                               <char-val>:</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition> 
                <repetition>
                   <rulename>ls32</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <repeat>*2</repeat>
                               <group> 
                                  <alternation>
                                     <concatenation>
                                        <repetition>
                                           <rulename>h16</rulename>
                                        </repetition> 
                                        <repetition>
                                           <char-val>:</char-val>
                                        </repetition>
                                     </concatenation>
                                  </alternation> </group>
                            </repetition> 
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <char-val>::</char-val>
                </repetition> 
                <repetition>
                   <repeat>2</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition> 
                            <repetition>
                               <char-val>:</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition> 
                <repetition>
                   <rulename>ls32</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <repeat>*3</repeat>
                               <group> 
                                  <alternation>
                                     <concatenation>
                                        <repetition>
                                           <rulename>h16</rulename>
                                        </repetition> 
                                        <repetition>
                                           <char-val>:</char-val>
                                        </repetition>
                                     </concatenation>
                                  </alternation> </group>
                            </repetition> 
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <char-val>::</char-val>
                </repetition>    
                <repetition>
                   <rulename>h16</rulename>
                </repetition> 
                <repetition>
                   <char-val>:</char-val>
                </repetition>   
                <repetition>
                   <rulename>ls32</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <repeat>*4</repeat>
                               <group> 
                                  <alternation>
                                     <concatenation>
                                        <repetition>
                                           <rulename>h16</rulename>
                                        </repetition> 
                                        <repetition>
                                           <char-val>:</char-val>
                                        </repetition>
                                     </concatenation>
                                  </alternation> </group>
                            </repetition> 
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <char-val>::</char-val>
                </repetition>              
                <repetition>
                   <rulename>ls32</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <repeat>*5</repeat>
                               <group> 
                                  <alternation>
                                     <concatenation>
                                        <repetition>
                                           <rulename>h16</rulename>
                                        </repetition> 
                                        <repetition>
                                           <char-val>:</char-val>
                                        </repetition>
                                     </concatenation>
                                  </alternation> </group>
                            </repetition> 
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <char-val>::</char-val>
                </repetition>              
                <repetition>
                   <rulename>h16</rulename>
                </repetition>
             </concatenation>               
             <concatenation>
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <repeat>*6</repeat>
                               <group> 
                                  <alternation>
                                     <concatenation>
                                        <repetition>
                                           <rulename>h16</rulename>
                                        </repetition> 
                                        <repetition>
                                           <char-val>:</char-val>
                                        </repetition>
                                     </concatenation>
                                  </alternation> </group>
                            </repetition> 
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition> 
                <repetition>
                   <char-val>::</char-val>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>h16</rulename>            
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>1*4</repeat>
                   <rulename>HEXDIG</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>ls32</rulename>           
          <alternation>
             <concatenation>
                <repetition>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition> 
                            <repetition>
                               <char-val>:</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>h16</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>IPv4address</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>IPv4address</rulename>    
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>dec-octet</rulename>
                </repetition> 
                <repetition>
                   <char-val>.</char-val>
                </repetition> 
                <repetition>
                   <rulename>dec-octet</rulename>
                </repetition> 
                <repetition>
                   <char-val>.</char-val>
                </repetition> 
                <repetition>
                   <rulename>dec-octet</rulename>
                </repetition> 
                <repetition>
                   <char-val>.</char-val>
                </repetition> 
                <repetition>
                   <rulename>dec-octet</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>dec-octet</rulename>      
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>DIGIT</rulename>
                </repetition>
             </concatenation>                                
             <concatenation>
                <repetition>
                   <hex-val>31-39</hex-val>
                </repetition> 
                <repetition>
                   <rulename>DIGIT</rulename>
                </repetition>
             </concatenation>                        
             <concatenation>
                <repetition>
                   <char-val>1</char-val>
                </repetition> 
                <repetition>
                   <repeat>2</repeat>
                   <rulename>DIGIT</rulename>
                </repetition>
             </concatenation>                           
             <concatenation>
                <repetition>
                   <char-val>2</char-val>
                </repetition> 
                <repetition>
                   <hex-val>30-34</hex-val>
                </repetition> 
                <repetition>
                   <rulename>DIGIT</rulename>
                </repetition>
             </concatenation>                    
             <concatenation>
                <repetition>
                   <char-val>25</char-val>
                </repetition> 
                <repetition>
                   <hex-val>30-35</hex-val>
                </repetition>
             </concatenation>
          </alternation>          </rule>
       <rule>
          <rulename>reg-name</rulename>       
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>unreserved</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>pct-encoded</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>sub-delims</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>path</rulename>           
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>path-abempty</rulename>
                </repetition>
             </concatenation>                   
             <concatenation>
                <repetition>
                   <rulename>path-absolute</rulename>
                </repetition>
             </concatenation>                  
             <concatenation>
                <repetition>
                   <rulename>path-noscheme</rulename>
                </repetition>
             </concatenation>                  
             <concatenation>
                <repetition>
                   <rulename>path-rootless</rulename>
                </repetition>
             </concatenation>                  
             <concatenation>
                <repetition>
                   <rulename>path-empty</rulename>
                </repetition>
             </concatenation>
          </alternation>      </rule>
       <rule>
          <rulename>path-abempty</rulename>   
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>/</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>segment</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>path-absolute</rulename>  
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>/</char-val>
                </repetition> 
                <repetition>
                   <option> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>segment-nz</rulename>
                            </repetition> 
                            <repetition>
                               <repeat>*</repeat>
                               <group> 
                                  <alternation>
                                     <concatenation>
                                        <repetition>
                                           <char-val>/</char-val>
                                        </repetition> 
                                        <repetition>
                                           <rulename>segment</rulename>
                                        </repetition>
                                     </concatenation>
                                  </alternation> </group>
                            </repetition>
                         </concatenation>
                      </alternation> </option>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>path-noscheme</rulename>  
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>segment-nz-nc</rulename>
                </repetition> 
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>/</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>segment</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>path-rootless</rulename>  
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>segment-nz</rulename>
                </repetition> 
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <char-val>/</char-val>
                            </repetition> 
                            <repetition>
                               <rulename>segment</rulename>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>path-empty</rulename>     
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>0</repeat>
                   <prose-val>&lt;pchar&gt;</prose-val>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>segment</rulename>        
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>*</repeat>
                   <rulename>pchar</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>segment-nz</rulename>     
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>1*</repeat>
                   <rulename>pchar</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>segment-nz-nc</rulename>  
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>1*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>unreserved</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>pct-encoded</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <rulename>sub-delims</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>@</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>              
       <rule>
          <rulename>pchar</rulename>          
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>unreserved</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>pct-encoded</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>sub-delims</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>:</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>@</char-val>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>query</rulename>          
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>pchar</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>/</char-val>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>?</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>fragment</rulename>       
          <alternation>
             <concatenation>
                <repetition>
                   <repeat>*</repeat>
                   <group> 
                      <alternation>
                         <concatenation>
                            <repetition>
                               <rulename>pchar</rulename>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>/</char-val>
                            </repetition>
                         </concatenation>  
                         <concatenation>
                            <repetition>
                               <char-val>?</char-val>
                            </repetition>
                         </concatenation>
                      </alternation> </group>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>pct-encoded</rulename>    
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>%</char-val>
                </repetition> 
                <repetition>
                   <rulename>HEXDIG</rulename>
                </repetition> 
                <repetition>
                   <rulename>HEXDIG</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>unreserved</rulename>     
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>ALPHA</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>DIGIT</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>-</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>.</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>_</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>~</char-val>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>reserved</rulename>       
          <alternation>
             <concatenation>
                <repetition>
                   <rulename>gen-delims</rulename>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <rulename>sub-delims</rulename>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>gen-delims</rulename>     
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>:</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>/</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>?</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>#</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>[</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>]</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>@</char-val>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
       <rule>
          <rulename>sub-delims</rulename>     
          <alternation>
             <concatenation>
                <repetition>
                   <char-val>!</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>$</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>&amp;</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>'</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>(</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>)</char-val>
                </repetition>
             </concatenation>                  
             <concatenation>
                <repetition>
                   <char-val>*</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>+</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>,</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>;</char-val>
                </repetition>
             </concatenation>  
             <concatenation>
                <repetition>
                   <char-val>=</char-val>
                </repetition>
             </concatenation>
          </alternation>
       </rule>
    </rulelist>
    

XSLT enters the chat

  • We have the technology to fix that!

    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:array="http://www.w3.org/2005/xpath-functions/array"
                    xmlns:cs="http://nineml.com/ns/coffeesacks"
                    xmlns:f="https://nineml.org/ns/functions"
                    xmlns:map="http://www.w3.org/2005/xpath-functions/map"
                    xmlns:xs="http://www.w3.org/2001/XMLSchema"
                    exclude-result-prefixes="#all"
                    expand-text="yes"
                    version="3.0">
    
    <xsl:output method="xml" encoding="utf-8" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <xsl:preserve-space elements="char-val"/>
    
    <xsl:key name="definitions" match="rule" use="rulename"/>
    <xsl:key name="uses" match="rulename[not(parent::rule)]" use="."/>
    
    <xsl:param name="marks" select="()"/>
    
    <xsl:variable name="parser" select="cs:load-grammar('marks.ixml')"/>
    
    <xsl:variable name="marklist" as="element(marks)?"
                  select="$marks ! $parser(unparsed-text(.))/*"/>
    
    <xsl:variable name="marked" as="map(xs:string, xs:string)">
      <xsl:variable name="root" select="/"/>
      <xsl:map>
        <xsl:iterate select="$marklist/*">
          <xsl:param name="selected" select="()"/>
    
          <xsl:variable name="mark" select="@mark/string()"/>
          <xsl:variable name="elements" as="element()*">
            <xsl:choose>
              <xsl:when test="self::rule">
                <xsl:evaluate context-item="$root" as="element()*"
                              xpath="'/rulelist/rule[rulename='''||normalize-space(.)||''']'"/>
              </xsl:when>
              <xsl:when test="self::token">
                <!--<xsl:message select="string(.)"/>-->
                <xsl:evaluate context-item="$root" as="element()*"
                              xpath="string(.)"/>
              </xsl:when>
              <xsl:when test="self::renametoken">
                <!-- nop -->
              </xsl:when>
              <xsl:when test="self::rename">
                <!-- nop -->
              </xsl:when>
              <xsl:otherwise>
                <xsl:message select="'Unrecognized mark:', ."/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:variable>
    
          <xsl:for-each select="$elements">
            <xsl:if test="not(generate-id(.) = $selected)">
              <xsl:map-entry key="generate-id(.)" select="$mark"/>
            </xsl:if>
          </xsl:for-each>
    
          <xsl:next-iteration>
            <xsl:with-param name="selected" select="($selected, $elements ! generate-id(.))"/>
          </xsl:next-iteration>
        </xsl:iterate>
      </xsl:map>
    </xsl:variable>
    
    <xsl:variable name="renamed" as="map(xs:string, xs:string)">
      <xsl:variable name="root" select="/"/>
      <xsl:map>
        <xsl:iterate select="$marklist/*">
          <xsl:param name="selected" select="()"/>
    
          <xsl:variable name="rename" select="@name/string()"/>
          <xsl:variable name="elements" as="element()*">
            <xsl:choose>
              <xsl:when test="self::rule">
                <!-- nop -->
              </xsl:when>
              <xsl:when test="self::token">
                <!-- nop -->
              </xsl:when>
              <xsl:when test="self::renametoken">
                <!--<xsl:message select="string(.)"/>-->
                <xsl:evaluate context-item="$root" as="element()*"
                              xpath="string(.)"/>
              </xsl:when>
              <xsl:when test="self::rename">
                <!-- nop -->
              </xsl:when>
              <xsl:otherwise>
                <xsl:message select="'Unrecognized mark:', ."/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:variable>
    
          <xsl:for-each select="$elements">
            <xsl:if test="not(generate-id(.) = $selected)">
              <xsl:map-entry key="generate-id(.)" select="$rename"/>
            </xsl:if>
          </xsl:for-each>
    
          <xsl:next-iteration>
            <xsl:with-param name="selected" select="($selected, $elements ! generate-id(.))"/>
          </xsl:next-iteration>
        </xsl:iterate>
      </xsl:map>
    </xsl:variable>
    
    <xsl:variable name="core-rules" as="element()">
      <core-rules>
        <rule mark='-' name='ALPHA'>
          <alt>
            <inclusion>
              <member from='A' to='Z'/>
              <member from='a' to='z'/>
            </inclusion>
          </alt>
        </rule>
        <rule mark='-' name='BIT'>
          <alt>
            <literal string='0'/>
          </alt>
          <alt>
            <literal string='1'/>
          </alt>
        </rule>
        <rule mark='-' name='CR'>
          <alt>
            <literal tmark='-' hex='0D'/>
          </alt>
        </rule>
        <rule mark='-' name='CRLF'>
          <alt>
            <nonterminal name='CR'/>
            <nonterminal name='LF'/>
          </alt>
          <alt>
            <nonterminal name='LF'/>
          </alt>
        </rule>
        <rule mark='-' name='DIGIT'>
          <alt>
            <inclusion>
              <member from='0' to='9'/>
            </inclusion>
          </alt>
        </rule>
        <rule mark='-' name='DQUOTE'>
          <alt>
            <literal tmark='-' hex='22'/>
          </alt>
        </rule>
        <rule mark='-' name='HEXDIG'>
          <alt>
            <nonterminal name='DIGIT'/>
          </alt>
          <alt>
            <inclusion>
              <member from='A' to='F'/>
            </inclusion>
          </alt>
          <alt>
            <inclusion>
              <member from='a' to='f'/>
            </inclusion>
          </alt>
        </rule>
        <rule mark='-' name='HTAB'>
          <alt>
            <literal hex='09'/>
          </alt>
        </rule>
        <comment> horizontal tab </comment>
        <rule mark='-' name='LF'>
          <alt>
            <literal tmark='-' hex='0A'/>
          </alt>
        </rule>
        <rule mark='-' name='SP'>
          <alt>
            <literal hex='20'/>
          </alt>
        </rule>
        <rule mark='-' name='VCHAR'>
          <alt>
            <inclusion>
              <member from='#21' to='#7E'/>
            </inclusion>
          </alt>
        </rule>
        <rule mark='-' name='WSP'>
          <alt>
            <nonterminal name='SP'/>
          </alt>
          <alt>
            <nonterminal name='HTAB'/>
          </alt>
        </rule>
        <rule mark='-' name='CHAR'>
          <alt>
            <inclusion>
              <member from='#01' to='#7F'/>
            </inclusion>
          </alt>
        </rule>
        <rule mark='-' name='CTL'>
          <alt>
            <inclusion>
              <member from='#00' to='#1F'/>
              <literal hex='7F'/>
            </inclusion>
          </alt>
        </rule>
        <rule mark='-' name='LWSP'>
          <alt>
            <nonterminal name='CR'/>
            <nonterminal name='LF'/>
          </alt>
          <alt>
            <nonterminal name='LF'/>
          </alt>
        </rule>
        <rule name='LWSP'>
          <alt>
            <repeat0>
              <alts>
                <alt>
                  <nonterminal name='WSP'/>
                </alt>
                <alt>
                  <nonterminal name='CRLF'/>
                  <nonterminal name='WSP'/>
                </alt>
              </alts>
            </repeat0>
          </alt>
        </rule>
        <rule mark='-' name='OCTET'>
          <alt>
            <inclusion>
              <member from='#00' to='#FF'/>
            </inclusion>
          </alt>
        </rule>
      </core-rules>
    </xsl:variable>
    
    <xsl:template match="rulelist">
      <xsl:variable name="rules" select="."/>
      <ixml>
        <prolog>
          <version string='1.1-nineml'/>
        </prolog>
        <xsl:apply-templates/>
        <xsl:for-each select="$core-rules/rule">
          <xsl:variable name="name" select="@name/string()"/>
          <xsl:if test="empty(key('definitions', $name, $rules))
                        and exists(key('uses', $name, $rules))">
            <xsl:sequence select="."/>
          </xsl:if>
        </xsl:for-each>
      </ixml>
    </xsl:template>
    
    <xsl:template match="rule">
      <xsl:variable name="name" select="rulename/string()"/>
      <rule name='{$name}'>
        <xsl:sequence select="f:mark(.)"/>
        <xsl:if test="$marklist/rename[@name = $name]">
          <xsl:attribute name="rename" select="normalize-space($marklist/rename[@name = $name])"/>
        </xsl:if>
        <xsl:apply-templates/>
      </rule>
    </xsl:template>
    
    <xsl:template match="alternation">
      <alts>
        <xsl:apply-templates/>
      </alts>
    </xsl:template>
    
    <xsl:template match="group/alternation" priority="10">
      <xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="rule/alternation" priority="10">
      <xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="alternation/*" priority="10">
      <alt>
        <xsl:next-match/>
      </alt>
    </xsl:template>
    
    <xsl:template match="group">
      <alts>
        <xsl:apply-templates/>
      </alts>
    </xsl:template>
    
    <xsl:template match="repetition">
      <xsl:message terminate="yes" select="'Unhandled repetition type:', ."/>
    </xsl:template>
    
    <xsl:template match="repetition[not(repeat)]">
      <xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="repetition[repeat='+']">
      <repeat1>
        <xsl:apply-templates select="* except repeat"/>
      </repeat1>
    </xsl:template>
    
    <xsl:template match="repetition[repeat castable as xs:integer]">
      <xsl:variable name="item" select="* except repeat"/>
      <xsl:for-each select="1 to xs:integer(repeat)">
        <xsl:apply-templates select="$item"/>
      </xsl:for-each>
    </xsl:template>
    
    <xsl:template match="repetition[repeat='0']" priority="10">
      <alts>
        <alt/>
      </alts>
    </xsl:template>
    
    <xsl:template match="repetition[matches(repeat, '\d*\*\d*')]">
      <xsl:variable name="item" select="* except repeat"/>
      <xsl:variable name="min"
                    select="if (substring-before(repeat, '*') = '')
                            then 0
                            else xs:integer(substring-before(repeat, '*'))"/>
      <xsl:variable name="max"
                    select="if (substring-after(repeat, '*') = '')
                            then ()
                            else xs:integer(substring-after(repeat, '*'))"/>
    
      <xsl:if test="$min gt 0">
        <xsl:for-each select="1 to $min">
          <xsl:apply-templates select="$item"/>
        </xsl:for-each>
      </xsl:if>
    
      <xsl:choose>
        <xsl:when test="exists($max)">
          <xsl:for-each select="$min to $max">
            <xsl:apply-templates select="$item"/>
          </xsl:for-each>
        </xsl:when>
        <xsl:otherwise>
          <repeat0>
            <xsl:apply-templates select="$item"/>
          </repeat0>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template>
    
    <xsl:template match="option">
      <option>
        <xsl:apply-templates/>
      </option>
    </xsl:template>
    
    <xsl:template match="char-val">
      <literal string='{.}'>
        <xsl:sequence select="f:tmark(.)"/>
      </literal>
    </xsl:template>
    
    <xsl:template match="hex-val">
      <xsl:variable name="attr" select="f:tmark(.)"/>
      <xsl:for-each select="tokenize(., '\.')">
        <literal hex='{.}'>
          <xsl:sequence select="$attr"/>
        </literal>
      </xsl:for-each>
    </xsl:template>
    
    <xsl:template match="hex-val[contains(., '-')]">
      <xsl:variable name="attr" select="f:tmark(.)"/>
      <xsl:variable name="first" select="substring-before(., '-')"/>
      <xsl:variable name="last" select="substring-after(., '-')"/>
      <alts>
        <alt>
          <inclusion>
            <member from='#{$first}' to='#{$last}'>
              <xsl:sequence select="$attr"/>
            </member>
          </inclusion>
        </alt>
      </alts>
    </xsl:template>
    
    <xsl:template match="rulename">
      <nonterminal name='{.}'>
        <xsl:sequence select="f:mark(.)"/>
        <xsl:sequence select="f:rename(.)"/>
      </nonterminal>
    </xsl:template>
    
    <xsl:template match="rule/rulename"/>
    
    <xsl:template match="comment">
      <comment>
        <xsl:apply-templates/>
      </comment>
    </xsl:template>
    
    <!-- ============================================================ -->
    
    <xsl:function name="f:hex-to-dec" as="xs:integer">
      <xsl:param name="hex" as="xs:string"/>
      <xsl:iterate select="reverse(string-to-codepoints(upper-case($hex)))">
        <xsl:param name="dec" select="0"/>
        <xsl:param name="pow" select="1"/>
        <xsl:on-completion select="$dec"/>
        <xsl:variable name="digit" select="if (. gt 64) then . - 55 else . - 48"/>
        <xsl:next-iteration>
          <xsl:with-param name="dec" select="$dec + ($digit * $pow)"/>
          <xsl:with-param name="pow" select="$pow * 16"/>
        </xsl:next-iteration>
      </xsl:iterate>
    </xsl:function>
    
    <xsl:function name="f:dec-to-hex" as="xs:string">
      <xsl:param name="dec" as="xs:integer"/>
    
      <xsl:choose>
        <xsl:when test="$dec lt 16">
          <xsl:sequence select="substring('0123456789ABCDEF', $dec+1, 1)"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:variable name="newdec" select="$dec idiv 16"/>
          <xsl:variable name="digit"  select="$dec - ($newdec * 16)"/>
          <xsl:sequence select="f:dec-to-hex($newdec)||substring('0123456789ABCDEF', $digit+1, 1)"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:function>
    
    <xsl:function name="f:mark" as="attribute()?">
      <xsl:param name="node" as="element()"/>
      <xsl:if test="map:contains($marked, generate-id($node))">
        <xsl:attribute name="mark" select="map:get($marked, generate-id($node))"/>
      </xsl:if>
    </xsl:function>
    
    <xsl:function name="f:tmark" as="attribute()?">
      <xsl:param name="node" as="element()"/>
      <xsl:if test="map:contains($marked, generate-id($node))">
        <xsl:attribute name="tmark" select="map:get($marked, generate-id($node))"/>
      </xsl:if>
    </xsl:function>
    
    <xsl:function name="f:rename" as="attribute()?">
      <xsl:param name="node" as="element()"/>
      <xsl:if test="map:contains($renamed, generate-id($node))">
        <xsl:attribute name="rename" select="map:get($renamed, generate-id($node))"/>
      </xsl:if>
    </xsl:function>
    
    </xsl:stylesheet>
    

Grammar! Grammar! Grammar! Grammar!

Now we can…

  • Convert uri.abnf to xml…

    coffeepot -g:ABNFp.ixml -i:uri.abnf -o:uri.xml

  • Transform that XML…

    saxon -s:uri.xml -xsl:abnf2ixml.xsl -o:uri-raw.vxml

  • And now it’s iXML!

    <?xml version="1.0" encoding="utf-8"?>
    <ixml>
       <prolog>
          <version string="1.1-nineml"/>
       </prolog>
       <rule name="URI">
          <alt>
             <nonterminal name="scheme"/>
             <literal string=":"/>
             <nonterminal name="hier-part"/>
             <option>
                <alts>
                   <alt>
                      <literal string="?"/>
                      <nonterminal name="query"/>
                   </alt>
                </alts>
             </option>
             <option>
                <alts>
                   <alt>
                      <literal string="#"/>
                      <nonterminal name="fragment"/>
                   </alt>
                </alts>
             </option>
          </alt>
       </rule>
       <rule name="hier-part">
          <alt>
             <literal string="//"/>
             <nonterminal name="authority"/>
             <nonterminal name="path-abempty"/>
          </alt>
          <alt>
             <nonterminal name="path-absolute"/>
          </alt>
          <alt>
             <nonterminal name="path-rootless"/>
          </alt>
          <alt>
             <nonterminal name="path-empty"/>
          </alt>
       </rule>
       <rule name="URI-reference">
          <alt>
             <nonterminal name="URI"/>
          </alt>
          <alt>
             <nonterminal name="relative-ref"/>
          </alt>
       </rule>
       <rule name="absolute-URI">
          <alt>
             <nonterminal name="scheme"/>
             <literal string=":"/>
             <nonterminal name="hier-part"/>
             <option>
                <alts>
                   <alt>
                      <literal string="?"/>
                      <nonterminal name="query"/>
                   </alt>
                </alts>
             </option>
          </alt>
       </rule>
       <rule name="relative-ref">
          <alt>
             <nonterminal name="relative-part"/>
             <option>
                <alts>
                   <alt>
                      <literal string="?"/>
                      <nonterminal name="query"/>
                   </alt>
                </alts>
             </option>
             <option>
                <alts>
                   <alt>
                      <literal string="#"/>
                      <nonterminal name="fragment"/>
                   </alt>
                </alts>
             </option>
          </alt>
       </rule>
       <rule name="relative-part">
          <alt>
             <literal string="//"/>
             <nonterminal name="authority"/>
             <nonterminal name="path-abempty"/>
          </alt>
          <alt>
             <nonterminal name="path-absolute"/>
          </alt>
          <alt>
             <nonterminal name="path-noscheme"/>
          </alt>
          <alt>
             <nonterminal name="path-empty"/>
          </alt>
       </rule>
       <rule name="scheme">
          <alt>
             <nonterminal name="ALPHA"/>
             <repeat0>
                <alts>
                   <alt>
                      <nonterminal name="ALPHA"/>
                   </alt>
                   <alt>
                      <nonterminal name="DIGIT"/>
                   </alt>
                   <alt>
                      <literal string="+"/>
                   </alt>
                   <alt>
                      <literal string="-"/>
                   </alt>
                   <alt>
                      <literal string="."/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="authority">
          <alt>
             <option>
                <alts>
                   <alt>
                      <nonterminal name="userinfo"/>
                      <literal string="@"/>
                   </alt>
                </alts>
             </option>
             <nonterminal name="host"/>
             <option>
                <alts>
                   <alt>
                      <literal string=":"/>
                      <nonterminal name="port"/>
                   </alt>
                </alts>
             </option>
          </alt>
       </rule>
       <rule name="userinfo">
          <alt>
             <repeat0>
                <alts>
                   <alt>
                      <nonterminal name="unreserved"/>
                   </alt>
                   <alt>
                      <nonterminal name="pct-encoded"/>
                   </alt>
                   <alt>
                      <nonterminal name="sub-delims"/>
                   </alt>
                   <alt>
                      <literal string=":"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="host">
          <alt>
             <nonterminal name="IP-literal"/>
          </alt>
          <alt>
             <nonterminal name="IPv4address"/>
          </alt>
          <alt>
             <nonterminal name="reg-name"/>
          </alt>
       </rule>
       <rule name="port">
          <alt>
             <repeat0>
                <nonterminal name="DIGIT"/>
             </repeat0>
          </alt>
       </rule>
       <rule name="IP-literal">
          <alt>
             <literal string="["/>
             <alts>
                <alt>
                   <nonterminal name="IPv6address"/>
                </alt>
                <alt>
                   <nonterminal name="IPvFuture"/>
                </alt>
             </alts>
             <literal string="]"/>
          </alt>
       </rule>
       <rule name="IPvFuture">
          <alt>
             <literal string="v"/>
             <nonterminal name="HEXDIG"/>
             <repeat0>
                <nonterminal name="HEXDIG"/>
             </repeat0>
             <literal string="."/>
             <alts>
                <alt>
                   <nonterminal name="unreserved"/>
                </alt>
                <alt>
                   <nonterminal name="sub-delims"/>
                </alt>
                <alt>
                   <literal string=":"/>
                </alt>
             </alts>
             <repeat0>
                <alts>
                   <alt>
                      <nonterminal name="unreserved"/>
                   </alt>
                   <alt>
                      <nonterminal name="sub-delims"/>
                   </alt>
                   <alt>
                      <literal string=":"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="IPv6address">
          <alt>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <nonterminal name="ls32"/>
          </alt>
          <alt>
             <literal string="::"/>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <nonterminal name="ls32"/>
          </alt>
          <alt>
             <option>
                <alts>
                   <alt>
                      <nonterminal name="h16"/>
                   </alt>
                </alts>
             </option>
             <literal string="::"/>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <nonterminal name="ls32"/>
          </alt>
          <alt>
             <option>
                <alts>
                   <alt>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <nonterminal name="h16"/>
                   </alt>
                </alts>
             </option>
             <literal string="::"/>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <nonterminal name="ls32"/>
          </alt>
          <alt>
             <option>
                <alts>
                   <alt>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <nonterminal name="h16"/>
                   </alt>
                </alts>
             </option>
             <literal string="::"/>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                </alt>
             </alts>
             <nonterminal name="ls32"/>
          </alt>
          <alt>
             <option>
                <alts>
                   <alt>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <nonterminal name="h16"/>
                   </alt>
                </alts>
             </option>
             <literal string="::"/>
             <nonterminal name="h16"/>
             <literal string=":"/>
             <nonterminal name="ls32"/>
          </alt>
          <alt>
             <option>
                <alts>
                   <alt>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <nonterminal name="h16"/>
                   </alt>
                </alts>
             </option>
             <literal string="::"/>
             <nonterminal name="ls32"/>
          </alt>
          <alt>
             <option>
                <alts>
                   <alt>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <nonterminal name="h16"/>
                   </alt>
                </alts>
             </option>
             <literal string="::"/>
             <nonterminal name="h16"/>
          </alt>
          <alt>
             <option>
                <alts>
                   <alt>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <alts>
                         <alt>
                            <nonterminal name="h16"/>
                            <literal string=":"/>
                         </alt>
                      </alts>
                      <nonterminal name="h16"/>
                   </alt>
                </alts>
             </option>
             <literal string="::"/>
          </alt>
       </rule>
       <rule name="h16">
          <alt>
             <nonterminal name="HEXDIG"/>
             <nonterminal name="HEXDIG"/>
             <nonterminal name="HEXDIG"/>
             <nonterminal name="HEXDIG"/>
             <nonterminal name="HEXDIG"/>
          </alt>
       </rule>
       <rule name="ls32">
          <alt>
             <alts>
                <alt>
                   <nonterminal name="h16"/>
                   <literal string=":"/>
                   <nonterminal name="h16"/>
                </alt>
             </alts>
          </alt>
          <alt>
             <nonterminal name="IPv4address"/>
          </alt>
       </rule>
       <rule name="IPv4address">
          <alt>
             <nonterminal name="dec-octet"/>
             <literal string="."/>
             <nonterminal name="dec-octet"/>
             <literal string="."/>
             <nonterminal name="dec-octet"/>
             <literal string="."/>
             <nonterminal name="dec-octet"/>
          </alt>
       </rule>
       <rule name="dec-octet">
          <alt>
             <nonterminal name="DIGIT"/>
          </alt>
          <alt>
             <alts>
                <alt>
                   <inclusion>
                      <member from="#31" to="#39"/>
                   </inclusion>
                </alt>
             </alts>
             <nonterminal name="DIGIT"/>
          </alt>
          <alt>
             <literal string="1"/>
             <nonterminal name="DIGIT"/>
             <nonterminal name="DIGIT"/>
          </alt>
          <alt>
             <literal string="2"/>
             <alts>
                <alt>
                   <inclusion>
                      <member from="#30" to="#34"/>
                   </inclusion>
                </alt>
             </alts>
             <nonterminal name="DIGIT"/>
          </alt>
          <alt>
             <literal string="25"/>
             <alts>
                <alt>
                   <inclusion>
                      <member from="#30" to="#35"/>
                   </inclusion>
                </alt>
             </alts>
          </alt>
       </rule>
       <rule name="reg-name">
          <alt>
             <repeat0>
                <alts>
                   <alt>
                      <nonterminal name="unreserved"/>
                   </alt>
                   <alt>
                      <nonterminal name="pct-encoded"/>
                   </alt>
                   <alt>
                      <nonterminal name="sub-delims"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="path">
          <alt>
             <nonterminal name="path-abempty"/>
          </alt>
          <alt>
             <nonterminal name="path-absolute"/>
          </alt>
          <alt>
             <nonterminal name="path-noscheme"/>
          </alt>
          <alt>
             <nonterminal name="path-rootless"/>
          </alt>
          <alt>
             <nonterminal name="path-empty"/>
          </alt>
       </rule>
       <rule name="path-abempty">
          <alt>
             <repeat0>
                <alts>
                   <alt>
                      <literal string="/"/>
                      <nonterminal name="segment"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="path-absolute">
          <alt>
             <literal string="/"/>
             <option>
                <alts>
                   <alt>
                      <nonterminal name="segment-nz"/>
                      <repeat0>
                         <alts>
                            <alt>
                               <literal string="/"/>
                               <nonterminal name="segment"/>
                            </alt>
                         </alts>
                      </repeat0>
                   </alt>
                </alts>
             </option>
          </alt>
       </rule>
       <rule name="path-noscheme">
          <alt>
             <nonterminal name="segment-nz-nc"/>
             <repeat0>
                <alts>
                   <alt>
                      <literal string="/"/>
                      <nonterminal name="segment"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="path-rootless">
          <alt>
             <nonterminal name="segment-nz"/>
             <repeat0>
                <alts>
                   <alt>
                      <literal string="/"/>
                      <nonterminal name="segment"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="path-empty">
          <alt>
             <alts>
                <alt/>
             </alts>
          </alt>
       </rule>
       <rule name="segment">
          <alt>
             <repeat0>
                <nonterminal name="pchar"/>
             </repeat0>
          </alt>
       </rule>
       <rule name="segment-nz">
          <alt>
             <nonterminal name="pchar"/>
             <repeat0>
                <nonterminal name="pchar"/>
             </repeat0>
          </alt>
       </rule>
       <rule name="segment-nz-nc">
          <alt>
             <alts>
                <alt>
                   <nonterminal name="unreserved"/>
                </alt>
                <alt>
                   <nonterminal name="pct-encoded"/>
                </alt>
                <alt>
                   <nonterminal name="sub-delims"/>
                </alt>
                <alt>
                   <literal string="@"/>
                </alt>
             </alts>
             <repeat0>
                <alts>
                   <alt>
                      <nonterminal name="unreserved"/>
                   </alt>
                   <alt>
                      <nonterminal name="pct-encoded"/>
                   </alt>
                   <alt>
                      <nonterminal name="sub-delims"/>
                   </alt>
                   <alt>
                      <literal string="@"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="pchar">
          <alt>
             <nonterminal name="unreserved"/>
          </alt>
          <alt>
             <nonterminal name="pct-encoded"/>
          </alt>
          <alt>
             <nonterminal name="sub-delims"/>
          </alt>
          <alt>
             <literal string=":"/>
          </alt>
          <alt>
             <literal string="@"/>
          </alt>
       </rule>
       <rule name="query">
          <alt>
             <repeat0>
                <alts>
                   <alt>
                      <nonterminal name="pchar"/>
                   </alt>
                   <alt>
                      <literal string="/"/>
                   </alt>
                   <alt>
                      <literal string="?"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="fragment">
          <alt>
             <repeat0>
                <alts>
                   <alt>
                      <nonterminal name="pchar"/>
                   </alt>
                   <alt>
                      <literal string="/"/>
                   </alt>
                   <alt>
                      <literal string="?"/>
                   </alt>
                </alts>
             </repeat0>
          </alt>
       </rule>
       <rule name="pct-encoded">
          <alt>
             <literal string="%"/>
             <nonterminal name="HEXDIG"/>
             <nonterminal name="HEXDIG"/>
          </alt>
       </rule>
       <rule name="unreserved">
          <alt>
             <nonterminal name="ALPHA"/>
          </alt>
          <alt>
             <nonterminal name="DIGIT"/>
          </alt>
          <alt>
             <literal string="-"/>
          </alt>
          <alt>
             <literal string="."/>
          </alt>
          <alt>
             <literal string="_"/>
          </alt>
          <alt>
             <literal string="~"/>
          </alt>
       </rule>
       <rule name="reserved">
          <alt>
             <nonterminal name="gen-delims"/>
          </alt>
          <alt>
             <nonterminal name="sub-delims"/>
          </alt>
       </rule>
       <rule name="gen-delims">
          <alt>
             <literal string=":"/>
          </alt>
          <alt>
             <literal string="/"/>
          </alt>
          <alt>
             <literal string="?"/>
          </alt>
          <alt>
             <literal string="#"/>
          </alt>
          <alt>
             <literal string="["/>
          </alt>
          <alt>
             <literal string="]"/>
          </alt>
          <alt>
             <literal string="@"/>
          </alt>
       </rule>
       <rule name="sub-delims">
          <alt>
             <literal string="!"/>
          </alt>
          <alt>
             <literal string="$"/>
          </alt>
          <alt>
             <literal string="&amp;"/>
          </alt>
          <alt>
             <literal string="'"/>
          </alt>
          <alt>
             <literal string="("/>
          </alt>
          <alt>
             <literal string=")"/>
          </alt>
          <alt>
             <literal string="*"/>
          </alt>
          <alt>
             <literal string="+"/>
          </alt>
          <alt>
             <literal string=","/>
          </alt>
          <alt>
             <literal string=";"/>
          </alt>
          <alt>
             <literal string="="/>
          </alt>
       </rule>
       <rule mark="-" name="ALPHA">
          <alt>
             <inclusion>
                <member from="A" to="Z"/>
                <member from="a" to="z"/>
             </inclusion>
          </alt>
       </rule>
       <rule mark="-" name="DIGIT">
          <alt>
             <inclusion>
                <member from="0" to="9"/>
             </inclusion>
          </alt>
       </rule>
       <rule mark="-" name="HEXDIG">
          <alt>
             <nonterminal name="DIGIT"/>
          </alt>
          <alt>
             <inclusion>
                <member from="A" to="F"/>
             </inclusion>
          </alt>
          <alt>
             <inclusion>
                <member from="a" to="f"/>
             </inclusion>
          </alt>
       </rule>
    </ixml>
    

I can haz URI!

  • Now I can parse a URI with the grammar from RFC 3986:

    coffeepot -g:uri-raw.vxml "https://mushroom.mushroom/?notareal#tld"

  • XML!

    <URI>
       <scheme>https</scheme>:
       <hier-part>//
          <authority>
             <host>
                <reg-name>
                   <unreserved>m</unreserved>
                   <unreserved>u</unreserved>
                   <unreserved>s</unreserved>
                   <unreserved>h</unreserved>
                   <unreserved>r</unreserved>
                   <unreserved>o</unreserved>
                   <unreserved>o</unreserved>
                   <unreserved>m</unreserved>
                   <unreserved>.</unreserved>
                   <unreserved>m</unreserved>
                   <unreserved>u</unreserved>
                   <unreserved>s</unreserved>
                   <unreserved>h</unreserved>
                   <unreserved>r</unreserved>
                   <unreserved>o</unreserved>
                   <unreserved>o</unreserved>
                   <unreserved>m</unreserved>
                </reg-name>
             </host>
          </authority>
          <path-abempty>/
             <segment/>
          </path-abempty>
       </hier-part>?
       <query>
          <pchar>
             <unreserved>n</unreserved>
          </pchar>
          <pchar>
             <unreserved>o</unreserved>
          </pchar>
          <pchar>
             <unreserved>t</unreserved>
          </pchar>
          <pchar>
             <unreserved>a</unreserved>
          </pchar>
          <pchar>
             <unreserved>r</unreserved>
          </pchar>
          <pchar>
             <unreserved>e</unreserved>
          </pchar>
          <pchar>
             <unreserved>a</unreserved>
          </pchar>
          <pchar>
             <unreserved>l</unreserved>
          </pchar>
       </query>#
       <fragment>
          <pchar>
             <unreserved>t</unreserved>
          </pchar>
          <pchar>
             <unreserved>l</unreserved>
          </pchar>
          <pchar>
             <unreserved>d</unreserved>
          </pchar>
       </fragment>
    </URI>
    

Marks

  • I could improve the output with marks…

  • I could edit the VXML file…

  • I could edit the VXML file, but that would be wrong.

  • What if I could describe where I wanted the marks to go?

  • In a declarative way:

    mark rule unreserved with "-"
    mark rule pchar with “-”
    mark token //char-val[. = ('/', ':', '//')] with “-”
    mark token /rulelist/rule[rulename = 'URI']//char-val with ‘-’
    

Marks, in XML

  • That marks file sure would be easier to process if it was in XML though…

  • CoffeeSacks (iXML extension functions for Saxon) to the rescue

    <xsl:param name="marks" select="()"/>
    
    <xsl:variable name="parser" select="cs:load-grammar('marks.ixml')"/>
    
    <xsl:variable name="marklist" as="element(marks)?"
                  select="$marks ! $parser(unparsed-text(.))/*"/>
  • With this little grammar grammar grammar grammar grammar.

    ixml version "1.1-nineml" .
    
                marks = mark**NL, NL? .
                -mark = rule | token | rename .
                 rule = -'mark', s, -'rule', s, name, s, -'with', s, themark, s? .
                token = -'mark', s, -'token', s, expr, s, -'with', s, themark, s? .
              -rename = renamerule | renametoken .
    renamerule>rename = -'rename', s, @name, s, -'to', s, name, s? .
          renametoken = -'rename', s, -'token', s, expr, s, -'to', s, @name, s? .
                -expr = ~[#A]+ .
                -name = [L|N|'-'|'.'|'_']+ .
        @themark>mark = -'"', [P], -'"' | -"'", [P], -"'" | -'“', [P], -'”' | -"‘", [P], -"’" .
                   -s = -[#20 | #9]+ .
                  -NL = -#D?, -#A .
    

Mushroom! Mushroom!

Ready! Set! Go!

  • coffeepot -g:ABNFp.ixml -i:uri.abnf -o:uri.xml

  • saxon -s:uri.xml -xsl:abnf2ixml.xsl -o:uri.vxml marks=uri-marks.txt

  • coffeepot -g:uri.vxml "https://mushroom.mushroom/?notareal#tld"

  • Tada!

    <URI>
       <scheme>https</scheme>
       <hier-part>
          <authority>
             <host>
                <reg-name>mushroom.mushroom</reg-name>
             </host>
          </authority>
          <path-abempty>
             <segment/>
          </path-abempty>
       </hier-part>
       <query>notareal</query>
       <fragment>tld</fragment>
    </URI>
    

An animated gif