AltStm :(alternative) AltStm_0 | AltStm_1 { MatchAlternative } AltStmListElt :(alternative) AltStmListElt_0 | AltStmListElt_1 | AltStmListElt_2 { MatchAlternative } AltStmListElt_0 :(concat) MClass { MatchAltStmListElt1 } AltStmListElt_1 :(concat) PrimaryStm & MClass { MatchAltStmListElt2 } AltStmListElt_2 :(concat) CatStm & MClass { MatchAltStmListElt2 } AltStm_0 :(concat) AltStmListElt & AltStm_0_1 & AltStmListElt { MatchAltStmList } AltStm_0_1 :(concat) ws (as white space) & _AltStm_0_1 AltStm_1 :(concat) AltStm & AltStm_1_1 & AltStmListElt { MatchAltStmList } AltStm_1_1 :(concat) ws (as white space) & _AltStm_1_1 CValInStr :(alternative) CValInStr_0 | CValInStr_1 | CValInStr_2 | CValInStr_3 | CValInStr_4 | CValInStr_5 | CValInStr_6 | CValInStr_7 | CValInStr_8 | CValInStr_9 { MatchAlternative } CValInStrList :(alternative) CValInStr | CValInStrList_1 { MatchStrList } CValInStrList_1 :(concat) CValInStrList & CValInStr { MatchStrListChar } CValInStr_0 :(char range) ['' ' thru '!''] CValInStr_1 :(char range) [''#' thru '[''] CValInStr_2 :(char range) ['']' thru \xFFFF'] CValInStr_3 :(concat) CValInStr_3_0 & CValInStr_3_1 { MatchNewLine } CValInStr_3_0 :(terminal char) '\' CValInStr_3_1 :(terminal char) 'n' CValInStr_4 :(concat) CValInStr_4_0 & CValInStr_4_1 { MatchCariageReturn } CValInStr_4_0 :(terminal char) '\' CValInStr_4_1 :(terminal char) 'r' CValInStr_5 :(concat) CValInStr_5_0 & CValInStr_5_1 { MatchTab } CValInStr_5_0 :(terminal char) '\' CValInStr_5_1 :(terminal char) 't' CValInStr_6 :(concat) CValInStr_6_0 & CValInStr_6_1 & HDigit & HDigit { MatchCharFromHexa } CValInStr_6_0 :(terminal char) '\' CValInStr_6_1 :(terminal char) 'x' CValInStr_7 :(concat) CValInStr_7_0 & CValInStr_7_1 & HDigit & HDigit & HDigit & HDigit { MatchCharFromUnicode } CValInStr_7_0 :(terminal char) '\' CValInStr_7_1 :(terminal char) 'u' CValInStr_8 :(concat) CValInStr_8_0 & CValInStr_8_1 { MatchCharFromEscape } CValInStr_8_0 :(terminal char) '\' CValInStr_8_1 :(terminal char) '"' CValInStr_9 :(concat) CValInStr_9_0 & CValInStr_9_1 { MatchCharFromEscape } CValInStr_9_0 :(terminal char) '\' CValInStr_9_1 :(terminal char) '\' CatStm :(alternative) CatStm_0 | CatStm_1 { MatchAlternative } CatStm_0 :(concat) PrimaryStm & PrimaryStm { MatchCatStmList } CatStm_1 :(concat) CatStm & PrimaryStm { MatchCatStmList } [Char] :(concat) Char_0 & CharValue & Char_2 { MatchCharValue } [CharClass] :(concat) CharClass_0 & CharClassList & CharClass_2 { MatchCharClass } CharClassList :(alternative) CharClassListElt | CharClassList_1 { MatchAlternative } CharClassListElt :(alternative) CharClassListElt_0 | CharValInClass { MatchAlternative } CharClassListElt_0 :(concat) CharValInClass & CharClassListElt_0_1 & CharValInClass { MatchCharRange } CharClassListElt_0_1 :(terminal char) '-' CharClassList_1 :(concat) CharClassList & CharClassListElt { MatchCharClassList } CharClass_0 :(terminal char) '[' CharClass_2 :(terminal char) ']' CharValInClass :(alternative) CharValInClass_0 | CharValInClass_1 | CharValInClass_2 | CharValInClass_3 | CharValInClass_4 | CharValInClass_5 | CharValInClass_6 | CharValInClass_7 | CharValInClass_8 | CharValInClass_9 | CharValInClass_10 | CharValInClass_11 { MatchAlternative } CharValInClass_0 :(set of terminal) [' ''!''"''#''$''%''&'''''('')''*''+'',''.''/'] { MatchChar } CharValInClass_1 :(char range) [''0' thru '9''] CharValInClass_10 :(concat) CharValInClass_10_0 & CharValInClass_10_1 { MatchCharFromEscape } CharValInClass_10_0 :(terminal char) '\' CharValInClass_10_1 :(terminal char) ']' CharValInClass_11 :(concat) CharValInClass_11_0 & CharValInClass_11_1 { MatchCharFromEscape } CharValInClass_11_0 :(terminal char) '\' CharValInClass_11_1 :(terminal char) '\' CharValInClass_2 :(set of terminal) [':'';''<''=''>''?''@'] { MatchChar } CharValInClass_3 :(char range) [''A' thru 'Z''] CharValInClass_4 :(set of terminal) ['[''^''_''`'] { MatchChar } CharValInClass_5 :(char range) [''a' thru 'z''] CharValInClass_6 :(set of terminal) ['{''|''}''~'] { MatchChar } CharValInClass_7 :(concat) CharValInClass_7_0 & CharValInClass_7_1 & HDigit & HDigit { MatchCharFromHexa } CharValInClass_7_0 :(terminal char) '\' CharValInClass_7_1 :(terminal char) 'x' CharValInClass_8 :(concat) CharValInClass_8_0 & CharValInClass_8_1 & HDigit & HDigit & HDigit & HDigit { MatchCharFromUnicode } CharValInClass_8_0 :(terminal char) '\' CharValInClass_8_1 :(terminal char) 'u' CharValInClass_9 :(concat) CharValInClass_9_0 & CharValInClass_9_1 { MatchCharFromEscape } CharValInClass_9_0 :(terminal char) '\' CharValInClass_9_1 :(terminal char) '-' CharValue :(alternative) CharValue_0 | CharValue_1 | CharValue_2 | CharValue_3 | CharValue_4 | CharValue_5 | CharValue_6 | CharValue_7 | CharValue_8 | CharValue_9 { MatchAlternative } CharValue_0 :(char range) ['' ' thru '&''] CharValue_1 :(char range) [''(' thru '[''] CharValue_2 :(char range) ['']' thru \xFFFF'] CharValue_3 :(concat) CharValue_3_0 & CharValue_3_1 { MatchNewLine } CharValue_3_0 :(terminal char) '\' CharValue_3_1 :(terminal char) 'n' CharValue_4 :(concat) CharValue_4_0 & CharValue_4_1 { MatchCariageReturn } CharValue_4_0 :(terminal char) '\' CharValue_4_1 :(terminal char) 'r' CharValue_5 :(concat) CharValue_5_0 & CharValue_5_1 { MatchTab } CharValue_5_0 :(terminal char) '\' CharValue_5_1 :(terminal char) 't' CharValue_6 :(concat) CharValue_6_0 & CharValue_6_1 & HDigit & HDigit { MatchCharFromHexa } CharValue_6_0 :(terminal char) '\' CharValue_6_1 :(terminal char) 'x' CharValue_7 :(concat) CharValue_7_0 & CharValue_7_1 & HDigit & HDigit & HDigit & HDigit { MatchCharFromUnicode } CharValue_7_0 :(terminal char) '\' CharValue_7_1 :(terminal char) 'u' CharValue_8 :(concat) CharValue_8_0 & CharValue_8_1 { MatchCharFromEscape } CharValue_8_0 :(terminal char) '\' CharValue_8_1 :(terminal char) ''' CharValue_9 :(concat) CharValue_9_0 & CharValue_9_1 { MatchCharFromEscape } CharValue_9_0 :(terminal char) '\' CharValue_9_1 :(terminal char) '\' Char_0 :(terminal char) ''' Char_2 :(terminal char) ''' DefaultEquMatch :(alternative) DefaultEquMatch_0 | DefaultEquMatch_1 { MatchAlternative } DefaultEquMatch_0 :(empty) DefaultEquMatch_1 :(concat) DefaultEquMatch_1_0 & DefaultEquMatch_1_1 { MatchDefaultEquMatch } DefaultEquMatch_1_0 :(concat) ws (as white space) & Id { MatchEqu } DefaultEquMatch_1_1 :(concat) ws (as white space) & _DefaultEquMatch_1_1 GrammarSymbol :(alternative) GrammarSymbol_0 | Terminal | GrammarSymbol_2 { MatchAlternative } GrammarSymbol_0 :(concat) ws (as white space) & String { MatchGrammarSymbolString } GrammarSymbol_2 :(concat) ws (as white space) & Id { MatchGrammarSymbolId } HDigit :(alternative) HDigit_0 | HDigit_1 | HDigit_2 { MatchAlternative } HDigit_0 :(char range) [''0' thru '9''] HDigit_1 :(char range) [''a' thru 'f''] HDigit_2 :(char range) [''A' thru 'F''] [Id] :(alternative) Id_0 | Id_1 { MatchId } Id_0 :(set of terminal) ['_''a' thru 'z''A' thru 'Z'] { MatchChar } Id_1 :(concat) Id_1_0 & Id_1_1 { MatchIdAfterFirst } Id_1_0 :(concat) Id { MatchEqu } Id_1_1 :(set of terminal) ['_''a' thru 'z''A' thru 'Z''0' thru '9'] InCommentChar :(alternative) InCommentChar_0 | InCommentCharList InCommentCharList :(alternative) InCommentCharList_0 | InCommentCharList_1 | InCommentCharList_2 | InCommentCharList_3 InCommentCharList_0 :(set of terminal) [\x00 thru ')''+' thru \xFFFF] InCommentCharList_1 :(concat) InCommentCharList_1_0 & InCommentCharList_1_1 InCommentCharList_1_0 :(terminal char) '*' InCommentCharList_1_1 :(set of terminal) [\x00 thru '.''0' thru \xFFFF] InCommentCharList_2 :(concat) InCommentCharList & InCommentCharList_2_1 InCommentCharList_2_1 :(set of terminal) [\x00 thru ')''+' thru \xFFFF] InCommentCharList_3 :(concat) InCommentCharList & InCommentCharList_3_1 & InCommentCharList_3_2 InCommentCharList_3_1 :(terminal char) '*' InCommentCharList_3_2 :(set of terminal) [\x00 thru '.''0' thru \xFFFF] InCommentChar_0 :(empty) MClass :(alternative) MClass_0 | MClass_1 { MatchMClass } MClass_0 :(empty) MClass_1 :(concat) MClass_1_0 & MClass_1_1 & MClass_1_2 { MatchMClassId } MClass_1_0 :(concat) ws (as white space) & _MClass_1_0 MClass_1_1 :(concat) ws (as white space) & Id { MatchEqu } MClass_1_2 :(concat) ws (as white space) & _MClass_1_2 PrimaryStm :(alternative) GrammarSymbol | PrimaryStm_1 { MatchAlternative } PrimaryStm_1 :(concat) PrimaryStm_1_0 & RuleStm & PrimaryStm_1_2 { MatchPrimaryStmGroup } PrimaryStm_1_0 :(concat) ws (as white space) & _PrimaryStm_1_0 PrimaryStm_1_2 :(concat) ws (as white space) & _PrimaryStm_1_2 Rule :(alternative) Rule_0 | Rule_1 { MatchAlternative } RuleStm :(alternative) RuleStm_0 | RuleStm_1 | RuleStm_2 | RuleStm_3 { MatchAlternative } RuleStm_0 :(concat) RuleStm_0_0 & MClass { MatchRuleStm1 } RuleStm_0_0 :(concat) ws (as white space) & _RuleStm_0_0 RuleStm_1 :(concat) PrimaryStm & RuleStm_1_1 & MClass { MatchRuleStm2 } RuleStm_1_1 :(concat) ws (as white space) & _RuleStm_1_1 RuleStm_2 :(concat) AltStm & RuleStm_2_1 & MClass { MatchRuleStm2 } RuleStm_2_1 :(concat) ws (as white space) & _RuleStm_2_1 RuleStm_3 :(concat) CatStm & RuleStm_3_1 & MClass { MatchRuleStm2 } RuleStm_3_1 :(concat) ws (as white space) & _RuleStm_3_1 Rule_0 :(concat) Rule_0_0 & Rule_0_1 & RuleStm { MatchRule } Rule_0_0 :(concat) ws (as white space) & Id { MatchEqu } Rule_0_1 :(concat) ws (as white space) & _Rule_0_1 Rule_1 :(concat) Rule_1_0 & Rule_1_1 & Rule_1_2 & Rule_1_3 & RuleStm { MatchTokenRule } Rule_1_0 :(concat) ws (as white space) & _Rule_1_0 Rule_1_1 :(concat) ws (as white space) & Id { MatchEqu } Rule_1_2 :(concat) ws (as white space) & _Rule_1_2 Rule_1_3 :(concat) ws (as white space) & _Rule_1_3 Rules :(alternative) Rule | Rules_1 { MatchRules } RulesGroup :(alternative) RulesGroup_0 | RulesGroup_1 | RulesGroup_2 { MatchAlternative } RulesGroupList :(alternative) RulesGroup | RulesGroupList_1 { MatchRulesGroupList } RulesGroupList_1 :(concat) RulesGroupList & RulesGroup { MatchRulesGroupListCat } RulesGroup_0 :(concat) RulesGroup_0_0 & RulesGroup_0_1 & RulesGroup_0_2 & Rules { MatchNoTokenRulesGroup } RulesGroup_0_0 :(concat) ws (as white space) & _RulesGroup_0_0 RulesGroup_0_1 :(concat) ws (as white space) & Id { MatchEqu } RulesGroup_0_2 :(concat) ws (as white space) & _RulesGroup_0_2 RulesGroup_1 :(concat) RulesGroup_1_0 & RulesGroup_1_1 & Rules { MatchTokenRulesGroup } RulesGroup_1_0 :(concat) ws (as white space) & _RulesGroup_1_0 RulesGroup_1_1 :(concat) ws (as white space) & _RulesGroup_1_1 RulesGroup_2 :(concat) RulesGroup_2_0 & RulesGroup_2_1 { MatchInclude } RulesGroup_2_0 :(concat) ws (as white space) & include { MatchEqu } RulesGroup_2_1 :(concat) ws (as white space) & String { MatchEqu } Rules_1 :(concat) Rules & Rule { MatchRulesCat } Start :(concat) DefaultEquMatch & RulesGroupList & ws (as white space) { MatchGrammar } [String] :(concat) String_0 & CValInStrList & String_2 { MatchString } String_0 :(terminal char) '"' String_2 :(terminal char) '"' Terminal :(alternative) Terminal_0 | Terminal_1 { MatchAlternative } Terminal_0 :(concat) ws (as white space) & Char { MatchTerminalChar } Terminal_1 :(concat) ws (as white space) & CharClass { MatchTerminalChar } _AltStm_0_1 :(terminal char) '|' _AltStm_1_1 :(terminal char) '|' _DefaultEquMatch_1_1 :(terminal char) ';' _MClass_1_0 :(terminal char) '{' _MClass_1_2 :(terminal char) '}' _PrimaryStm_1_0 :(terminal char) '(' _PrimaryStm_1_2 :(terminal char) ')' _RuleStm_0_0 :(terminal char) ';' _RuleStm_1_1 :(terminal char) ';' _RuleStm_2_1 :(terminal char) ';' _RuleStm_3_1 :(terminal char) ';' _Rule_0_1 :(terminal char) ':' _Rule_1_0 :(terminal char) '[' _Rule_1_2 :(terminal char) ']' _Rule_1_3 :(terminal char) ':' _RulesGroup_0_0 :(terminal char) '%' _RulesGroup_0_2 :(terminal char) ';' _RulesGroup_1_0 :(terminal char) '%' _RulesGroup_1_1 :(terminal char) ';' [include] :(concat) include_0_i & include_1_n & include_2_c & include_3_l & include_4_u & include_5_d & include_6_e include_0_i :(terminal char) 'i' include_1_n :(terminal char) 'n' include_2_c :(terminal char) 'c' include_3_l :(terminal char) 'l' include_4_u :(terminal char) 'u' include_5_d :(terminal char) 'd' include_6_e :(terminal char) 'e' ws :(alternative) ws_0 | wsList wsElt :(alternative) wsElt_0 | wsElt_1 wsElt_0 :(concat) wsElt_0_0 & InCommentChar & wsElt_0_2 wsElt_0_0 :(concat) wsElt_0_0_0_/ & wsElt_0_0_1_* wsElt_0_0_0_/ :(terminal char) '/' wsElt_0_0_1_* :(terminal char) '*' wsElt_0_2 :(concat) wsElt_0_2_0_* & wsElt_0_2_1_/ wsElt_0_2_0_* :(terminal char) '*' wsElt_0_2_1_/ :(terminal char) '/' wsElt_1 :(char range) ['\x00 thru ' ''] wsList :(alternative) wsElt | wsList_1 wsList_1 :(concat) wsList & wsElt ws_0 :(empty)