(
 (rule ebnf "1" (star _ebnf_1))
 (rule _ebnf_1 "1.1" (alt declaration rule))
 (rule declaration "2" (alt "@terminals" pass))
 (rule rule "3" (seq LHS expression))
 (rule expression "4" (seq alt))
 (rule alt "5" (seq seq _alt_1))
 (rule _alt_1 "5.1" (star _alt_2))
 (rule _alt_2 "5.2" (seq "|" seq))
 (rule seq "6" (plus diff))
 (rule diff "7" (seq postfix _diff_1))
 (rule _diff_1 "7.1" (opt _diff_2))
 (rule _diff_2 "7.2" (seq "-" postfix))
 (rule postfix "8" (seq primary _postfix_1))
 (rule _postfix_1 "8.1" (opt POSTFIX))
 (rule primary "9" (alt HEX SYMBOL O_RANGE RANGE STRING1 STRING2 _primary_1))
 (rule _primary_1 "9.1" (seq "(" expression ")"))
 (rule pass "10" (seq "@pass" expression))
 (terminals _terminals (seq))
 (terminal LHS "11" (seq _LHS_1 SYMBOL _LHS_2 "::="))
 (terminal _LHS_1 "11.1" (opt _LHS_3))
 (terminal _LHS_3 "11.3" (seq "[" SYMBOL "]" _LHS_4))
 (terminal _LHS_4 "11.4" (plus " "))
 (terminal _LHS_2 "11.2" (star " "))
 (terminal SYMBOL "12" (plus _SYMBOL_1))
 (terminal _SYMBOL_1 "12.1" (alt _SYMBOL_2 _SYMBOL_3 _SYMBOL_4 "_" "."))
 (terminal _SYMBOL_2 "12.2" (range "a-z"))
 (terminal _SYMBOL_3 "12.3" (range "A-Z"))
 (terminal _SYMBOL_4 "12.4" (range "0-9"))
 (terminal HEX "13" (seq "#x" _HEX_1))
 (terminal _HEX_1 "13.1" (plus _HEX_2))
 (terminal _HEX_2 "13.2" (alt _HEX_3 _HEX_4 _HEX_5))
 (terminal _HEX_3 "13.3" (range "a-f"))
 (terminal _HEX_4 "13.4" (range "A-F"))
 (terminal _HEX_5 "13.5" (range "0-9"))
 (terminal RANGE "14" (seq "[" _RANGE_1 _RANGE_2 _RANGE_3))
 (terminal _RANGE_1 "14.1" (plus _RANGE_4))
 (terminal _RANGE_4 "14.4" (alt _RANGE_5 _RANGE_6 R_CHAR HEX))
 (terminal _RANGE_5 "14.5" (seq R_CHAR "-" R_CHAR))
 (terminal _RANGE_6 "14.6" (seq HEX "-" HEX))
 (terminal _RANGE_2 "14.2" (opt "-"))
 (terminal _RANGE_3 "14.3" (diff "]" LHS))
 (terminal O_RANGE "15" (seq "[^" _O_RANGE_1 _O_RANGE_2 "]"))
 (terminal _O_RANGE_1 "15.1" (plus _O_RANGE_3))
 (terminal _O_RANGE_3 "15.3" (alt _O_RANGE_4 _O_RANGE_5 R_CHAR HEX))
 (terminal _O_RANGE_4 "15.4" (seq R_CHAR "-" R_CHAR))
 (terminal _O_RANGE_5 "15.5" (seq HEX "-" HEX))
 (terminal _O_RANGE_2 "15.2" (opt "-"))
 (terminal STRING1 "16" (seq "\"" _STRING1_1 "\""))
 (terminal _STRING1_1 "16.1" (star _STRING1_2))
 (terminal _STRING1_2 "16.2" (diff CHAR "\""))
 (terminal STRING2 "17" (seq "'" _STRING2_1 "'"))
 (terminal _STRING2_1 "17.1" (star _STRING2_2))
 (terminal _STRING2_2 "17.2" (diff CHAR "'"))
 (terminal CHAR "18" (alt _CHAR_1 _CHAR_2 _CHAR_3 _CHAR_4))
 (terminal _CHAR_1 "18.1" (range "#x9#xA#xD"))
 (terminal _CHAR_2 "18.2" (range "#x20-#xD7FF"))
 (terminal _CHAR_3 "18.3" (range "#xE000-#xFFFD"))
 (terminal _CHAR_4 "18.4" (range "#x10000-#x10FFFF"))
 (terminal R_CHAR "19" (diff CHAR _R_CHAR_1))
 (terminal _R_CHAR_1 "19.1" (alt "]" "-" HEX))
 (terminal POSTFIX "20" (range "?*+"))
 (terminal PASS "21" (alt _PASS_1 _PASS_2 _PASS_3 _PASS_4))
 (terminal _PASS_1 "21.1" (range "#x9#xA#xD#x20"))
 (terminal _PASS_2 "21.2" (seq _PASS_5 _PASS_6))
 (terminal _PASS_5 "21.5" (alt _PASS_7 "//"))
 (terminal _PASS_7 "21.7" (diff "#" "#x"))
 (terminal _PASS_6 "21.6" (star _PASS_8))
 (terminal _PASS_8 "21.8" (range "^#xA#xD"))
 (terminal _PASS_3 "21.3" (seq "/*" _PASS_9 "*/"))
 (terminal _PASS_9 "21.9" (star _PASS_10))
 (terminal _PASS_10 "21.10" (alt _PASS_11 _PASS_12))
 (terminal _PASS_11 "21.11" (opt _PASS_13))
 (terminal _PASS_13 "21.13" (seq "*" _PASS_14))
 (terminal _PASS_14 "21.14" (range "^/"))
 (terminal _PASS_12 "21.12" (range "^*"))
 (terminal _PASS_4 "21.4" (seq "(*" _PASS_15 "*)"))
 (terminal _PASS_15 "21.15" (star _PASS_16))
 (terminal _PASS_16 "21.16" (alt _PASS_17 _PASS_18))
 (terminal _PASS_17 "21.17" (opt _PASS_19))
 (terminal _PASS_19 "21.19" (seq "*" _PASS_20))
 (terminal _PASS_20 "21.20" (range "^)"))
 (terminal _PASS_18 "21.18" (range "^*"))
 (pass _pass (seq PASS)))