( (rule empty "0" (first eps) (seq)) (pass (seq PASS)) (rule ebnf "1" (start #t) (first "@pass" "@terminals" LHS eps) (follow eof) (alt _empty _ebnf_2)) (rule _ebnf_1 "1.1" (first "@pass" "@terminals" LHS) (follow "@pass" "@terminals" LHS _eof) (alt declaration rule)) (rule _ebnf_2 "1.2" (first "@pass" "@terminals" LHS) (follow _eof) (seq _ebnf_1 ebnf)) (rule _ebnf_3 "1.3" (first "@pass" "@terminals" LHS _eps) (follow _eof) (seq ebnf)) (rule declaration "2" (first "@pass" "@terminals") (follow "@pass" "@terminals" LHS _eof) (alt "@terminals" pass)) (rule rule "3" (first LHS) (follow "@pass" "@terminals" LHS _eof) (seq LHS expression)) (rule _rule1 "3.1" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow "@pass" "@terminals" LHS _eof) (seq expression)) (rule expression "4" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow ")" "@pass" "@terminals" LHS _eof) (seq alt)) (rule alt "5" (first "(" HEX ORANGE RANGE STRING1 STRING2 SYMBOL) (follow ")" "@pass" "@terminals" LHS eof) (seq seq alt_1)) (rule alt_1 "5.1" (first eps "|") (follow ")" "@pass" "@terminals" LHS _eof) (alt _empty _alt3)) (rule _alt2 "5.2" (first "|") (follow ")" "@pass" "@terminals" LHS _eof "|") (seq "|" seq)) (rule _alt3 "5.3" (first "|") (follow ")" "@pass" "@terminals" LHS _eof) (seq _alt2 alt_1)) (rule _alt_4 "5.4" (first _eps "|") (follow ")" "@pass" "@terminals" LHS _eof) (seq _alt1)) (rule _alt_5 "5.5" (first _eps "|") (follow ")" "@pass" "@terminals" LHS _eof) (seq _alt1)) (rule alt_6 "5.6" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow ")" "@pass" "@terminals" LHS eof "|") (seq seq)) (rule seq "6" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow ")" "@pass" "@terminals" LHS _eof "|") (seq diff _seq_1)) (rule _seq_1 "6.1" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps) (follow ")" "@pass" "@terminals" LHS _eof "|") (alt _empty _seq2)) (rule seq_2 "6.2" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow ")" "@pass" "@terminals" LHS eof "|") (seq diff _seq1)) (rule _seq3 "6.3" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps) (follow ")" "@pass" "@terminals" LHS _eof "|") (seq _seq1)) (rule seq_4 "6.4" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL eps) (follow ")" "@pass" "@terminals" LHS _eof "|") (seq _seq_1)) (rule diff "7" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow "(" ")" "@pass" "@terminals" HEX LHS ORANGE RANGE STRING1 STRING2 SYMBOL eof "|" ) (seq postfix _diff1)) (rule _diff1 "7.1" (first "-" eps) (follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2 SYMBOL _eof "|" ) (alt _empty _diff_2)) (rule _diff_2 "7.2" (first "-") (follow "(" ")" "@pass" "@terminals" HEX LHS ORANGE RANGE STRING1 STRING2 SYMBOL _eof "|" ) (seq "-" postfix)) (rule _diff3 "7.3" (first "-" eps) (follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2 SYMBOL eof "|" ) (seq diff_1)) (rule diff_4 "7.4" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2 SYMBOL _eof "|" ) (seq postfix)) (rule postfix "8" (first "(" HEX ORANGE RANGE STRING1 STRING2 SYMBOL) (follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2 SYMBOL _eof "|" ) (seq primary _postfix1)) (rule postfix_1 "8.1" (first POSTFIX _eps) (follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2 SYMBOL _eof "|" ) (alt _empty POSTFIX)) (rule _postfix2 "8.2" (first POSTFIX _eps) (follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2 SYMBOL _eof "|" ) (seq _postfix1)) (rule primary "9" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE POSTFIX RANGE STRING1 STRING2 SYMBOL eof "|" ) (alt HEX SYMBOL RANGE O_RANGE STRING1 STRING2 primary_1)) (rule _primary_1 "9.1" (first "(") (follow "(" ")" "-" "@pass" "@terminals" HEX LHS ORANGE POSTFIX RANGE STRING1 STRING2 SYMBOL _eof "|" ) (seq "(" expression ")")) (rule _primary2 "9.2" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE POSTFIX RANGE STRING1 STRING2 SYMBOL _eof "|" ) (seq expression ")")) (rule _primary3 "9.3" (first ")") (follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE POSTFIX RANGE STRING1 STRING2 SYMBOL eof "|" ) (seq ")")) (rule pass "10" (first "@pass") (follow "@pass" "@terminals" LHS _eof) (seq "@pass" expression)) (rule _pass_1 "10.1" (first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL) (follow "@pass" "@terminals" LHS _eof) (seq expression)) (terminal LHS "11" (seq (opt (seq "[" (plus SYMBOL) "]")) SYMBOL "::=")) (terminal SYMBOL "12" (plus (alt (range "a-z") (range "A-Z") (range "0-9") "" "."))) (terminal HEX "13" (seq "#x" (plus (alt (range "0-9") (range "a-f") (range "A-F"))))) (terminal RANGE "14" (seq "[" (plus (alt (seq R_BEGIN (alt HEX R_CHAR)) (alt HEX R_CHAR))) "]")) (terminal O_RANGE "15" (seq "[^" (plus (alt (seq R_BEGIN (alt HEX R_CHAR)) (alt HEX R_CHAR))) "]")) (terminal STRING1 "16" (seq "\"" (star (diff CHAR "\"")) "\"")) (terminal STRING2 "17" (seq "'" (diff CHAR "'"))) (terminal CHAR "18" (alt HEX (range "#x20#x21#x22") (range "#x24-#x00FFFFFF"))) (terminal R_CHAR "19" (diff CHAR "]")) (terminal R_BEGIN "20" (seq (alt HEX R_CHAR) "-")) (terminal POSTFIX "21" (range "?*+")) (terminal PASS "22" (plus (alt (range "#x00-#x20") (seq (alt "#" "//") (star (range "^#x0A#x0D"))) (seq "/*" (star (alt (opt (seq "*" (range "^/"))) (range "^*"))) "*/") (seq "(*" (star (alt (opt (seq "*" (range "^)"))) (range "^*"))) "*)")) )) )