[ create a new paste ] login | about

Link: http://codepad.org/ShEWU6Jn    [ raw code | fork ]

Plain Text, pasted on Sep 29:
// ** Lets start with the more trivial definitions of single characters:
//
// <horizontal-tab>            ::= ASCII 9
// <new-line>                  ::= ASCII 10
// <vertical-tab>              ::= ASCII 11
// <carriage-return>           ::= ASCII 13
// <space>                     ::= ASCII 32
// <digit>                     ::= One of the characters: 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9.
// <file>                      ::= One of the characters: a, b, c, d, e, f, g or h.
// <rank>                      ::= One of the characters: 1, 2, 3, 4, 5, 6, 7 or 8.
// <piece>                     ::= One of the characters: R, N, B, Q or K.
// <check>                     ::= One of the characters: + or #.
// <tagname-begin>             ::= One of the characters: A-Za-z0-9
// <tagname-continuation>      ::= One of the characters: A-Za-z0-9_
// <printable>                 ::= One of the characters ASCII 32...126 or 160...255.
// <promotion>                 ::= <piece>
//
// ** The white space definitions:
//
// <white-space>               ::= <non-EOL-white-space> <white-space_opt>
//                                 <EOL> <white-space_opt>
// <non-EOL-white-space>       ::= <space>
//                                 <horizontal-tab>
//                                 <vertical-tab>
// <EOL>                       ::= <new-line>
//                                 <carriage-return> <new-line_opt>
//
// ** The definitions that exist of one or more characters:
//
// <integer>                   ::= <digit> <digit>*
// <square>                    ::= <file> <rank>
// <disambiguation>            ::= <file>
//                                 <rank>
//                                 <square>
//
// ** The definitions of single tokens:
//
// <tag-name>                  ::= <tagname-begin> <tagname-continuation>*
// <tag-value>                 ::= <string>
// <string>                    ::= "<printable>*"
// <game-termination>          ::= 1-0
//                                 0-1
//                                 1/2-1/2
//                                 *
// <elipsis>                   ::= ..
//                                 ...
// <move-number-indication>    ::= <integer> .
//                                 <integer> <white-space>
// <SAN-move>                  ::= <piece> <disambiguation_opt> <square> <check_opt>
//                                 <piece> <disambiguation_opt> x <square> <check_opt>
//                                 <square> <promotion_opt> <check_opt>
//                                 <file> x <square> <promotion_opt> <check_opt>
//                                 O-O
//                                 O-O-O
// <numeric-annotation-glyph>  ::= $ <digit> <digit_opt>
//
// ** And finally, the definitions of one or more tokens on a row:
//
// <PGN-database>              ::= <white-space_opt> <PGN-game>*
// <PGN-game>                  ::= <tag-section_opt> <movetext-section_opt> <game-termination> <white-space_opt> <comment_opt>
//
// <tag-section>               ::= <tag-pair> <tag-section_opt>
// <tag-pair>                  ::= [ <white-space_opt> <tag-name> <white-space_opt> <tag-value> <white-space_opt> ] <white-space_opt>
//
// <movetext-section>          ::= <comment_opt> <movetext-section-white>
//                                 <comment_opt> <movetext-section-black>
// <movetext-section-white>    ::= <move-sequence>
//                                 <move-sequence> <white-move>
// <movetext-section-black>    ::= <black-move> <movetext-section-white>
// <move-sequence>             ::= <white-black-move>*
// <white-black-move>          ::= <move-number-indication> <white-space_opt> <move> <move> <comment_opt> <recursive-variation-black_opt>
//                                 <white-move> <black-move>
// <black-move>                ::= <move-number-indication> <white-space_opt> <elipsis> <white-space_opt> <move> <comment_opt> <recursive-variation-black_opt>
// <white-move>                ::= <move-number-indication> <white-space_opt> <move> <comment_opt> <recursive-variation-white_opt>
// <recursive-variation-white> ::= ( <white-space_opt> <comment_opt> <movetext-section-white> ) <white-space_opt> <comment_opt>
// <recursive-variation-black> ::= ( <white-space_opt> <comment_opt> <movetext-section-black> ) <white-space_opt> <comment_opt>
// <move>                      ::= <SAN-move> <white-space_opt> <numeric-annotation-glyph_opt> <white-space_opt>
// <comment>                   ::= { <printable>* } <white-space_opt> <comment_opt>
//                                 : <printable>* <EOL> <white-space_opt> <comment_opt>



Create a new paste based on this one


Comments: