'CaseInsensitive' = "False"; BNF ::= SYNTAX BNF | SYNTAX; SYNTAX ::= PARAMS | CHARSETS | TERMINALS | PRODS; PARAMS ::= "'" IDENTIFIER "'" "=" QUOTEDSTRING ";"; CHARSETS ::= "{" IDENTIFIER "}" "=" CHARSETS2 ";"; CHARSETS2 ::= NAMED_CHARSETS CHARSET_OP CHARSETS2 | CUSTOM_CHARSETS CHARSET_OP CHARSETS2 | NAMED_CHARSETS | CUSTOM_CHARSETS; NAMED_CHARSETS ::= "{" IDENTIFIER "}"; CUSTOM_CHARSETS ::= "[" QUOTEDSTRING "]"; CHARSET_OP ::= "+" | "-"; TERMINALS ::= IDENTIFIER "=" TERM_ARG_OR ";"; TERM_ARG_OR ::= TERM_ARG_AND "|" TERM_ARG_OR | TERM_ARG_AND; TERM_ARG_AND ::= TERM_ARG TERM_ARG_AND | TERM_ARG; TERM_ARG ::= (QUOTEDSTRING | NAMED_CHARSETS | CUSTOM_CHARSETS | TERM_EXPR) TERM_OP; TERM_OP ::= "?" | "+" | "*" | NULL; TERM_EXPR ::= "(" TERM_ARG_OR ")"; PRODS ::= IDENTIFIER "::=" EXPR ";"; EXPR ::= OR; OR ::= AND "|" OR | AND; AND ::= OBJECT AND | OBJECT; OBJECT ::= "(" EXPR ")" | "[" EXPR "]" | IDENTIFIER | QUOTEDSTRING | NULL_TERMINAL; {Ident} = {Letter} + ["_"]; {Quoted} = {Printable} - ["\""] - ["\\"]; {HexDigit} = {Digit} + ["abcdefABCDEF"]; IDENTIFIER = {Ident}({Ident} | {Digit})*; regular = ({Quoted} | "\\" ({Quoted} | "0" | "\"" | "\\" | ["xX"] {HexDigit} {HexDigit} {HexDigit} {HexDigit}))+; NULL_TERMINAL = "NULL"; QUOTEDSTRING = "\"" ({Quoted} | "\\" ({Quoted} | "0" | "\"" | "\\" | ["xX"] {HexDigit} {HexDigit} {HexDigit} {HexDigit}))* "\"";