Changeset 100 in default


Ignore:
Timestamp:
10/12/16 15:29:26 (8 years ago)
Author:
phdmakk
Message:

+ generated resources

Location:
v2/trunk
Files:
2 added
25 edited

Legend:

Unmodified
Added
Removed
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/AbstractEbnfProposalProvider.java

    r97 r100  
    4444                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
    4545        } 
     46        public void completeBnfEntry_Comment(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     47                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
     48        } 
    4649        public void completeDeltaEntry_Rule(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
    4750                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
     
    6063        } 
    6164        public void completeSectionHeading_SectionHeader(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     65                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
     66        } 
     67        public void completeComment_Content(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
    6268                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
    6369        } 
     
    195201                // subclasses may override 
    196202        } 
     203        public void complete_Comment(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     204                // subclasses may override 
     205        } 
    197206        public void complete_Import(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
    198207                // subclasses may override 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/EbnfParser.java

    r97 r100  
    5454                                        put(grammarAccess.getEtsiBnfAccess().getGroup_2(), "rule__EtsiBnf__Group_2__0"); 
    5555                                        put(grammarAccess.getSectionHeadingAccess().getGroup(), "rule__SectionHeading__Group__0"); 
     56                                        put(grammarAccess.getCommentAccess().getGroup(), "rule__Comment__Group__0"); 
    5657                                        put(grammarAccess.getImportAccess().getGroup(), "rule__Import__Group__0"); 
    5758                                        put(grammarAccess.getImportAccess().getGroup_2(), "rule__Import__Group_2__0"); 
     
    8889                                        put(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0(), "rule__BnfEntry__SectionheaderAssignment_0"); 
    8990                                        put(grammarAccess.getBnfEntryAccess().getRuleAssignment_1(), "rule__BnfEntry__RuleAssignment_1"); 
     91                                        put(grammarAccess.getBnfEntryAccess().getCommentAssignment_2(), "rule__BnfEntry__CommentAssignment_2"); 
    9092                                        put(grammarAccess.getDeltaEntryAccess().getRuleAssignment_0(), "rule__DeltaEntry__RuleAssignment_0"); 
    9193                                        put(grammarAccess.getDeltaEntryAccess().getSectionheaderAssignment_1(), "rule__DeltaEntry__SectionheaderAssignment_1"); 
     
    9496                                        put(grammarAccess.getMergeEntryAccess().getMergeRuleAssignment_1(), "rule__MergeEntry__MergeRuleAssignment_1"); 
    9597                                        put(grammarAccess.getSectionHeadingAccess().getSectionHeaderAssignment_1(), "rule__SectionHeading__SectionHeaderAssignment_1"); 
     98                                        put(grammarAccess.getCommentAccess().getContentAssignment_1(), "rule__Comment__ContentAssignment_1"); 
    9699                                        put(grammarAccess.getImportAccess().getImportURIAssignment_1(), "rule__Import__ImportURIAssignment_1"); 
    97100                                        put(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_0(), "rule__Import__GrammarTypeAssignment_2_1_0"); 
     
    154157        @Override 
    155158        protected String[] getInitialHiddenTokens() { 
    156                 return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" }; 
     159                return new String[] { "RULE_WS", "RULE_SL_COMMENT" }; 
    157160        } 
    158161         
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g

    r97 r100  
    234234 
    235235 
     236// Entry rule entryRuleComment 
     237entryRuleComment  
     238: 
     239{ before(grammarAccess.getCommentRule()); } 
     240         ruleComment 
     241{ after(grammarAccess.getCommentRule()); }  
     242         EOF  
     243; 
     244 
     245// Rule Comment 
     246ruleComment 
     247    @init { 
     248                int stackSize = keepStackSize(); 
     249    } 
     250        : 
     251( 
     252{ before(grammarAccess.getCommentAccess().getGroup()); } 
     253(rule__Comment__Group__0) 
     254{ after(grammarAccess.getCommentAccess().getGroup()); } 
     255) 
     256 
     257; 
     258finally { 
     259        restoreStackSize(stackSize); 
     260} 
     261 
     262 
     263 
    236264// Entry rule entryRuleImport 
    237265entryRuleImport  
     
    763791) 
    764792 
     793    |( 
     794{ before(grammarAccess.getBnfEntryAccess().getCommentAssignment_2()); } 
     795(rule__BnfEntry__CommentAssignment_2) 
     796{ after(grammarAccess.getBnfEntryAccess().getCommentAssignment_2()); } 
     797) 
     798 
    765799; 
    766800finally { 
     
    16031637 
    16041638 
     1639rule__Comment__Group__0 
     1640    @init { 
     1641                int stackSize = keepStackSize(); 
     1642    } 
     1643: 
     1644        rule__Comment__Group__0__Impl 
     1645        rule__Comment__Group__1 
     1646; 
     1647finally { 
     1648        restoreStackSize(stackSize); 
     1649} 
     1650 
     1651rule__Comment__Group__0__Impl 
     1652    @init { 
     1653                int stackSize = keepStackSize(); 
     1654    } 
     1655: 
     1656( 
     1657{ before(grammarAccess.getCommentAccess().getCommentAction_0()); } 
     1658( 
     1659 
     1660) 
     1661{ after(grammarAccess.getCommentAccess().getCommentAction_0()); } 
     1662) 
     1663 
     1664; 
     1665finally { 
     1666        restoreStackSize(stackSize); 
     1667} 
     1668 
     1669 
     1670rule__Comment__Group__1 
     1671    @init { 
     1672                int stackSize = keepStackSize(); 
     1673    } 
     1674: 
     1675        rule__Comment__Group__1__Impl 
     1676; 
     1677finally { 
     1678        restoreStackSize(stackSize); 
     1679} 
     1680 
     1681rule__Comment__Group__1__Impl 
     1682    @init { 
     1683                int stackSize = keepStackSize(); 
     1684    } 
     1685: 
     1686( 
     1687{ before(grammarAccess.getCommentAccess().getContentAssignment_1()); } 
     1688(rule__Comment__ContentAssignment_1) 
     1689{ after(grammarAccess.getCommentAccess().getContentAssignment_1()); } 
     1690) 
     1691 
     1692; 
     1693finally { 
     1694        restoreStackSize(stackSize); 
     1695} 
     1696 
     1697 
     1698 
     1699 
     1700 
     1701 
    16051702rule__Import__Group__0 
    16061703    @init { 
     
    42414338} 
    42424339 
     4340rule__BnfEntry__CommentAssignment_2 
     4341    @init { 
     4342                int stackSize = keepStackSize(); 
     4343    } 
     4344: 
     4345( 
     4346{ before(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0()); } 
     4347        ruleComment{ after(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0()); } 
     4348) 
     4349 
     4350; 
     4351finally { 
     4352        restoreStackSize(stackSize); 
     4353} 
     4354 
    42434355rule__DeltaEntry__RuleAssignment_0 
    42444356    @init { 
     
    43314443} 
    43324444 
     4445rule__Comment__ContentAssignment_1 
     4446    @init { 
     4447                int stackSize = keepStackSize(); 
     4448    } 
     4449: 
     4450( 
     4451{ before(grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0()); } 
     4452        RULE_ML_COMMENT{ after(grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0()); } 
     4453) 
     4454 
     4455; 
     4456finally { 
     4457        restoreStackSize(stackSize); 
     4458} 
     4459 
    43334460rule__Import__ImportURIAssignment_1 
    43344461    @init { 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.tokens

    r97 r100  
    1313T__21=21 
    1414T__20=20 
    15 RULE_SL_COMMENT=11 
    16 RULE_ML_COMMENT=12 
     15RULE_SL_COMMENT=12 
     16RULE_ML_COMMENT=6 
    1717T__30=30 
    1818T__19=19 
    19 RULE_COLON=9 
     19RULE_COLON=10 
    2020T__31=31 
    21 RULE_STRING=6 
     21RULE_STRING=7 
    2222T__32=32 
    2323T__33=33 
     
    2929T__36=36 
    3030T__17=17 
    31 RULE_LOGIC=8 
     31RULE_LOGIC=9 
    3232T__37=37 
    3333T__38=38 
     
    3535T__14=14 
    3636T__13=13 
    37 RULE_INT=7 
    38 RULE_WS=10 
     37RULE_INT=8 
     38RULE_WS=11 
    3939'update'=41 
    4040'|'=16 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfLexer.java

    r97 r100  
    2828    public static final int T__20=20; 
    2929    public static final int EOF=-1; 
    30     public static final int RULE_SL_COMMENT=11; 
    31     public static final int RULE_ML_COMMENT=12; 
     30    public static final int RULE_SL_COMMENT=12; 
     31    public static final int RULE_ML_COMMENT=6; 
    3232    public static final int T__19=19; 
    3333    public static final int T__30=30; 
    3434    public static final int T__31=31; 
    35     public static final int RULE_COLON=9; 
     35    public static final int RULE_COLON=10; 
    3636    public static final int T__32=32; 
    37     public static final int RULE_STRING=6; 
     37    public static final int RULE_STRING=7; 
    3838    public static final int T__16=16; 
    3939    public static final int T__33=33; 
     
    4545    public static final int T__36=36; 
    4646    public static final int T__37=37; 
    47     public static final int RULE_LOGIC=8; 
     47    public static final int RULE_LOGIC=9; 
    4848    public static final int T__38=38; 
    4949    public static final int T__14=14; 
    5050    public static final int T__39=39; 
    5151    public static final int T__13=13; 
    52     public static final int RULE_INT=7; 
    53     public static final int RULE_WS=10; 
     52    public static final int RULE_INT=8; 
     53    public static final int RULE_WS=11; 
    5454 
    5555    // delegates 
     
    666666            int _type = RULE_ID; 
    667667            int _channel = DEFAULT_TOKEN_CHANNEL; 
    668             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4985:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) 
    669             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4985:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* 
     668            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5112:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) 
     669            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5112:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* 
    670670            { 
    671671            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 
     
    678678                throw mse;} 
    679679 
    680             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4985:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* 
     680            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5112:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* 
    681681            loop1: 
    682682            do { 
     
    727727            int _type = RULE_INT; 
    728728            int _channel = DEFAULT_TOKEN_CHANNEL; 
    729             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:10: ( ( '0' .. '9' )+ ) 
    730             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:12: ( '0' .. '9' )+ 
    731             { 
    732             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:12: ( '0' .. '9' )+ 
     729            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:10: ( ( '0' .. '9' )+ ) 
     730            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:12: ( '0' .. '9' )+ 
     731            { 
     732            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:12: ( '0' .. '9' )+ 
    733733            int cnt2=0; 
    734734            loop2: 
     
    744744                switch (alt2) { 
    745745                case 1 : 
    746                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:13: '0' .. '9' 
     746                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:13: '0' .. '9' 
    747747                    { 
    748748                    matchRange('0','9');  
     
    776776            int _type = RULE_WS; 
    777777            int _channel = DEFAULT_TOKEN_CHANNEL; 
    778             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:9: ( ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ ) 
    779             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ 
    780             { 
    781             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ 
     778            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:9: ( ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ ) 
     779            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ 
     780            { 
     781            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ 
    782782            int cnt4=0; 
    783783            loop4: 
     
    806806                switch (alt4) { 
    807807                case 1 : 
    808                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:12: ' ' 
     808                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:12: ' ' 
    809809                    { 
    810810                    match(' ');  
     
    813813                    break; 
    814814                case 2 : 
    815                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:16: '\\t' 
     815                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:16: '\\t' 
    816816                    { 
    817817                    match('\t');  
     
    820820                    break; 
    821821                case 3 : 
    822                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: ( '\\r' )? '\\n' 
     822                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:21: ( '\\r' )? '\\n' 
    823823                    { 
    824                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: ( '\\r' )? 
     824                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:21: ( '\\r' )? 
    825825                    int alt3=2; 
    826826                    int LA3_0 = input.LA(1); 
     
    831831                    switch (alt3) { 
    832832                        case 1 : 
    833                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: '\\r' 
     833                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:21: '\\r' 
    834834                            { 
    835835                            match('\r');  
     
    870870            int _type = RULE_COLON; 
    871871            int _channel = DEFAULT_TOKEN_CHANNEL; 
    872             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4991:12: ( '\"' '\"' '\"' ) 
    873             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4991:14: '\"' '\"' '\"' 
     872            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5118:12: ( '\"' '\"' '\"' ) 
     873            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5118:14: '\"' '\"' '\"' 
    874874            { 
    875875            match('\"');  
     
    892892            int _type = RULE_STRING; 
    893893            int _channel = DEFAULT_TOKEN_CHANNEL; 
    894             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) ) 
    895             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
    896             { 
    897             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
     894            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) ) 
     895            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
     896            { 
     897            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
    898898            int alt7=2; 
    899899            int LA7_0 = input.LA(1); 
     
    913913            switch (alt7) { 
    914914                case 1 : 
    915                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:16: '\"' (~ ( '\"' ) )* '\"' 
     915                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:16: '\"' (~ ( '\"' ) )* '\"' 
    916916                    { 
    917917                    match('\"');  
    918                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:20: (~ ( '\"' ) )* 
     918                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:20: (~ ( '\"' ) )* 
    919919                    loop5: 
    920920                    do { 
     
    929929                        switch (alt5) { 
    930930                        case 1 : 
    931                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:20: ~ ( '\"' ) 
     931                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:20: ~ ( '\"' ) 
    932932                            { 
    933933                            if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) { 
     
    954954                    break; 
    955955                case 2 : 
    956                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:32: '\\'' (~ ( '\\'' ) )* '\\'' 
     956                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:32: '\\'' (~ ( '\\'' ) )* '\\'' 
    957957                    { 
    958958                    match('\'');  
    959                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:37: (~ ( '\\'' ) )* 
     959                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:37: (~ ( '\\'' ) )* 
    960960                    loop6: 
    961961                    do { 
     
    970970                        switch (alt6) { 
    971971                        case 1 : 
    972                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:37: ~ ( '\\'' ) 
     972                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:37: ~ ( '\\'' ) 
    973973                            { 
    974974                            if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) { 
     
    10131013            int _type = RULE_SECTIONHEADER; 
    10141014            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1015             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:20: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' ) 
    1016             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:22: ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' 
     1015            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:20: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' ) 
     1016            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:22: ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' 
    10171017            { 
    10181018            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) { 
     
    10251025                throw mse;} 
    10261026 
    1027             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:42: ( '.' | '0' .. '9' )+ 
     1027            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:42: ( '.' | '0' .. '9' )+ 
    10281028            int cnt8=0; 
    10291029            loop8: 
     
    10721072                throw mse;} 
    10731073 
    1074             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:69: (~ ( ( '\\n' | '\\r' ) ) )* 
     1074            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:69: (~ ( ( '\\n' | '\\r' ) ) )* 
    10751075            loop9: 
    10761076            do { 
     
    10851085                switch (alt9) { 
    10861086                case 1 : 
    1087                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:69: ~ ( ( '\\n' | '\\r' ) ) 
     1087                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:69: ~ ( ( '\\n' | '\\r' ) ) 
    10881088                    { 
    10891089                    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 
     
    11051105            } while (true); 
    11061106 
    1107             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:85: ( '\\r' )? 
     1107            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:85: ( '\\r' )? 
    11081108            int alt10=2; 
    11091109            int LA10_0 = input.LA(1); 
     
    11141114            switch (alt10) { 
    11151115                case 1 : 
    1116                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:85: '\\r' 
     1116                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:85: '\\r' 
    11171117                    { 
    11181118                    match('\r');  
     
    11401140            int _type = RULE_SL_COMMENT; 
    11411141            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1142             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 
    1143             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 
     1142            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 
     1143            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 
    11441144            { 
    11451145            match("//");  
    11461146 
    1147             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:24: (~ ( ( '\\n' | '\\r' ) ) )* 
     1147            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:24: (~ ( ( '\\n' | '\\r' ) ) )* 
    11481148            loop11: 
    11491149            do { 
     
    11581158                switch (alt11) { 
    11591159                case 1 : 
    1160                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:24: ~ ( ( '\\n' | '\\r' ) ) 
     1160                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:24: ~ ( ( '\\n' | '\\r' ) ) 
    11611161                    { 
    11621162                    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 
     
    11781178            } while (true); 
    11791179 
    1180             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:40: ( ( '\\r' )? '\\n' )? 
     1180            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:40: ( ( '\\r' )? '\\n' )? 
    11811181            int alt13=2; 
    11821182            int LA13_0 = input.LA(1); 
     
    11871187            switch (alt13) { 
    11881188                case 1 : 
    1189                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: ( '\\r' )? '\\n' 
     1189                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:41: ( '\\r' )? '\\n' 
    11901190                    { 
    1191                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: ( '\\r' )? 
     1191                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:41: ( '\\r' )? 
    11921192                    int alt12=2; 
    11931193                    int LA12_0 = input.LA(1); 
     
    11981198                    switch (alt12) { 
    11991199                        case 1 : 
    1200                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: '\\r' 
     1200                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:41: '\\r' 
    12011201                            { 
    12021202                            match('\r');  
     
    12301230            int _type = RULE_ML_COMMENT; 
    12311231            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1232             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4999:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 
    1233             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4999:19: '/*' ( options {greedy=false; } : . )* '*/' 
     1232            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 
     1233            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:19: '/*' ( options {greedy=false; } : . )* '*/' 
    12341234            { 
    12351235            match("/*");  
    12361236 
    1237             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4999:24: ( options {greedy=false; } : . )* 
     1237            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:24: ( options {greedy=false; } : . )* 
    12381238            loop14: 
    12391239            do { 
     
    12601260                switch (alt14) { 
    12611261                case 1 : 
    1262                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4999:52: . 
     1262                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:52: . 
    12631263                    { 
    12641264                    matchAny();  
     
    12901290            int _type = RULE_LOGIC; 
    12911291            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1292             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:12: ( ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) ) 
    1293             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) 
    1294             { 
    1295             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) 
     1292            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:12: ( ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) ) 
     1293            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) 
     1294            { 
     1295            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) 
    12961296            int alt15=6; 
    12971297            alt15 = dfa15.predict(input); 
    12981298            switch (alt15) { 
    12991299                case 1 : 
    1300                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:15: '/and' 
     1300                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:15: '/and' 
    13011301                    { 
    13021302                    match("/and");  
     
    13061306                    break; 
    13071307                case 2 : 
    1308                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:22: '/or' 
     1308                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:22: '/or' 
    13091309                    { 
    13101310                    match("/or");  
     
    13141314                    break; 
    13151315                case 3 : 
    1316                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:28: '/andr' 
     1316                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:28: '/andr' 
    13171317                    { 
    13181318                    match("/andr");  
     
    13221322                    break; 
    13231323                case 4 : 
    1324                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:36: '/orr' 
     1324                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:36: '/orr' 
    13251325                    { 
    13261326                    match("/orr");  
     
    13301330                    break; 
    13311331                case 5 : 
    1332                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:43: '/any' 
     1332                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:43: '/any' 
    13331333                    { 
    13341334                    match("/any");  
     
    13381338                    break; 
    13391339                case 6 : 
    1340                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:50: '/together' 
     1340                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:50: '/together' 
    13411341                    { 
    13421342                    match("/together");  
     
    16961696        } 
    16971697        public String getDescription() { 
    1698             return "5001:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )"; 
     1698            return "5128:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )"; 
    16991699        } 
    17001700    } 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfParser.java

    r97 r100  
    2424public class InternalEbnfParser extends AbstractInternalContentAssistParser { 
    2525    public static final String[] tokenNames = new String[] { 
    26         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_SECTIONHEADER", "RULE_STRING", "RULE_INT", "RULE_LOGIC", "RULE_COLON", "RULE_WS", "RULE_SL_COMMENT", "RULE_ML_COMMENT", "')'", "']'", "'}'", "'|'", "'('", "'['", "'{'", "'*'", "'+'", "'grammar'", "';'", "'import'", "'/'", "'label:'", "'::='", "'.'", "'<-'", "'global'", "'combinator:'", "'rule'", "'hook'", "'#'", "','", "'/bnf'", "'/delta'", "'/merge'", "'core'", "'package'", "'update'" 
     26        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_SECTIONHEADER", "RULE_ML_COMMENT", "RULE_STRING", "RULE_INT", "RULE_LOGIC", "RULE_COLON", "RULE_WS", "RULE_SL_COMMENT", "')'", "']'", "'}'", "'|'", "'('", "'['", "'{'", "'*'", "'+'", "'grammar'", "';'", "'import'", "'/'", "'label:'", "'::='", "'.'", "'<-'", "'global'", "'combinator:'", "'rule'", "'hook'", "'#'", "','", "'/bnf'", "'/delta'", "'/merge'", "'core'", "'package'", "'update'" 
    2727    }; 
    2828    public static final int RULE_ID=4; 
     
    4040    public static final int T__21=21; 
    4141    public static final int T__20=20; 
    42     public static final int RULE_SL_COMMENT=11; 
     42    public static final int RULE_SL_COMMENT=12; 
    4343    public static final int EOF=-1; 
    44     public static final int RULE_ML_COMMENT=12; 
     44    public static final int RULE_ML_COMMENT=6; 
    4545    public static final int T__30=30; 
    4646    public static final int T__19=19; 
    47     public static final int RULE_COLON=9; 
     47    public static final int RULE_COLON=10; 
    4848    public static final int T__31=31; 
    49     public static final int RULE_STRING=6; 
     49    public static final int RULE_STRING=7; 
    5050    public static final int T__32=32; 
    5151    public static final int T__33=33; 
     
    5757    public static final int T__36=36; 
    5858    public static final int T__17=17; 
    59     public static final int RULE_LOGIC=8; 
     59    public static final int RULE_LOGIC=9; 
    6060    public static final int T__37=37; 
    6161    public static final int T__38=38; 
     
    6363    public static final int T__14=14; 
    6464    public static final int T__13=13; 
    65     public static final int RULE_INT=7; 
    66     public static final int RULE_WS=10; 
     65    public static final int RULE_INT=8; 
     66    public static final int RULE_WS=11; 
    6767 
    6868    // delegates 
     
    7575        public InternalEbnfParser(TokenStream input, RecognizerSharedState state) { 
    7676            super(input, state); 
    77             this.state.ruleMemo = new HashMap[356+1]; 
     77            this.state.ruleMemo = new HashMap[365+1]; 
    7878              
    7979              
     
    698698 
    699699 
     700    // $ANTLR start "entryRuleComment" 
     701    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:237:1: entryRuleComment : ruleComment EOF ; 
     702    public final void entryRuleComment() throws RecognitionException { 
     703        int entryRuleComment_StartIndex = input.index(); 
     704        try { 
     705            if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return ; } 
     706            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:238:1: ( ruleComment EOF ) 
     707            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:239:1: ruleComment EOF 
     708            { 
     709            if ( state.backtracking==0 ) { 
     710               before(grammarAccess.getCommentRule());  
     711            } 
     712            pushFollow(FOLLOW_ruleComment_in_entryRuleComment451); 
     713            ruleComment(); 
     714 
     715            state._fsp--; 
     716            if (state.failed) return ; 
     717            if ( state.backtracking==0 ) { 
     718               after(grammarAccess.getCommentRule());  
     719            } 
     720            match(input,EOF,FOLLOW_EOF_in_entryRuleComment458); if (state.failed) return ; 
     721 
     722            } 
     723 
     724        } 
     725        catch (RecognitionException re) { 
     726            reportError(re); 
     727            recover(input,re); 
     728        } 
     729        finally { 
     730            if ( state.backtracking>0 ) { memoize(input, 13, entryRuleComment_StartIndex); } 
     731        } 
     732        return ; 
     733    } 
     734    // $ANTLR end "entryRuleComment" 
     735 
     736 
     737    // $ANTLR start "ruleComment" 
     738    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:246:1: ruleComment : ( ( rule__Comment__Group__0 ) ) ; 
     739    public final void ruleComment() throws RecognitionException { 
     740        int ruleComment_StartIndex = input.index(); 
     741 
     742                        int stackSize = keepStackSize(); 
     743             
     744        try { 
     745            if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return ; } 
     746            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:250:2: ( ( ( rule__Comment__Group__0 ) ) ) 
     747            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:251:1: ( ( rule__Comment__Group__0 ) ) 
     748            { 
     749            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:251:1: ( ( rule__Comment__Group__0 ) ) 
     750            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:252:1: ( rule__Comment__Group__0 ) 
     751            { 
     752            if ( state.backtracking==0 ) { 
     753               before(grammarAccess.getCommentAccess().getGroup());  
     754            } 
     755            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:253:1: ( rule__Comment__Group__0 ) 
     756            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:253:2: rule__Comment__Group__0 
     757            { 
     758            pushFollow(FOLLOW_rule__Comment__Group__0_in_ruleComment484); 
     759            rule__Comment__Group__0(); 
     760 
     761            state._fsp--; 
     762            if (state.failed) return ; 
     763 
     764            } 
     765 
     766            if ( state.backtracking==0 ) { 
     767               after(grammarAccess.getCommentAccess().getGroup());  
     768            } 
     769 
     770            } 
     771 
     772 
     773            } 
     774 
     775        } 
     776        catch (RecognitionException re) { 
     777            reportError(re); 
     778            recover(input,re); 
     779        } 
     780        finally { 
     781            if ( state.backtracking>0 ) { memoize(input, 14, ruleComment_StartIndex); } 
     782 
     783                restoreStackSize(stackSize); 
     784 
     785        } 
     786        return ; 
     787    } 
     788    // $ANTLR end "ruleComment" 
     789 
     790 
    700791    // $ANTLR start "entryRuleImport" 
    701     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:237:1: entryRuleImport : ruleImport EOF ; 
     792    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:265:1: entryRuleImport : ruleImport EOF ; 
    702793    public final void entryRuleImport() throws RecognitionException { 
    703794        int entryRuleImport_StartIndex = input.index(); 
    704795        try { 
    705             if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return ; } 
    706             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:238:1: ( ruleImport EOF ) 
    707             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:239:1: ruleImport EOF 
     796            if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return ; } 
     797            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:266:1: ( ruleImport EOF ) 
     798            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:267:1: ruleImport EOF 
    708799            { 
    709800            if ( state.backtracking==0 ) { 
    710801               before(grammarAccess.getImportRule());  
    711802            } 
    712             pushFollow(FOLLOW_ruleImport_in_entryRuleImport451); 
     803            pushFollow(FOLLOW_ruleImport_in_entryRuleImport511); 
    713804            ruleImport(); 
    714805 
     
    718809               after(grammarAccess.getImportRule());  
    719810            } 
    720             match(input,EOF,FOLLOW_EOF_in_entryRuleImport458); if (state.failed) return ; 
    721  
    722             } 
    723  
    724         } 
    725         catch (RecognitionException re) { 
    726             reportError(re); 
    727             recover(input,re); 
    728         } 
    729         finally { 
    730             if ( state.backtracking>0 ) { memoize(input, 13, entryRuleImport_StartIndex); } 
     811            match(input,EOF,FOLLOW_EOF_in_entryRuleImport518); if (state.failed) return ; 
     812 
     813            } 
     814 
     815        } 
     816        catch (RecognitionException re) { 
     817            reportError(re); 
     818            recover(input,re); 
     819        } 
     820        finally { 
     821            if ( state.backtracking>0 ) { memoize(input, 15, entryRuleImport_StartIndex); } 
    731822        } 
    732823        return ; 
     
    736827 
    737828    // $ANTLR start "ruleImport" 
    738     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:246:1: ruleImport : ( ( rule__Import__Group__0 ) ) ; 
     829    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:274:1: ruleImport : ( ( rule__Import__Group__0 ) ) ; 
    739830    public final void ruleImport() throws RecognitionException { 
    740831        int ruleImport_StartIndex = input.index(); 
     
    743834             
    744835        try { 
    745             if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return ; } 
    746             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:250:2: ( ( ( rule__Import__Group__0 ) ) ) 
    747             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:251:1: ( ( rule__Import__Group__0 ) ) 
    748             { 
    749             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:251:1: ( ( rule__Import__Group__0 ) ) 
    750             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:252:1: ( rule__Import__Group__0 ) 
     836            if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return ; } 
     837            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:278:2: ( ( ( rule__Import__Group__0 ) ) ) 
     838            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:279:1: ( ( rule__Import__Group__0 ) ) 
     839            { 
     840            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:279:1: ( ( rule__Import__Group__0 ) ) 
     841            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:280:1: ( rule__Import__Group__0 ) 
    751842            { 
    752843            if ( state.backtracking==0 ) { 
    753844               before(grammarAccess.getImportAccess().getGroup());  
    754845            } 
    755             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:253:1: ( rule__Import__Group__0 ) 
    756             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:253:2: rule__Import__Group__0 
    757             { 
    758             pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport484); 
     846            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:281:1: ( rule__Import__Group__0 ) 
     847            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:281:2: rule__Import__Group__0 
     848            { 
     849            pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport544); 
    759850            rule__Import__Group__0(); 
    760851 
     
    779870        } 
    780871        finally { 
    781             if ( state.backtracking>0 ) { memoize(input, 14, ruleImport_StartIndex); } 
     872            if ( state.backtracking>0 ) { memoize(input, 16, ruleImport_StartIndex); } 
    782873 
    783874                restoreStackSize(stackSize); 
     
    790881 
    791882    // $ANTLR start "entryRuleRule" 
    792     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:265:1: entryRuleRule : ruleRule EOF ; 
     883    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:293:1: entryRuleRule : ruleRule EOF ; 
    793884    public final void entryRuleRule() throws RecognitionException { 
    794885        int entryRuleRule_StartIndex = input.index(); 
    795886        try { 
    796             if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return ; } 
    797             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:266:1: ( ruleRule EOF ) 
    798             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:267:1: ruleRule EOF 
     887            if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return ; } 
     888            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:294:1: ( ruleRule EOF ) 
     889            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:295:1: ruleRule EOF 
    799890            { 
    800891            if ( state.backtracking==0 ) { 
    801892               before(grammarAccess.getRuleRule());  
    802893            } 
    803             pushFollow(FOLLOW_ruleRule_in_entryRuleRule511); 
     894            pushFollow(FOLLOW_ruleRule_in_entryRuleRule571); 
    804895            ruleRule(); 
    805896 
     
    809900               after(grammarAccess.getRuleRule());  
    810901            } 
    811             match(input,EOF,FOLLOW_EOF_in_entryRuleRule518); if (state.failed) return ; 
    812  
    813             } 
    814  
    815         } 
    816         catch (RecognitionException re) { 
    817             reportError(re); 
    818             recover(input,re); 
    819         } 
    820         finally { 
    821             if ( state.backtracking>0 ) { memoize(input, 15, entryRuleRule_StartIndex); } 
     902            match(input,EOF,FOLLOW_EOF_in_entryRuleRule578); if (state.failed) return ; 
     903 
     904            } 
     905 
     906        } 
     907        catch (RecognitionException re) { 
     908            reportError(re); 
     909            recover(input,re); 
     910        } 
     911        finally { 
     912            if ( state.backtracking>0 ) { memoize(input, 17, entryRuleRule_StartIndex); } 
    822913        } 
    823914        return ; 
     
    827918 
    828919    // $ANTLR start "ruleRule" 
    829     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:274:1: ruleRule : ( ( rule__Rule__Group__0 ) ) ; 
     920    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:302:1: ruleRule : ( ( rule__Rule__Group__0 ) ) ; 
    830921    public final void ruleRule() throws RecognitionException { 
    831922        int ruleRule_StartIndex = input.index(); 
     
    834925             
    835926        try { 
    836             if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return ; } 
    837             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:278:2: ( ( ( rule__Rule__Group__0 ) ) ) 
    838             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:279:1: ( ( rule__Rule__Group__0 ) ) 
    839             { 
    840             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:279:1: ( ( rule__Rule__Group__0 ) ) 
    841             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:280:1: ( rule__Rule__Group__0 ) 
     927            if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return ; } 
     928            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:306:2: ( ( ( rule__Rule__Group__0 ) ) ) 
     929            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:307:1: ( ( rule__Rule__Group__0 ) ) 
     930            { 
     931            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:307:1: ( ( rule__Rule__Group__0 ) ) 
     932            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:308:1: ( rule__Rule__Group__0 ) 
    842933            { 
    843934            if ( state.backtracking==0 ) { 
    844935               before(grammarAccess.getRuleAccess().getGroup());  
    845936            } 
    846             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:281:1: ( rule__Rule__Group__0 ) 
    847             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:281:2: rule__Rule__Group__0 
    848             { 
    849             pushFollow(FOLLOW_rule__Rule__Group__0_in_ruleRule544); 
     937            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:309:1: ( rule__Rule__Group__0 ) 
     938            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:309:2: rule__Rule__Group__0 
     939            { 
     940            pushFollow(FOLLOW_rule__Rule__Group__0_in_ruleRule604); 
    850941            rule__Rule__Group__0(); 
    851942 
     
    870961        } 
    871962        finally { 
    872             if ( state.backtracking>0 ) { memoize(input, 16, ruleRule_StartIndex); } 
     963            if ( state.backtracking>0 ) { memoize(input, 18, ruleRule_StartIndex); } 
    873964 
    874965                restoreStackSize(stackSize); 
     
    881972 
    882973    // $ANTLR start "entryRuleExtRule" 
    883     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:293:1: entryRuleExtRule : ruleExtRule EOF ; 
     974    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:321:1: entryRuleExtRule : ruleExtRule EOF ; 
    884975    public final void entryRuleExtRule() throws RecognitionException { 
    885976        int entryRuleExtRule_StartIndex = input.index(); 
    886977        try { 
    887             if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return ; } 
    888             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:294:1: ( ruleExtRule EOF ) 
    889             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:295:1: ruleExtRule EOF 
     978            if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return ; } 
     979            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:322:1: ( ruleExtRule EOF ) 
     980            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:323:1: ruleExtRule EOF 
    890981            { 
    891982            if ( state.backtracking==0 ) { 
    892983               before(grammarAccess.getExtRuleRule());  
    893984            } 
    894             pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule571); 
     985            pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule631); 
    895986            ruleExtRule(); 
    896987 
     
    900991               after(grammarAccess.getExtRuleRule());  
    901992            } 
    902             match(input,EOF,FOLLOW_EOF_in_entryRuleExtRule578); if (state.failed) return ; 
    903  
    904             } 
    905  
    906         } 
    907         catch (RecognitionException re) { 
    908             reportError(re); 
    909             recover(input,re); 
    910         } 
    911         finally { 
    912             if ( state.backtracking>0 ) { memoize(input, 17, entryRuleExtRule_StartIndex); } 
     993            match(input,EOF,FOLLOW_EOF_in_entryRuleExtRule638); if (state.failed) return ; 
     994 
     995            } 
     996 
     997        } 
     998        catch (RecognitionException re) { 
     999            reportError(re); 
     1000            recover(input,re); 
     1001        } 
     1002        finally { 
     1003            if ( state.backtracking>0 ) { memoize(input, 19, entryRuleExtRule_StartIndex); } 
    9131004        } 
    9141005        return ; 
     
    9181009 
    9191010    // $ANTLR start "ruleExtRule" 
    920     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:302:1: ruleExtRule : ( ( rule__ExtRule__Group__0 ) ) ; 
     1011    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:330:1: ruleExtRule : ( ( rule__ExtRule__Group__0 ) ) ; 
    9211012    public final void ruleExtRule() throws RecognitionException { 
    9221013        int ruleExtRule_StartIndex = input.index(); 
     
    9251016             
    9261017        try { 
    927             if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return ; } 
    928             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:306:2: ( ( ( rule__ExtRule__Group__0 ) ) ) 
    929             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:307:1: ( ( rule__ExtRule__Group__0 ) ) 
    930             { 
    931             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:307:1: ( ( rule__ExtRule__Group__0 ) ) 
    932             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:308:1: ( rule__ExtRule__Group__0 ) 
     1018            if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return ; } 
     1019            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:334:2: ( ( ( rule__ExtRule__Group__0 ) ) ) 
     1020            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:335:1: ( ( rule__ExtRule__Group__0 ) ) 
     1021            { 
     1022            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:335:1: ( ( rule__ExtRule__Group__0 ) ) 
     1023            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:336:1: ( rule__ExtRule__Group__0 ) 
    9331024            { 
    9341025            if ( state.backtracking==0 ) { 
    9351026               before(grammarAccess.getExtRuleAccess().getGroup());  
    9361027            } 
    937             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:309:1: ( rule__ExtRule__Group__0 ) 
    938             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:309:2: rule__ExtRule__Group__0 
    939             { 
    940             pushFollow(FOLLOW_rule__ExtRule__Group__0_in_ruleExtRule604); 
     1028            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:337:1: ( rule__ExtRule__Group__0 ) 
     1029            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:337:2: rule__ExtRule__Group__0 
     1030            { 
     1031            pushFollow(FOLLOW_rule__ExtRule__Group__0_in_ruleExtRule664); 
    9411032            rule__ExtRule__Group__0(); 
    9421033 
     
    9611052        } 
    9621053        finally { 
    963             if ( state.backtracking>0 ) { memoize(input, 18, ruleExtRule_StartIndex); } 
     1054            if ( state.backtracking>0 ) { memoize(input, 20, ruleExtRule_StartIndex); } 
    9641055 
    9651056                restoreStackSize(stackSize); 
     
    9721063 
    9731064    // $ANTLR start "entryRuleMergeRule" 
    974     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:321:1: entryRuleMergeRule : ruleMergeRule EOF ; 
     1065    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:349:1: entryRuleMergeRule : ruleMergeRule EOF ; 
    9751066    public final void entryRuleMergeRule() throws RecognitionException { 
    9761067        int entryRuleMergeRule_StartIndex = input.index(); 
    9771068        try { 
    978             if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return ; } 
    979             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:322:1: ( ruleMergeRule EOF ) 
    980             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:323:1: ruleMergeRule EOF 
     1069            if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return ; } 
     1070            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:350:1: ( ruleMergeRule EOF ) 
     1071            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:351:1: ruleMergeRule EOF 
    9811072            { 
    9821073            if ( state.backtracking==0 ) { 
    9831074               before(grammarAccess.getMergeRuleRule());  
    9841075            } 
    985             pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule631); 
     1076            pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule691); 
    9861077            ruleMergeRule(); 
    9871078 
     
    9911082               after(grammarAccess.getMergeRuleRule());  
    9921083            } 
    993             match(input,EOF,FOLLOW_EOF_in_entryRuleMergeRule638); if (state.failed) return ; 
    994  
    995             } 
    996  
    997         } 
    998         catch (RecognitionException re) { 
    999             reportError(re); 
    1000             recover(input,re); 
    1001         } 
    1002         finally { 
    1003             if ( state.backtracking>0 ) { memoize(input, 19, entryRuleMergeRule_StartIndex); } 
     1084            match(input,EOF,FOLLOW_EOF_in_entryRuleMergeRule698); if (state.failed) return ; 
     1085 
     1086            } 
     1087 
     1088        } 
     1089        catch (RecognitionException re) { 
     1090            reportError(re); 
     1091            recover(input,re); 
     1092        } 
     1093        finally { 
     1094            if ( state.backtracking>0 ) { memoize(input, 21, entryRuleMergeRule_StartIndex); } 
    10041095        } 
    10051096        return ; 
     
    10091100 
    10101101    // $ANTLR start "ruleMergeRule" 
    1011     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:330:1: ruleMergeRule : ( ( rule__MergeRule__Alternatives ) ) ; 
     1102    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:358:1: ruleMergeRule : ( ( rule__MergeRule__Alternatives ) ) ; 
    10121103    public final void ruleMergeRule() throws RecognitionException { 
    10131104        int ruleMergeRule_StartIndex = input.index(); 
     
    10161107             
    10171108        try { 
    1018             if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return ; } 
    1019             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:334:2: ( ( ( rule__MergeRule__Alternatives ) ) ) 
    1020             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:335:1: ( ( rule__MergeRule__Alternatives ) ) 
    1021             { 
    1022             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:335:1: ( ( rule__MergeRule__Alternatives ) ) 
    1023             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:336:1: ( rule__MergeRule__Alternatives ) 
     1109            if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return ; } 
     1110            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:362:2: ( ( ( rule__MergeRule__Alternatives ) ) ) 
     1111            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:363:1: ( ( rule__MergeRule__Alternatives ) ) 
     1112            { 
     1113            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:363:1: ( ( rule__MergeRule__Alternatives ) ) 
     1114            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:364:1: ( rule__MergeRule__Alternatives ) 
    10241115            { 
    10251116            if ( state.backtracking==0 ) { 
    10261117               before(grammarAccess.getMergeRuleAccess().getAlternatives());  
    10271118            } 
    1028             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:337:1: ( rule__MergeRule__Alternatives ) 
    1029             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:337:2: rule__MergeRule__Alternatives 
    1030             { 
    1031             pushFollow(FOLLOW_rule__MergeRule__Alternatives_in_ruleMergeRule664); 
     1119            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:365:1: ( rule__MergeRule__Alternatives ) 
     1120            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:365:2: rule__MergeRule__Alternatives 
     1121            { 
     1122            pushFollow(FOLLOW_rule__MergeRule__Alternatives_in_ruleMergeRule724); 
    10321123            rule__MergeRule__Alternatives(); 
    10331124 
     
    10521143        } 
    10531144        finally { 
    1054             if ( state.backtracking>0 ) { memoize(input, 20, ruleMergeRule_StartIndex); } 
     1145            if ( state.backtracking>0 ) { memoize(input, 22, ruleMergeRule_StartIndex); } 
    10551146 
    10561147                restoreStackSize(stackSize); 
     
    10631154 
    10641155    // $ANTLR start "entryRuleGlobalCombinator" 
    1065     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:349:1: entryRuleGlobalCombinator : ruleGlobalCombinator EOF ; 
     1156    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:377:1: entryRuleGlobalCombinator : ruleGlobalCombinator EOF ; 
    10661157    public final void entryRuleGlobalCombinator() throws RecognitionException { 
    10671158        int entryRuleGlobalCombinator_StartIndex = input.index(); 
    10681159        try { 
    1069             if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return ; } 
    1070             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:350:1: ( ruleGlobalCombinator EOF ) 
    1071             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:351:1: ruleGlobalCombinator EOF 
     1160            if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return ; } 
     1161            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:378:1: ( ruleGlobalCombinator EOF ) 
     1162            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:379:1: ruleGlobalCombinator EOF 
    10721163            { 
    10731164            if ( state.backtracking==0 ) { 
    10741165               before(grammarAccess.getGlobalCombinatorRule());  
    10751166            } 
    1076             pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator691); 
     1167            pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator751); 
    10771168            ruleGlobalCombinator(); 
    10781169 
     
    10821173               after(grammarAccess.getGlobalCombinatorRule());  
    10831174            } 
    1084             match(input,EOF,FOLLOW_EOF_in_entryRuleGlobalCombinator698); if (state.failed) return ; 
    1085  
    1086             } 
    1087  
    1088         } 
    1089         catch (RecognitionException re) { 
    1090             reportError(re); 
    1091             recover(input,re); 
    1092         } 
    1093         finally { 
    1094             if ( state.backtracking>0 ) { memoize(input, 21, entryRuleGlobalCombinator_StartIndex); } 
     1175            match(input,EOF,FOLLOW_EOF_in_entryRuleGlobalCombinator758); if (state.failed) return ; 
     1176 
     1177            } 
     1178 
     1179        } 
     1180        catch (RecognitionException re) { 
     1181            reportError(re); 
     1182            recover(input,re); 
     1183        } 
     1184        finally { 
     1185            if ( state.backtracking>0 ) { memoize(input, 23, entryRuleGlobalCombinator_StartIndex); } 
    10951186        } 
    10961187        return ; 
     
    11001191 
    11011192    // $ANTLR start "ruleGlobalCombinator" 
    1102     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:358:1: ruleGlobalCombinator : ( ( rule__GlobalCombinator__Group__0 ) ) ; 
     1193    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:386:1: ruleGlobalCombinator : ( ( rule__GlobalCombinator__Group__0 ) ) ; 
    11031194    public final void ruleGlobalCombinator() throws RecognitionException { 
    11041195        int ruleGlobalCombinator_StartIndex = input.index(); 
     
    11071198             
    11081199        try { 
    1109             if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return ; } 
    1110             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:362:2: ( ( ( rule__GlobalCombinator__Group__0 ) ) ) 
    1111             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:363:1: ( ( rule__GlobalCombinator__Group__0 ) ) 
    1112             { 
    1113             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:363:1: ( ( rule__GlobalCombinator__Group__0 ) ) 
    1114             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:364:1: ( rule__GlobalCombinator__Group__0 ) 
     1200            if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return ; } 
     1201            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:390:2: ( ( ( rule__GlobalCombinator__Group__0 ) ) ) 
     1202            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:391:1: ( ( rule__GlobalCombinator__Group__0 ) ) 
     1203            { 
     1204            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:391:1: ( ( rule__GlobalCombinator__Group__0 ) ) 
     1205            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:392:1: ( rule__GlobalCombinator__Group__0 ) 
    11151206            { 
    11161207            if ( state.backtracking==0 ) { 
    11171208               before(grammarAccess.getGlobalCombinatorAccess().getGroup());  
    11181209            } 
    1119             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:365:1: ( rule__GlobalCombinator__Group__0 ) 
    1120             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:365:2: rule__GlobalCombinator__Group__0 
    1121             { 
    1122             pushFollow(FOLLOW_rule__GlobalCombinator__Group__0_in_ruleGlobalCombinator724); 
     1210            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:393:1: ( rule__GlobalCombinator__Group__0 ) 
     1211            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:393:2: rule__GlobalCombinator__Group__0 
     1212            { 
     1213            pushFollow(FOLLOW_rule__GlobalCombinator__Group__0_in_ruleGlobalCombinator784); 
    11231214            rule__GlobalCombinator__Group__0(); 
    11241215 
     
    11431234        } 
    11441235        finally { 
    1145             if ( state.backtracking>0 ) { memoize(input, 22, ruleGlobalCombinator_StartIndex); } 
     1236            if ( state.backtracking>0 ) { memoize(input, 24, ruleGlobalCombinator_StartIndex); } 
    11461237 
    11471238                restoreStackSize(stackSize); 
     
    11541245 
    11551246    // $ANTLR start "entryRuleRuleCombinator" 
    1156     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:377:1: entryRuleRuleCombinator : ruleRuleCombinator EOF ; 
     1247    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:405:1: entryRuleRuleCombinator : ruleRuleCombinator EOF ; 
    11571248    public final void entryRuleRuleCombinator() throws RecognitionException { 
    11581249        int entryRuleRuleCombinator_StartIndex = input.index(); 
    11591250        try { 
    1160             if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return ; } 
    1161             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:378:1: ( ruleRuleCombinator EOF ) 
    1162             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:379:1: ruleRuleCombinator EOF 
     1251            if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return ; } 
     1252            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:406:1: ( ruleRuleCombinator EOF ) 
     1253            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:407:1: ruleRuleCombinator EOF 
    11631254            { 
    11641255            if ( state.backtracking==0 ) { 
    11651256               before(grammarAccess.getRuleCombinatorRule());  
    11661257            } 
    1167             pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator751); 
     1258            pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator811); 
    11681259            ruleRuleCombinator(); 
    11691260 
     
    11731264               after(grammarAccess.getRuleCombinatorRule());  
    11741265            } 
    1175             match(input,EOF,FOLLOW_EOF_in_entryRuleRuleCombinator758); if (state.failed) return ; 
    1176  
    1177             } 
    1178  
    1179         } 
    1180         catch (RecognitionException re) { 
    1181             reportError(re); 
    1182             recover(input,re); 
    1183         } 
    1184         finally { 
    1185             if ( state.backtracking>0 ) { memoize(input, 23, entryRuleRuleCombinator_StartIndex); } 
     1266            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleCombinator818); if (state.failed) return ; 
     1267 
     1268            } 
     1269 
     1270        } 
     1271        catch (RecognitionException re) { 
     1272            reportError(re); 
     1273            recover(input,re); 
     1274        } 
     1275        finally { 
     1276            if ( state.backtracking>0 ) { memoize(input, 25, entryRuleRuleCombinator_StartIndex); } 
    11861277        } 
    11871278        return ; 
     
    11911282 
    11921283    // $ANTLR start "ruleRuleCombinator" 
    1193     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:386:1: ruleRuleCombinator : ( ( rule__RuleCombinator__Group__0 ) ) ; 
     1284    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:414:1: ruleRuleCombinator : ( ( rule__RuleCombinator__Group__0 ) ) ; 
    11941285    public final void ruleRuleCombinator() throws RecognitionException { 
    11951286        int ruleRuleCombinator_StartIndex = input.index(); 
     
    11981289             
    11991290        try { 
    1200             if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return ; } 
    1201             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:390:2: ( ( ( rule__RuleCombinator__Group__0 ) ) ) 
    1202             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:391:1: ( ( rule__RuleCombinator__Group__0 ) ) 
    1203             { 
    1204             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:391:1: ( ( rule__RuleCombinator__Group__0 ) ) 
    1205             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:392:1: ( rule__RuleCombinator__Group__0 ) 
     1291            if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return ; } 
     1292            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:418:2: ( ( ( rule__RuleCombinator__Group__0 ) ) ) 
     1293            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:419:1: ( ( rule__RuleCombinator__Group__0 ) ) 
     1294            { 
     1295            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:419:1: ( ( rule__RuleCombinator__Group__0 ) ) 
     1296            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:420:1: ( rule__RuleCombinator__Group__0 ) 
    12061297            { 
    12071298            if ( state.backtracking==0 ) { 
    12081299               before(grammarAccess.getRuleCombinatorAccess().getGroup());  
    12091300            } 
    1210             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:393:1: ( rule__RuleCombinator__Group__0 ) 
    1211             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:393:2: rule__RuleCombinator__Group__0 
    1212             { 
    1213             pushFollow(FOLLOW_rule__RuleCombinator__Group__0_in_ruleRuleCombinator784); 
     1301            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:421:1: ( rule__RuleCombinator__Group__0 ) 
     1302            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:421:2: rule__RuleCombinator__Group__0 
     1303            { 
     1304            pushFollow(FOLLOW_rule__RuleCombinator__Group__0_in_ruleRuleCombinator844); 
    12141305            rule__RuleCombinator__Group__0(); 
    12151306 
     
    12341325        } 
    12351326        finally { 
    1236             if ( state.backtracking>0 ) { memoize(input, 24, ruleRuleCombinator_StartIndex); } 
     1327            if ( state.backtracking>0 ) { memoize(input, 26, ruleRuleCombinator_StartIndex); } 
    12371328 
    12381329                restoreStackSize(stackSize); 
     
    12451336 
    12461337    // $ANTLR start "entryRuleHookCombinator" 
    1247     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:405:1: entryRuleHookCombinator : ruleHookCombinator EOF ; 
     1338    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:433:1: entryRuleHookCombinator : ruleHookCombinator EOF ; 
    12481339    public final void entryRuleHookCombinator() throws RecognitionException { 
    12491340        int entryRuleHookCombinator_StartIndex = input.index(); 
    12501341        try { 
    1251             if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return ; } 
    1252             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:406:1: ( ruleHookCombinator EOF ) 
    1253             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:407:1: ruleHookCombinator EOF 
     1342            if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return ; } 
     1343            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:434:1: ( ruleHookCombinator EOF ) 
     1344            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:435:1: ruleHookCombinator EOF 
    12541345            { 
    12551346            if ( state.backtracking==0 ) { 
    12561347               before(grammarAccess.getHookCombinatorRule());  
    12571348            } 
    1258             pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator811); 
     1349            pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator871); 
    12591350            ruleHookCombinator(); 
    12601351 
     
    12641355               after(grammarAccess.getHookCombinatorRule());  
    12651356            } 
    1266             match(input,EOF,FOLLOW_EOF_in_entryRuleHookCombinator818); if (state.failed) return ; 
    1267  
    1268             } 
    1269  
    1270         } 
    1271         catch (RecognitionException re) { 
    1272             reportError(re); 
    1273             recover(input,re); 
    1274         } 
    1275         finally { 
    1276             if ( state.backtracking>0 ) { memoize(input, 25, entryRuleHookCombinator_StartIndex); } 
     1357            match(input,EOF,FOLLOW_EOF_in_entryRuleHookCombinator878); if (state.failed) return ; 
     1358 
     1359            } 
     1360 
     1361        } 
     1362        catch (RecognitionException re) { 
     1363            reportError(re); 
     1364            recover(input,re); 
     1365        } 
     1366        finally { 
     1367            if ( state.backtracking>0 ) { memoize(input, 27, entryRuleHookCombinator_StartIndex); } 
    12771368        } 
    12781369        return ; 
     
    12821373 
    12831374    // $ANTLR start "ruleHookCombinator" 
    1284     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:414:1: ruleHookCombinator : ( ( rule__HookCombinator__Group__0 ) ) ; 
     1375    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:442:1: ruleHookCombinator : ( ( rule__HookCombinator__Group__0 ) ) ; 
    12851376    public final void ruleHookCombinator() throws RecognitionException { 
    12861377        int ruleHookCombinator_StartIndex = input.index(); 
     
    12891380             
    12901381        try { 
    1291             if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return ; } 
    1292             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:418:2: ( ( ( rule__HookCombinator__Group__0 ) ) ) 
    1293             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:419:1: ( ( rule__HookCombinator__Group__0 ) ) 
    1294             { 
    1295             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:419:1: ( ( rule__HookCombinator__Group__0 ) ) 
    1296             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:420:1: ( rule__HookCombinator__Group__0 ) 
     1382            if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return ; } 
     1383            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:446:2: ( ( ( rule__HookCombinator__Group__0 ) ) ) 
     1384            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:447:1: ( ( rule__HookCombinator__Group__0 ) ) 
     1385            { 
     1386            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:447:1: ( ( rule__HookCombinator__Group__0 ) ) 
     1387            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:448:1: ( rule__HookCombinator__Group__0 ) 
    12971388            { 
    12981389            if ( state.backtracking==0 ) { 
    12991390               before(grammarAccess.getHookCombinatorAccess().getGroup());  
    13001391            } 
    1301             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:421:1: ( rule__HookCombinator__Group__0 ) 
    1302             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:421:2: rule__HookCombinator__Group__0 
    1303             { 
    1304             pushFollow(FOLLOW_rule__HookCombinator__Group__0_in_ruleHookCombinator844); 
     1392            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:449:1: ( rule__HookCombinator__Group__0 ) 
     1393            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:449:2: rule__HookCombinator__Group__0 
     1394            { 
     1395            pushFollow(FOLLOW_rule__HookCombinator__Group__0_in_ruleHookCombinator904); 
    13051396            rule__HookCombinator__Group__0(); 
    13061397 
     
    13251416        } 
    13261417        finally { 
    1327             if ( state.backtracking>0 ) { memoize(input, 26, ruleHookCombinator_StartIndex); } 
     1418            if ( state.backtracking>0 ) { memoize(input, 28, ruleHookCombinator_StartIndex); } 
    13281419 
    13291420                restoreStackSize(stackSize); 
     
    13361427 
    13371428    // $ANTLR start "entryRuleDefinitionList" 
    1338     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:433:1: entryRuleDefinitionList : ruleDefinitionList EOF ; 
     1429    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:461:1: entryRuleDefinitionList : ruleDefinitionList EOF ; 
    13391430    public final void entryRuleDefinitionList() throws RecognitionException { 
    13401431        int entryRuleDefinitionList_StartIndex = input.index(); 
    13411432        try { 
    1342             if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return ; } 
    1343             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:434:1: ( ruleDefinitionList EOF ) 
    1344             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:435:1: ruleDefinitionList EOF 
     1433            if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return ; } 
     1434            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:462:1: ( ruleDefinitionList EOF ) 
     1435            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:463:1: ruleDefinitionList EOF 
    13451436            { 
    13461437            if ( state.backtracking==0 ) { 
    13471438               before(grammarAccess.getDefinitionListRule());  
    13481439            } 
    1349             pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList871); 
     1440            pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList931); 
    13501441            ruleDefinitionList(); 
    13511442 
     
    13551446               after(grammarAccess.getDefinitionListRule());  
    13561447            } 
    1357             match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitionList878); if (state.failed) return ; 
    1358  
    1359             } 
    1360  
    1361         } 
    1362         catch (RecognitionException re) { 
    1363             reportError(re); 
    1364             recover(input,re); 
    1365         } 
    1366         finally { 
    1367             if ( state.backtracking>0 ) { memoize(input, 27, entryRuleDefinitionList_StartIndex); } 
     1448            match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitionList938); if (state.failed) return ; 
     1449 
     1450            } 
     1451 
     1452        } 
     1453        catch (RecognitionException re) { 
     1454            reportError(re); 
     1455            recover(input,re); 
     1456        } 
     1457        finally { 
     1458            if ( state.backtracking>0 ) { memoize(input, 29, entryRuleDefinitionList_StartIndex); } 
    13681459        } 
    13691460        return ; 
     
    13731464 
    13741465    // $ANTLR start "ruleDefinitionList" 
    1375     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:442:1: ruleDefinitionList : ( ( rule__DefinitionList__Group__0 ) ) ; 
     1466    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:470:1: ruleDefinitionList : ( ( rule__DefinitionList__Group__0 ) ) ; 
    13761467    public final void ruleDefinitionList() throws RecognitionException { 
    13771468        int ruleDefinitionList_StartIndex = input.index(); 
     
    13801471             
    13811472        try { 
    1382             if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return ; } 
    1383             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:446:2: ( ( ( rule__DefinitionList__Group__0 ) ) ) 
    1384             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:447:1: ( ( rule__DefinitionList__Group__0 ) ) 
    1385             { 
    1386             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:447:1: ( ( rule__DefinitionList__Group__0 ) ) 
    1387             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:448:1: ( rule__DefinitionList__Group__0 ) 
     1473            if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return ; } 
     1474            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:474:2: ( ( ( rule__DefinitionList__Group__0 ) ) ) 
     1475            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:475:1: ( ( rule__DefinitionList__Group__0 ) ) 
     1476            { 
     1477            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:475:1: ( ( rule__DefinitionList__Group__0 ) ) 
     1478            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:476:1: ( rule__DefinitionList__Group__0 ) 
    13881479            { 
    13891480            if ( state.backtracking==0 ) { 
    13901481               before(grammarAccess.getDefinitionListAccess().getGroup());  
    13911482            } 
    1392             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:449:1: ( rule__DefinitionList__Group__0 ) 
    1393             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:449:2: rule__DefinitionList__Group__0 
    1394             { 
    1395             pushFollow(FOLLOW_rule__DefinitionList__Group__0_in_ruleDefinitionList904); 
     1483            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:477:1: ( rule__DefinitionList__Group__0 ) 
     1484            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:477:2: rule__DefinitionList__Group__0 
     1485            { 
     1486            pushFollow(FOLLOW_rule__DefinitionList__Group__0_in_ruleDefinitionList964); 
    13961487            rule__DefinitionList__Group__0(); 
    13971488 
     
    14161507        } 
    14171508        finally { 
    1418             if ( state.backtracking>0 ) { memoize(input, 28, ruleDefinitionList_StartIndex); } 
     1509            if ( state.backtracking>0 ) { memoize(input, 30, ruleDefinitionList_StartIndex); } 
    14191510 
    14201511                restoreStackSize(stackSize); 
     
    14271518 
    14281519    // $ANTLR start "entryRuleSingleDefinition" 
    1429     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:461:1: entryRuleSingleDefinition : ruleSingleDefinition EOF ; 
     1520    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:489:1: entryRuleSingleDefinition : ruleSingleDefinition EOF ; 
    14301521    public final void entryRuleSingleDefinition() throws RecognitionException { 
    14311522        int entryRuleSingleDefinition_StartIndex = input.index(); 
    14321523        try { 
    1433             if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return ; } 
    1434             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:462:1: ( ruleSingleDefinition EOF ) 
    1435             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:463:1: ruleSingleDefinition EOF 
     1524            if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return ; } 
     1525            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:490:1: ( ruleSingleDefinition EOF ) 
     1526            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:491:1: ruleSingleDefinition EOF 
    14361527            { 
    14371528            if ( state.backtracking==0 ) { 
    14381529               before(grammarAccess.getSingleDefinitionRule());  
    14391530            } 
    1440             pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition931); 
     1531            pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition991); 
    14411532            ruleSingleDefinition(); 
    14421533 
     
    14461537               after(grammarAccess.getSingleDefinitionRule());  
    14471538            } 
    1448             match(input,EOF,FOLLOW_EOF_in_entryRuleSingleDefinition938); if (state.failed) return ; 
    1449  
    1450             } 
    1451  
    1452         } 
    1453         catch (RecognitionException re) { 
    1454             reportError(re); 
    1455             recover(input,re); 
    1456         } 
    1457         finally { 
    1458             if ( state.backtracking>0 ) { memoize(input, 29, entryRuleSingleDefinition_StartIndex); } 
     1539            match(input,EOF,FOLLOW_EOF_in_entryRuleSingleDefinition998); if (state.failed) return ; 
     1540 
     1541            } 
     1542 
     1543        } 
     1544        catch (RecognitionException re) { 
     1545            reportError(re); 
     1546            recover(input,re); 
     1547        } 
     1548        finally { 
     1549            if ( state.backtracking>0 ) { memoize(input, 31, entryRuleSingleDefinition_StartIndex); } 
    14591550        } 
    14601551        return ; 
     
    14641555 
    14651556    // $ANTLR start "ruleSingleDefinition" 
    1466     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:470:1: ruleSingleDefinition : ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) ; 
     1557    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:498:1: ruleSingleDefinition : ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) ; 
    14671558    public final void ruleSingleDefinition() throws RecognitionException { 
    14681559        int ruleSingleDefinition_StartIndex = input.index(); 
     
    14711562             
    14721563        try { 
    1473             if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return ; } 
    1474             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:474:2: ( ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) ) 
    1475             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:475:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) 
    1476             { 
    1477             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:475:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) 
    1478             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:476:1: ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) 
    1479             { 
    1480             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:476:1: ( ( rule__SingleDefinition__TermsAssignment ) ) 
    1481             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:477:1: ( rule__SingleDefinition__TermsAssignment ) 
     1564            if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return ; } 
     1565            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:502:2: ( ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) ) 
     1566            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:503:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) 
     1567            { 
     1568            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:503:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) 
     1569            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:504:1: ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) 
     1570            { 
     1571            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:504:1: ( ( rule__SingleDefinition__TermsAssignment ) ) 
     1572            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:505:1: ( rule__SingleDefinition__TermsAssignment ) 
    14821573            { 
    14831574            if ( state.backtracking==0 ) { 
    14841575               before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
    14851576            } 
    1486             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:478:1: ( rule__SingleDefinition__TermsAssignment ) 
    1487             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:478:2: rule__SingleDefinition__TermsAssignment 
    1488             { 
    1489             pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition966); 
     1577            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:506:1: ( rule__SingleDefinition__TermsAssignment ) 
     1578            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:506:2: rule__SingleDefinition__TermsAssignment 
     1579            { 
     1580            pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition1026); 
    14901581            rule__SingleDefinition__TermsAssignment(); 
    14911582 
     
    15011592            } 
    15021593 
    1503             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:481:1: ( ( rule__SingleDefinition__TermsAssignment )* ) 
    1504             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:482:1: ( rule__SingleDefinition__TermsAssignment )* 
     1594            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:509:1: ( ( rule__SingleDefinition__TermsAssignment )* ) 
     1595            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:510:1: ( rule__SingleDefinition__TermsAssignment )* 
    15051596            { 
    15061597            if ( state.backtracking==0 ) { 
    15071598               before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
    15081599            } 
    1509             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:483:1: ( rule__SingleDefinition__TermsAssignment )* 
     1600            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:511:1: ( rule__SingleDefinition__TermsAssignment )* 
    15101601            loop2: 
    15111602            do { 
     
    15381629                switch (alt2) { 
    15391630                case 1 : 
    1540                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:483:2: rule__SingleDefinition__TermsAssignment 
     1631                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:511:2: rule__SingleDefinition__TermsAssignment 
    15411632                    { 
    1542                     pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition978); 
     1633                    pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition1038); 
    15431634                    rule__SingleDefinition__TermsAssignment(); 
    15441635 
     
    15721663        } 
    15731664        finally { 
    1574             if ( state.backtracking>0 ) { memoize(input, 30, ruleSingleDefinition_StartIndex); } 
     1665            if ( state.backtracking>0 ) { memoize(input, 32, ruleSingleDefinition_StartIndex); } 
    15751666 
    15761667                restoreStackSize(stackSize); 
     
    15831674 
    15841675    // $ANTLR start "entryRuleTerm" 
    1585     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:496:1: entryRuleTerm : ruleTerm EOF ; 
     1676    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:524:1: entryRuleTerm : ruleTerm EOF ; 
    15861677    public final void entryRuleTerm() throws RecognitionException { 
    15871678        int entryRuleTerm_StartIndex = input.index(); 
    15881679        try { 
    1589             if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return ; } 
    1590             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:497:1: ( ruleTerm EOF ) 
    1591             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:498:1: ruleTerm EOF 
     1680            if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return ; } 
     1681            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:525:1: ( ruleTerm EOF ) 
     1682            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:526:1: ruleTerm EOF 
    15921683            { 
    15931684            if ( state.backtracking==0 ) { 
    15941685               before(grammarAccess.getTermRule());  
    15951686            } 
    1596             pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm1008); 
     1687            pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm1068); 
    15971688            ruleTerm(); 
    15981689 
     
    16021693               after(grammarAccess.getTermRule());  
    16031694            } 
    1604             match(input,EOF,FOLLOW_EOF_in_entryRuleTerm1015); if (state.failed) return ; 
    1605  
    1606             } 
    1607  
    1608         } 
    1609         catch (RecognitionException re) { 
    1610             reportError(re); 
    1611             recover(input,re); 
    1612         } 
    1613         finally { 
    1614             if ( state.backtracking>0 ) { memoize(input, 31, entryRuleTerm_StartIndex); } 
     1695            match(input,EOF,FOLLOW_EOF_in_entryRuleTerm1075); if (state.failed) return ; 
     1696 
     1697            } 
     1698 
     1699        } 
     1700        catch (RecognitionException re) { 
     1701            reportError(re); 
     1702            recover(input,re); 
     1703        } 
     1704        finally { 
     1705            if ( state.backtracking>0 ) { memoize(input, 33, entryRuleTerm_StartIndex); } 
    16151706        } 
    16161707        return ; 
     
    16201711 
    16211712    // $ANTLR start "ruleTerm" 
    1622     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:505:1: ruleTerm : ( ( rule__Term__Alternatives ) ) ; 
     1713    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:533:1: ruleTerm : ( ( rule__Term__Alternatives ) ) ; 
    16231714    public final void ruleTerm() throws RecognitionException { 
    16241715        int ruleTerm_StartIndex = input.index(); 
     
    16271718             
    16281719        try { 
    1629             if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return ; } 
    1630             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:509:2: ( ( ( rule__Term__Alternatives ) ) ) 
    1631             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:510:1: ( ( rule__Term__Alternatives ) ) 
    1632             { 
    1633             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:510:1: ( ( rule__Term__Alternatives ) ) 
    1634             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:511:1: ( rule__Term__Alternatives ) 
     1720            if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return ; } 
     1721            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:537:2: ( ( ( rule__Term__Alternatives ) ) ) 
     1722            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:538:1: ( ( rule__Term__Alternatives ) ) 
     1723            { 
     1724            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:538:1: ( ( rule__Term__Alternatives ) ) 
     1725            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:539:1: ( rule__Term__Alternatives ) 
    16351726            { 
    16361727            if ( state.backtracking==0 ) { 
    16371728               before(grammarAccess.getTermAccess().getAlternatives());  
    16381729            } 
    1639             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:512:1: ( rule__Term__Alternatives ) 
    1640             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:512:2: rule__Term__Alternatives 
    1641             { 
    1642             pushFollow(FOLLOW_rule__Term__Alternatives_in_ruleTerm1041); 
     1730            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:540:1: ( rule__Term__Alternatives ) 
     1731            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:540:2: rule__Term__Alternatives 
     1732            { 
     1733            pushFollow(FOLLOW_rule__Term__Alternatives_in_ruleTerm1101); 
    16431734            rule__Term__Alternatives(); 
    16441735 
     
    16631754        } 
    16641755        finally { 
    1665             if ( state.backtracking>0 ) { memoize(input, 32, ruleTerm_StartIndex); } 
     1756            if ( state.backtracking>0 ) { memoize(input, 34, ruleTerm_StartIndex); } 
    16661757 
    16671758                restoreStackSize(stackSize); 
     
    16741765 
    16751766    // $ANTLR start "entryRuleAtom" 
    1676     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:524:1: entryRuleAtom : ruleAtom EOF ; 
     1767    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:552:1: entryRuleAtom : ruleAtom EOF ; 
    16771768    public final void entryRuleAtom() throws RecognitionException { 
    16781769        int entryRuleAtom_StartIndex = input.index(); 
    16791770        try { 
    1680             if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return ; } 
    1681             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:525:1: ( ruleAtom EOF ) 
    1682             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:526:1: ruleAtom EOF 
     1771            if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return ; } 
     1772            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:553:1: ( ruleAtom EOF ) 
     1773            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:554:1: ruleAtom EOF 
    16831774            { 
    16841775            if ( state.backtracking==0 ) { 
    16851776               before(grammarAccess.getAtomRule());  
    16861777            } 
    1687             pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom1068); 
     1778            pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom1128); 
    16881779            ruleAtom(); 
    16891780 
     
    16931784               after(grammarAccess.getAtomRule());  
    16941785            } 
    1695             match(input,EOF,FOLLOW_EOF_in_entryRuleAtom1075); if (state.failed) return ; 
    1696  
    1697             } 
    1698  
    1699         } 
    1700         catch (RecognitionException re) { 
    1701             reportError(re); 
    1702             recover(input,re); 
    1703         } 
    1704         finally { 
    1705             if ( state.backtracking>0 ) { memoize(input, 33, entryRuleAtom_StartIndex); } 
     1786            match(input,EOF,FOLLOW_EOF_in_entryRuleAtom1135); if (state.failed) return ; 
     1787 
     1788            } 
     1789 
     1790        } 
     1791        catch (RecognitionException re) { 
     1792            reportError(re); 
     1793            recover(input,re); 
     1794        } 
     1795        finally { 
     1796            if ( state.backtracking>0 ) { memoize(input, 35, entryRuleAtom_StartIndex); } 
    17061797        } 
    17071798        return ; 
     
    17111802 
    17121803    // $ANTLR start "ruleAtom" 
    1713     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:533:1: ruleAtom : ( ( rule__Atom__Alternatives ) ) ; 
     1804    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:561:1: ruleAtom : ( ( rule__Atom__Alternatives ) ) ; 
    17141805    public final void ruleAtom() throws RecognitionException { 
    17151806        int ruleAtom_StartIndex = input.index(); 
     
    17181809             
    17191810        try { 
    1720             if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return ; } 
    1721             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:537:2: ( ( ( rule__Atom__Alternatives ) ) ) 
    1722             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:538:1: ( ( rule__Atom__Alternatives ) ) 
    1723             { 
    1724             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:538:1: ( ( rule__Atom__Alternatives ) ) 
    1725             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:539:1: ( rule__Atom__Alternatives ) 
     1811            if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return ; } 
     1812            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:565:2: ( ( ( rule__Atom__Alternatives ) ) ) 
     1813            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:566:1: ( ( rule__Atom__Alternatives ) ) 
     1814            { 
     1815            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:566:1: ( ( rule__Atom__Alternatives ) ) 
     1816            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:567:1: ( rule__Atom__Alternatives ) 
    17261817            { 
    17271818            if ( state.backtracking==0 ) { 
    17281819               before(grammarAccess.getAtomAccess().getAlternatives());  
    17291820            } 
    1730             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:540:1: ( rule__Atom__Alternatives ) 
    1731             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:540:2: rule__Atom__Alternatives 
    1732             { 
    1733             pushFollow(FOLLOW_rule__Atom__Alternatives_in_ruleAtom1101); 
     1821            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:568:1: ( rule__Atom__Alternatives ) 
     1822            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:568:2: rule__Atom__Alternatives 
     1823            { 
     1824            pushFollow(FOLLOW_rule__Atom__Alternatives_in_ruleAtom1161); 
    17341825            rule__Atom__Alternatives(); 
    17351826 
     
    17541845        } 
    17551846        finally { 
    1756             if ( state.backtracking>0 ) { memoize(input, 34, ruleAtom_StartIndex); } 
     1847            if ( state.backtracking>0 ) { memoize(input, 36, ruleAtom_StartIndex); } 
    17571848 
    17581849                restoreStackSize(stackSize); 
     
    17651856 
    17661857    // $ANTLR start "entryRuleRuleReference" 
    1767     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:552:1: entryRuleRuleReference : ruleRuleReference EOF ; 
     1858    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:580:1: entryRuleRuleReference : ruleRuleReference EOF ; 
    17681859    public final void entryRuleRuleReference() throws RecognitionException { 
    17691860        int entryRuleRuleReference_StartIndex = input.index(); 
    17701861        try { 
    1771             if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return ; } 
    1772             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:553:1: ( ruleRuleReference EOF ) 
    1773             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:554:1: ruleRuleReference EOF 
     1862            if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return ; } 
     1863            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:581:1: ( ruleRuleReference EOF ) 
     1864            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:582:1: ruleRuleReference EOF 
    17741865            { 
    17751866            if ( state.backtracking==0 ) { 
    17761867               before(grammarAccess.getRuleReferenceRule());  
    17771868            } 
    1778             pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference1128); 
     1869            pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference1188); 
    17791870            ruleRuleReference(); 
    17801871 
     
    17841875               after(grammarAccess.getRuleReferenceRule());  
    17851876            } 
    1786             match(input,EOF,FOLLOW_EOF_in_entryRuleRuleReference1135); if (state.failed) return ; 
    1787  
    1788             } 
    1789  
    1790         } 
    1791         catch (RecognitionException re) { 
    1792             reportError(re); 
    1793             recover(input,re); 
    1794         } 
    1795         finally { 
    1796             if ( state.backtracking>0 ) { memoize(input, 35, entryRuleRuleReference_StartIndex); } 
     1877            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleReference1195); if (state.failed) return ; 
     1878 
     1879            } 
     1880 
     1881        } 
     1882        catch (RecognitionException re) { 
     1883            reportError(re); 
     1884            recover(input,re); 
     1885        } 
     1886        finally { 
     1887            if ( state.backtracking>0 ) { memoize(input, 37, entryRuleRuleReference_StartIndex); } 
    17971888        } 
    17981889        return ; 
     
    18021893 
    18031894    // $ANTLR start "ruleRuleReference" 
    1804     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:561:1: ruleRuleReference : ( ( rule__RuleReference__RulerefAssignment ) ) ; 
     1895    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:589:1: ruleRuleReference : ( ( rule__RuleReference__RulerefAssignment ) ) ; 
    18051896    public final void ruleRuleReference() throws RecognitionException { 
    18061897        int ruleRuleReference_StartIndex = input.index(); 
     
    18091900             
    18101901        try { 
    1811             if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return ; } 
    1812             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:565:2: ( ( ( rule__RuleReference__RulerefAssignment ) ) ) 
    1813             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:566:1: ( ( rule__RuleReference__RulerefAssignment ) ) 
    1814             { 
    1815             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:566:1: ( ( rule__RuleReference__RulerefAssignment ) ) 
    1816             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:567:1: ( rule__RuleReference__RulerefAssignment ) 
     1902            if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return ; } 
     1903            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:593:2: ( ( ( rule__RuleReference__RulerefAssignment ) ) ) 
     1904            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:594:1: ( ( rule__RuleReference__RulerefAssignment ) ) 
     1905            { 
     1906            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:594:1: ( ( rule__RuleReference__RulerefAssignment ) ) 
     1907            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:595:1: ( rule__RuleReference__RulerefAssignment ) 
    18171908            { 
    18181909            if ( state.backtracking==0 ) { 
    18191910               before(grammarAccess.getRuleReferenceAccess().getRulerefAssignment());  
    18201911            } 
    1821             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:568:1: ( rule__RuleReference__RulerefAssignment ) 
    1822             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:568:2: rule__RuleReference__RulerefAssignment 
    1823             { 
    1824             pushFollow(FOLLOW_rule__RuleReference__RulerefAssignment_in_ruleRuleReference1161); 
     1912            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:596:1: ( rule__RuleReference__RulerefAssignment ) 
     1913            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:596:2: rule__RuleReference__RulerefAssignment 
     1914            { 
     1915            pushFollow(FOLLOW_rule__RuleReference__RulerefAssignment_in_ruleRuleReference1221); 
    18251916            rule__RuleReference__RulerefAssignment(); 
    18261917 
     
    18451936        } 
    18461937        finally { 
    1847             if ( state.backtracking>0 ) { memoize(input, 36, ruleRuleReference_StartIndex); } 
     1938            if ( state.backtracking>0 ) { memoize(input, 38, ruleRuleReference_StartIndex); } 
    18481939 
    18491940                restoreStackSize(stackSize); 
     
    18561947 
    18571948    // $ANTLR start "entryRuleStringRule" 
    1858     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:580:1: entryRuleStringRule : ruleStringRule EOF ; 
     1949    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:608:1: entryRuleStringRule : ruleStringRule EOF ; 
    18591950    public final void entryRuleStringRule() throws RecognitionException { 
    18601951        int entryRuleStringRule_StartIndex = input.index(); 
    18611952        try { 
    1862             if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return ; } 
    1863             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:581:1: ( ruleStringRule EOF ) 
    1864             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:582:1: ruleStringRule EOF 
     1953            if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return ; } 
     1954            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:609:1: ( ruleStringRule EOF ) 
     1955            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:610:1: ruleStringRule EOF 
    18651956            { 
    18661957            if ( state.backtracking==0 ) { 
    18671958               before(grammarAccess.getStringRuleRule());  
    18681959            } 
    1869             pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule1188); 
     1960            pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule1248); 
    18701961            ruleStringRule(); 
    18711962 
     
    18751966               after(grammarAccess.getStringRuleRule());  
    18761967            } 
    1877             match(input,EOF,FOLLOW_EOF_in_entryRuleStringRule1195); if (state.failed) return ; 
    1878  
    1879             } 
    1880  
    1881         } 
    1882         catch (RecognitionException re) { 
    1883             reportError(re); 
    1884             recover(input,re); 
    1885         } 
    1886         finally { 
    1887             if ( state.backtracking>0 ) { memoize(input, 37, entryRuleStringRule_StartIndex); } 
     1968            match(input,EOF,FOLLOW_EOF_in_entryRuleStringRule1255); if (state.failed) return ; 
     1969 
     1970            } 
     1971 
     1972        } 
     1973        catch (RecognitionException re) { 
     1974            reportError(re); 
     1975            recover(input,re); 
     1976        } 
     1977        finally { 
     1978            if ( state.backtracking>0 ) { memoize(input, 39, entryRuleStringRule_StartIndex); } 
    18881979        } 
    18891980        return ; 
     
    18931984 
    18941985    // $ANTLR start "ruleStringRule" 
    1895     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:589:1: ruleStringRule : ( ( rule__StringRule__Alternatives ) ) ; 
     1986    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:617:1: ruleStringRule : ( ( rule__StringRule__Alternatives ) ) ; 
    18961987    public final void ruleStringRule() throws RecognitionException { 
    18971988        int ruleStringRule_StartIndex = input.index(); 
     
    19001991             
    19011992        try { 
    1902             if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return ; } 
    1903             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:593:2: ( ( ( rule__StringRule__Alternatives ) ) ) 
    1904             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:594:1: ( ( rule__StringRule__Alternatives ) ) 
    1905             { 
    1906             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:594:1: ( ( rule__StringRule__Alternatives ) ) 
    1907             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:595:1: ( rule__StringRule__Alternatives ) 
     1993            if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return ; } 
     1994            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:621:2: ( ( ( rule__StringRule__Alternatives ) ) ) 
     1995            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:622:1: ( ( rule__StringRule__Alternatives ) ) 
     1996            { 
     1997            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:622:1: ( ( rule__StringRule__Alternatives ) ) 
     1998            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:623:1: ( rule__StringRule__Alternatives ) 
    19081999            { 
    19092000            if ( state.backtracking==0 ) { 
    19102001               before(grammarAccess.getStringRuleAccess().getAlternatives());  
    19112002            } 
    1912             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:596:1: ( rule__StringRule__Alternatives ) 
    1913             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:596:2: rule__StringRule__Alternatives 
    1914             { 
    1915             pushFollow(FOLLOW_rule__StringRule__Alternatives_in_ruleStringRule1221); 
     2003            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:624:1: ( rule__StringRule__Alternatives ) 
     2004            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:624:2: rule__StringRule__Alternatives 
     2005            { 
     2006            pushFollow(FOLLOW_rule__StringRule__Alternatives_in_ruleStringRule1281); 
    19162007            rule__StringRule__Alternatives(); 
    19172008 
     
    19362027        } 
    19372028        finally { 
    1938             if ( state.backtracking>0 ) { memoize(input, 38, ruleStringRule_StartIndex); } 
     2029            if ( state.backtracking>0 ) { memoize(input, 40, ruleStringRule_StartIndex); } 
    19392030 
    19402031                restoreStackSize(stackSize); 
     
    19472038 
    19482039    // $ANTLR start "entryRuleGroupedSequence" 
    1949     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:608:1: entryRuleGroupedSequence : ruleGroupedSequence EOF ; 
     2040    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:636:1: entryRuleGroupedSequence : ruleGroupedSequence EOF ; 
    19502041    public final void entryRuleGroupedSequence() throws RecognitionException { 
    19512042        int entryRuleGroupedSequence_StartIndex = input.index(); 
    19522043        try { 
    1953             if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return ; } 
    1954             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:609:1: ( ruleGroupedSequence EOF ) 
    1955             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:610:1: ruleGroupedSequence EOF 
     2044            if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return ; } 
     2045            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:637:1: ( ruleGroupedSequence EOF ) 
     2046            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:638:1: ruleGroupedSequence EOF 
    19562047            { 
    19572048            if ( state.backtracking==0 ) { 
    19582049               before(grammarAccess.getGroupedSequenceRule());  
    19592050            } 
    1960             pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1248); 
     2051            pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1308); 
    19612052            ruleGroupedSequence(); 
    19622053 
     
    19662057               after(grammarAccess.getGroupedSequenceRule());  
    19672058            } 
    1968             match(input,EOF,FOLLOW_EOF_in_entryRuleGroupedSequence1255); if (state.failed) return ; 
    1969  
    1970             } 
    1971  
    1972         } 
    1973         catch (RecognitionException re) { 
    1974             reportError(re); 
    1975             recover(input,re); 
    1976         } 
    1977         finally { 
    1978             if ( state.backtracking>0 ) { memoize(input, 39, entryRuleGroupedSequence_StartIndex); } 
     2059            match(input,EOF,FOLLOW_EOF_in_entryRuleGroupedSequence1315); if (state.failed) return ; 
     2060 
     2061            } 
     2062 
     2063        } 
     2064        catch (RecognitionException re) { 
     2065            reportError(re); 
     2066            recover(input,re); 
     2067        } 
     2068        finally { 
     2069            if ( state.backtracking>0 ) { memoize(input, 41, entryRuleGroupedSequence_StartIndex); } 
    19792070        } 
    19802071        return ; 
     
    19842075 
    19852076    // $ANTLR start "ruleGroupedSequence" 
    1986     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:617:1: ruleGroupedSequence : ( ( rule__GroupedSequence__Group__0 ) ) ; 
     2077    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:645:1: ruleGroupedSequence : ( ( rule__GroupedSequence__Group__0 ) ) ; 
    19872078    public final void ruleGroupedSequence() throws RecognitionException { 
    19882079        int ruleGroupedSequence_StartIndex = input.index(); 
     
    19912082             
    19922083        try { 
    1993             if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return ; } 
    1994             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:621:2: ( ( ( rule__GroupedSequence__Group__0 ) ) ) 
    1995             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:622:1: ( ( rule__GroupedSequence__Group__0 ) ) 
    1996             { 
    1997             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:622:1: ( ( rule__GroupedSequence__Group__0 ) ) 
    1998             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:623:1: ( rule__GroupedSequence__Group__0 ) 
     2084            if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return ; } 
     2085            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:649:2: ( ( ( rule__GroupedSequence__Group__0 ) ) ) 
     2086            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:650:1: ( ( rule__GroupedSequence__Group__0 ) ) 
     2087            { 
     2088            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:650:1: ( ( rule__GroupedSequence__Group__0 ) ) 
     2089            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:651:1: ( rule__GroupedSequence__Group__0 ) 
    19992090            { 
    20002091            if ( state.backtracking==0 ) { 
    20012092               before(grammarAccess.getGroupedSequenceAccess().getGroup());  
    20022093            } 
    2003             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:624:1: ( rule__GroupedSequence__Group__0 ) 
    2004             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:624:2: rule__GroupedSequence__Group__0 
    2005             { 
    2006             pushFollow(FOLLOW_rule__GroupedSequence__Group__0_in_ruleGroupedSequence1281); 
     2094            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:652:1: ( rule__GroupedSequence__Group__0 ) 
     2095            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:652:2: rule__GroupedSequence__Group__0 
     2096            { 
     2097            pushFollow(FOLLOW_rule__GroupedSequence__Group__0_in_ruleGroupedSequence1341); 
    20072098            rule__GroupedSequence__Group__0(); 
    20082099 
     
    20272118        } 
    20282119        finally { 
    2029             if ( state.backtracking>0 ) { memoize(input, 40, ruleGroupedSequence_StartIndex); } 
     2120            if ( state.backtracking>0 ) { memoize(input, 42, ruleGroupedSequence_StartIndex); } 
    20302121 
    20312122                restoreStackSize(stackSize); 
     
    20382129 
    20392130    // $ANTLR start "entryRuleOptionalSequence" 
    2040     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:636:1: entryRuleOptionalSequence : ruleOptionalSequence EOF ; 
     2131    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:664:1: entryRuleOptionalSequence : ruleOptionalSequence EOF ; 
    20412132    public final void entryRuleOptionalSequence() throws RecognitionException { 
    20422133        int entryRuleOptionalSequence_StartIndex = input.index(); 
    20432134        try { 
    2044             if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return ; } 
    2045             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:637:1: ( ruleOptionalSequence EOF ) 
    2046             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:638:1: ruleOptionalSequence EOF 
     2135            if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return ; } 
     2136            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:665:1: ( ruleOptionalSequence EOF ) 
     2137            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:666:1: ruleOptionalSequence EOF 
    20472138            { 
    20482139            if ( state.backtracking==0 ) { 
    20492140               before(grammarAccess.getOptionalSequenceRule());  
    20502141            } 
    2051             pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1308); 
     2142            pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1368); 
    20522143            ruleOptionalSequence(); 
    20532144 
     
    20572148               after(grammarAccess.getOptionalSequenceRule());  
    20582149            } 
    2059             match(input,EOF,FOLLOW_EOF_in_entryRuleOptionalSequence1315); if (state.failed) return ; 
    2060  
    2061             } 
    2062  
    2063         } 
    2064         catch (RecognitionException re) { 
    2065             reportError(re); 
    2066             recover(input,re); 
    2067         } 
    2068         finally { 
    2069             if ( state.backtracking>0 ) { memoize(input, 41, entryRuleOptionalSequence_StartIndex); } 
     2150            match(input,EOF,FOLLOW_EOF_in_entryRuleOptionalSequence1375); if (state.failed) return ; 
     2151 
     2152            } 
     2153 
     2154        } 
     2155        catch (RecognitionException re) { 
     2156            reportError(re); 
     2157            recover(input,re); 
     2158        } 
     2159        finally { 
     2160            if ( state.backtracking>0 ) { memoize(input, 43, entryRuleOptionalSequence_StartIndex); } 
    20702161        } 
    20712162        return ; 
     
    20752166 
    20762167    // $ANTLR start "ruleOptionalSequence" 
    2077     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:645:1: ruleOptionalSequence : ( ( rule__OptionalSequence__Group__0 ) ) ; 
     2168    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:673:1: ruleOptionalSequence : ( ( rule__OptionalSequence__Group__0 ) ) ; 
    20782169    public final void ruleOptionalSequence() throws RecognitionException { 
    20792170        int ruleOptionalSequence_StartIndex = input.index(); 
     
    20822173             
    20832174        try { 
    2084             if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return ; } 
    2085             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:649:2: ( ( ( rule__OptionalSequence__Group__0 ) ) ) 
    2086             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:650:1: ( ( rule__OptionalSequence__Group__0 ) ) 
    2087             { 
    2088             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:650:1: ( ( rule__OptionalSequence__Group__0 ) ) 
    2089             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:651:1: ( rule__OptionalSequence__Group__0 ) 
     2175            if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return ; } 
     2176            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:677:2: ( ( ( rule__OptionalSequence__Group__0 ) ) ) 
     2177            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:678:1: ( ( rule__OptionalSequence__Group__0 ) ) 
     2178            { 
     2179            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:678:1: ( ( rule__OptionalSequence__Group__0 ) ) 
     2180            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:679:1: ( rule__OptionalSequence__Group__0 ) 
    20902181            { 
    20912182            if ( state.backtracking==0 ) { 
    20922183               before(grammarAccess.getOptionalSequenceAccess().getGroup());  
    20932184            } 
    2094             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:652:1: ( rule__OptionalSequence__Group__0 ) 
    2095             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:652:2: rule__OptionalSequence__Group__0 
    2096             { 
    2097             pushFollow(FOLLOW_rule__OptionalSequence__Group__0_in_ruleOptionalSequence1341); 
     2185            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:680:1: ( rule__OptionalSequence__Group__0 ) 
     2186            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:680:2: rule__OptionalSequence__Group__0 
     2187            { 
     2188            pushFollow(FOLLOW_rule__OptionalSequence__Group__0_in_ruleOptionalSequence1401); 
    20982189            rule__OptionalSequence__Group__0(); 
    20992190 
     
    21182209        } 
    21192210        finally { 
    2120             if ( state.backtracking>0 ) { memoize(input, 42, ruleOptionalSequence_StartIndex); } 
     2211            if ( state.backtracking>0 ) { memoize(input, 44, ruleOptionalSequence_StartIndex); } 
    21212212 
    21222213                restoreStackSize(stackSize); 
     
    21292220 
    21302221    // $ANTLR start "entryRuleRepeatedSequence" 
    2131     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:664:1: entryRuleRepeatedSequence : ruleRepeatedSequence EOF ; 
     2222    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:692:1: entryRuleRepeatedSequence : ruleRepeatedSequence EOF ; 
    21322223    public final void entryRuleRepeatedSequence() throws RecognitionException { 
    21332224        int entryRuleRepeatedSequence_StartIndex = input.index(); 
    21342225        try { 
    2135             if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return ; } 
    2136             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:665:1: ( ruleRepeatedSequence EOF ) 
    2137             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:666:1: ruleRepeatedSequence EOF 
     2226            if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return ; } 
     2227            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:693:1: ( ruleRepeatedSequence EOF ) 
     2228            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:694:1: ruleRepeatedSequence EOF 
    21382229            { 
    21392230            if ( state.backtracking==0 ) { 
    21402231               before(grammarAccess.getRepeatedSequenceRule());  
    21412232            } 
    2142             pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1368); 
     2233            pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1428); 
    21432234            ruleRepeatedSequence(); 
    21442235 
     
    21482239               after(grammarAccess.getRepeatedSequenceRule());  
    21492240            } 
    2150             match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatedSequence1375); if (state.failed) return ; 
    2151  
    2152             } 
    2153  
    2154         } 
    2155         catch (RecognitionException re) { 
    2156             reportError(re); 
    2157             recover(input,re); 
    2158         } 
    2159         finally { 
    2160             if ( state.backtracking>0 ) { memoize(input, 43, entryRuleRepeatedSequence_StartIndex); } 
     2241            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatedSequence1435); if (state.failed) return ; 
     2242 
     2243            } 
     2244 
     2245        } 
     2246        catch (RecognitionException re) { 
     2247            reportError(re); 
     2248            recover(input,re); 
     2249        } 
     2250        finally { 
     2251            if ( state.backtracking>0 ) { memoize(input, 45, entryRuleRepeatedSequence_StartIndex); } 
    21612252        } 
    21622253        return ; 
     
    21662257 
    21672258    // $ANTLR start "ruleRepeatedSequence" 
    2168     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:673:1: ruleRepeatedSequence : ( ( rule__RepeatedSequence__Group__0 ) ) ; 
     2259    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:701:1: ruleRepeatedSequence : ( ( rule__RepeatedSequence__Group__0 ) ) ; 
    21692260    public final void ruleRepeatedSequence() throws RecognitionException { 
    21702261        int ruleRepeatedSequence_StartIndex = input.index(); 
     
    21732264             
    21742265        try { 
    2175             if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return ; } 
    2176             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:677:2: ( ( ( rule__RepeatedSequence__Group__0 ) ) ) 
    2177             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:678:1: ( ( rule__RepeatedSequence__Group__0 ) ) 
    2178             { 
    2179             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:678:1: ( ( rule__RepeatedSequence__Group__0 ) ) 
    2180             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:679:1: ( rule__RepeatedSequence__Group__0 ) 
     2266            if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return ; } 
     2267            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:705:2: ( ( ( rule__RepeatedSequence__Group__0 ) ) ) 
     2268            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:706:1: ( ( rule__RepeatedSequence__Group__0 ) ) 
     2269            { 
     2270            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:706:1: ( ( rule__RepeatedSequence__Group__0 ) ) 
     2271            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:707:1: ( rule__RepeatedSequence__Group__0 ) 
    21812272            { 
    21822273            if ( state.backtracking==0 ) { 
    21832274               before(grammarAccess.getRepeatedSequenceAccess().getGroup());  
    21842275            } 
    2185             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:680:1: ( rule__RepeatedSequence__Group__0 ) 
    2186             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:680:2: rule__RepeatedSequence__Group__0 
    2187             { 
    2188             pushFollow(FOLLOW_rule__RepeatedSequence__Group__0_in_ruleRepeatedSequence1401); 
     2276            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:708:1: ( rule__RepeatedSequence__Group__0 ) 
     2277            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:708:2: rule__RepeatedSequence__Group__0 
     2278            { 
     2279            pushFollow(FOLLOW_rule__RepeatedSequence__Group__0_in_ruleRepeatedSequence1461); 
    21892280            rule__RepeatedSequence__Group__0(); 
    21902281 
     
    22092300        } 
    22102301        finally { 
    2211             if ( state.backtracking>0 ) { memoize(input, 44, ruleRepeatedSequence_StartIndex); } 
     2302            if ( state.backtracking>0 ) { memoize(input, 46, ruleRepeatedSequence_StartIndex); } 
    22122303 
    22132304                restoreStackSize(stackSize); 
     
    22202311 
    22212312    // $ANTLR start "entryRuleRepeatRange" 
    2222     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:692:1: entryRuleRepeatRange : ruleRepeatRange EOF ; 
     2313    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:720:1: entryRuleRepeatRange : ruleRepeatRange EOF ; 
    22232314    public final void entryRuleRepeatRange() throws RecognitionException { 
    22242315        int entryRuleRepeatRange_StartIndex = input.index(); 
    22252316        try { 
    2226             if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return ; } 
    2227             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:693:1: ( ruleRepeatRange EOF ) 
    2228             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:694:1: ruleRepeatRange EOF 
     2317            if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return ; } 
     2318            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:721:1: ( ruleRepeatRange EOF ) 
     2319            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:722:1: ruleRepeatRange EOF 
    22292320            { 
    22302321            if ( state.backtracking==0 ) { 
    22312322               before(grammarAccess.getRepeatRangeRule());  
    22322323            } 
    2233             pushFollow(FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange1428); 
     2324            pushFollow(FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange1488); 
    22342325            ruleRepeatRange(); 
    22352326 
     
    22392330               after(grammarAccess.getRepeatRangeRule());  
    22402331            } 
    2241             match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatRange1435); if (state.failed) return ; 
    2242  
    2243             } 
    2244  
    2245         } 
    2246         catch (RecognitionException re) { 
    2247             reportError(re); 
    2248             recover(input,re); 
    2249         } 
    2250         finally { 
    2251             if ( state.backtracking>0 ) { memoize(input, 45, entryRuleRepeatRange_StartIndex); } 
     2332            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatRange1495); if (state.failed) return ; 
     2333 
     2334            } 
     2335 
     2336        } 
     2337        catch (RecognitionException re) { 
     2338            reportError(re); 
     2339            recover(input,re); 
     2340        } 
     2341        finally { 
     2342            if ( state.backtracking>0 ) { memoize(input, 47, entryRuleRepeatRange_StartIndex); } 
    22522343        } 
    22532344        return ; 
     
    22572348 
    22582349    // $ANTLR start "ruleRepeatRange" 
    2259     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:701:1: ruleRepeatRange : ( ( rule__RepeatRange__Group__0 ) ) ; 
     2350    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:729:1: ruleRepeatRange : ( ( rule__RepeatRange__Group__0 ) ) ; 
    22602351    public final void ruleRepeatRange() throws RecognitionException { 
    22612352        int ruleRepeatRange_StartIndex = input.index(); 
     
    22642355             
    22652356        try { 
    2266             if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return ; } 
    2267             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:705:2: ( ( ( rule__RepeatRange__Group__0 ) ) ) 
    2268             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:706:1: ( ( rule__RepeatRange__Group__0 ) ) 
    2269             { 
    2270             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:706:1: ( ( rule__RepeatRange__Group__0 ) ) 
    2271             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:707:1: ( rule__RepeatRange__Group__0 ) 
     2357            if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return ; } 
     2358            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:733:2: ( ( ( rule__RepeatRange__Group__0 ) ) ) 
     2359            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:734:1: ( ( rule__RepeatRange__Group__0 ) ) 
     2360            { 
     2361            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:734:1: ( ( rule__RepeatRange__Group__0 ) ) 
     2362            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:735:1: ( rule__RepeatRange__Group__0 ) 
    22722363            { 
    22732364            if ( state.backtracking==0 ) { 
    22742365               before(grammarAccess.getRepeatRangeAccess().getGroup());  
    22752366            } 
    2276             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:708:1: ( rule__RepeatRange__Group__0 ) 
    2277             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:708:2: rule__RepeatRange__Group__0 
    2278             { 
    2279             pushFollow(FOLLOW_rule__RepeatRange__Group__0_in_ruleRepeatRange1461); 
     2367            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:736:1: ( rule__RepeatRange__Group__0 ) 
     2368            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:736:2: rule__RepeatRange__Group__0 
     2369            { 
     2370            pushFollow(FOLLOW_rule__RepeatRange__Group__0_in_ruleRepeatRange1521); 
    22802371            rule__RepeatRange__Group__0(); 
    22812372 
     
    23002391        } 
    23012392        finally { 
    2302             if ( state.backtracking>0 ) { memoize(input, 46, ruleRepeatRange_StartIndex); } 
     2393            if ( state.backtracking>0 ) { memoize(input, 48, ruleRepeatRange_StartIndex); } 
    23032394 
    23042395                restoreStackSize(stackSize); 
     
    23112402 
    23122403    // $ANTLR start "rule__EtsiBnf__Alternatives" 
    2313     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:720:1: rule__EtsiBnf__Alternatives : ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) ); 
     2404    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:748:1: rule__EtsiBnf__Alternatives : ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) ); 
    23142405    public final void rule__EtsiBnf__Alternatives() throws RecognitionException { 
    23152406        int rule__EtsiBnf__Alternatives_StartIndex = input.index(); 
     
    23182409             
    23192410        try { 
    2320             if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return ; } 
    2321             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:724:1: ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) ) 
     2411            if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return ; } 
     2412            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:752:1: ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) ) 
    23222413            int alt3=3; 
    23232414            switch ( input.LA(1) ) { 
     
    23472438            switch (alt3) { 
    23482439                case 1 : 
    2349                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:725:1: ( ( rule__EtsiBnf__Group_0__0 ) ) 
     2440                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:753:1: ( ( rule__EtsiBnf__Group_0__0 ) ) 
    23502441                    { 
    2351                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:725:1: ( ( rule__EtsiBnf__Group_0__0 ) ) 
    2352                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:726:1: ( rule__EtsiBnf__Group_0__0 ) 
     2442                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:753:1: ( ( rule__EtsiBnf__Group_0__0 ) ) 
     2443                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:754:1: ( rule__EtsiBnf__Group_0__0 ) 
    23532444                    { 
    23542445                    if ( state.backtracking==0 ) { 
    23552446                       before(grammarAccess.getEtsiBnfAccess().getGroup_0());  
    23562447                    } 
    2357                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:727:1: ( rule__EtsiBnf__Group_0__0 ) 
    2358                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:727:2: rule__EtsiBnf__Group_0__0 
     2448                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:755:1: ( rule__EtsiBnf__Group_0__0 ) 
     2449                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:755:2: rule__EtsiBnf__Group_0__0 
    23592450                    { 
    2360                     pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1497); 
     2451                    pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1557); 
    23612452                    rule__EtsiBnf__Group_0__0(); 
    23622453 
     
    23762467                    break; 
    23772468                case 2 : 
    2378                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:731:6: ( ( rule__EtsiBnf__Group_1__0 ) ) 
     2469                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:759:6: ( ( rule__EtsiBnf__Group_1__0 ) ) 
    23792470                    { 
    2380                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:731:6: ( ( rule__EtsiBnf__Group_1__0 ) ) 
    2381                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:732:1: ( rule__EtsiBnf__Group_1__0 ) 
     2471                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:759:6: ( ( rule__EtsiBnf__Group_1__0 ) ) 
     2472                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:760:1: ( rule__EtsiBnf__Group_1__0 ) 
    23822473                    { 
    23832474                    if ( state.backtracking==0 ) { 
    23842475                       before(grammarAccess.getEtsiBnfAccess().getGroup_1());  
    23852476                    } 
    2386                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:733:1: ( rule__EtsiBnf__Group_1__0 ) 
    2387                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:733:2: rule__EtsiBnf__Group_1__0 
     2477                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:761:1: ( rule__EtsiBnf__Group_1__0 ) 
     2478                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:761:2: rule__EtsiBnf__Group_1__0 
    23882479                    { 
    2389                     pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1515); 
     2480                    pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1575); 
    23902481                    rule__EtsiBnf__Group_1__0(); 
    23912482 
     
    24052496                    break; 
    24062497                case 3 : 
    2407                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:737:6: ( ( rule__EtsiBnf__Group_2__0 ) ) 
     2498                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:765:6: ( ( rule__EtsiBnf__Group_2__0 ) ) 
    24082499                    { 
    2409                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:737:6: ( ( rule__EtsiBnf__Group_2__0 ) ) 
    2410                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:738:1: ( rule__EtsiBnf__Group_2__0 ) 
     2500                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:765:6: ( ( rule__EtsiBnf__Group_2__0 ) ) 
     2501                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:766:1: ( rule__EtsiBnf__Group_2__0 ) 
    24112502                    { 
    24122503                    if ( state.backtracking==0 ) { 
    24132504                       before(grammarAccess.getEtsiBnfAccess().getGroup_2());  
    24142505                    } 
    2415                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:739:1: ( rule__EtsiBnf__Group_2__0 ) 
    2416                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:739:2: rule__EtsiBnf__Group_2__0 
     2506                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:767:1: ( rule__EtsiBnf__Group_2__0 ) 
     2507                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:767:2: rule__EtsiBnf__Group_2__0 
    24172508                    { 
    2418                     pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1533); 
     2509                    pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1593); 
    24192510                    rule__EtsiBnf__Group_2__0(); 
    24202511 
     
    24412532        } 
    24422533        finally { 
    2443             if ( state.backtracking>0 ) { memoize(input, 47, rule__EtsiBnf__Alternatives_StartIndex); } 
     2534            if ( state.backtracking>0 ) { memoize(input, 49, rule__EtsiBnf__Alternatives_StartIndex); } 
    24442535 
    24452536                restoreStackSize(stackSize); 
     
    24522543 
    24532544    // $ANTLR start "rule__BnfEntry__Alternatives" 
    2454     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:748:1: rule__BnfEntry__Alternatives : ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) ); 
     2545    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:776:1: rule__BnfEntry__Alternatives : ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) | ( ( rule__BnfEntry__CommentAssignment_2 ) ) ); 
    24552546    public final void rule__BnfEntry__Alternatives() throws RecognitionException { 
    24562547        int rule__BnfEntry__Alternatives_StartIndex = input.index(); 
     
    24592550             
    24602551        try { 
    2461             if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return ; } 
    2462             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:752:1: ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) ) 
    2463             int alt4=2; 
    2464             int LA4_0 = input.LA(1); 
    2465  
    2466             if ( (LA4_0==RULE_SECTIONHEADER) ) { 
     2552            if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return ; } 
     2553            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:780:1: ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) | ( ( rule__BnfEntry__CommentAssignment_2 ) ) ) 
     2554            int alt4=3; 
     2555            switch ( input.LA(1) ) { 
     2556            case RULE_SECTIONHEADER: 
     2557                { 
    24672558                alt4=1; 
    2468             } 
    2469             else if ( (LA4_0==RULE_ID||LA4_0==RULE_INT) ) { 
     2559                } 
     2560                break; 
     2561            case RULE_ID: 
     2562            case RULE_INT: 
     2563                { 
    24702564                alt4=2; 
    2471             } 
    2472             else { 
     2565                } 
     2566                break; 
     2567            case RULE_ML_COMMENT: 
     2568                { 
     2569                alt4=3; 
     2570                } 
     2571                break; 
     2572            default: 
    24732573                if (state.backtracking>0) {state.failed=true; return ;} 
    24742574                NoViableAltException nvae = 
     
    24772577                throw nvae; 
    24782578            } 
     2579 
    24792580            switch (alt4) { 
    24802581                case 1 : 
    2481                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:753:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) 
     2582                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) 
    24822583                    { 
    2483                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:753:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) 
    2484                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:754:1: ( rule__BnfEntry__SectionheaderAssignment_0 ) 
     2584                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) 
     2585                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:782:1: ( rule__BnfEntry__SectionheaderAssignment_0 ) 
    24852586                    { 
    24862587                    if ( state.backtracking==0 ) { 
    24872588                       before(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0());  
    24882589                    } 
    2489                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:755:1: ( rule__BnfEntry__SectionheaderAssignment_0 ) 
    2490                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:755:2: rule__BnfEntry__SectionheaderAssignment_0 
     2590                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:1: ( rule__BnfEntry__SectionheaderAssignment_0 ) 
     2591                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:2: rule__BnfEntry__SectionheaderAssignment_0 
    24912592                    { 
    2492                     pushFollow(FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1566); 
     2593                    pushFollow(FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1626); 
    24932594                    rule__BnfEntry__SectionheaderAssignment_0(); 
    24942595 
     
    25082609                    break; 
    25092610                case 2 : 
    2510                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:759:6: ( ( rule__BnfEntry__RuleAssignment_1 ) ) 
     2611                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__BnfEntry__RuleAssignment_1 ) ) 
    25112612                    { 
    2512                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:759:6: ( ( rule__BnfEntry__RuleAssignment_1 ) ) 
    2513                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:760:1: ( rule__BnfEntry__RuleAssignment_1 ) 
     2613                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__BnfEntry__RuleAssignment_1 ) ) 
     2614                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:788:1: ( rule__BnfEntry__RuleAssignment_1 ) 
    25142615                    { 
    25152616                    if ( state.backtracking==0 ) { 
    25162617                       before(grammarAccess.getBnfEntryAccess().getRuleAssignment_1());  
    25172618                    } 
    2518                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:761:1: ( rule__BnfEntry__RuleAssignment_1 ) 
    2519                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:761:2: rule__BnfEntry__RuleAssignment_1 
     2619                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:1: ( rule__BnfEntry__RuleAssignment_1 ) 
     2620                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:2: rule__BnfEntry__RuleAssignment_1 
    25202621                    { 
    2521                     pushFollow(FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1584); 
     2622                    pushFollow(FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1644); 
    25222623                    rule__BnfEntry__RuleAssignment_1(); 
    25232624 
     
    25362637                    } 
    25372638                    break; 
    2538  
    2539             } 
    2540         } 
    2541         catch (RecognitionException re) { 
    2542             reportError(re); 
    2543             recover(input,re); 
    2544         } 
    2545         finally { 
    2546             if ( state.backtracking>0 ) { memoize(input, 48, rule__BnfEntry__Alternatives_StartIndex); } 
     2639                case 3 : 
     2640                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:793:6: ( ( rule__BnfEntry__CommentAssignment_2 ) ) 
     2641                    { 
     2642                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:793:6: ( ( rule__BnfEntry__CommentAssignment_2 ) ) 
     2643                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:794:1: ( rule__BnfEntry__CommentAssignment_2 ) 
     2644                    { 
     2645                    if ( state.backtracking==0 ) { 
     2646                       before(grammarAccess.getBnfEntryAccess().getCommentAssignment_2());  
     2647                    } 
     2648                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:795:1: ( rule__BnfEntry__CommentAssignment_2 ) 
     2649                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:795:2: rule__BnfEntry__CommentAssignment_2 
     2650                    { 
     2651                    pushFollow(FOLLOW_rule__BnfEntry__CommentAssignment_2_in_rule__BnfEntry__Alternatives1662); 
     2652                    rule__BnfEntry__CommentAssignment_2(); 
     2653 
     2654                    state._fsp--; 
     2655                    if (state.failed) return ; 
     2656 
     2657                    } 
     2658 
     2659                    if ( state.backtracking==0 ) { 
     2660                       after(grammarAccess.getBnfEntryAccess().getCommentAssignment_2());  
     2661                    } 
     2662 
     2663                    } 
     2664 
     2665 
     2666                    } 
     2667                    break; 
     2668 
     2669            } 
     2670        } 
     2671        catch (RecognitionException re) { 
     2672            reportError(re); 
     2673            recover(input,re); 
     2674        } 
     2675        finally { 
     2676            if ( state.backtracking>0 ) { memoize(input, 50, rule__BnfEntry__Alternatives_StartIndex); } 
    25472677 
    25482678                restoreStackSize(stackSize); 
     
    25552685 
    25562686    // $ANTLR start "rule__DeltaEntry__Alternatives" 
    2557     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:770:1: rule__DeltaEntry__Alternatives : ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) ); 
     2687    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:804:1: rule__DeltaEntry__Alternatives : ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) ); 
    25582688    public final void rule__DeltaEntry__Alternatives() throws RecognitionException { 
    25592689        int rule__DeltaEntry__Alternatives_StartIndex = input.index(); 
     
    25622692             
    25632693        try { 
    2564             if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return ; } 
    2565             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:774:1: ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) ) 
     2694            if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return ; } 
     2695            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:808:1: ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) ) 
    25662696            int alt5=3; 
    25672697            switch ( input.LA(1) ) { 
     
    26802810            switch (alt5) { 
    26812811                case 1 : 
    2682                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:775:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) ) 
     2812                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) ) 
    26832813                    { 
    2684                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:775:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) ) 
    2685                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:776:1: ( rule__DeltaEntry__RuleAssignment_0 ) 
     2814                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) ) 
     2815                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:810:1: ( rule__DeltaEntry__RuleAssignment_0 ) 
    26862816                    { 
    26872817                    if ( state.backtracking==0 ) { 
    26882818                       before(grammarAccess.getDeltaEntryAccess().getRuleAssignment_0());  
    26892819                    } 
    2690                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:777:1: ( rule__DeltaEntry__RuleAssignment_0 ) 
    2691                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:777:2: rule__DeltaEntry__RuleAssignment_0 
     2820                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:1: ( rule__DeltaEntry__RuleAssignment_0 ) 
     2821                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:2: rule__DeltaEntry__RuleAssignment_0 
    26922822                    { 
    2693                     pushFollow(FOLLOW_rule__DeltaEntry__RuleAssignment_0_in_rule__DeltaEntry__Alternatives1617); 
     2823                    pushFollow(FOLLOW_rule__DeltaEntry__RuleAssignment_0_in_rule__DeltaEntry__Alternatives1695); 
    26942824                    rule__DeltaEntry__RuleAssignment_0(); 
    26952825 
     
    27092839                    break; 
    27102840                case 2 : 
    2711                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) 
     2841                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:815:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) 
    27122842                    { 
    2713                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) 
    2714                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:782:1: ( rule__DeltaEntry__SectionheaderAssignment_1 ) 
     2843                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:815:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) 
     2844                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:816:1: ( rule__DeltaEntry__SectionheaderAssignment_1 ) 
    27152845                    { 
    27162846                    if ( state.backtracking==0 ) { 
    27172847                       before(grammarAccess.getDeltaEntryAccess().getSectionheaderAssignment_1());  
    27182848                    } 
    2719                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:1: ( rule__DeltaEntry__SectionheaderAssignment_1 ) 
    2720                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:2: rule__DeltaEntry__SectionheaderAssignment_1 
     2849                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:817:1: ( rule__DeltaEntry__SectionheaderAssignment_1 ) 
     2850                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:817:2: rule__DeltaEntry__SectionheaderAssignment_1 
    27212851                    { 
    2722                     pushFollow(FOLLOW_rule__DeltaEntry__SectionheaderAssignment_1_in_rule__DeltaEntry__Alternatives1635); 
     2852                    pushFollow(FOLLOW_rule__DeltaEntry__SectionheaderAssignment_1_in_rule__DeltaEntry__Alternatives1713); 
    27232853                    rule__DeltaEntry__SectionheaderAssignment_1(); 
    27242854 
     
    27382868                    break; 
    27392869                case 3 : 
    2740                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) 
     2870                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:821:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) 
    27412871                    { 
    2742                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) 
    2743                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:788:1: ( rule__DeltaEntry__ExtRuleAssignment_2 ) 
     2872                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:821:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) 
     2873                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:822:1: ( rule__DeltaEntry__ExtRuleAssignment_2 ) 
    27442874                    { 
    27452875                    if ( state.backtracking==0 ) { 
    27462876                       before(grammarAccess.getDeltaEntryAccess().getExtRuleAssignment_2());  
    27472877                    } 
    2748                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:1: ( rule__DeltaEntry__ExtRuleAssignment_2 ) 
    2749                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:2: rule__DeltaEntry__ExtRuleAssignment_2 
     2878                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:823:1: ( rule__DeltaEntry__ExtRuleAssignment_2 ) 
     2879                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:823:2: rule__DeltaEntry__ExtRuleAssignment_2 
    27502880                    { 
    2751                     pushFollow(FOLLOW_rule__DeltaEntry__ExtRuleAssignment_2_in_rule__DeltaEntry__Alternatives1653); 
     2881                    pushFollow(FOLLOW_rule__DeltaEntry__ExtRuleAssignment_2_in_rule__DeltaEntry__Alternatives1731); 
    27522882                    rule__DeltaEntry__ExtRuleAssignment_2(); 
    27532883 
     
    27742904        } 
    27752905        finally { 
    2776             if ( state.backtracking>0 ) { memoize(input, 49, rule__DeltaEntry__Alternatives_StartIndex); } 
     2906            if ( state.backtracking>0 ) { memoize(input, 51, rule__DeltaEntry__Alternatives_StartIndex); } 
    27772907 
    27782908                restoreStackSize(stackSize); 
     
    27852915 
    27862916    // $ANTLR start "rule__MergeEntry__Alternatives" 
    2787     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:798:1: rule__MergeEntry__Alternatives : ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) ); 
     2917    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:832:1: rule__MergeEntry__Alternatives : ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) ); 
    27882918    public final void rule__MergeEntry__Alternatives() throws RecognitionException { 
    27892919        int rule__MergeEntry__Alternatives_StartIndex = input.index(); 
     
    27922922             
    27932923        try { 
    2794             if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return ; } 
    2795             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:802:1: ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) ) 
     2924            if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return ; } 
     2925            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:836:1: ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) ) 
    27962926            int alt6=2; 
    27972927            int LA6_0 = input.LA(1); 
     
    28122942            switch (alt6) { 
    28132943                case 1 : 
    2814                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:803:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) 
     2944                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) 
    28152945                    { 
    2816                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:803:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) 
    2817                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:804:1: ( rule__MergeEntry__SectionheaderAssignment_0 ) 
     2946                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) 
     2947                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:838:1: ( rule__MergeEntry__SectionheaderAssignment_0 ) 
    28182948                    { 
    28192949                    if ( state.backtracking==0 ) { 
    28202950                       before(grammarAccess.getMergeEntryAccess().getSectionheaderAssignment_0());  
    28212951                    } 
    2822                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:805:1: ( rule__MergeEntry__SectionheaderAssignment_0 ) 
    2823                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:805:2: rule__MergeEntry__SectionheaderAssignment_0 
     2952                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:1: ( rule__MergeEntry__SectionheaderAssignment_0 ) 
     2953                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:2: rule__MergeEntry__SectionheaderAssignment_0 
    28242954                    { 
    2825                     pushFollow(FOLLOW_rule__MergeEntry__SectionheaderAssignment_0_in_rule__MergeEntry__Alternatives1686); 
     2955                    pushFollow(FOLLOW_rule__MergeEntry__SectionheaderAssignment_0_in_rule__MergeEntry__Alternatives1764); 
    28262956                    rule__MergeEntry__SectionheaderAssignment_0(); 
    28272957 
     
    28412971                    break; 
    28422972                case 2 : 
    2843                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) 
     2973                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:843:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) 
    28442974                    { 
    2845                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) 
    2846                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:810:1: ( rule__MergeEntry__MergeRuleAssignment_1 ) 
     2975                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:843:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) 
     2976                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:844:1: ( rule__MergeEntry__MergeRuleAssignment_1 ) 
    28472977                    { 
    28482978                    if ( state.backtracking==0 ) { 
    28492979                       before(grammarAccess.getMergeEntryAccess().getMergeRuleAssignment_1());  
    28502980                    } 
    2851                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:1: ( rule__MergeEntry__MergeRuleAssignment_1 ) 
    2852                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:2: rule__MergeEntry__MergeRuleAssignment_1 
     2981                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:845:1: ( rule__MergeEntry__MergeRuleAssignment_1 ) 
     2982                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:845:2: rule__MergeEntry__MergeRuleAssignment_1 
    28532983                    { 
    2854                     pushFollow(FOLLOW_rule__MergeEntry__MergeRuleAssignment_1_in_rule__MergeEntry__Alternatives1704); 
     2984                    pushFollow(FOLLOW_rule__MergeEntry__MergeRuleAssignment_1_in_rule__MergeEntry__Alternatives1782); 
    28552985                    rule__MergeEntry__MergeRuleAssignment_1(); 
    28562986 
     
    28773007        } 
    28783008        finally { 
    2879             if ( state.backtracking>0 ) { memoize(input, 50, rule__MergeEntry__Alternatives_StartIndex); } 
     3009            if ( state.backtracking>0 ) { memoize(input, 52, rule__MergeEntry__Alternatives_StartIndex); } 
    28803010 
    28813011                restoreStackSize(stackSize); 
     
    28883018 
    28893019    // $ANTLR start "rule__Import__Alternatives_2_1" 
    2890     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:820:1: rule__Import__Alternatives_2_1 : ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) ); 
     3020    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:854:1: rule__Import__Alternatives_2_1 : ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) ); 
    28913021    public final void rule__Import__Alternatives_2_1() throws RecognitionException { 
    28923022        int rule__Import__Alternatives_2_1_StartIndex = input.index(); 
     
    28953025             
    28963026        try { 
    2897             if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return ; } 
    2898             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:824:1: ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) ) 
     3027            if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return ; } 
     3028            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:858:1: ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) ) 
    28993029            int alt7=3; 
    29003030            switch ( input.LA(1) ) { 
     
    29243054            switch (alt7) { 
    29253055                case 1 : 
    2926                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:825:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) 
     3056                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) 
    29273057                    { 
    2928                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:825:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) 
    2929                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:826:1: ( rule__Import__GrammarTypeAssignment_2_1_0 ) 
     3058                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) 
     3059                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:860:1: ( rule__Import__GrammarTypeAssignment_2_1_0 ) 
    29303060                    { 
    29313061                    if ( state.backtracking==0 ) { 
    29323062                       before(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_0());  
    29333063                    } 
    2934                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:827:1: ( rule__Import__GrammarTypeAssignment_2_1_0 ) 
    2935                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:827:2: rule__Import__GrammarTypeAssignment_2_1_0 
     3064                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:861:1: ( rule__Import__GrammarTypeAssignment_2_1_0 ) 
     3065                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:861:2: rule__Import__GrammarTypeAssignment_2_1_0 
    29363066                    { 
    2937                     pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_0_in_rule__Import__Alternatives_2_11737); 
     3067                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_0_in_rule__Import__Alternatives_2_11815); 
    29383068                    rule__Import__GrammarTypeAssignment_2_1_0(); 
    29393069 
     
    29533083                    break; 
    29543084                case 2 : 
    2955                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:831:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) 
     3085                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:865:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) 
    29563086                    { 
    2957                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:831:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) 
    2958                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:832:1: ( rule__Import__GrammarTypeAssignment_2_1_1 ) 
     3087                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:865:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) 
     3088                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:866:1: ( rule__Import__GrammarTypeAssignment_2_1_1 ) 
    29593089                    { 
    29603090                    if ( state.backtracking==0 ) { 
    29613091                       before(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_1());  
    29623092                    } 
    2963                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:833:1: ( rule__Import__GrammarTypeAssignment_2_1_1 ) 
    2964                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:833:2: rule__Import__GrammarTypeAssignment_2_1_1 
     3093                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:1: ( rule__Import__GrammarTypeAssignment_2_1_1 ) 
     3094                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:2: rule__Import__GrammarTypeAssignment_2_1_1 
    29653095                    { 
    2966                     pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_1_in_rule__Import__Alternatives_2_11755); 
     3096                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_1_in_rule__Import__Alternatives_2_11833); 
    29673097                    rule__Import__GrammarTypeAssignment_2_1_1(); 
    29683098 
     
    29823112                    break; 
    29833113                case 3 : 
    2984                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) 
     3114                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:871:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) 
    29853115                    { 
    2986                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) 
    2987                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:838:1: ( rule__Import__GrammarTypeAssignment_2_1_2 ) 
     3116                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:871:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) 
     3117                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:872:1: ( rule__Import__GrammarTypeAssignment_2_1_2 ) 
    29883118                    { 
    29893119                    if ( state.backtracking==0 ) { 
    29903120                       before(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_2());  
    29913121                    } 
    2992                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:1: ( rule__Import__GrammarTypeAssignment_2_1_2 ) 
    2993                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:2: rule__Import__GrammarTypeAssignment_2_1_2 
     3122                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:873:1: ( rule__Import__GrammarTypeAssignment_2_1_2 ) 
     3123                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:873:2: rule__Import__GrammarTypeAssignment_2_1_2 
    29943124                    { 
    2995                     pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_2_in_rule__Import__Alternatives_2_11773); 
     3125                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_2_in_rule__Import__Alternatives_2_11851); 
    29963126                    rule__Import__GrammarTypeAssignment_2_1_2(); 
    29973127 
     
    30183148        } 
    30193149        finally { 
    3020             if ( state.backtracking>0 ) { memoize(input, 51, rule__Import__Alternatives_2_1_StartIndex); } 
     3150            if ( state.backtracking>0 ) { memoize(input, 53, rule__Import__Alternatives_2_1_StartIndex); } 
    30213151 
    30223152                restoreStackSize(stackSize); 
     
    30293159 
    30303160    // $ANTLR start "rule__ExtRule__Alternatives_4" 
    3031     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:848:1: rule__ExtRule__Alternatives_4 : ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) ); 
     3161    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:882:1: rule__ExtRule__Alternatives_4 : ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) ); 
    30323162    public final void rule__ExtRule__Alternatives_4() throws RecognitionException { 
    30333163        int rule__ExtRule__Alternatives_4_StartIndex = input.index(); 
     
    30363166             
    30373167        try { 
    3038             if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return ; } 
    3039             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:852:1: ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) ) 
     3168            if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return ; } 
     3169            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:886:1: ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) ) 
    30403170            int alt8=10; 
    30413171            switch ( input.LA(1) ) { 
     
    31023232            switch (alt8) { 
    31033233                case 1 : 
    3104                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:853:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) 
     3234                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:887:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) 
    31053235                    { 
    3106                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:853:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) 
    3107                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:854:1: ( rule__ExtRule__ElementsAssignment_4_0 ) 
     3236                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:887:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) 
     3237                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:888:1: ( rule__ExtRule__ElementsAssignment_4_0 ) 
    31083238                    { 
    31093239                    if ( state.backtracking==0 ) { 
    31103240                       before(grammarAccess.getExtRuleAccess().getElementsAssignment_4_0());  
    31113241                    } 
    3112                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:855:1: ( rule__ExtRule__ElementsAssignment_4_0 ) 
    3113                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:855:2: rule__ExtRule__ElementsAssignment_4_0 
     3242                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:889:1: ( rule__ExtRule__ElementsAssignment_4_0 ) 
     3243                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:889:2: rule__ExtRule__ElementsAssignment_4_0 
    31143244                    { 
    3115                     pushFollow(FOLLOW_rule__ExtRule__ElementsAssignment_4_0_in_rule__ExtRule__Alternatives_41806); 
     3245                    pushFollow(FOLLOW_rule__ExtRule__ElementsAssignment_4_0_in_rule__ExtRule__Alternatives_41884); 
    31163246                    rule__ExtRule__ElementsAssignment_4_0(); 
    31173247 
     
    31313261                    break; 
    31323262                case 2 : 
    3133                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:6: ( ')' ) 
     3263                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:893:6: ( ')' ) 
    31343264                    { 
    3135                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:6: ( ')' ) 
    3136                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:860:1: ')' 
     3265                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:893:6: ( ')' ) 
     3266                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:894:1: ')' 
    31373267                    { 
    31383268                    if ( state.backtracking==0 ) { 
    31393269                       before(grammarAccess.getExtRuleAccess().getRightParenthesisKeyword_4_1());  
    31403270                    } 
    3141                     match(input,13,FOLLOW_13_in_rule__ExtRule__Alternatives_41825); if (state.failed) return ; 
     3271                    match(input,13,FOLLOW_13_in_rule__ExtRule__Alternatives_41903); if (state.failed) return ; 
    31423272                    if ( state.backtracking==0 ) { 
    31433273                       after(grammarAccess.getExtRuleAccess().getRightParenthesisKeyword_4_1());  
     
    31503280                    break; 
    31513281                case 3 : 
    3152                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:6: ( ']' ) 
     3282                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:901:6: ( ']' ) 
    31533283                    { 
    3154                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:6: ( ']' ) 
    3155                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:868:1: ']' 
     3284                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:901:6: ( ']' ) 
     3285                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:902:1: ']' 
    31563286                    { 
    31573287                    if ( state.backtracking==0 ) { 
    31583288                       before(grammarAccess.getExtRuleAccess().getRightSquareBracketKeyword_4_2());  
    31593289                    } 
    3160                     match(input,14,FOLLOW_14_in_rule__ExtRule__Alternatives_41845); if (state.failed) return ; 
     3290                    match(input,14,FOLLOW_14_in_rule__ExtRule__Alternatives_41923); if (state.failed) return ; 
    31613291                    if ( state.backtracking==0 ) { 
    31623292                       after(grammarAccess.getExtRuleAccess().getRightSquareBracketKeyword_4_2());  
     
    31693299                    break; 
    31703300                case 4 : 
    3171                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:875:6: ( '}' ) 
     3301                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:909:6: ( '}' ) 
    31723302                    { 
    3173                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:875:6: ( '}' ) 
    3174                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:876:1: '}' 
     3303                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:909:6: ( '}' ) 
     3304                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:910:1: '}' 
    31753305                    { 
    31763306                    if ( state.backtracking==0 ) { 
    31773307                       before(grammarAccess.getExtRuleAccess().getRightCurlyBracketKeyword_4_3());  
    31783308                    } 
    3179                     match(input,15,FOLLOW_15_in_rule__ExtRule__Alternatives_41865); if (state.failed) return ; 
     3309                    match(input,15,FOLLOW_15_in_rule__ExtRule__Alternatives_41943); if (state.failed) return ; 
    31803310                    if ( state.backtracking==0 ) { 
    31813311                       after(grammarAccess.getExtRuleAccess().getRightCurlyBracketKeyword_4_3());  
     
    31883318                    break; 
    31893319                case 5 : 
    3190                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:883:6: ( '|' ) 
     3320                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:917:6: ( '|' ) 
    31913321                    { 
    3192                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:883:6: ( '|' ) 
    3193                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:884:1: '|' 
     3322                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:917:6: ( '|' ) 
     3323                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:918:1: '|' 
    31943324                    { 
    31953325                    if ( state.backtracking==0 ) { 
    31963326                       before(grammarAccess.getExtRuleAccess().getVerticalLineKeyword_4_4());  
    31973327                    } 
    3198                     match(input,16,FOLLOW_16_in_rule__ExtRule__Alternatives_41885); if (state.failed) return ; 
     3328                    match(input,16,FOLLOW_16_in_rule__ExtRule__Alternatives_41963); if (state.failed) return ; 
    31993329                    if ( state.backtracking==0 ) { 
    32003330                       after(grammarAccess.getExtRuleAccess().getVerticalLineKeyword_4_4());  
     
    32073337                    break; 
    32083338                case 6 : 
    3209                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:891:6: ( '(' ) 
     3339                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:925:6: ( '(' ) 
    32103340                    { 
    3211                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:891:6: ( '(' ) 
    3212                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:892:1: '(' 
     3341                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:925:6: ( '(' ) 
     3342                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:926:1: '(' 
    32133343                    { 
    32143344                    if ( state.backtracking==0 ) { 
    32153345                       before(grammarAccess.getExtRuleAccess().getLeftParenthesisKeyword_4_5());  
    32163346                    } 
    3217                     match(input,17,FOLLOW_17_in_rule__ExtRule__Alternatives_41905); if (state.failed) return ; 
     3347                    match(input,17,FOLLOW_17_in_rule__ExtRule__Alternatives_41983); if (state.failed) return ; 
    32183348                    if ( state.backtracking==0 ) { 
    32193349                       after(grammarAccess.getExtRuleAccess().getLeftParenthesisKeyword_4_5());  
     
    32263356                    break; 
    32273357                case 7 : 
    3228                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:899:6: ( '[' ) 
     3358                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:933:6: ( '[' ) 
    32293359                    { 
    3230                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:899:6: ( '[' ) 
    3231                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:900:1: '[' 
     3360                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:933:6: ( '[' ) 
     3361                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:934:1: '[' 
    32323362                    { 
    32333363                    if ( state.backtracking==0 ) { 
    32343364                       before(grammarAccess.getExtRuleAccess().getLeftSquareBracketKeyword_4_6());  
    32353365                    } 
    3236                     match(input,18,FOLLOW_18_in_rule__ExtRule__Alternatives_41925); if (state.failed) return ; 
     3366                    match(input,18,FOLLOW_18_in_rule__ExtRule__Alternatives_42003); if (state.failed) return ; 
    32373367                    if ( state.backtracking==0 ) { 
    32383368                       after(grammarAccess.getExtRuleAccess().getLeftSquareBracketKeyword_4_6());  
     
    32453375                    break; 
    32463376                case 8 : 
    3247                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:907:6: ( '{' ) 
     3377                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:6: ( '{' ) 
    32483378                    { 
    3249                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:907:6: ( '{' ) 
    3250                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:908:1: '{' 
     3379                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:6: ( '{' ) 
     3380                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:942:1: '{' 
    32513381                    { 
    32523382                    if ( state.backtracking==0 ) { 
    32533383                       before(grammarAccess.getExtRuleAccess().getLeftCurlyBracketKeyword_4_7());  
    32543384                    } 
    3255                     match(input,19,FOLLOW_19_in_rule__ExtRule__Alternatives_41945); if (state.failed) return ; 
     3385                    match(input,19,FOLLOW_19_in_rule__ExtRule__Alternatives_42023); if (state.failed) return ; 
    32563386                    if ( state.backtracking==0 ) { 
    32573387                       after(grammarAccess.getExtRuleAccess().getLeftCurlyBracketKeyword_4_7());  
     
    32643394                    break; 
    32653395                case 9 : 
    3266                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:915:6: ( '*' ) 
     3396                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:949:6: ( '*' ) 
    32673397                    { 
    3268                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:915:6: ( '*' ) 
    3269                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:916:1: '*' 
     3398                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:949:6: ( '*' ) 
     3399                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:950:1: '*' 
    32703400                    { 
    32713401                    if ( state.backtracking==0 ) { 
    32723402                       before(grammarAccess.getExtRuleAccess().getAsteriskKeyword_4_8());  
    32733403                    } 
    3274                     match(input,20,FOLLOW_20_in_rule__ExtRule__Alternatives_41965); if (state.failed) return ; 
     3404                    match(input,20,FOLLOW_20_in_rule__ExtRule__Alternatives_42043); if (state.failed) return ; 
    32753405                    if ( state.backtracking==0 ) { 
    32763406                       after(grammarAccess.getExtRuleAccess().getAsteriskKeyword_4_8());  
     
    32833413                    break; 
    32843414                case 10 : 
    3285                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:923:6: ( '+' ) 
     3415                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:957:6: ( '+' ) 
    32863416                    { 
    3287                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:923:6: ( '+' ) 
    3288                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:924:1: '+' 
     3417                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:957:6: ( '+' ) 
     3418                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:958:1: '+' 
    32893419                    { 
    32903420                    if ( state.backtracking==0 ) { 
    32913421                       before(grammarAccess.getExtRuleAccess().getPlusSignKeyword_4_9());  
    32923422                    } 
    3293                     match(input,21,FOLLOW_21_in_rule__ExtRule__Alternatives_41985); if (state.failed) return ; 
     3423                    match(input,21,FOLLOW_21_in_rule__ExtRule__Alternatives_42063); if (state.failed) return ; 
    32943424                    if ( state.backtracking==0 ) { 
    32953425                       after(grammarAccess.getExtRuleAccess().getPlusSignKeyword_4_9());  
     
    33093439        } 
    33103440        finally { 
    3311             if ( state.backtracking>0 ) { memoize(input, 52, rule__ExtRule__Alternatives_4_StartIndex); } 
     3441            if ( state.backtracking>0 ) { memoize(input, 54, rule__ExtRule__Alternatives_4_StartIndex); } 
    33123442 
    33133443                restoreStackSize(stackSize); 
     
    33203450 
    33213451    // $ANTLR start "rule__MergeRule__Alternatives" 
    3322     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:936:1: rule__MergeRule__Alternatives : ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) ); 
     3452    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:970:1: rule__MergeRule__Alternatives : ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) ); 
    33233453    public final void rule__MergeRule__Alternatives() throws RecognitionException { 
    33243454        int rule__MergeRule__Alternatives_StartIndex = input.index(); 
     
    33273457             
    33283458        try { 
    3329             if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return ; } 
    3330             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:940:1: ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) ) 
     3459            if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return ; } 
     3460            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:974:1: ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) ) 
    33313461            int alt9=3; 
    33323462            switch ( input.LA(1) ) { 
     
    33563486            switch (alt9) { 
    33573487                case 1 : 
    3358                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:1: ( ruleGlobalCombinator ) 
     3488                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:1: ( ruleGlobalCombinator ) 
    33593489                    { 
    3360                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:1: ( ruleGlobalCombinator ) 
    3361                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:942:1: ruleGlobalCombinator 
     3490                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:1: ( ruleGlobalCombinator ) 
     3491                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:976:1: ruleGlobalCombinator 
    33623492                    { 
    33633493                    if ( state.backtracking==0 ) { 
    33643494                       before(grammarAccess.getMergeRuleAccess().getGlobalCombinatorParserRuleCall_0());  
    33653495                    } 
    3366                     pushFollow(FOLLOW_ruleGlobalCombinator_in_rule__MergeRule__Alternatives2019); 
     3496                    pushFollow(FOLLOW_ruleGlobalCombinator_in_rule__MergeRule__Alternatives2097); 
    33673497                    ruleGlobalCombinator(); 
    33683498 
     
    33793509                    break; 
    33803510                case 2 : 
    3381                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:947:6: ( ruleRuleCombinator ) 
     3511                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ruleRuleCombinator ) 
    33823512                    { 
    3383                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:947:6: ( ruleRuleCombinator ) 
    3384                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:948:1: ruleRuleCombinator 
     3513                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ruleRuleCombinator ) 
     3514                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:982:1: ruleRuleCombinator 
    33853515                    { 
    33863516                    if ( state.backtracking==0 ) { 
    33873517                       before(grammarAccess.getMergeRuleAccess().getRuleCombinatorParserRuleCall_1());  
    33883518                    } 
    3389                     pushFollow(FOLLOW_ruleRuleCombinator_in_rule__MergeRule__Alternatives2036); 
     3519                    pushFollow(FOLLOW_ruleRuleCombinator_in_rule__MergeRule__Alternatives2114); 
    33903520                    ruleRuleCombinator(); 
    33913521 
     
    34023532                    break; 
    34033533                case 3 : 
    3404                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:953:6: ( ruleHookCombinator ) 
     3534                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ruleHookCombinator ) 
    34053535                    { 
    3406                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:953:6: ( ruleHookCombinator ) 
    3407                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:954:1: ruleHookCombinator 
     3536                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ruleHookCombinator ) 
     3537                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:988:1: ruleHookCombinator 
    34083538                    { 
    34093539                    if ( state.backtracking==0 ) { 
    34103540                       before(grammarAccess.getMergeRuleAccess().getHookCombinatorParserRuleCall_2());  
    34113541                    } 
    3412                     pushFollow(FOLLOW_ruleHookCombinator_in_rule__MergeRule__Alternatives2053); 
     3542                    pushFollow(FOLLOW_ruleHookCombinator_in_rule__MergeRule__Alternatives2131); 
    34133543                    ruleHookCombinator(); 
    34143544 
     
    34323562        } 
    34333563        finally { 
    3434             if ( state.backtracking>0 ) { memoize(input, 53, rule__MergeRule__Alternatives_StartIndex); } 
     3564            if ( state.backtracking>0 ) { memoize(input, 55, rule__MergeRule__Alternatives_StartIndex); } 
    34353565 
    34363566                restoreStackSize(stackSize); 
     
    34433573 
    34443574    // $ANTLR start "rule__Term__Alternatives" 
    3445     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:964:1: rule__Term__Alternatives : ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) ); 
     3575    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:998:1: rule__Term__Alternatives : ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) ); 
    34463576    public final void rule__Term__Alternatives() throws RecognitionException { 
    34473577        int rule__Term__Alternatives_StartIndex = input.index(); 
     
    34503580             
    34513581        try { 
    3452             if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return ; } 
    3453             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:968:1: ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) ) 
     3582            if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return ; } 
     3583            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1002:1: ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) ) 
    34543584            int alt10=4; 
    34553585            switch ( input.LA(1) ) { 
     
    34863616            switch (alt10) { 
    34873617                case 1 : 
    3488                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:969:1: ( ( rule__Term__TermAtomAssignment_0 ) ) 
     3618                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Term__TermAtomAssignment_0 ) ) 
    34893619                    { 
    3490                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:969:1: ( ( rule__Term__TermAtomAssignment_0 ) ) 
    3491                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:970:1: ( rule__Term__TermAtomAssignment_0 ) 
     3620                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Term__TermAtomAssignment_0 ) ) 
     3621                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1004:1: ( rule__Term__TermAtomAssignment_0 ) 
    34923622                    { 
    34933623                    if ( state.backtracking==0 ) { 
    34943624                       before(grammarAccess.getTermAccess().getTermAtomAssignment_0());  
    34953625                    } 
    3496                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:971:1: ( rule__Term__TermAtomAssignment_0 ) 
    3497                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:971:2: rule__Term__TermAtomAssignment_0 
     3626                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:1: ( rule__Term__TermAtomAssignment_0 ) 
     3627                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:2: rule__Term__TermAtomAssignment_0 
    34983628                    { 
    3499                     pushFollow(FOLLOW_rule__Term__TermAtomAssignment_0_in_rule__Term__Alternatives2085); 
     3629                    pushFollow(FOLLOW_rule__Term__TermAtomAssignment_0_in_rule__Term__Alternatives2163); 
    35003630                    rule__Term__TermAtomAssignment_0(); 
    35013631 
     
    35153645                    break; 
    35163646                case 2 : 
    3517                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) 
     3647                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) 
    35183648                    { 
    3519                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) 
    3520                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:976:1: ( rule__Term__TermGroupedSequenceAssignment_1 ) 
     3649                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) 
     3650                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1010:1: ( rule__Term__TermGroupedSequenceAssignment_1 ) 
    35213651                    { 
    35223652                    if ( state.backtracking==0 ) { 
    35233653                       before(grammarAccess.getTermAccess().getTermGroupedSequenceAssignment_1());  
    35243654                    } 
    3525                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:977:1: ( rule__Term__TermGroupedSequenceAssignment_1 ) 
    3526                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:977:2: rule__Term__TermGroupedSequenceAssignment_1 
     3655                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:1: ( rule__Term__TermGroupedSequenceAssignment_1 ) 
     3656                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:2: rule__Term__TermGroupedSequenceAssignment_1 
    35273657                    { 
    3528                     pushFollow(FOLLOW_rule__Term__TermGroupedSequenceAssignment_1_in_rule__Term__Alternatives2103); 
     3658                    pushFollow(FOLLOW_rule__Term__TermGroupedSequenceAssignment_1_in_rule__Term__Alternatives2181); 
    35293659                    rule__Term__TermGroupedSequenceAssignment_1(); 
    35303660 
     
    35443674                    break; 
    35453675                case 3 : 
    3546                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) 
     3676                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1015:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) 
    35473677                    { 
    3548                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) 
    3549                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:982:1: ( rule__Term__TermOptionalSequenceAssignment_2 ) 
     3678                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1015:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) 
     3679                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1016:1: ( rule__Term__TermOptionalSequenceAssignment_2 ) 
    35503680                    { 
    35513681                    if ( state.backtracking==0 ) { 
    35523682                       before(grammarAccess.getTermAccess().getTermOptionalSequenceAssignment_2());  
    35533683                    } 
    3554                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:983:1: ( rule__Term__TermOptionalSequenceAssignment_2 ) 
    3555                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:983:2: rule__Term__TermOptionalSequenceAssignment_2 
     3684                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1017:1: ( rule__Term__TermOptionalSequenceAssignment_2 ) 
     3685                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1017:2: rule__Term__TermOptionalSequenceAssignment_2 
    35563686                    { 
    3557                     pushFollow(FOLLOW_rule__Term__TermOptionalSequenceAssignment_2_in_rule__Term__Alternatives2121); 
     3687                    pushFollow(FOLLOW_rule__Term__TermOptionalSequenceAssignment_2_in_rule__Term__Alternatives2199); 
    35583688                    rule__Term__TermOptionalSequenceAssignment_2(); 
    35593689 
     
    35733703                    break; 
    35743704                case 4 : 
    3575                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) 
     3705                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1021:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) 
    35763706                    { 
    3577                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) 
    3578                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:988:1: ( rule__Term__TermRepeatedSequenceAssignment_3 ) 
     3707                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1021:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) 
     3708                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1022:1: ( rule__Term__TermRepeatedSequenceAssignment_3 ) 
    35793709                    { 
    35803710                    if ( state.backtracking==0 ) { 
    35813711                       before(grammarAccess.getTermAccess().getTermRepeatedSequenceAssignment_3());  
    35823712                    } 
    3583                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:989:1: ( rule__Term__TermRepeatedSequenceAssignment_3 ) 
    3584                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:989:2: rule__Term__TermRepeatedSequenceAssignment_3 
     3713                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1023:1: ( rule__Term__TermRepeatedSequenceAssignment_3 ) 
     3714                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1023:2: rule__Term__TermRepeatedSequenceAssignment_3 
    35853715                    { 
    3586                     pushFollow(FOLLOW_rule__Term__TermRepeatedSequenceAssignment_3_in_rule__Term__Alternatives2139); 
     3716                    pushFollow(FOLLOW_rule__Term__TermRepeatedSequenceAssignment_3_in_rule__Term__Alternatives2217); 
    35873717                    rule__Term__TermRepeatedSequenceAssignment_3(); 
    35883718 
     
    36093739        } 
    36103740        finally { 
    3611             if ( state.backtracking>0 ) { memoize(input, 54, rule__Term__Alternatives_StartIndex); } 
     3741            if ( state.backtracking>0 ) { memoize(input, 56, rule__Term__Alternatives_StartIndex); } 
    36123742 
    36133743                restoreStackSize(stackSize); 
     
    36203750 
    36213751    // $ANTLR start "rule__Atom__Alternatives" 
    3622     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:998:1: rule__Atom__Alternatives : ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) ); 
     3752    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1032:1: rule__Atom__Alternatives : ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) ); 
    36233753    public final void rule__Atom__Alternatives() throws RecognitionException { 
    36243754        int rule__Atom__Alternatives_StartIndex = input.index(); 
     
    36273757             
    36283758        try { 
    3629             if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return ; } 
    3630             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1002:1: ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) ) 
     3759            if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return ; } 
     3760            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1036:1: ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) ) 
    36313761            int alt11=2; 
    36323762            int LA11_0 = input.LA(1); 
     
    36473777            switch (alt11) { 
    36483778                case 1 : 
    3649                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) 
     3779                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1037:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) 
    36503780                    { 
    3651                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) 
    3652                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1004:1: ( rule__Atom__AtomStringRuleAssignment_0 ) 
     3781                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1037:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) 
     3782                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1038:1: ( rule__Atom__AtomStringRuleAssignment_0 ) 
    36533783                    { 
    36543784                    if ( state.backtracking==0 ) { 
    36553785                       before(grammarAccess.getAtomAccess().getAtomStringRuleAssignment_0());  
    36563786                    } 
    3657                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:1: ( rule__Atom__AtomStringRuleAssignment_0 ) 
    3658                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:2: rule__Atom__AtomStringRuleAssignment_0 
     3787                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1039:1: ( rule__Atom__AtomStringRuleAssignment_0 ) 
     3788                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1039:2: rule__Atom__AtomStringRuleAssignment_0 
    36593789                    { 
    3660                     pushFollow(FOLLOW_rule__Atom__AtomStringRuleAssignment_0_in_rule__Atom__Alternatives2172); 
     3790                    pushFollow(FOLLOW_rule__Atom__AtomStringRuleAssignment_0_in_rule__Atom__Alternatives2250); 
    36613791                    rule__Atom__AtomStringRuleAssignment_0(); 
    36623792 
     
    36763806                    break; 
    36773807                case 2 : 
    3678                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) 
     3808                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1043:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) 
    36793809                    { 
    3680                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) 
    3681                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1010:1: ( rule__Atom__AtomRuleReferenceAssignment_1 ) 
     3810                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1043:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) 
     3811                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1044:1: ( rule__Atom__AtomRuleReferenceAssignment_1 ) 
    36823812                    { 
    36833813                    if ( state.backtracking==0 ) { 
    36843814                       before(grammarAccess.getAtomAccess().getAtomRuleReferenceAssignment_1());  
    36853815                    } 
    3686                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:1: ( rule__Atom__AtomRuleReferenceAssignment_1 ) 
    3687                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:2: rule__Atom__AtomRuleReferenceAssignment_1 
     3816                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1045:1: ( rule__Atom__AtomRuleReferenceAssignment_1 ) 
     3817                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1045:2: rule__Atom__AtomRuleReferenceAssignment_1 
    36883818                    { 
    3689                     pushFollow(FOLLOW_rule__Atom__AtomRuleReferenceAssignment_1_in_rule__Atom__Alternatives2190); 
     3819                    pushFollow(FOLLOW_rule__Atom__AtomRuleReferenceAssignment_1_in_rule__Atom__Alternatives2268); 
    36903820                    rule__Atom__AtomRuleReferenceAssignment_1(); 
    36913821 
     
    37123842        } 
    37133843        finally { 
    3714             if ( state.backtracking>0 ) { memoize(input, 55, rule__Atom__Alternatives_StartIndex); } 
     3844            if ( state.backtracking>0 ) { memoize(input, 57, rule__Atom__Alternatives_StartIndex); } 
    37153845 
    37163846                restoreStackSize(stackSize); 
     
    37233853 
    37243854    // $ANTLR start "rule__StringRule__Alternatives" 
    3725     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1020:1: rule__StringRule__Alternatives : ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) ); 
     3855    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1054:1: rule__StringRule__Alternatives : ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) ); 
    37263856    public final void rule__StringRule__Alternatives() throws RecognitionException { 
    37273857        int rule__StringRule__Alternatives_StartIndex = input.index(); 
     
    37303860             
    37313861        try { 
    3732             if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return ; } 
    3733             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1024:1: ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) ) 
     3862            if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return ; } 
     3863            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1058:1: ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) ) 
    37343864            int alt12=2; 
    37353865            int LA12_0 = input.LA(1); 
     
    37503880            switch (alt12) { 
    37513881                case 1 : 
    3752                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1025:1: ( ( rule__StringRule__LiteralAssignment_0 ) ) 
     3882                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1059:1: ( ( rule__StringRule__LiteralAssignment_0 ) ) 
    37533883                    { 
    3754                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1025:1: ( ( rule__StringRule__LiteralAssignment_0 ) ) 
    3755                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1026:1: ( rule__StringRule__LiteralAssignment_0 ) 
     3884                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1059:1: ( ( rule__StringRule__LiteralAssignment_0 ) ) 
     3885                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1060:1: ( rule__StringRule__LiteralAssignment_0 ) 
    37563886                    { 
    37573887                    if ( state.backtracking==0 ) { 
    37583888                       before(grammarAccess.getStringRuleAccess().getLiteralAssignment_0());  
    37593889                    } 
    3760                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1027:1: ( rule__StringRule__LiteralAssignment_0 ) 
    3761                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1027:2: rule__StringRule__LiteralAssignment_0 
     3890                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1061:1: ( rule__StringRule__LiteralAssignment_0 ) 
     3891                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1061:2: rule__StringRule__LiteralAssignment_0 
    37623892                    { 
    3763                     pushFollow(FOLLOW_rule__StringRule__LiteralAssignment_0_in_rule__StringRule__Alternatives2223); 
     3893                    pushFollow(FOLLOW_rule__StringRule__LiteralAssignment_0_in_rule__StringRule__Alternatives2301); 
    37643894                    rule__StringRule__LiteralAssignment_0(); 
    37653895 
     
    37793909                    break; 
    37803910                case 2 : 
    3781                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1031:6: ( ( rule__StringRule__ColonAssignment_1 ) ) 
     3911                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1065:6: ( ( rule__StringRule__ColonAssignment_1 ) ) 
    37823912                    { 
    3783                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1031:6: ( ( rule__StringRule__ColonAssignment_1 ) ) 
    3784                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1032:1: ( rule__StringRule__ColonAssignment_1 ) 
     3913                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1065:6: ( ( rule__StringRule__ColonAssignment_1 ) ) 
     3914                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1066:1: ( rule__StringRule__ColonAssignment_1 ) 
    37853915                    { 
    37863916                    if ( state.backtracking==0 ) { 
    37873917                       before(grammarAccess.getStringRuleAccess().getColonAssignment_1());  
    37883918                    } 
    3789                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1033:1: ( rule__StringRule__ColonAssignment_1 ) 
    3790                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1033:2: rule__StringRule__ColonAssignment_1 
     3919                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1067:1: ( rule__StringRule__ColonAssignment_1 ) 
     3920                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1067:2: rule__StringRule__ColonAssignment_1 
    37913921                    { 
    3792                     pushFollow(FOLLOW_rule__StringRule__ColonAssignment_1_in_rule__StringRule__Alternatives2241); 
     3922                    pushFollow(FOLLOW_rule__StringRule__ColonAssignment_1_in_rule__StringRule__Alternatives2319); 
    37933923                    rule__StringRule__ColonAssignment_1(); 
    37943924 
     
    38153945        } 
    38163946        finally { 
    3817             if ( state.backtracking>0 ) { memoize(input, 56, rule__StringRule__Alternatives_StartIndex); } 
     3947            if ( state.backtracking>0 ) { memoize(input, 58, rule__StringRule__Alternatives_StartIndex); } 
    38183948 
    38193949                restoreStackSize(stackSize); 
     
    38263956 
    38273957    // $ANTLR start "rule__RepeatedSequence__Alternatives_3" 
    3828     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1042:1: rule__RepeatedSequence__Alternatives_3 : ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) ); 
     3958    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1076:1: rule__RepeatedSequence__Alternatives_3 : ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) ); 
    38293959    public final void rule__RepeatedSequence__Alternatives_3() throws RecognitionException { 
    38303960        int rule__RepeatedSequence__Alternatives_3_StartIndex = input.index(); 
     
    38333963             
    38343964        try { 
    3835             if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return ; } 
    3836             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1046:1: ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) ) 
     3965            if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return ; } 
     3966            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1080:1: ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) ) 
    38373967            int alt15=2; 
    38383968            alt15 = dfa15.predict(input); 
    38393969            switch (alt15) { 
    38403970                case 1 : 
    3841                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1047:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) 
     3971                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1081:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) 
    38423972                    { 
    3843                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1047:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) 
    3844                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1048:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? 
     3973                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1081:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) 
     3974                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1082:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? 
    38453975                    { 
    38463976                    if ( state.backtracking==0 ) { 
    38473977                       before(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3_0());  
    38483978                    } 
    3849                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1049:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? 
     3979                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? 
    38503980                    int alt13=2; 
    38513981                    int LA13_0 = input.LA(1); 
     
    38563986                    switch (alt13) { 
    38573987                        case 1 : 
    3858                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1049:2: rule__RepeatedSequence__MorethanonceAssignment_3_0 
     3988                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:2: rule__RepeatedSequence__MorethanonceAssignment_3_0 
    38593989                            { 
    3860                             pushFollow(FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_rule__RepeatedSequence__Alternatives_32274); 
     3990                            pushFollow(FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_rule__RepeatedSequence__Alternatives_32352); 
    38613991                            rule__RepeatedSequence__MorethanonceAssignment_3_0(); 
    38623992 
     
    38794009                    break; 
    38804010                case 2 : 
    3881                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1053:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) 
     4011                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1087:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) 
    38824012                    { 
    3883                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1053:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) 
    3884                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1054:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )? 
     4013                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1087:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) 
     4014                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1088:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )? 
    38854015                    { 
    38864016                    if ( state.backtracking==0 ) { 
    38874017                       before(grammarAccess.getRepeatedSequenceAccess().getRangeAssignment_3_1());  
    38884018                    } 
    3889                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1055:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )? 
     4019                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1089:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )? 
    38904020                    int alt14=2; 
    38914021                    int LA14_0 = input.LA(1); 
     
    38964026                    switch (alt14) { 
    38974027                        case 1 : 
    3898                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1055:2: rule__RepeatedSequence__RangeAssignment_3_1 
     4028                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1089:2: rule__RepeatedSequence__RangeAssignment_3_1 
    38994029                            { 
    3900                             pushFollow(FOLLOW_rule__RepeatedSequence__RangeAssignment_3_1_in_rule__RepeatedSequence__Alternatives_32293); 
     4030                            pushFollow(FOLLOW_rule__RepeatedSequence__RangeAssignment_3_1_in_rule__RepeatedSequence__Alternatives_32371); 
    39014031                            rule__RepeatedSequence__RangeAssignment_3_1(); 
    39024032 
     
    39264056        } 
    39274057        finally { 
    3928             if ( state.backtracking>0 ) { memoize(input, 57, rule__RepeatedSequence__Alternatives_3_StartIndex); } 
     4058            if ( state.backtracking>0 ) { memoize(input, 59, rule__RepeatedSequence__Alternatives_3_StartIndex); } 
    39294059 
    39304060                restoreStackSize(stackSize); 
     
    39374067 
    39384068    // $ANTLR start "rule__EtsiBnf__Group_0__0" 
    3939     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1066:1: rule__EtsiBnf__Group_0__0 : rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 ; 
     4069    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1100:1: rule__EtsiBnf__Group_0__0 : rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 ; 
    39404070    public final void rule__EtsiBnf__Group_0__0() throws RecognitionException { 
    39414071        int rule__EtsiBnf__Group_0__0_StartIndex = input.index(); 
     
    39444074             
    39454075        try { 
    3946             if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return ; } 
    3947             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1070:1: ( rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 ) 
    3948             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1071:2: rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 
    3949             { 
    3950             pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0__Impl_in_rule__EtsiBnf__Group_0__02325); 
     4076            if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return ; } 
     4077            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1104:1: ( rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 ) 
     4078            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1105:2: rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 
     4079            { 
     4080            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0__Impl_in_rule__EtsiBnf__Group_0__02403); 
    39514081            rule__EtsiBnf__Group_0__0__Impl(); 
    39524082 
    39534083            state._fsp--; 
    39544084            if (state.failed) return ; 
    3955             pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1_in_rule__EtsiBnf__Group_0__02328); 
     4085            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1_in_rule__EtsiBnf__Group_0__02406); 
    39564086            rule__EtsiBnf__Group_0__1(); 
    39574087 
     
    39674097        } 
    39684098        finally { 
    3969             if ( state.backtracking>0 ) { memoize(input, 58, rule__EtsiBnf__Group_0__0_StartIndex); } 
     4099            if ( state.backtracking>0 ) { memoize(input, 60, rule__EtsiBnf__Group_0__0_StartIndex); } 
    39704100 
    39714101                restoreStackSize(stackSize); 
     
    39784108 
    39794109    // $ANTLR start "rule__EtsiBnf__Group_0__0__Impl" 
    3980     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1078:1: rule__EtsiBnf__Group_0__0__Impl : ( 'grammar' ) ; 
     4110    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1112:1: rule__EtsiBnf__Group_0__0__Impl : ( 'grammar' ) ; 
    39814111    public final void rule__EtsiBnf__Group_0__0__Impl() throws RecognitionException { 
    39824112        int rule__EtsiBnf__Group_0__0__Impl_StartIndex = input.index(); 
     
    39854115             
    39864116        try { 
    3987             if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return ; } 
    3988             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1082:1: ( ( 'grammar' ) ) 
    3989             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:1: ( 'grammar' ) 
    3990             { 
    3991             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:1: ( 'grammar' ) 
    3992             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1084:1: 'grammar' 
     4117            if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return ; } 
     4118            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1116:1: ( ( 'grammar' ) ) 
     4119            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1117:1: ( 'grammar' ) 
     4120            { 
     4121            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1117:1: ( 'grammar' ) 
     4122            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1118:1: 'grammar' 
    39934123            { 
    39944124            if ( state.backtracking==0 ) { 
    39954125               before(grammarAccess.getEtsiBnfAccess().getGrammarKeyword_0_0());  
    39964126            } 
    3997             match(input,22,FOLLOW_22_in_rule__EtsiBnf__Group_0__0__Impl2356); if (state.failed) return ; 
     4127            match(input,22,FOLLOW_22_in_rule__EtsiBnf__Group_0__0__Impl2434); if (state.failed) return ; 
    39984128            if ( state.backtracking==0 ) { 
    39994129               after(grammarAccess.getEtsiBnfAccess().getGrammarKeyword_0_0());  
     
    40114141        } 
    40124142        finally { 
    4013             if ( state.backtracking>0 ) { memoize(input, 59, rule__EtsiBnf__Group_0__0__Impl_StartIndex); } 
     4143            if ( state.backtracking>0 ) { memoize(input, 61, rule__EtsiBnf__Group_0__0__Impl_StartIndex); } 
    40144144 
    40154145                restoreStackSize(stackSize); 
     
    40224152 
    40234153    // $ANTLR start "rule__EtsiBnf__Group_0__1" 
    4024     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1097:1: rule__EtsiBnf__Group_0__1 : rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 ; 
     4154    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1131:1: rule__EtsiBnf__Group_0__1 : rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 ; 
    40254155    public final void rule__EtsiBnf__Group_0__1() throws RecognitionException { 
    40264156        int rule__EtsiBnf__Group_0__1_StartIndex = input.index(); 
     
    40294159             
    40304160        try { 
    4031             if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return ; } 
    4032             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1101:1: ( rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 ) 
    4033             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1102:2: rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 
    4034             { 
    4035             pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1__Impl_in_rule__EtsiBnf__Group_0__12387); 
     4161            if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return ; } 
     4162            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1135:1: ( rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 ) 
     4163            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1136:2: rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 
     4164            { 
     4165            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1__Impl_in_rule__EtsiBnf__Group_0__12465); 
    40364166            rule__EtsiBnf__Group_0__1__Impl(); 
    40374167 
    40384168            state._fsp--; 
    40394169            if (state.failed) return ; 
    4040             pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2_in_rule__EtsiBnf__Group_0__12390); 
     4170            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2_in_rule__EtsiBnf__Group_0__12468); 
    40414171            rule__EtsiBnf__Group_0__2(); 
    40424172 
     
    40524182        } 
    40534183        finally { 
    4054             if ( state.backtracking>0 ) { memoize(input, 60, rule__EtsiBnf__Group_0__1_StartIndex); } 
     4184            if ( state.backtracking>0 ) { memoize(input, 62, rule__EtsiBnf__Group_0__1_StartIndex); } 
    40554185 
    40564186                restoreStackSize(stackSize); 
     
    40634193 
    40644194    // $ANTLR start "rule__EtsiBnf__Group_0__1__Impl" 
    4065     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1109:1: rule__EtsiBnf__Group_0__1__Impl : ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) ; 
     4195    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1143:1: rule__EtsiBnf__Group_0__1__Impl : ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) ; 
    40664196    public final void rule__EtsiBnf__Group_0__1__Impl() throws RecognitionException { 
    40674197        int rule__EtsiBnf__Group_0__1__Impl_StartIndex = input.index(); 
     
    40704200             
    40714201        try { 
    4072             if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return ; } 
    4073             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1113:1: ( ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) ) 
    4074             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1114:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) 
    4075             { 
    4076             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1114:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) 
    4077             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1115:1: ( rule__EtsiBnf__NameAssignment_0_1 ) 
     4202            if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return ; } 
     4203            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1147:1: ( ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) ) 
     4204            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1148:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) 
     4205            { 
     4206            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1148:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) 
     4207            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1149:1: ( rule__EtsiBnf__NameAssignment_0_1 ) 
    40784208            { 
    40794209            if ( state.backtracking==0 ) { 
    40804210               before(grammarAccess.getEtsiBnfAccess().getNameAssignment_0_1());  
    40814211            } 
    4082             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1116:1: ( rule__EtsiBnf__NameAssignment_0_1 ) 
    4083             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1116:2: rule__EtsiBnf__NameAssignment_0_1 
    4084             { 
    4085             pushFollow(FOLLOW_rule__EtsiBnf__NameAssignment_0_1_in_rule__EtsiBnf__Group_0__1__Impl2417); 
     4212            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1150:1: ( rule__EtsiBnf__NameAssignment_0_1 ) 
     4213            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1150:2: rule__EtsiBnf__NameAssignment_0_1 
     4214            { 
     4215            pushFollow(FOLLOW_rule__EtsiBnf__NameAssignment_0_1_in_rule__EtsiBnf__Group_0__1__Impl2495); 
    40864216            rule__EtsiBnf__NameAssignment_0_1(); 
    40874217 
     
    41064236        } 
    41074237        finally { 
    4108             if ( state.backtracking>0 ) { memoize(input, 61, rule__EtsiBnf__Group_0__1__Impl_StartIndex); } 
     4238            if ( state.backtracking>0 ) { memoize(input, 63, rule__EtsiBnf__Group_0__1__Impl_StartIndex); } 
    41094239 
    41104240                restoreStackSize(stackSize); 
     
    41174247 
    41184248    // $ANTLR start "rule__EtsiBnf__Group_0__2" 
    4119     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1126:1: rule__EtsiBnf__Group_0__2 : rule__EtsiBnf__Group_0__2__Impl ; 
     4249    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1160:1: rule__EtsiBnf__Group_0__2 : rule__EtsiBnf__Group_0__2__Impl ; 
    41204250    public final void rule__EtsiBnf__Group_0__2() throws RecognitionException { 
    41214251        int rule__EtsiBnf__Group_0__2_StartIndex = input.index(); 
     
    41244254             
    41254255        try { 
    4126             if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return ; } 
    4127             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1130:1: ( rule__EtsiBnf__Group_0__2__Impl ) 
    4128             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1131:2: rule__EtsiBnf__Group_0__2__Impl 
    4129             { 
    4130             pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2__Impl_in_rule__EtsiBnf__Group_0__22447); 
     4256            if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return ; } 
     4257            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1164:1: ( rule__EtsiBnf__Group_0__2__Impl ) 
     4258            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1165:2: rule__EtsiBnf__Group_0__2__Impl 
     4259            { 
     4260            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2__Impl_in_rule__EtsiBnf__Group_0__22525); 
    41314261            rule__EtsiBnf__Group_0__2__Impl(); 
    41324262 
     
    41424272        } 
    41434273        finally { 
    4144             if ( state.backtracking>0 ) { memoize(input, 62, rule__EtsiBnf__Group_0__2_StartIndex); } 
     4274            if ( state.backtracking>0 ) { memoize(input, 64, rule__EtsiBnf__Group_0__2_StartIndex); } 
    41454275 
    41464276                restoreStackSize(stackSize); 
     
    41534283 
    41544284    // $ANTLR start "rule__EtsiBnf__Group_0__2__Impl" 
    4155     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1137:1: rule__EtsiBnf__Group_0__2__Impl : ( ( rule__EtsiBnf__Group_0_2__0 ) ) ; 
     4285    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1171:1: rule__EtsiBnf__Group_0__2__Impl : ( ( rule__EtsiBnf__Group_0_2__0 ) ) ; 
    41564286    public final void rule__EtsiBnf__Group_0__2__Impl() throws RecognitionException { 
    41574287        int rule__EtsiBnf__Group_0__2__Impl_StartIndex = input.index(); 
     
    41604290             
    41614291        try { 
    4162             if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return ; } 
    4163             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1141:1: ( ( ( rule__EtsiBnf__Group_0_2__0 ) ) ) 
    4164             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1142:1: ( ( rule__EtsiBnf__Group_0_2__0 ) ) 
    4165             { 
    4166             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1142:1: ( ( rule__EtsiBnf__Group_0_2__0 ) ) 
    4167             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1143:1: ( rule__EtsiBnf__Group_0_2__0 ) 
     4292            if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return ; } 
     4293            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1175:1: ( ( ( rule__EtsiBnf__Group_0_2__0 ) ) ) 
     4294            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1176:1: ( ( rule__EtsiBnf__Group_0_2__0 ) ) 
     4295            { 
     4296            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1176:1: ( ( rule__EtsiBnf__Group_0_2__0 ) ) 
     4297            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1177:1: ( rule__EtsiBnf__Group_0_2__0 ) 
    41684298            { 
    41694299            if ( state.backtracking==0 ) { 
    41704300               before(grammarAccess.getEtsiBnfAccess().getGroup_0_2());  
    41714301            } 
    4172             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1144:1: ( rule__EtsiBnf__Group_0_2__0 ) 
    4173             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1144:2: rule__EtsiBnf__Group_0_2__0 
    4174             { 
    4175             pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0_in_rule__EtsiBnf__Group_0__2__Impl2474); 
     4302            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1178:1: ( rule__EtsiBnf__Group_0_2__0 ) 
     4303            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1178:2: rule__EtsiBnf__Group_0_2__0 
     4304            { 
     4305            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0_in_rule__EtsiBnf__Group_0__2__Impl2552); 
    41764306            rule__EtsiBnf__Group_0_2__0(); 
    41774307 
     
    41964326        } 
    41974327        finally { 
    4198             if ( state.backtracking>0 ) { memoize(input, 63, rule__EtsiBnf__Group_0__2__Impl_StartIndex); } 
     4328            if ( state.backtracking>0 ) { memoize(input, 65, rule__EtsiBnf__Group_0__2__Impl_StartIndex); } 
    41994329 
    42004330                restoreStackSize(stackSize); 
     
    42074337 
    42084338    // $ANTLR start "rule__EtsiBnf__Group_0_2__0" 
    4209     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1160:1: rule__EtsiBnf__Group_0_2__0 : rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 ; 
     4339    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1194:1: rule__EtsiBnf__Group_0_2__0 : rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 ; 
    42104340    public final void rule__EtsiBnf__Group_0_2__0() throws RecognitionException { 
    42114341        int rule__EtsiBnf__Group_0_2__0_StartIndex = input.index(); 
     
    42144344             
    42154345        try { 
    4216             if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return ; } 
    4217             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1164:1: ( rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 ) 
    4218             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1165:2: rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 
    4219             { 
    4220             pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0__Impl_in_rule__EtsiBnf__Group_0_2__02510); 
     4346            if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return ; } 
     4347            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1198:1: ( rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 ) 
     4348            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1199:2: rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 
     4349            { 
     4350            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0__Impl_in_rule__EtsiBnf__Group_0_2__02588); 
    42214351            rule__EtsiBnf__Group_0_2__0__Impl(); 
    42224352 
    42234353            state._fsp--; 
    42244354            if (state.failed) return ; 
    4225             pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1_in_rule__EtsiBnf__Group_0_2__02513); 
     4355            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1_in_rule__EtsiBnf__Group_0_2__02591); 
    42264356            rule__EtsiBnf__Group_0_2__1(); 
    42274357 
     
    42374367        } 
    42384368        finally { 
    4239             if ( state.backtracking>0 ) { memoize(input, 64, rule__EtsiBnf__Group_0_2__0_StartIndex); } 
     4369            if ( state.backtracking>0 ) { memoize(input, 66, rule__EtsiBnf__Group_0_2__0_StartIndex); } 
    42404370 
    42414371                restoreStackSize(stackSize); 
     
    42484378 
    42494379    // $ANTLR start "rule__EtsiBnf__Group_0_2__0__Impl" 
    4250     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1172:1: rule__EtsiBnf__Group_0_2__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) ; 
     4380    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1206:1: rule__EtsiBnf__Group_0_2__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) ; 
    42514381    public final void rule__EtsiBnf__Group_0_2__0__Impl() throws RecognitionException { 
    42524382        int rule__EtsiBnf__Group_0_2__0__Impl_StartIndex = input.index(); 
     
    42554385             
    42564386        try { 
    4257             if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return ; } 
    4258             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1176:1: ( ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) ) 
    4259             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1177:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) 
    4260             { 
    4261             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1177:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) 
    4262             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1178:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )? 
     4387            if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return ; } 
     4388            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1210:1: ( ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) ) 
     4389            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1211:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) 
     4390            { 
     4391            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1211:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) 
     4392            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1212:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )? 
    42634393            { 
    42644394            if ( state.backtracking==0 ) { 
    42654395               before(grammarAccess.getEtsiBnfAccess().getTypeAssignment_0_2_0());  
    42664396            } 
    4267             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1179:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )? 
     4397            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1213:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )? 
    42684398            int alt16=2; 
    42694399            int LA16_0 = input.LA(1); 
     
    42744404            switch (alt16) { 
    42754405                case 1 : 
    4276                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1179:2: rule__EtsiBnf__TypeAssignment_0_2_0 
     4406                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1213:2: rule__EtsiBnf__TypeAssignment_0_2_0 
    42774407                    { 
    4278                     pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_0_2_0_in_rule__EtsiBnf__Group_0_2__0__Impl2540); 
     4408                    pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_0_2_0_in_rule__EtsiBnf__Group_0_2__0__Impl2618); 
    42794409                    rule__EtsiBnf__TypeAssignment_0_2_0(); 
    42804410 
     
    43024432        } 
    43034433        finally { 
    4304             if ( state.backtracking>0 ) { memoize(input, 65, rule__EtsiBnf__Group_0_2__0__Impl_StartIndex); } 
     4434            if ( state.backtracking>0 ) { memoize(input, 67, rule__EtsiBnf__Group_0_2__0__Impl_StartIndex); } 
    43054435 
    43064436                restoreStackSize(stackSize); 
     
    43134443 
    43144444    // $ANTLR start "rule__EtsiBnf__Group_0_2__1" 
    4315     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1189:1: rule__EtsiBnf__Group_0_2__1 : rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 ; 
     4445    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1223:1: rule__EtsiBnf__Group_0_2__1 : rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 ; 
    43164446    public final void rule__EtsiBnf__Group_0_2__1() throws RecognitionException { 
    43174447        int rule__EtsiBnf__Group_0_2__1_StartIndex = input.index(); 
     
    43204450             
    43214451        try { 
    4322             if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return ; } 
    4323             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1193:1: ( rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 ) 
    4324             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1194:2: rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 
    4325             { 
    4326             pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1__Impl_in_rule__EtsiBnf__Group_0_2__12571); 
     4452            if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return ; } 
     4453            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1227:1: ( rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 ) 
     4454            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1228:2: rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 
     4455            { 
     4456            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1__Impl_in_rule__EtsiBnf__Group_0_2__12649); 
    43274457            rule__EtsiBnf__Group_0_2__1__Impl(); 
    43284458 
    43294459            state._fsp--; 
    43304460            if (state.failed) return ; 
    4331             pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__2_in_rule__EtsiBnf__Group_0_2__12574); 
     4461            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__2_in_rule__EtsiBnf__Group_0_2__12652); 
    43324462            rule__EtsiBnf__Group_0_2__2(); 
    43334463 
     
    43434473        } 
    43444474        finally { 
    4345             if ( state.backtracking>0 ) { memoize(input, 66, rule__EtsiBnf__Group_0_2__1_StartIndex); } 
     4475            if ( state.backtracking>0 ) { memoize(input, 68, rule__EtsiBnf__Group_0_2__1_StartIndex); } 
    43464476 
    43474477                restoreStackSize(stackSize); 
     
    43544484 
    43554485    // $ANTLR start "rule__EtsiBnf__Group_0_2__1__Impl" 
    4356     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1201:1: rule__EtsiBnf__Group_0_2__1__Impl : ( ';' ) ; 
     4486    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1235:1: rule__EtsiBnf__Group_0_2__1__Impl : ( ';' ) ; 
    43574487    public final void rule__EtsiBnf__Group_0_2__1__Impl() throws RecognitionException { 
    43584488        int rule__EtsiBnf__Group_0_2__1__Impl_StartIndex = input.index(); 
     
    43614491             
    43624492        try { 
    4363             if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return ; } 
    4364             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1205:1: ( ( ';' ) ) 
    4365             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1206:1: ( ';' ) 
    4366             { 
    4367             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1206:1: ( ';' ) 
    4368             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1207:1: ';' 
     4493            if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return ; } 
     4494            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1239:1: ( ( ';' ) ) 
     4495            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1240:1: ( ';' ) 
     4496            { 
     4497            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1240:1: ( ';' )