Markup spec/BNF/Fundamental elements

These are the fundamental definitions of common data types. Terminals are case-sensitive.



          ::= "&"  ";" | "&#"  ";" | "&#x"  ";"     ::=  []      ::=  |  | 

::= [ ]            ::=  []

      ::=  |

<space-tab>            ::= | TAB ::= [ ]                ::= " "

<EOL>                  ::= | EOF

<non-whitespace-char>  ::= | <decimal-digit> | ::= <ucase-letter> | <lcase-letter> <ucase-letter>         ::= "A" | "B" | ... | "Y" | "Z" <lcase-letter>         ::= "a" | "b" | ... | "y" | "z" ::= <html-unsafe-symbol> | | "." | "," | ... <html-unsafe-symbol>   ::= "<" | ">" | "&" ::= "_"

<decimal-number>       ::= <decimal-digit> [<decimal-number>] <decimal-digit>        ::= "0" | "1" | ... | "8" | "9"

<hex-number>           ::= <hex-digit> [<hex-number>] <hex-digit>            ::= <decimal-digit> | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f"

Transformations

 * Terminals in <html-unsafe-symbol> will, in some situations, need to be converted to valid <html-entity> symbols. When this is required, the transformation is as follows:
 * < becomes &amp;lt;
 * > becomes &amp;gt;
 * & becomes &amp;amp;