Changeset 97 in default for v2/trunk


Ignore:
Timestamp:
10/12/16 14:35:14 (8 years ago)
Author:
phdmakk
Message:

+ generated resources

Location:
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/plugin.xml_gen

    r79 r97  
    251251         point="org.eclipse.xtext.builder.participant"> 
    252252      <participant 
    253             class="de.ugoe.cs.swe.bnftools.ui.EbnfExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"> 
     253            class="de.ugoe.cs.swe.bnftools.ui.EbnfExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant" 
     254            fileExtensions="bnf" 
     255            > 
    254256      </participant> 
    255257   </extension> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/AbstractEbnfProposalProvider.java

    r61 r97  
    167167                // subclasses may override 
    168168        } 
     169        public void completeRepeatedSequence_Range(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     170                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
     171        } 
     172        public void completeRepeatRange_From(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     173                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
     174        } 
     175        public void completeRepeatRange_To(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     176                completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor); 
     177        } 
    169178     
    170179        public void complete_EtsiBnf(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     
    234243                // subclasses may override 
    235244        } 
     245        public void complete_RepeatRange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
     246                // subclasses may override 
     247        } 
    236248        public void complete_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { 
    237249                // subclasses may override 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/EbnfParser.java

    r61 r97  
    4848                                        put(grammarAccess.getAtomAccess().getAlternatives(), "rule__Atom__Alternatives"); 
    4949                                        put(grammarAccess.getStringRuleAccess().getAlternatives(), "rule__StringRule__Alternatives"); 
     50                                        put(grammarAccess.getRepeatedSequenceAccess().getAlternatives_3(), "rule__RepeatedSequence__Alternatives_3"); 
    5051                                        put(grammarAccess.getEtsiBnfAccess().getGroup_0(), "rule__EtsiBnf__Group_0__0"); 
    5152                                        put(grammarAccess.getEtsiBnfAccess().getGroup_0_2(), "rule__EtsiBnf__Group_0_2__0"); 
     
    7374                                        put(grammarAccess.getOptionalSequenceAccess().getGroup(), "rule__OptionalSequence__Group__0"); 
    7475                                        put(grammarAccess.getRepeatedSequenceAccess().getGroup(), "rule__RepeatedSequence__Group__0"); 
     76                                        put(grammarAccess.getRepeatRangeAccess().getGroup(), "rule__RepeatRange__Group__0"); 
    7577                                        put(grammarAccess.getEtsiBnfAccess().getNameAssignment_0_1(), "rule__EtsiBnf__NameAssignment_0_1"); 
    7678                                        put(grammarAccess.getEtsiBnfAccess().getTypeAssignment_0_2_0(), "rule__EtsiBnf__TypeAssignment_0_2_0"); 
     
    129131                                        put(grammarAccess.getOptionalSequenceAccess().getDefinitionListAssignment_1(), "rule__OptionalSequence__DefinitionListAssignment_1"); 
    130132                                        put(grammarAccess.getRepeatedSequenceAccess().getDefinitionsAssignment_1(), "rule__RepeatedSequence__DefinitionsAssignment_1"); 
    131                                         put(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3(), "rule__RepeatedSequence__MorethanonceAssignment_3"); 
     133                                        put(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3_0(), "rule__RepeatedSequence__MorethanonceAssignment_3_0"); 
     134                                        put(grammarAccess.getRepeatedSequenceAccess().getRangeAssignment_3_1(), "rule__RepeatedSequence__RangeAssignment_3_1"); 
     135                                        put(grammarAccess.getRepeatRangeAccess().getFromAssignment_2(), "rule__RepeatRange__FromAssignment_2"); 
     136                                        put(grammarAccess.getRepeatRangeAccess().getToAssignment_4(), "rule__RepeatRange__ToAssignment_4"); 
    132137                                } 
    133138                        }; 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g

    r61 r97  
    66options { 
    77        superClass=AbstractInternalContentAssistParser; 
     8        backtrack=true; 
     9         memoize=true; 
    810         
    911} 
     
    687689 
    688690 
     691// Entry rule entryRuleRepeatRange 
     692entryRuleRepeatRange  
     693: 
     694{ before(grammarAccess.getRepeatRangeRule()); } 
     695         ruleRepeatRange 
     696{ after(grammarAccess.getRepeatRangeRule()); }  
     697         EOF  
     698; 
     699 
     700// Rule RepeatRange 
     701ruleRepeatRange 
     702    @init { 
     703                int stackSize = keepStackSize(); 
     704    } 
     705        : 
     706( 
     707{ before(grammarAccess.getRepeatRangeAccess().getGroup()); } 
     708(rule__RepeatRange__Group__0) 
     709{ after(grammarAccess.getRepeatRangeAccess().getGroup()); } 
     710) 
     711 
     712; 
     713finally { 
     714        restoreStackSize(stackSize); 
     715} 
     716 
     717 
     718 
    689719 
    690720rule__EtsiBnf__Alternatives 
     
    10101040} 
    10111041 
     1042rule__RepeatedSequence__Alternatives_3 
     1043    @init { 
     1044                int stackSize = keepStackSize(); 
     1045    } 
     1046: 
     1047( 
     1048{ before(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3_0()); } 
     1049(rule__RepeatedSequence__MorethanonceAssignment_3_0)? 
     1050{ after(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3_0()); } 
     1051) 
     1052 
     1053    |( 
     1054{ before(grammarAccess.getRepeatedSequenceAccess().getRangeAssignment_3_1()); } 
     1055(rule__RepeatedSequence__RangeAssignment_3_1)? 
     1056{ after(grammarAccess.getRepeatedSequenceAccess().getRangeAssignment_3_1()); } 
     1057) 
     1058 
     1059; 
     1060finally { 
     1061        restoreStackSize(stackSize); 
     1062} 
     1063 
    10121064 
    10131065 
     
    37573809: 
    37583810( 
    3759 { before(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3()); } 
    3760 (rule__RepeatedSequence__MorethanonceAssignment_3)? 
    3761 { after(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3()); } 
    3762 ) 
    3763  
    3764 ; 
    3765 finally { 
    3766         restoreStackSize(stackSize); 
    3767 } 
     3811{ before(grammarAccess.getRepeatedSequenceAccess().getAlternatives_3()); } 
     3812(rule__RepeatedSequence__Alternatives_3) 
     3813{ after(grammarAccess.getRepeatedSequenceAccess().getAlternatives_3()); } 
     3814) 
     3815 
     3816; 
     3817finally { 
     3818        restoreStackSize(stackSize); 
     3819} 
     3820 
     3821 
     3822 
     3823 
     3824 
     3825 
     3826 
     3827 
     3828 
     3829 
     3830rule__RepeatRange__Group__0 
     3831    @init { 
     3832                int stackSize = keepStackSize(); 
     3833    } 
     3834: 
     3835        rule__RepeatRange__Group__0__Impl 
     3836        rule__RepeatRange__Group__1 
     3837; 
     3838finally { 
     3839        restoreStackSize(stackSize); 
     3840} 
     3841 
     3842rule__RepeatRange__Group__0__Impl 
     3843    @init { 
     3844                int stackSize = keepStackSize(); 
     3845    } 
     3846: 
     3847( 
     3848{ before(grammarAccess.getRepeatRangeAccess().getNumberSignKeyword_0()); } 
     3849 
     3850        '#'  
     3851 
     3852{ after(grammarAccess.getRepeatRangeAccess().getNumberSignKeyword_0()); } 
     3853) 
     3854 
     3855; 
     3856finally { 
     3857        restoreStackSize(stackSize); 
     3858} 
     3859 
     3860 
     3861rule__RepeatRange__Group__1 
     3862    @init { 
     3863                int stackSize = keepStackSize(); 
     3864    } 
     3865: 
     3866        rule__RepeatRange__Group__1__Impl 
     3867        rule__RepeatRange__Group__2 
     3868; 
     3869finally { 
     3870        restoreStackSize(stackSize); 
     3871} 
     3872 
     3873rule__RepeatRange__Group__1__Impl 
     3874    @init { 
     3875                int stackSize = keepStackSize(); 
     3876    } 
     3877: 
     3878( 
     3879{ before(grammarAccess.getRepeatRangeAccess().getLeftParenthesisKeyword_1()); } 
     3880 
     3881        '('  
     3882 
     3883{ after(grammarAccess.getRepeatRangeAccess().getLeftParenthesisKeyword_1()); } 
     3884) 
     3885 
     3886; 
     3887finally { 
     3888        restoreStackSize(stackSize); 
     3889} 
     3890 
     3891 
     3892rule__RepeatRange__Group__2 
     3893    @init { 
     3894                int stackSize = keepStackSize(); 
     3895    } 
     3896: 
     3897        rule__RepeatRange__Group__2__Impl 
     3898        rule__RepeatRange__Group__3 
     3899; 
     3900finally { 
     3901        restoreStackSize(stackSize); 
     3902} 
     3903 
     3904rule__RepeatRange__Group__2__Impl 
     3905    @init { 
     3906                int stackSize = keepStackSize(); 
     3907    } 
     3908: 
     3909( 
     3910{ before(grammarAccess.getRepeatRangeAccess().getFromAssignment_2()); } 
     3911(rule__RepeatRange__FromAssignment_2) 
     3912{ after(grammarAccess.getRepeatRangeAccess().getFromAssignment_2()); } 
     3913) 
     3914 
     3915; 
     3916finally { 
     3917        restoreStackSize(stackSize); 
     3918} 
     3919 
     3920 
     3921rule__RepeatRange__Group__3 
     3922    @init { 
     3923                int stackSize = keepStackSize(); 
     3924    } 
     3925: 
     3926        rule__RepeatRange__Group__3__Impl 
     3927        rule__RepeatRange__Group__4 
     3928; 
     3929finally { 
     3930        restoreStackSize(stackSize); 
     3931} 
     3932 
     3933rule__RepeatRange__Group__3__Impl 
     3934    @init { 
     3935                int stackSize = keepStackSize(); 
     3936    } 
     3937: 
     3938( 
     3939{ before(grammarAccess.getRepeatRangeAccess().getCommaKeyword_3()); } 
     3940 
     3941        ','  
     3942 
     3943{ after(grammarAccess.getRepeatRangeAccess().getCommaKeyword_3()); } 
     3944) 
     3945 
     3946; 
     3947finally { 
     3948        restoreStackSize(stackSize); 
     3949} 
     3950 
     3951 
     3952rule__RepeatRange__Group__4 
     3953    @init { 
     3954                int stackSize = keepStackSize(); 
     3955    } 
     3956: 
     3957        rule__RepeatRange__Group__4__Impl 
     3958        rule__RepeatRange__Group__5 
     3959; 
     3960finally { 
     3961        restoreStackSize(stackSize); 
     3962} 
     3963 
     3964rule__RepeatRange__Group__4__Impl 
     3965    @init { 
     3966                int stackSize = keepStackSize(); 
     3967    } 
     3968: 
     3969( 
     3970{ before(grammarAccess.getRepeatRangeAccess().getToAssignment_4()); } 
     3971(rule__RepeatRange__ToAssignment_4) 
     3972{ after(grammarAccess.getRepeatRangeAccess().getToAssignment_4()); } 
     3973) 
     3974 
     3975; 
     3976finally { 
     3977        restoreStackSize(stackSize); 
     3978} 
     3979 
     3980 
     3981rule__RepeatRange__Group__5 
     3982    @init { 
     3983                int stackSize = keepStackSize(); 
     3984    } 
     3985: 
     3986        rule__RepeatRange__Group__5__Impl 
     3987; 
     3988finally { 
     3989        restoreStackSize(stackSize); 
     3990} 
     3991 
     3992rule__RepeatRange__Group__5__Impl 
     3993    @init { 
     3994                int stackSize = keepStackSize(); 
     3995    } 
     3996: 
     3997( 
     3998{ before(grammarAccess.getRepeatRangeAccess().getRightParenthesisKeyword_5()); } 
     3999 
     4000        ')'  
     4001 
     4002{ after(grammarAccess.getRepeatRangeAccess().getRightParenthesisKeyword_5()); } 
     4003) 
     4004 
     4005; 
     4006finally { 
     4007        restoreStackSize(stackSize); 
     4008} 
     4009 
     4010 
     4011 
     4012 
    37684013 
    37694014 
     
    46694914} 
    46704915 
    4671 rule__RepeatedSequence__MorethanonceAssignment_3 
    4672     @init { 
    4673                 int stackSize = keepStackSize(); 
    4674     } 
    4675 : 
    4676 ( 
    4677 { before(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0()); } 
    4678 ( 
    4679 { before(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0()); } 
     4916rule__RepeatedSequence__MorethanonceAssignment_3_0 
     4917    @init { 
     4918                int stackSize = keepStackSize(); 
     4919    } 
     4920: 
     4921( 
     4922{ before(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); } 
     4923( 
     4924{ before(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); } 
    46804925 
    46814926        '+'  
    46824927 
    4683 { after(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0()); } 
    4684 ) 
    4685  
    4686 { after(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0()); } 
     4928{ after(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); } 
     4929) 
     4930 
     4931{ after(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); } 
     4932) 
     4933 
     4934; 
     4935finally { 
     4936        restoreStackSize(stackSize); 
     4937} 
     4938 
     4939rule__RepeatedSequence__RangeAssignment_3_1 
     4940    @init { 
     4941                int stackSize = keepStackSize(); 
     4942    } 
     4943: 
     4944( 
     4945{ before(grammarAccess.getRepeatedSequenceAccess().getRangeRepeatRangeParserRuleCall_3_1_0()); } 
     4946        ruleRepeatRange{ after(grammarAccess.getRepeatedSequenceAccess().getRangeRepeatRangeParserRuleCall_3_1_0()); } 
     4947) 
     4948 
     4949; 
     4950finally { 
     4951        restoreStackSize(stackSize); 
     4952} 
     4953 
     4954rule__RepeatRange__FromAssignment_2 
     4955    @init { 
     4956                int stackSize = keepStackSize(); 
     4957    } 
     4958: 
     4959( 
     4960{ before(grammarAccess.getRepeatRangeAccess().getFromINTTerminalRuleCall_2_0()); } 
     4961        RULE_INT{ after(grammarAccess.getRepeatRangeAccess().getFromINTTerminalRuleCall_2_0()); } 
     4962) 
     4963 
     4964; 
     4965finally { 
     4966        restoreStackSize(stackSize); 
     4967} 
     4968 
     4969rule__RepeatRange__ToAssignment_4 
     4970    @init { 
     4971                int stackSize = keepStackSize(); 
     4972    } 
     4973: 
     4974( 
     4975{ before(grammarAccess.getRepeatRangeAccess().getToINTTerminalRuleCall_4_0()); } 
     4976        RULE_INT{ after(grammarAccess.getRepeatRangeAccess().getToINTTerminalRuleCall_4_0()); } 
    46874977) 
    46884978 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.tokens

    r61 r97  
    11RULE_ID=4 
     2T__40=40 
    23RULE_SECTIONHEADER=5 
     4T__41=41 
    35T__29=29 
    46T__28=28 
     
    3537RULE_INT=7 
    3638RULE_WS=10 
    37 'update'=39 
     39'update'=41 
    3840'|'=16 
    3941'::='=27 
     42'#'=34 
    4043'/'=25 
    4144';'=23 
    4245'grammar'=22 
    4346'global'=30 
    44 'core'=37 
     47'core'=39 
    4548'+'=21 
    4649')'=13 
     
    5154'}'=15 
    5255'rule'=32 
    53 '/delta'=35 
    54 '/bnf'=34 
    55 '/merge'=36 
     56'/delta'=37 
     57'/merge'=38 
     58'/bnf'=36 
    5659'{'=19 
    57 'package'=38 
     60'package'=40 
    5861'label:'=26 
    5962'combinator:'=31 
     
    6164'*'=20 
    6265'['=18 
     66','=35 
    6367']'=14 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfLexer.java

    r61 r97  
    1313@SuppressWarnings("all") 
    1414public class InternalEbnfLexer extends Lexer { 
     15    public static final int T__40=40; 
    1516    public static final int RULE_ID=4; 
    1617    public static final int RULE_SECTIONHEADER=5; 
     18    public static final int T__41=41; 
    1719    public static final int T__29=29; 
    1820    public static final int T__28=28; 
     
    498500            int _type = T__34; 
    499501            int _channel = DEFAULT_TOKEN_CHANNEL; 
    500             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:32:7: ( '/bnf' ) 
    501             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:32:9: '/bnf' 
    502             { 
    503             match("/bnf");  
    504  
     502            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:32:7: ( '#' ) 
     503            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:32:9: '#' 
     504            { 
     505            match('#');  
    505506 
    506507            } 
     
    519520            int _type = T__35; 
    520521            int _channel = DEFAULT_TOKEN_CHANNEL; 
    521             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:33:7: ( '/delta' ) 
    522             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:33:9: '/delta' 
    523             { 
    524             match("/delta");  
    525  
     522            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:33:7: ( ',' ) 
     523            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:33:9: ',' 
     524            { 
     525            match(',');  
    526526 
    527527            } 
     
    540540            int _type = T__36; 
    541541            int _channel = DEFAULT_TOKEN_CHANNEL; 
    542             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:34:7: ( '/merge' ) 
    543             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:34:9: '/merge' 
    544             { 
    545             match("/merge");  
     542            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:34:7: ( '/bnf' ) 
     543            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:34:9: '/bnf' 
     544            { 
     545            match("/bnf");  
    546546 
    547547 
     
    561561            int _type = T__37; 
    562562            int _channel = DEFAULT_TOKEN_CHANNEL; 
    563             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:35:7: ( 'core' ) 
    564             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:35:9: 'core' 
    565             { 
    566             match("core");  
     563            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:35:7: ( '/delta' ) 
     564            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:35:9: '/delta' 
     565            { 
     566            match("/delta");  
    567567 
    568568 
     
    582582            int _type = T__38; 
    583583            int _channel = DEFAULT_TOKEN_CHANNEL; 
    584             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:36:7: ( 'package' ) 
    585             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:36:9: 'package' 
    586             { 
    587             match("package");  
     584            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:36:7: ( '/merge' ) 
     585            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:36:9: '/merge' 
     586            { 
     587            match("/merge");  
    588588 
    589589 
     
    603603            int _type = T__39; 
    604604            int _channel = DEFAULT_TOKEN_CHANNEL; 
    605             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:37:7: ( 'update' ) 
    606             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:37:9: 'update' 
     605            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:37:7: ( 'core' ) 
     606            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:37:9: 'core' 
     607            { 
     608            match("core");  
     609 
     610 
     611            } 
     612 
     613            state.type = _type; 
     614            state.channel = _channel; 
     615        } 
     616        finally { 
     617        } 
     618    } 
     619    // $ANTLR end "T__39" 
     620 
     621    // $ANTLR start "T__40" 
     622    public final void mT__40() throws RecognitionException { 
     623        try { 
     624            int _type = T__40; 
     625            int _channel = DEFAULT_TOKEN_CHANNEL; 
     626            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:38:7: ( 'package' ) 
     627            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:38:9: 'package' 
     628            { 
     629            match("package");  
     630 
     631 
     632            } 
     633 
     634            state.type = _type; 
     635            state.channel = _channel; 
     636        } 
     637        finally { 
     638        } 
     639    } 
     640    // $ANTLR end "T__40" 
     641 
     642    // $ANTLR start "T__41" 
     643    public final void mT__41() throws RecognitionException { 
     644        try { 
     645            int _type = T__41; 
     646            int _channel = DEFAULT_TOKEN_CHANNEL; 
     647            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:39:7: ( 'update' ) 
     648            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:39:9: 'update' 
    607649            { 
    608650            match("update");  
     
    617659        } 
    618660    } 
    619     // $ANTLR end "T__39" 
     661    // $ANTLR end "T__41" 
    620662 
    621663    // $ANTLR start "RULE_ID" 
     
    624666            int _type = RULE_ID; 
    625667            int _channel = DEFAULT_TOKEN_CHANNEL; 
    626             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4695:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) 
    627             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4695: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: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' | '_' )* 
    628670            { 
    629671            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 
     
    636678                throw mse;} 
    637679 
    638             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4695: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:4985:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* 
    639681            loop1: 
    640682            do { 
     
    685727            int _type = RULE_INT; 
    686728            int _channel = DEFAULT_TOKEN_CHANNEL; 
    687             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4697:10: ( ( '0' .. '9' )+ ) 
    688             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4697:12: ( '0' .. '9' )+ 
    689             { 
    690             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4697:12: ( '0' .. '9' )+ 
     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' )+ 
    691733            int cnt2=0; 
    692734            loop2: 
     
    702744                switch (alt2) { 
    703745                case 1 : 
    704                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4697:13: '0' .. '9' 
     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' 
    705747                    { 
    706748                    matchRange('0','9');  
     
    734776            int _type = RULE_WS; 
    735777            int _channel = DEFAULT_TOKEN_CHANNEL; 
    736             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:9: ( ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ ) 
    737             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ 
    738             { 
    739             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699: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: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' )+ 
    740782            int cnt4=0; 
    741783            loop4: 
     
    764806                switch (alt4) { 
    765807                case 1 : 
    766                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:12: ' ' 
     808                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:12: ' ' 
    767809                    { 
    768810                    match(' ');  
     
    771813                    break; 
    772814                case 2 : 
    773                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:16: '\\t' 
     815                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:16: '\\t' 
    774816                    { 
    775817                    match('\t');  
     
    778820                    break; 
    779821                case 3 : 
    780                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:21: ( '\\r' )? '\\n' 
     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' 
    781823                    { 
    782                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:21: ( '\\r' )? 
     824                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: ( '\\r' )? 
    783825                    int alt3=2; 
    784826                    int LA3_0 = input.LA(1); 
     
    789831                    switch (alt3) { 
    790832                        case 1 : 
    791                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:21: '\\r' 
     833                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: '\\r' 
    792834                            { 
    793835                            match('\r');  
     
    828870            int _type = RULE_COLON; 
    829871            int _channel = DEFAULT_TOKEN_CHANNEL; 
    830             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4701:12: ( '\"' '\"' '\"' ) 
    831             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4701:14: '\"' '\"' '\"' 
     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: '\"' '\"' '\"' 
    832874            { 
    833875            match('\"');  
     
    850892            int _type = RULE_STRING; 
    851893            int _channel = DEFAULT_TOKEN_CHANNEL; 
    852             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) ) 
    853             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
    854             { 
    855             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
     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: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
    856898            int alt7=2; 
    857899            int LA7_0 = input.LA(1); 
     
    871913            switch (alt7) { 
    872914                case 1 : 
    873                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:16: '\"' (~ ( '\"' ) )* '\"' 
     915                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:16: '\"' (~ ( '\"' ) )* '\"' 
    874916                    { 
    875917                    match('\"');  
    876                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:20: (~ ( '\"' ) )* 
     918                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:20: (~ ( '\"' ) )* 
    877919                    loop5: 
    878920                    do { 
     
    887929                        switch (alt5) { 
    888930                        case 1 : 
    889                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:20: ~ ( '\"' ) 
     931                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:20: ~ ( '\"' ) 
    890932                            { 
    891933                            if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) { 
     
    912954                    break; 
    913955                case 2 : 
    914                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:32: '\\'' (~ ( '\\'' ) )* '\\'' 
     956                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:32: '\\'' (~ ( '\\'' ) )* '\\'' 
    915957                    { 
    916958                    match('\'');  
    917                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:37: (~ ( '\\'' ) )* 
     959                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:37: (~ ( '\\'' ) )* 
    918960                    loop6: 
    919961                    do { 
     
    928970                        switch (alt6) { 
    929971                        case 1 : 
    930                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4703:37: ~ ( '\\'' ) 
     972                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:37: ~ ( '\\'' ) 
    931973                            { 
    932974                            if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) { 
     
    9711013            int _type = RULE_SECTIONHEADER; 
    9721014            int _channel = DEFAULT_TOKEN_CHANNEL; 
    973             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4705:20: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' ) 
    974             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4705: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: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' 
    9751017            { 
    9761018            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) { 
     
    9831025                throw mse;} 
    9841026 
    985             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4705:42: ( '.' | '0' .. '9' )+ 
     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' )+ 
    9861028            int cnt8=0; 
    9871029            loop8: 
     
    10301072                throw mse;} 
    10311073 
    1032             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4705:69: (~ ( ( '\\n' | '\\r' ) ) )* 
     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' ) ) )* 
    10331075            loop9: 
    10341076            do { 
     
    10431085                switch (alt9) { 
    10441086                case 1 : 
    1045                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4705:69: ~ ( ( '\\n' | '\\r' ) ) 
     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' ) ) 
    10461088                    { 
    10471089                    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') ) { 
     
    10631105            } while (true); 
    10641106 
    1065             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4705:85: ( '\\r' )? 
     1107            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:85: ( '\\r' )? 
    10661108            int alt10=2; 
    10671109            int LA10_0 = input.LA(1); 
     
    10721114            switch (alt10) { 
    10731115                case 1 : 
    1074                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4705:85: '\\r' 
     1116                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:85: '\\r' 
    10751117                    { 
    10761118                    match('\r');  
     
    10981140            int _type = RULE_SL_COMMENT; 
    10991141            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1100             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 
    1101             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707: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: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' )? 
    11021144            { 
    11031145            match("//");  
    11041146 
    1105             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:24: (~ ( ( '\\n' | '\\r' ) ) )* 
     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' ) ) )* 
    11061148            loop11: 
    11071149            do { 
     
    11161158                switch (alt11) { 
    11171159                case 1 : 
    1118                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:24: ~ ( ( '\\n' | '\\r' ) ) 
     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' ) ) 
    11191161                    { 
    11201162                    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') ) { 
     
    11361178            } while (true); 
    11371179 
    1138             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:40: ( ( '\\r' )? '\\n' )? 
     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' )? 
    11391181            int alt13=2; 
    11401182            int LA13_0 = input.LA(1); 
     
    11451187            switch (alt13) { 
    11461188                case 1 : 
    1147                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:41: ( '\\r' )? '\\n' 
     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' 
    11481190                    { 
    1149                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:41: ( '\\r' )? 
     1191                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: ( '\\r' )? 
    11501192                    int alt12=2; 
    11511193                    int LA12_0 = input.LA(1); 
     
    11561198                    switch (alt12) { 
    11571199                        case 1 : 
    1158                             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:41: '\\r' 
     1200                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: '\\r' 
    11591201                            { 
    11601202                            match('\r');  
     
    11881230            int _type = RULE_ML_COMMENT; 
    11891231            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1190             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4709:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 
    1191             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4709: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: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; } : . )* '*/' 
    11921234            { 
    11931235            match("/*");  
    11941236 
    1195             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4709: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:4999:24: ( options {greedy=false; } : . )* 
    11961238            loop14: 
    11971239            do { 
     
    12181260                switch (alt14) { 
    12191261                case 1 : 
    1220                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4709:52: . 
     1262                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4999:52: . 
    12211263                    { 
    12221264                    matchAny();  
     
    12481290            int _type = RULE_LOGIC; 
    12491291            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1250             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:12: ( ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) ) 
    1251             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) 
    1252             { 
    1253             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711: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: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' ) 
    12541296            int alt15=6; 
    12551297            alt15 = dfa15.predict(input); 
    12561298            switch (alt15) { 
    12571299                case 1 : 
    1258                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:15: '/and' 
     1300                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:15: '/and' 
    12591301                    { 
    12601302                    match("/and");  
     
    12641306                    break; 
    12651307                case 2 : 
    1266                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:22: '/or' 
     1308                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:22: '/or' 
    12671309                    { 
    12681310                    match("/or");  
     
    12721314                    break; 
    12731315                case 3 : 
    1274                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:28: '/andr' 
     1316                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:28: '/andr' 
    12751317                    { 
    12761318                    match("/andr");  
     
    12801322                    break; 
    12811323                case 4 : 
    1282                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:36: '/orr' 
     1324                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:36: '/orr' 
    12831325                    { 
    12841326                    match("/orr");  
     
    12881330                    break; 
    12891331                case 5 : 
    1290                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:43: '/any' 
     1332                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:43: '/any' 
    12911333                    { 
    12921334                    match("/any");  
     
    12961338                    break; 
    12971339                case 6 : 
    1298                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4711:50: '/together' 
     1340                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:50: '/together' 
    12991341                    { 
    13001342                    match("/together");  
     
    13181360 
    13191361    public void mTokens() throws RecognitionException { 
    1320         // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC ) 
    1321         int alt16=36; 
     1362        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC ) 
     1363        int alt16=38; 
    13221364        alt16 = dfa16.predict(input); 
    13231365        switch (alt16) { 
     
    15121554                break; 
    15131555            case 28 : 
    1514                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:172: RULE_ID 
     1556                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:172: T__40 
     1557                { 
     1558                mT__40();  
     1559 
     1560                } 
     1561                break; 
     1562            case 29 : 
     1563                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:178: T__41 
     1564                { 
     1565                mT__41();  
     1566 
     1567                } 
     1568                break; 
     1569            case 30 : 
     1570                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:184: RULE_ID 
    15151571                { 
    15161572                mRULE_ID();  
     
    15181574                } 
    15191575                break; 
    1520             case 29 : 
    1521                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:180: RULE_INT 
     1576            case 31 : 
     1577                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:192: RULE_INT 
    15221578                { 
    15231579                mRULE_INT();  
     
    15251581                } 
    15261582                break; 
    1527             case 30 : 
    1528                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:189: RULE_WS 
     1583            case 32 : 
     1584                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:201: RULE_WS 
    15291585                { 
    15301586                mRULE_WS();  
     
    15321588                } 
    15331589                break; 
    1534             case 31 : 
    1535                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:197: RULE_COLON 
     1590            case 33 : 
     1591                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:209: RULE_COLON 
    15361592                { 
    15371593                mRULE_COLON();  
     
    15391595                } 
    15401596                break; 
    1541             case 32 : 
    1542                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:208: RULE_STRING 
     1597            case 34 : 
     1598                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:220: RULE_STRING 
    15431599                { 
    15441600                mRULE_STRING();  
     
    15461602                } 
    15471603                break; 
    1548             case 33 : 
    1549                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:220: RULE_SECTIONHEADER 
     1604            case 35 : 
     1605                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:232: RULE_SECTIONHEADER 
    15501606                { 
    15511607                mRULE_SECTIONHEADER();  
     
    15531609                } 
    15541610                break; 
    1555             case 34 : 
    1556                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:239: RULE_SL_COMMENT 
     1611            case 36 : 
     1612                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:251: RULE_SL_COMMENT 
    15571613                { 
    15581614                mRULE_SL_COMMENT();  
     
    15601616                } 
    15611617                break; 
    1562             case 35 : 
    1563                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:255: RULE_ML_COMMENT 
     1618            case 37 : 
     1619                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:267: RULE_ML_COMMENT 
    15641620                { 
    15651621                mRULE_ML_COMMENT();  
     
    15671623                } 
    15681624                break; 
    1569             case 36 : 
    1570                 // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:271: RULE_LOGIC 
     1625            case 38 : 
     1626                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1:283: RULE_LOGIC 
    15711627                { 
    15721628                mRULE_LOGIC();  
     
    16401696        } 
    16411697        public String getDescription() { 
    1642             return "4711:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )"; 
     1698            return "5001:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )"; 
    16431699        } 
    16441700    } 
    16451701    static final String DFA16_eotS = 
    1646         "\12\uffff\1\34\1\uffff\1\34\1\50\1\34\3\uffff\6\34\5\uffff\3\34"+ 
    1647         "\1\uffff\1\34\7\uffff\6\34\1\33\12\34\1\uffff\5\34\1\112\1\113\1"+ 
    1648         "\114\7\34\3\uffff\3\34\1\127\1\130\1\uffff\2\34\1\133\1\134\2\uffff"+ 
    1649         "\1\34\1\136\2\uffff\1\34\1\uffff\2\34\1\uffff"; 
     1702        "\12\uffff\1\36\1\uffff\1\36\1\52\1\36\3\uffff\3\36\2\uffff\3\36"+ 
     1703        "\5\uffff\3\36\1\uffff\1\36\7\uffff\6\36\1\35\12\36\1\uffff\5\36"+ 
     1704        "\1\114\1\115\1\116\7\36\3\uffff\3\36\1\131\1\132\1\uffff\2\36\1"+ 
     1705        "\135\1\136\2\uffff\1\36\1\140\2\uffff\1\36\1\uffff\2\36\1\uffff"; 
    16501706    static final String DFA16_eofS = 
    1651         "\142\uffff"; 
     1707        "\144\uffff"; 
    16521708    static final String DFA16_minS = 
    1653         "\1\11\11\uffff\1\56\1\uffff\1\56\1\52\1\56\3\uffff\6\56\2\uffff"+ 
    1654         "\1\0\2\uffff\1\141\1\157\1\11\1\uffff\1\160\7\uffff\1\142\1\155"+ 
    1655         "\1\154\1\157\1\143\1\144\1\42\1\155\1\142\1\157\1\145\1\142\2\145"+ 
    1656         "\2\153\1\141\1\uffff\1\155\1\141\1\162\1\154\1\151\3\60\1\141\1"+ 
    1657         "\164\1\141\1\154\1\164\1\72\1\156\3\uffff\1\147\1\145\1\162\2\60"+ 
    1658         "\1\uffff\1\141\1\145\2\60\2\uffff\1\164\1\60\2\uffff\1\157\1\uffff"+ 
    1659         "\1\162\1\72\1\uffff"; 
     1709        "\1\11\11\uffff\1\56\1\uffff\1\56\1\52\1\56\3\uffff\3\56\2\uffff"+ 
     1710        "\3\56\2\uffff\1\0\2\uffff\1\141\1\157\1\11\1\uffff\1\160\7\uffff"+ 
     1711        "\1\142\1\155\1\154\1\157\1\143\1\144\1\42\1\155\1\142\1\157\1\145"+ 
     1712        "\1\142\2\145\2\153\1\141\1\uffff\1\155\1\141\1\162\1\154\1\151\3"+ 
     1713        "\60\1\141\1\164\1\141\1\154\1\164\1\72\1\156\3\uffff\1\147\1\145"+ 
     1714        "\1\162\2\60\1\uffff\1\141\1\145\2\60\2\uffff\1\164\1\60\2\uffff"+ 
     1715        "\1\157\1\uffff\1\162\1\72\1\uffff"; 
    16601716    static final String DFA16_maxS = 
    16611717        "\1\175\11\uffff\1\162\1\uffff\1\155\1\164\1\141\3\uffff\1\157\1"+ 
    1662         "\165\1\157\1\141\1\160\1\71\2\uffff\1\uffff\2\uffff\1\141\1\157"+ 
    1663         "\1\71\1\uffff\1\160\7\uffff\1\142\1\162\1\154\1\157\1\143\1\144"+ 
    1664         "\1\42\1\155\1\142\1\157\1\145\1\142\2\145\2\153\1\141\1\uffff\1"+ 
    1665         "\155\1\141\1\162\1\154\1\151\3\172\1\141\1\164\1\141\1\154\1\164"+ 
     1718        "\165\1\157\2\uffff\1\141\1\160\1\71\2\uffff\1\uffff\2\uffff\1\141"+ 
     1719        "\1\157\1\71\1\uffff\1\160\7\uffff\1\142\1\162\1\154\1\157\1\143"+ 
     1720        "\1\144\1\42\1\155\1\142\1\157\1\145\1\142\2\145\2\153\1\141\1\uffff"+ 
     1721        "\1\155\1\141\1\162\1\154\1\151\3\172\1\141\1\164\1\141\1\154\1\164"+ 
    16661722        "\1\72\1\156\3\uffff\1\147\1\145\1\162\2\172\1\uffff\1\141\1\145"+ 
    16671723        "\2\172\2\uffff\1\164\1\172\2\uffff\1\157\1\uffff\1\162\1\72\1\uffff"; 
    16681724    static final String DFA16_acceptS = 
    16691725        "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\uffff\1\13\3\uffff"+ 
    1670         "\1\17\1\20\1\21\6\uffff\1\35\1\36\1\uffff\1\40\1\34\3\uffff\1\41"+ 
    1671         "\1\uffff\1\26\1\27\1\30\1\42\1\43\1\44\1\15\21\uffff\1\37\17\uffff"+ 
    1672         "\1\31\1\24\1\25\5\uffff\1\16\4\uffff\1\22\1\14\2\uffff\1\33\1\12"+ 
    1673         "\1\uffff\1\32\2\uffff\1\23"; 
     1726        "\1\17\1\20\1\21\3\uffff\1\26\1\27\3\uffff\1\37\1\40\1\uffff\1\42"+ 
     1727        "\1\36\3\uffff\1\43\1\uffff\1\30\1\31\1\32\1\44\1\45\1\46\1\15\21"+ 
     1728        "\uffff\1\41\17\uffff\1\33\1\24\1\25\5\uffff\1\16\4\uffff\1\22\1"+ 
     1729        "\14\2\uffff\1\35\1\12\1\uffff\1\34\2\uffff\1\23"; 
    16741730    static final String DFA16_specialS = 
    1675         "\32\uffff\1\0\107\uffff}>"; 
     1731        "\34\uffff\1\0\107\uffff}>"; 
    16761732    static final String[] DFA16_transitionS = { 
    1677             "\2\31\2\uffff\1\31\22\uffff\1\31\1\uffff\1\32\4\uffff\1\33"+ 
    1678             "\1\5\1\1\1\10\1\11\2\uffff\1\20\1\15\12\30\1\17\1\13\1\21\4"+ 
    1679             "\uffff\32\27\1\6\1\uffff\1\2\1\uffff\1\34\1\uffff\2\27\1\22"+ 
    1680             "\3\27\1\12\1\24\1\14\2\27\1\16\3\27\1\25\1\27\1\23\2\27\1\26"+ 
    1681             "\5\27\1\7\1\4\1\3", 
    1682             "", 
    1683             "", 
    1684             "", 
    1685             "", 
    1686             "", 
    1687             "", 
    1688             "", 
    1689             "", 
    1690             "", 
    1691             "\1\40\1\uffff\12\37\62\uffff\1\36\5\uffff\1\35", 
    1692             "", 
    1693             "\1\40\1\uffff\12\37\63\uffff\1\41", 
    1694             "\1\46\4\uffff\1\45\61\uffff\1\47\1\42\1\uffff\1\43\10\uffff"+ 
    1695             "\1\44\1\uffff\1\47\4\uffff\1\47", 
    1696             "\1\40\1\uffff\12\37\47\uffff\1\51", 
    1697             "", 
    1698             "", 
    1699             "", 
    1700             "\1\40\1\uffff\12\37\65\uffff\1\52", 
    1701             "\1\40\1\uffff\12\37\73\uffff\1\53", 
    1702             "\1\40\1\uffff\12\37\65\uffff\1\54", 
    1703             "\1\40\1\uffff\12\37\47\uffff\1\55", 
    1704             "\1\40\1\uffff\12\37\66\uffff\1\56", 
    1705             "\1\40\1\uffff\12\37", 
    1706             "", 
    1707             "", 
    1708             "\42\33\1\57\uffdd\33", 
    1709             "", 
    1710             "", 
    1711             "\1\60", 
    1712             "\1\61", 
    1713             "\1\40\26\uffff\1\40\15\uffff\1\40\1\uffff\12\37", 
     1733            "\2\33\2\uffff\1\33\22\uffff\1\33\1\uffff\1\34\1\25\3\uffff\1"+ 
     1734            "\35\1\5\1\1\1\10\1\11\1\26\1\uffff\1\20\1\15\12\32\1\17\1\13"+ 
     1735            "\1\21\4\uffff\32\31\1\6\1\uffff\1\2\1\uffff\1\36\1\uffff\2\31"+ 
     1736            "\1\22\3\31\1\12\1\24\1\14\2\31\1\16\3\31\1\27\1\31\1\23\2\31"+ 
     1737            "\1\30\5\31\1\7\1\4\1\3", 
     1738            "", 
     1739            "", 
     1740            "", 
     1741            "", 
     1742            "", 
     1743            "", 
     1744            "", 
     1745            "", 
     1746            "", 
     1747            "\1\42\1\uffff\12\41\62\uffff\1\40\5\uffff\1\37", 
     1748            "", 
     1749            "\1\42\1\uffff\12\41\63\uffff\1\43", 
     1750            "\1\50\4\uffff\1\47\61\uffff\1\51\1\44\1\uffff\1\45\10\uffff"+ 
     1751            "\1\46\1\uffff\1\51\4\uffff\1\51", 
     1752            "\1\42\1\uffff\12\41\47\uffff\1\53", 
     1753            "", 
     1754            "", 
     1755            "", 
     1756            "\1\42\1\uffff\12\41\65\uffff\1\54", 
     1757            "\1\42\1\uffff\12\41\73\uffff\1\55", 
     1758            "\1\42\1\uffff\12\41\65\uffff\1\56", 
     1759            "", 
     1760            "", 
     1761            "\1\42\1\uffff\12\41\47\uffff\1\57", 
     1762            "\1\42\1\uffff\12\41\66\uffff\1\60", 
     1763            "\1\42\1\uffff\12\41", 
     1764            "", 
     1765            "", 
     1766            "\42\35\1\61\uffdd\35", 
     1767            "", 
    17141768            "", 
    17151769            "\1\62", 
    1716             "", 
    1717             "", 
    1718             "", 
    1719             "", 
    1720             "", 
    1721             "", 
    1722             "", 
    17231770            "\1\63", 
    1724             "\1\64\4\uffff\1\65", 
    1725             "\1\66", 
    1726             "\1\67", 
     1771            "\1\42\26\uffff\1\42\15\uffff\1\42\1\uffff\12\41", 
     1772            "", 
     1773            "\1\64", 
     1774            "", 
     1775            "", 
     1776            "", 
     1777            "", 
     1778            "", 
     1779            "", 
     1780            "", 
     1781            "\1\65", 
     1782            "\1\66\4\uffff\1\67", 
    17271783            "\1\70", 
    17281784            "\1\71", 
     
    17381794            "\1\103", 
    17391795            "\1\104", 
    1740             "", 
    17411796            "\1\105", 
    17421797            "\1\106", 
     1798            "", 
    17431799            "\1\107", 
    17441800            "\1\110", 
    17451801            "\1\111", 
    1746             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1747             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1748             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1749             "\1\115", 
    1750             "\1\116", 
     1802            "\1\112", 
     1803            "\1\113", 
     1804            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1805            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1806            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
    17511807            "\1\117", 
    17521808            "\1\120", 
     
    17541810            "\1\122", 
    17551811            "\1\123", 
    1756             "", 
    1757             "", 
    1758             "", 
    17591812            "\1\124", 
    17601813            "\1\125", 
     1814            "", 
     1815            "", 
     1816            "", 
    17611817            "\1\126", 
    1762             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1763             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1764             "", 
    1765             "\1\131", 
    1766             "\1\132", 
    1767             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1768             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1769             "", 
    1770             "", 
    1771             "\1\135", 
    1772             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
     1818            "\1\127", 
     1819            "\1\130", 
     1820            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1821            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1822            "", 
     1823            "\1\133", 
     1824            "\1\134", 
     1825            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1826            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
    17731827            "", 
    17741828            "", 
    17751829            "\1\137", 
    1776             "", 
    1777             "\1\140", 
     1830            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1831            "", 
     1832            "", 
    17781833            "\1\141", 
     1834            "", 
     1835            "\1\142", 
     1836            "\1\143", 
    17791837            "" 
    17801838    }; 
     
    18101868        } 
    18111869        public String getDescription() { 
    1812             return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC );"; 
     1870            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC );"; 
    18131871        } 
    18141872        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 
     
    18171875            switch ( s ) { 
    18181876                    case 0 :  
    1819                         int LA16_26 = input.LA(1); 
     1877                        int LA16_28 = input.LA(1); 
    18201878 
    18211879                        s = -1; 
    1822                         if ( (LA16_26=='\"') ) {s = 47;} 
    1823  
    1824                         else if ( ((LA16_26>='\u0000' && LA16_26<='!')||(LA16_26>='#' && LA16_26<='\uFFFF')) ) {s = 27;} 
     1880                        if ( (LA16_28=='\"') ) {s = 49;} 
     1881 
     1882                        else if ( ((LA16_28>='\u0000' && LA16_28<='!')||(LA16_28>='#' && LA16_28<='\uFFFF')) ) {s = 29;} 
    18251883 
    18261884                        if ( s>=0 ) return s; 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfParser.java

    r61 r97  
    1919import java.util.List; 
    2020import java.util.ArrayList; 
    21  
     21import java.util.Map; 
     22import java.util.HashMap; 
    2223@SuppressWarnings("all") 
    2324public class InternalEbnfParser extends AbstractInternalContentAssistParser { 
    2425    public static final String[] tokenNames = new String[] { 
    25         "<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_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'" 
    2627    }; 
    2728    public static final int RULE_ID=4; 
     29    public static final int T__40=40; 
    2830    public static final int RULE_SECTIONHEADER=5; 
     31    public static final int T__41=41; 
    2932    public static final int T__29=29; 
    3033    public static final int T__28=28; 
     
    7275        public InternalEbnfParser(TokenStream input, RecognizerSharedState state) { 
    7376            super(input, state); 
     77            this.state.ruleMemo = new HashMap[356+1]; 
     78              
    7479              
    7580        } 
     
    101106 
    102107    // $ANTLR start "entryRuleEtsiBnf" 
    103     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:60:1: entryRuleEtsiBnf : ruleEtsiBnf EOF ; 
     108    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:62:1: entryRuleEtsiBnf : ruleEtsiBnf EOF ; 
    104109    public final void entryRuleEtsiBnf() throws RecognitionException { 
    105         try { 
    106             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:61:1: ( ruleEtsiBnf EOF ) 
    107             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:62:1: ruleEtsiBnf EOF 
    108             { 
    109              before(grammarAccess.getEtsiBnfRule());  
    110             pushFollow(FOLLOW_ruleEtsiBnf_in_entryRuleEtsiBnf61); 
     110        int entryRuleEtsiBnf_StartIndex = input.index(); 
     111        try { 
     112            if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return ; } 
     113            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:63:1: ( ruleEtsiBnf EOF ) 
     114            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:64:1: ruleEtsiBnf EOF 
     115            { 
     116            if ( state.backtracking==0 ) { 
     117               before(grammarAccess.getEtsiBnfRule());  
     118            } 
     119            pushFollow(FOLLOW_ruleEtsiBnf_in_entryRuleEtsiBnf74); 
    111120            ruleEtsiBnf(); 
    112121 
    113122            state._fsp--; 
    114  
    115              after(grammarAccess.getEtsiBnfRule());  
    116             match(input,EOF,FOLLOW_EOF_in_entryRuleEtsiBnf68);  
    117  
    118             } 
    119  
    120         } 
    121         catch (RecognitionException re) { 
    122             reportError(re); 
    123             recover(input,re); 
    124         } 
    125         finally { 
     123            if (state.failed) return ; 
     124            if ( state.backtracking==0 ) { 
     125               after(grammarAccess.getEtsiBnfRule());  
     126            } 
     127            match(input,EOF,FOLLOW_EOF_in_entryRuleEtsiBnf81); if (state.failed) return ; 
     128 
     129            } 
     130 
     131        } 
     132        catch (RecognitionException re) { 
     133            reportError(re); 
     134            recover(input,re); 
     135        } 
     136        finally { 
     137            if ( state.backtracking>0 ) { memoize(input, 1, entryRuleEtsiBnf_StartIndex); } 
    126138        } 
    127139        return ; 
     
    131143 
    132144    // $ANTLR start "ruleEtsiBnf" 
    133     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:69:1: ruleEtsiBnf : ( ( rule__EtsiBnf__Alternatives ) ) ; 
     145    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:71:1: ruleEtsiBnf : ( ( rule__EtsiBnf__Alternatives ) ) ; 
    134146    public final void ruleEtsiBnf() throws RecognitionException { 
    135  
    136                         int stackSize = keepStackSize(); 
    137              
    138         try { 
    139             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:73:2: ( ( ( rule__EtsiBnf__Alternatives ) ) ) 
    140             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:74:1: ( ( rule__EtsiBnf__Alternatives ) ) 
    141             { 
    142             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:74:1: ( ( rule__EtsiBnf__Alternatives ) ) 
    143             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:75:1: ( rule__EtsiBnf__Alternatives ) 
    144             { 
    145              before(grammarAccess.getEtsiBnfAccess().getAlternatives());  
    146             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:76:1: ( rule__EtsiBnf__Alternatives ) 
    147             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:76:2: rule__EtsiBnf__Alternatives 
    148             { 
    149             pushFollow(FOLLOW_rule__EtsiBnf__Alternatives_in_ruleEtsiBnf94); 
     147        int ruleEtsiBnf_StartIndex = input.index(); 
     148 
     149                        int stackSize = keepStackSize(); 
     150             
     151        try { 
     152            if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return ; } 
     153            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:75:2: ( ( ( rule__EtsiBnf__Alternatives ) ) ) 
     154            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:76:1: ( ( rule__EtsiBnf__Alternatives ) ) 
     155            { 
     156            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:76:1: ( ( rule__EtsiBnf__Alternatives ) ) 
     157            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:77:1: ( rule__EtsiBnf__Alternatives ) 
     158            { 
     159            if ( state.backtracking==0 ) { 
     160               before(grammarAccess.getEtsiBnfAccess().getAlternatives());  
     161            } 
     162            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:78:1: ( rule__EtsiBnf__Alternatives ) 
     163            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:78:2: rule__EtsiBnf__Alternatives 
     164            { 
     165            pushFollow(FOLLOW_rule__EtsiBnf__Alternatives_in_ruleEtsiBnf107); 
    150166            rule__EtsiBnf__Alternatives(); 
    151167 
    152168            state._fsp--; 
    153  
    154  
    155             } 
    156  
    157              after(grammarAccess.getEtsiBnfAccess().getAlternatives());  
    158  
    159             } 
    160  
    161  
    162             } 
    163  
    164         } 
    165         catch (RecognitionException re) { 
    166             reportError(re); 
    167             recover(input,re); 
    168         } 
    169         finally { 
     169            if (state.failed) return ; 
     170 
     171            } 
     172 
     173            if ( state.backtracking==0 ) { 
     174               after(grammarAccess.getEtsiBnfAccess().getAlternatives());  
     175            } 
     176 
     177            } 
     178 
     179 
     180            } 
     181 
     182        } 
     183        catch (RecognitionException re) { 
     184            reportError(re); 
     185            recover(input,re); 
     186        } 
     187        finally { 
     188            if ( state.backtracking>0 ) { memoize(input, 2, ruleEtsiBnf_StartIndex); } 
    170189 
    171190                restoreStackSize(stackSize); 
     
    178197 
    179198    // $ANTLR start "entryRuleImportSection" 
    180     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:88:1: entryRuleImportSection : ruleImportSection EOF ; 
     199    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:90:1: entryRuleImportSection : ruleImportSection EOF ; 
    181200    public final void entryRuleImportSection() throws RecognitionException { 
    182         try { 
    183             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:89:1: ( ruleImportSection EOF ) 
    184             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:90:1: ruleImportSection EOF 
    185             { 
    186              before(grammarAccess.getImportSectionRule());  
    187             pushFollow(FOLLOW_ruleImportSection_in_entryRuleImportSection121); 
     201        int entryRuleImportSection_StartIndex = input.index(); 
     202        try { 
     203            if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return ; } 
     204            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:91:1: ( ruleImportSection EOF ) 
     205            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:92:1: ruleImportSection EOF 
     206            { 
     207            if ( state.backtracking==0 ) { 
     208               before(grammarAccess.getImportSectionRule());  
     209            } 
     210            pushFollow(FOLLOW_ruleImportSection_in_entryRuleImportSection134); 
    188211            ruleImportSection(); 
    189212 
    190213            state._fsp--; 
    191  
    192              after(grammarAccess.getImportSectionRule());  
    193             match(input,EOF,FOLLOW_EOF_in_entryRuleImportSection128);  
    194  
    195             } 
    196  
    197         } 
    198         catch (RecognitionException re) { 
    199             reportError(re); 
    200             recover(input,re); 
    201         } 
    202         finally { 
     214            if (state.failed) return ; 
     215            if ( state.backtracking==0 ) { 
     216               after(grammarAccess.getImportSectionRule());  
     217            } 
     218            match(input,EOF,FOLLOW_EOF_in_entryRuleImportSection141); if (state.failed) return ; 
     219 
     220            } 
     221 
     222        } 
     223        catch (RecognitionException re) { 
     224            reportError(re); 
     225            recover(input,re); 
     226        } 
     227        finally { 
     228            if ( state.backtracking>0 ) { memoize(input, 3, entryRuleImportSection_StartIndex); } 
    203229        } 
    204230        return ; 
     
    208234 
    209235    // $ANTLR start "ruleImportSection" 
    210     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:97:1: ruleImportSection : ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) ; 
     236    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:99:1: ruleImportSection : ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) ; 
    211237    public final void ruleImportSection() throws RecognitionException { 
    212  
    213                         int stackSize = keepStackSize(); 
    214              
    215         try { 
    216             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:101:2: ( ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) ) 
    217             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:102:1: ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) 
    218             { 
    219             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:102:1: ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) 
    220             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:103:1: ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) 
    221             { 
    222             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:103:1: ( ( rule__ImportSection__ImportsAssignment ) ) 
    223             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:104:1: ( rule__ImportSection__ImportsAssignment ) 
    224             { 
    225              before(grammarAccess.getImportSectionAccess().getImportsAssignment());  
    226             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:105:1: ( rule__ImportSection__ImportsAssignment ) 
    227             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:105:2: rule__ImportSection__ImportsAssignment 
    228             { 
    229             pushFollow(FOLLOW_rule__ImportSection__ImportsAssignment_in_ruleImportSection156); 
     238        int ruleImportSection_StartIndex = input.index(); 
     239 
     240                        int stackSize = keepStackSize(); 
     241             
     242        try { 
     243            if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return ; } 
     244            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:103:2: ( ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) ) 
     245            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:104:1: ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) 
     246            { 
     247            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:104:1: ( ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) ) 
     248            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:105:1: ( ( rule__ImportSection__ImportsAssignment ) ) ( ( rule__ImportSection__ImportsAssignment )* ) 
     249            { 
     250            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:105:1: ( ( rule__ImportSection__ImportsAssignment ) ) 
     251            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:106:1: ( rule__ImportSection__ImportsAssignment ) 
     252            { 
     253            if ( state.backtracking==0 ) { 
     254               before(grammarAccess.getImportSectionAccess().getImportsAssignment());  
     255            } 
     256            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:107:1: ( rule__ImportSection__ImportsAssignment ) 
     257            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:107:2: rule__ImportSection__ImportsAssignment 
     258            { 
     259            pushFollow(FOLLOW_rule__ImportSection__ImportsAssignment_in_ruleImportSection169); 
    230260            rule__ImportSection__ImportsAssignment(); 
    231261 
    232262            state._fsp--; 
    233  
    234  
    235             } 
    236  
    237              after(grammarAccess.getImportSectionAccess().getImportsAssignment());  
    238  
    239             } 
    240  
    241             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:108:1: ( ( rule__ImportSection__ImportsAssignment )* ) 
    242             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:109:1: ( rule__ImportSection__ImportsAssignment )* 
    243             { 
    244              before(grammarAccess.getImportSectionAccess().getImportsAssignment());  
    245             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:110:1: ( rule__ImportSection__ImportsAssignment )* 
     263            if (state.failed) return ; 
     264 
     265            } 
     266 
     267            if ( state.backtracking==0 ) { 
     268               after(grammarAccess.getImportSectionAccess().getImportsAssignment());  
     269            } 
     270 
     271            } 
     272 
     273            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:110:1: ( ( rule__ImportSection__ImportsAssignment )* ) 
     274            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:111:1: ( rule__ImportSection__ImportsAssignment )* 
     275            { 
     276            if ( state.backtracking==0 ) { 
     277               before(grammarAccess.getImportSectionAccess().getImportsAssignment());  
     278            } 
     279            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:112:1: ( rule__ImportSection__ImportsAssignment )* 
    246280            loop1: 
    247281            do { 
     
    256290                switch (alt1) { 
    257291                case 1 : 
    258                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:110:2: rule__ImportSection__ImportsAssignment 
     292                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:112:2: rule__ImportSection__ImportsAssignment 
    259293                    { 
    260                     pushFollow(FOLLOW_rule__ImportSection__ImportsAssignment_in_ruleImportSection168); 
     294                    pushFollow(FOLLOW_rule__ImportSection__ImportsAssignment_in_ruleImportSection181); 
    261295                    rule__ImportSection__ImportsAssignment(); 
    262296 
    263297                    state._fsp--; 
    264  
     298                    if (state.failed) return ; 
    265299 
    266300                    } 
     
    272306            } while (true); 
    273307 
    274              after(grammarAccess.getImportSectionAccess().getImportsAssignment());  
    275  
    276             } 
    277  
    278  
    279             } 
    280  
    281  
    282             } 
    283  
    284         } 
    285         catch (RecognitionException re) { 
    286             reportError(re); 
    287             recover(input,re); 
    288         } 
    289         finally { 
     308            if ( state.backtracking==0 ) { 
     309               after(grammarAccess.getImportSectionAccess().getImportsAssignment());  
     310            } 
     311 
     312            } 
     313 
     314 
     315            } 
     316 
     317 
     318            } 
     319 
     320        } 
     321        catch (RecognitionException re) { 
     322            reportError(re); 
     323            recover(input,re); 
     324        } 
     325        finally { 
     326            if ( state.backtracking>0 ) { memoize(input, 4, ruleImportSection_StartIndex); } 
    290327 
    291328                restoreStackSize(stackSize); 
     
    298335 
    299336    // $ANTLR start "entryRuleBnfEntry" 
    300     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:123:1: entryRuleBnfEntry : ruleBnfEntry EOF ; 
     337    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:125:1: entryRuleBnfEntry : ruleBnfEntry EOF ; 
    301338    public final void entryRuleBnfEntry() throws RecognitionException { 
    302         try { 
    303             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:124:1: ( ruleBnfEntry EOF ) 
    304             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:125:1: ruleBnfEntry EOF 
    305             { 
    306              before(grammarAccess.getBnfEntryRule());  
    307             pushFollow(FOLLOW_ruleBnfEntry_in_entryRuleBnfEntry198); 
     339        int entryRuleBnfEntry_StartIndex = input.index(); 
     340        try { 
     341            if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return ; } 
     342            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:126:1: ( ruleBnfEntry EOF ) 
     343            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:127:1: ruleBnfEntry EOF 
     344            { 
     345            if ( state.backtracking==0 ) { 
     346               before(grammarAccess.getBnfEntryRule());  
     347            } 
     348            pushFollow(FOLLOW_ruleBnfEntry_in_entryRuleBnfEntry211); 
    308349            ruleBnfEntry(); 
    309350 
    310351            state._fsp--; 
    311  
    312              after(grammarAccess.getBnfEntryRule());  
    313             match(input,EOF,FOLLOW_EOF_in_entryRuleBnfEntry205);  
    314  
    315             } 
    316  
    317         } 
    318         catch (RecognitionException re) { 
    319             reportError(re); 
    320             recover(input,re); 
    321         } 
    322         finally { 
     352            if (state.failed) return ; 
     353            if ( state.backtracking==0 ) { 
     354               after(grammarAccess.getBnfEntryRule());  
     355            } 
     356            match(input,EOF,FOLLOW_EOF_in_entryRuleBnfEntry218); if (state.failed) return ; 
     357 
     358            } 
     359 
     360        } 
     361        catch (RecognitionException re) { 
     362            reportError(re); 
     363            recover(input,re); 
     364        } 
     365        finally { 
     366            if ( state.backtracking>0 ) { memoize(input, 5, entryRuleBnfEntry_StartIndex); } 
    323367        } 
    324368        return ; 
     
    328372 
    329373    // $ANTLR start "ruleBnfEntry" 
    330     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:132:1: ruleBnfEntry : ( ( rule__BnfEntry__Alternatives ) ) ; 
     374    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:134:1: ruleBnfEntry : ( ( rule__BnfEntry__Alternatives ) ) ; 
    331375    public final void ruleBnfEntry() throws RecognitionException { 
    332  
    333                         int stackSize = keepStackSize(); 
    334              
    335         try { 
    336             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:136:2: ( ( ( rule__BnfEntry__Alternatives ) ) ) 
    337             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:137:1: ( ( rule__BnfEntry__Alternatives ) ) 
    338             { 
    339             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:137:1: ( ( rule__BnfEntry__Alternatives ) ) 
    340             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:138:1: ( rule__BnfEntry__Alternatives ) 
    341             { 
    342              before(grammarAccess.getBnfEntryAccess().getAlternatives());  
    343             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:139:1: ( rule__BnfEntry__Alternatives ) 
    344             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:139:2: rule__BnfEntry__Alternatives 
    345             { 
    346             pushFollow(FOLLOW_rule__BnfEntry__Alternatives_in_ruleBnfEntry231); 
     376        int ruleBnfEntry_StartIndex = input.index(); 
     377 
     378                        int stackSize = keepStackSize(); 
     379             
     380        try { 
     381            if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return ; } 
     382            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:138:2: ( ( ( rule__BnfEntry__Alternatives ) ) ) 
     383            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:139:1: ( ( rule__BnfEntry__Alternatives ) ) 
     384            { 
     385            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:139:1: ( ( rule__BnfEntry__Alternatives ) ) 
     386            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:140:1: ( rule__BnfEntry__Alternatives ) 
     387            { 
     388            if ( state.backtracking==0 ) { 
     389               before(grammarAccess.getBnfEntryAccess().getAlternatives());  
     390            } 
     391            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:141:1: ( rule__BnfEntry__Alternatives ) 
     392            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:141:2: rule__BnfEntry__Alternatives 
     393            { 
     394            pushFollow(FOLLOW_rule__BnfEntry__Alternatives_in_ruleBnfEntry244); 
    347395            rule__BnfEntry__Alternatives(); 
    348396 
    349397            state._fsp--; 
    350  
    351  
    352             } 
    353  
    354              after(grammarAccess.getBnfEntryAccess().getAlternatives());  
    355  
    356             } 
    357  
    358  
    359             } 
    360  
    361         } 
    362         catch (RecognitionException re) { 
    363             reportError(re); 
    364             recover(input,re); 
    365         } 
    366         finally { 
     398            if (state.failed) return ; 
     399 
     400            } 
     401 
     402            if ( state.backtracking==0 ) { 
     403               after(grammarAccess.getBnfEntryAccess().getAlternatives());  
     404            } 
     405 
     406            } 
     407 
     408 
     409            } 
     410 
     411        } 
     412        catch (RecognitionException re) { 
     413            reportError(re); 
     414            recover(input,re); 
     415        } 
     416        finally { 
     417            if ( state.backtracking>0 ) { memoize(input, 6, ruleBnfEntry_StartIndex); } 
    367418 
    368419                restoreStackSize(stackSize); 
     
    375426 
    376427    // $ANTLR start "entryRuleDeltaEntry" 
    377     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:151:1: entryRuleDeltaEntry : ruleDeltaEntry EOF ; 
     428    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:153:1: entryRuleDeltaEntry : ruleDeltaEntry EOF ; 
    378429    public final void entryRuleDeltaEntry() throws RecognitionException { 
    379         try { 
    380             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:152:1: ( ruleDeltaEntry EOF ) 
    381             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:153:1: ruleDeltaEntry EOF 
    382             { 
    383              before(grammarAccess.getDeltaEntryRule());  
    384             pushFollow(FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry258); 
     430        int entryRuleDeltaEntry_StartIndex = input.index(); 
     431        try { 
     432            if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return ; } 
     433            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:154:1: ( ruleDeltaEntry EOF ) 
     434            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:155:1: ruleDeltaEntry EOF 
     435            { 
     436            if ( state.backtracking==0 ) { 
     437               before(grammarAccess.getDeltaEntryRule());  
     438            } 
     439            pushFollow(FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry271); 
    385440            ruleDeltaEntry(); 
    386441 
    387442            state._fsp--; 
    388  
    389              after(grammarAccess.getDeltaEntryRule());  
    390             match(input,EOF,FOLLOW_EOF_in_entryRuleDeltaEntry265);  
    391  
    392             } 
    393  
    394         } 
    395         catch (RecognitionException re) { 
    396             reportError(re); 
    397             recover(input,re); 
    398         } 
    399         finally { 
     443            if (state.failed) return ; 
     444            if ( state.backtracking==0 ) { 
     445               after(grammarAccess.getDeltaEntryRule());  
     446            } 
     447            match(input,EOF,FOLLOW_EOF_in_entryRuleDeltaEntry278); if (state.failed) return ; 
     448 
     449            } 
     450 
     451        } 
     452        catch (RecognitionException re) { 
     453            reportError(re); 
     454            recover(input,re); 
     455        } 
     456        finally { 
     457            if ( state.backtracking>0 ) { memoize(input, 7, entryRuleDeltaEntry_StartIndex); } 
    400458        } 
    401459        return ; 
     
    405463 
    406464    // $ANTLR start "ruleDeltaEntry" 
    407     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:160:1: ruleDeltaEntry : ( ( rule__DeltaEntry__Alternatives ) ) ; 
     465    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:162:1: ruleDeltaEntry : ( ( rule__DeltaEntry__Alternatives ) ) ; 
    408466    public final void ruleDeltaEntry() throws RecognitionException { 
    409  
    410                         int stackSize = keepStackSize(); 
    411              
    412         try { 
    413             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:164:2: ( ( ( rule__DeltaEntry__Alternatives ) ) ) 
    414             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:165:1: ( ( rule__DeltaEntry__Alternatives ) ) 
    415             { 
    416             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:165:1: ( ( rule__DeltaEntry__Alternatives ) ) 
    417             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:166:1: ( rule__DeltaEntry__Alternatives ) 
    418             { 
    419              before(grammarAccess.getDeltaEntryAccess().getAlternatives());  
    420             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:167:1: ( rule__DeltaEntry__Alternatives ) 
    421             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:167:2: rule__DeltaEntry__Alternatives 
    422             { 
    423             pushFollow(FOLLOW_rule__DeltaEntry__Alternatives_in_ruleDeltaEntry291); 
     467        int ruleDeltaEntry_StartIndex = input.index(); 
     468 
     469                        int stackSize = keepStackSize(); 
     470             
     471        try { 
     472            if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return ; } 
     473            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:166:2: ( ( ( rule__DeltaEntry__Alternatives ) ) ) 
     474            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:167:1: ( ( rule__DeltaEntry__Alternatives ) ) 
     475            { 
     476            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:167:1: ( ( rule__DeltaEntry__Alternatives ) ) 
     477            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:168:1: ( rule__DeltaEntry__Alternatives ) 
     478            { 
     479            if ( state.backtracking==0 ) { 
     480               before(grammarAccess.getDeltaEntryAccess().getAlternatives());  
     481            } 
     482            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:169:1: ( rule__DeltaEntry__Alternatives ) 
     483            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:169:2: rule__DeltaEntry__Alternatives 
     484            { 
     485            pushFollow(FOLLOW_rule__DeltaEntry__Alternatives_in_ruleDeltaEntry304); 
    424486            rule__DeltaEntry__Alternatives(); 
    425487 
    426488            state._fsp--; 
    427  
    428  
    429             } 
    430  
    431              after(grammarAccess.getDeltaEntryAccess().getAlternatives());  
    432  
    433             } 
    434  
    435  
    436             } 
    437  
    438         } 
    439         catch (RecognitionException re) { 
    440             reportError(re); 
    441             recover(input,re); 
    442         } 
    443         finally { 
     489            if (state.failed) return ; 
     490 
     491            } 
     492 
     493            if ( state.backtracking==0 ) { 
     494               after(grammarAccess.getDeltaEntryAccess().getAlternatives());  
     495            } 
     496 
     497            } 
     498 
     499 
     500            } 
     501 
     502        } 
     503        catch (RecognitionException re) { 
     504            reportError(re); 
     505            recover(input,re); 
     506        } 
     507        finally { 
     508            if ( state.backtracking>0 ) { memoize(input, 8, ruleDeltaEntry_StartIndex); } 
    444509 
    445510                restoreStackSize(stackSize); 
     
    452517 
    453518    // $ANTLR start "entryRuleMergeEntry" 
    454     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:179:1: entryRuleMergeEntry : ruleMergeEntry EOF ; 
     519    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:181:1: entryRuleMergeEntry : ruleMergeEntry EOF ; 
    455520    public final void entryRuleMergeEntry() throws RecognitionException { 
    456         try { 
    457             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:180:1: ( ruleMergeEntry EOF ) 
    458             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:181:1: ruleMergeEntry EOF 
    459             { 
    460              before(grammarAccess.getMergeEntryRule());  
    461             pushFollow(FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry318); 
     521        int entryRuleMergeEntry_StartIndex = input.index(); 
     522        try { 
     523            if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return ; } 
     524            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:182:1: ( ruleMergeEntry EOF ) 
     525            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:183:1: ruleMergeEntry EOF 
     526            { 
     527            if ( state.backtracking==0 ) { 
     528               before(grammarAccess.getMergeEntryRule());  
     529            } 
     530            pushFollow(FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry331); 
    462531            ruleMergeEntry(); 
    463532 
    464533            state._fsp--; 
    465  
    466              after(grammarAccess.getMergeEntryRule());  
    467             match(input,EOF,FOLLOW_EOF_in_entryRuleMergeEntry325);  
    468  
    469             } 
    470  
    471         } 
    472         catch (RecognitionException re) { 
    473             reportError(re); 
    474             recover(input,re); 
    475         } 
    476         finally { 
     534            if (state.failed) return ; 
     535            if ( state.backtracking==0 ) { 
     536               after(grammarAccess.getMergeEntryRule());  
     537            } 
     538            match(input,EOF,FOLLOW_EOF_in_entryRuleMergeEntry338); if (state.failed) return ; 
     539 
     540            } 
     541 
     542        } 
     543        catch (RecognitionException re) { 
     544            reportError(re); 
     545            recover(input,re); 
     546        } 
     547        finally { 
     548            if ( state.backtracking>0 ) { memoize(input, 9, entryRuleMergeEntry_StartIndex); } 
    477549        } 
    478550        return ; 
     
    482554 
    483555    // $ANTLR start "ruleMergeEntry" 
    484     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:188:1: ruleMergeEntry : ( ( rule__MergeEntry__Alternatives ) ) ; 
     556    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:190:1: ruleMergeEntry : ( ( rule__MergeEntry__Alternatives ) ) ; 
    485557    public final void ruleMergeEntry() throws RecognitionException { 
    486  
    487                         int stackSize = keepStackSize(); 
    488              
    489         try { 
    490             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:192:2: ( ( ( rule__MergeEntry__Alternatives ) ) ) 
    491             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:193:1: ( ( rule__MergeEntry__Alternatives ) ) 
    492             { 
    493             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:193:1: ( ( rule__MergeEntry__Alternatives ) ) 
    494             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:194:1: ( rule__MergeEntry__Alternatives ) 
    495             { 
    496              before(grammarAccess.getMergeEntryAccess().getAlternatives());  
    497             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:195:1: ( rule__MergeEntry__Alternatives ) 
    498             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:195:2: rule__MergeEntry__Alternatives 
    499             { 
    500             pushFollow(FOLLOW_rule__MergeEntry__Alternatives_in_ruleMergeEntry351); 
     558        int ruleMergeEntry_StartIndex = input.index(); 
     559 
     560                        int stackSize = keepStackSize(); 
     561             
     562        try { 
     563            if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return ; } 
     564            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:194:2: ( ( ( rule__MergeEntry__Alternatives ) ) ) 
     565            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:195:1: ( ( rule__MergeEntry__Alternatives ) ) 
     566            { 
     567            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:195:1: ( ( rule__MergeEntry__Alternatives ) ) 
     568            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:196:1: ( rule__MergeEntry__Alternatives ) 
     569            { 
     570            if ( state.backtracking==0 ) { 
     571               before(grammarAccess.getMergeEntryAccess().getAlternatives());  
     572            } 
     573            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:197:1: ( rule__MergeEntry__Alternatives ) 
     574            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:197:2: rule__MergeEntry__Alternatives 
     575            { 
     576            pushFollow(FOLLOW_rule__MergeEntry__Alternatives_in_ruleMergeEntry364); 
    501577            rule__MergeEntry__Alternatives(); 
    502578 
    503579            state._fsp--; 
    504  
    505  
    506             } 
    507  
    508              after(grammarAccess.getMergeEntryAccess().getAlternatives());  
    509  
    510             } 
    511  
    512  
    513             } 
    514  
    515         } 
    516         catch (RecognitionException re) { 
    517             reportError(re); 
    518             recover(input,re); 
    519         } 
    520         finally { 
     580            if (state.failed) return ; 
     581 
     582            } 
     583 
     584            if ( state.backtracking==0 ) { 
     585               after(grammarAccess.getMergeEntryAccess().getAlternatives());  
     586            } 
     587 
     588            } 
     589 
     590 
     591            } 
     592 
     593        } 
     594        catch (RecognitionException re) { 
     595            reportError(re); 
     596            recover(input,re); 
     597        } 
     598        finally { 
     599            if ( state.backtracking>0 ) { memoize(input, 10, ruleMergeEntry_StartIndex); } 
    521600 
    522601                restoreStackSize(stackSize); 
     
    529608 
    530609    // $ANTLR start "entryRuleSectionHeading" 
    531     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:207:1: entryRuleSectionHeading : ruleSectionHeading EOF ; 
     610    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:209:1: entryRuleSectionHeading : ruleSectionHeading EOF ; 
    532611    public final void entryRuleSectionHeading() throws RecognitionException { 
    533         try { 
    534             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:208:1: ( ruleSectionHeading EOF ) 
    535             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:209:1: ruleSectionHeading EOF 
    536             { 
    537              before(grammarAccess.getSectionHeadingRule());  
    538             pushFollow(FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading378); 
     612        int entryRuleSectionHeading_StartIndex = input.index(); 
     613        try { 
     614            if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return ; } 
     615            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:210:1: ( ruleSectionHeading EOF ) 
     616            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:211:1: ruleSectionHeading EOF 
     617            { 
     618            if ( state.backtracking==0 ) { 
     619               before(grammarAccess.getSectionHeadingRule());  
     620            } 
     621            pushFollow(FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading391); 
    539622            ruleSectionHeading(); 
    540623 
    541624            state._fsp--; 
    542  
    543              after(grammarAccess.getSectionHeadingRule());  
    544             match(input,EOF,FOLLOW_EOF_in_entryRuleSectionHeading385);  
    545  
    546             } 
    547  
    548         } 
    549         catch (RecognitionException re) { 
    550             reportError(re); 
    551             recover(input,re); 
    552         } 
    553         finally { 
     625            if (state.failed) return ; 
     626            if ( state.backtracking==0 ) { 
     627               after(grammarAccess.getSectionHeadingRule());  
     628            } 
     629            match(input,EOF,FOLLOW_EOF_in_entryRuleSectionHeading398); if (state.failed) return ; 
     630 
     631            } 
     632 
     633        } 
     634        catch (RecognitionException re) { 
     635            reportError(re); 
     636            recover(input,re); 
     637        } 
     638        finally { 
     639            if ( state.backtracking>0 ) { memoize(input, 11, entryRuleSectionHeading_StartIndex); } 
    554640        } 
    555641        return ; 
     
    559645 
    560646    // $ANTLR start "ruleSectionHeading" 
    561     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:216:1: ruleSectionHeading : ( ( rule__SectionHeading__Group__0 ) ) ; 
     647    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:218:1: ruleSectionHeading : ( ( rule__SectionHeading__Group__0 ) ) ; 
    562648    public final void ruleSectionHeading() throws RecognitionException { 
    563  
    564                         int stackSize = keepStackSize(); 
    565              
    566         try { 
    567             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:220:2: ( ( ( rule__SectionHeading__Group__0 ) ) ) 
    568             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:221:1: ( ( rule__SectionHeading__Group__0 ) ) 
    569             { 
    570             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:221:1: ( ( rule__SectionHeading__Group__0 ) ) 
    571             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:222:1: ( rule__SectionHeading__Group__0 ) 
    572             { 
    573              before(grammarAccess.getSectionHeadingAccess().getGroup());  
    574             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:223:1: ( rule__SectionHeading__Group__0 ) 
    575             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:223:2: rule__SectionHeading__Group__0 
    576             { 
    577             pushFollow(FOLLOW_rule__SectionHeading__Group__0_in_ruleSectionHeading411); 
     649        int ruleSectionHeading_StartIndex = input.index(); 
     650 
     651                        int stackSize = keepStackSize(); 
     652             
     653        try { 
     654            if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return ; } 
     655            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:222:2: ( ( ( rule__SectionHeading__Group__0 ) ) ) 
     656            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:223:1: ( ( rule__SectionHeading__Group__0 ) ) 
     657            { 
     658            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:223:1: ( ( rule__SectionHeading__Group__0 ) ) 
     659            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:224:1: ( rule__SectionHeading__Group__0 ) 
     660            { 
     661            if ( state.backtracking==0 ) { 
     662               before(grammarAccess.getSectionHeadingAccess().getGroup());  
     663            } 
     664            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:225:1: ( rule__SectionHeading__Group__0 ) 
     665            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:225:2: rule__SectionHeading__Group__0 
     666            { 
     667            pushFollow(FOLLOW_rule__SectionHeading__Group__0_in_ruleSectionHeading424); 
    578668            rule__SectionHeading__Group__0(); 
    579669 
    580670            state._fsp--; 
    581  
    582  
    583             } 
    584  
    585              after(grammarAccess.getSectionHeadingAccess().getGroup());  
    586  
    587             } 
    588  
    589  
    590             } 
    591  
    592         } 
    593         catch (RecognitionException re) { 
    594             reportError(re); 
    595             recover(input,re); 
    596         } 
    597         finally { 
     671            if (state.failed) return ; 
     672 
     673            } 
     674 
     675            if ( state.backtracking==0 ) { 
     676               after(grammarAccess.getSectionHeadingAccess().getGroup());  
     677            } 
     678 
     679            } 
     680 
     681 
     682            } 
     683 
     684        } 
     685        catch (RecognitionException re) { 
     686            reportError(re); 
     687            recover(input,re); 
     688        } 
     689        finally { 
     690            if ( state.backtracking>0 ) { memoize(input, 12, ruleSectionHeading_StartIndex); } 
    598691 
    599692                restoreStackSize(stackSize); 
     
    606699 
    607700    // $ANTLR start "entryRuleImport" 
    608     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:235:1: entryRuleImport : ruleImport EOF ; 
     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 ; 
    609702    public final void entryRuleImport() throws RecognitionException { 
    610         try { 
    611             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:236:1: ( ruleImport EOF ) 
    612             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:237:1: ruleImport EOF 
    613             { 
    614              before(grammarAccess.getImportRule());  
    615             pushFollow(FOLLOW_ruleImport_in_entryRuleImport438); 
     703        int entryRuleImport_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: ( 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 
     708            { 
     709            if ( state.backtracking==0 ) { 
     710               before(grammarAccess.getImportRule());  
     711            } 
     712            pushFollow(FOLLOW_ruleImport_in_entryRuleImport451); 
    616713            ruleImport(); 
    617714 
    618715            state._fsp--; 
    619  
    620              after(grammarAccess.getImportRule());  
    621             match(input,EOF,FOLLOW_EOF_in_entryRuleImport445);  
    622  
    623             } 
    624  
    625         } 
    626         catch (RecognitionException re) { 
    627             reportError(re); 
    628             recover(input,re); 
    629         } 
    630         finally { 
     716            if (state.failed) return ; 
     717            if ( state.backtracking==0 ) { 
     718               after(grammarAccess.getImportRule());  
     719            } 
     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); } 
    631731        } 
    632732        return ; 
     
    636736 
    637737    // $ANTLR start "ruleImport" 
    638     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:244:1: ruleImport : ( ( rule__Import__Group__0 ) ) ; 
     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 ) ) ; 
    639739    public final void ruleImport() throws RecognitionException { 
    640  
    641                         int stackSize = keepStackSize(); 
    642              
    643         try { 
    644             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:248:2: ( ( ( rule__Import__Group__0 ) ) ) 
    645             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:249:1: ( ( rule__Import__Group__0 ) ) 
    646             { 
    647             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:249:1: ( ( rule__Import__Group__0 ) ) 
    648             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:250:1: ( rule__Import__Group__0 ) 
    649             { 
    650              before(grammarAccess.getImportAccess().getGroup());  
    651             // ../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 ) 
    652             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:251:2: rule__Import__Group__0 
    653             { 
    654             pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport471); 
     740        int ruleImport_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__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 ) 
     751            { 
     752            if ( state.backtracking==0 ) { 
     753               before(grammarAccess.getImportAccess().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__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); 
    655759            rule__Import__Group__0(); 
    656760 
    657761            state._fsp--; 
    658  
    659  
    660             } 
    661  
    662              after(grammarAccess.getImportAccess().getGroup());  
    663  
    664             } 
    665  
    666  
    667             } 
    668  
    669         } 
    670         catch (RecognitionException re) { 
    671             reportError(re); 
    672             recover(input,re); 
    673         } 
    674         finally { 
     762            if (state.failed) return ; 
     763 
     764            } 
     765 
     766            if ( state.backtracking==0 ) { 
     767               after(grammarAccess.getImportAccess().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, ruleImport_StartIndex); } 
    675782 
    676783                restoreStackSize(stackSize); 
     
    683790 
    684791    // $ANTLR start "entryRuleRule" 
    685     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:263:1: entryRuleRule : ruleRule EOF ; 
     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 ; 
    686793    public final void entryRuleRule() throws RecognitionException { 
    687         try { 
    688             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:264:1: ( ruleRule EOF ) 
    689             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:265:1: ruleRule EOF 
    690             { 
    691              before(grammarAccess.getRuleRule());  
    692             pushFollow(FOLLOW_ruleRule_in_entryRuleRule498); 
     794        int entryRuleRule_StartIndex = input.index(); 
     795        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 
     799            { 
     800            if ( state.backtracking==0 ) { 
     801               before(grammarAccess.getRuleRule());  
     802            } 
     803            pushFollow(FOLLOW_ruleRule_in_entryRuleRule511); 
    693804            ruleRule(); 
    694805 
    695806            state._fsp--; 
    696  
    697              after(grammarAccess.getRuleRule());  
    698             match(input,EOF,FOLLOW_EOF_in_entryRuleRule505);  
    699  
    700             } 
    701  
    702         } 
    703         catch (RecognitionException re) { 
    704             reportError(re); 
    705             recover(input,re); 
    706         } 
    707         finally { 
     807            if (state.failed) return ; 
     808            if ( state.backtracking==0 ) { 
     809               after(grammarAccess.getRuleRule());  
     810            } 
     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); } 
    708822        } 
    709823        return ; 
     
    713827 
    714828    // $ANTLR start "ruleRule" 
    715     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:272:1: ruleRule : ( ( rule__Rule__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: ruleRule : ( ( rule__Rule__Group__0 ) ) ; 
    716830    public final void ruleRule() throws RecognitionException { 
    717  
    718                         int stackSize = keepStackSize(); 
    719              
    720         try { 
    721             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:276:2: ( ( ( rule__Rule__Group__0 ) ) ) 
    722             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:277:1: ( ( rule__Rule__Group__0 ) ) 
    723             { 
    724             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:277:1: ( ( rule__Rule__Group__0 ) ) 
    725             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:278:1: ( rule__Rule__Group__0 ) 
    726             { 
    727              before(grammarAccess.getRuleAccess().getGroup());  
    728             // ../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 ) 
    729             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:279:2: rule__Rule__Group__0 
    730             { 
    731             pushFollow(FOLLOW_rule__Rule__Group__0_in_ruleRule531); 
     831        int ruleRule_StartIndex = input.index(); 
     832 
     833                        int stackSize = keepStackSize(); 
     834             
     835        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 ) 
     842            { 
     843            if ( state.backtracking==0 ) { 
     844               before(grammarAccess.getRuleAccess().getGroup());  
     845            } 
     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); 
    732850            rule__Rule__Group__0(); 
    733851 
    734852            state._fsp--; 
    735  
    736  
    737             } 
    738  
    739              after(grammarAccess.getRuleAccess().getGroup());  
    740  
    741             } 
    742  
    743  
    744             } 
    745  
    746         } 
    747         catch (RecognitionException re) { 
    748             reportError(re); 
    749             recover(input,re); 
    750         } 
    751         finally { 
     853            if (state.failed) return ; 
     854 
     855            } 
     856 
     857            if ( state.backtracking==0 ) { 
     858               after(grammarAccess.getRuleAccess().getGroup());  
     859            } 
     860 
     861            } 
     862 
     863 
     864            } 
     865 
     866        } 
     867        catch (RecognitionException re) { 
     868            reportError(re); 
     869            recover(input,re); 
     870        } 
     871        finally { 
     872            if ( state.backtracking>0 ) { memoize(input, 16, ruleRule_StartIndex); } 
    752873 
    753874                restoreStackSize(stackSize); 
     
    760881 
    761882    // $ANTLR start "entryRuleExtRule" 
    762     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:291:1: entryRuleExtRule : ruleExtRule EOF ; 
     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 ; 
    763884    public final void entryRuleExtRule() throws RecognitionException { 
    764         try { 
    765             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:292:1: ( ruleExtRule EOF ) 
    766             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:293:1: ruleExtRule EOF 
    767             { 
    768              before(grammarAccess.getExtRuleRule());  
    769             pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule558); 
     885        int entryRuleExtRule_StartIndex = input.index(); 
     886        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 
     890            { 
     891            if ( state.backtracking==0 ) { 
     892               before(grammarAccess.getExtRuleRule());  
     893            } 
     894            pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule571); 
    770895            ruleExtRule(); 
    771896 
    772897            state._fsp--; 
    773  
    774              after(grammarAccess.getExtRuleRule());  
    775             match(input,EOF,FOLLOW_EOF_in_entryRuleExtRule565);  
    776  
    777             } 
    778  
    779         } 
    780         catch (RecognitionException re) { 
    781             reportError(re); 
    782             recover(input,re); 
    783         } 
    784         finally { 
     898            if (state.failed) return ; 
     899            if ( state.backtracking==0 ) { 
     900               after(grammarAccess.getExtRuleRule());  
     901            } 
     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); } 
    785913        } 
    786914        return ; 
     
    790918 
    791919    // $ANTLR start "ruleExtRule" 
    792     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:300:1: ruleExtRule : ( ( rule__ExtRule__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: ruleExtRule : ( ( rule__ExtRule__Group__0 ) ) ; 
    793921    public final void ruleExtRule() throws RecognitionException { 
    794  
    795                         int stackSize = keepStackSize(); 
    796              
    797         try { 
    798             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:304:2: ( ( ( rule__ExtRule__Group__0 ) ) ) 
    799             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:305:1: ( ( rule__ExtRule__Group__0 ) ) 
    800             { 
    801             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:305:1: ( ( rule__ExtRule__Group__0 ) ) 
    802             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:306:1: ( rule__ExtRule__Group__0 ) 
    803             { 
    804              before(grammarAccess.getExtRuleAccess().getGroup());  
    805             // ../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 ) 
    806             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:307:2: rule__ExtRule__Group__0 
    807             { 
    808             pushFollow(FOLLOW_rule__ExtRule__Group__0_in_ruleExtRule591); 
     922        int ruleExtRule_StartIndex = input.index(); 
     923 
     924                        int stackSize = keepStackSize(); 
     925             
     926        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 ) 
     933            { 
     934            if ( state.backtracking==0 ) { 
     935               before(grammarAccess.getExtRuleAccess().getGroup());  
     936            } 
     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); 
    809941            rule__ExtRule__Group__0(); 
    810942 
    811943            state._fsp--; 
    812  
    813  
    814             } 
    815  
    816              after(grammarAccess.getExtRuleAccess().getGroup());  
    817  
    818             } 
    819  
    820  
    821             } 
    822  
    823         } 
    824         catch (RecognitionException re) { 
    825             reportError(re); 
    826             recover(input,re); 
    827         } 
    828         finally { 
     944            if (state.failed) return ; 
     945 
     946            } 
     947 
     948            if ( state.backtracking==0 ) { 
     949               after(grammarAccess.getExtRuleAccess().getGroup());  
     950            } 
     951 
     952            } 
     953 
     954 
     955            } 
     956 
     957        } 
     958        catch (RecognitionException re) { 
     959            reportError(re); 
     960            recover(input,re); 
     961        } 
     962        finally { 
     963            if ( state.backtracking>0 ) { memoize(input, 18, ruleExtRule_StartIndex); } 
    829964 
    830965                restoreStackSize(stackSize); 
     
    837972 
    838973    // $ANTLR start "entryRuleMergeRule" 
    839     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:319:1: entryRuleMergeRule : ruleMergeRule EOF ; 
     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 ; 
    840975    public final void entryRuleMergeRule() throws RecognitionException { 
    841         try { 
    842             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:320:1: ( ruleMergeRule EOF ) 
    843             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:321:1: ruleMergeRule EOF 
    844             { 
    845              before(grammarAccess.getMergeRuleRule());  
    846             pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule618); 
     976        int entryRuleMergeRule_StartIndex = input.index(); 
     977        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 
     981            { 
     982            if ( state.backtracking==0 ) { 
     983               before(grammarAccess.getMergeRuleRule());  
     984            } 
     985            pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule631); 
    847986            ruleMergeRule(); 
    848987 
    849988            state._fsp--; 
    850  
    851              after(grammarAccess.getMergeRuleRule());  
    852             match(input,EOF,FOLLOW_EOF_in_entryRuleMergeRule625);  
    853  
    854             } 
    855  
    856         } 
    857         catch (RecognitionException re) { 
    858             reportError(re); 
    859             recover(input,re); 
    860         } 
    861         finally { 
     989            if (state.failed) return ; 
     990            if ( state.backtracking==0 ) { 
     991               after(grammarAccess.getMergeRuleRule());  
     992            } 
     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); } 
    8621004        } 
    8631005        return ; 
     
    8671009 
    8681010    // $ANTLR start "ruleMergeRule" 
    869     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:328:1: ruleMergeRule : ( ( rule__MergeRule__Alternatives ) ) ; 
     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 ) ) ; 
    8701012    public final void ruleMergeRule() throws RecognitionException { 
    871  
    872                         int stackSize = keepStackSize(); 
    873              
    874         try { 
    875             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:332:2: ( ( ( rule__MergeRule__Alternatives ) ) ) 
    876             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:333:1: ( ( rule__MergeRule__Alternatives ) ) 
    877             { 
    878             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:333:1: ( ( rule__MergeRule__Alternatives ) ) 
    879             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:334:1: ( rule__MergeRule__Alternatives ) 
    880             { 
    881              before(grammarAccess.getMergeRuleAccess().getAlternatives());  
    882             // ../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 ) 
    883             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:335:2: rule__MergeRule__Alternatives 
    884             { 
    885             pushFollow(FOLLOW_rule__MergeRule__Alternatives_in_ruleMergeRule651); 
     1013        int ruleMergeRule_StartIndex = input.index(); 
     1014 
     1015                        int stackSize = keepStackSize(); 
     1016             
     1017        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 ) 
     1024            { 
     1025            if ( state.backtracking==0 ) { 
     1026               before(grammarAccess.getMergeRuleAccess().getAlternatives());  
     1027            } 
     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); 
    8861032            rule__MergeRule__Alternatives(); 
    8871033 
    8881034            state._fsp--; 
    889  
    890  
    891             } 
    892  
    893              after(grammarAccess.getMergeRuleAccess().getAlternatives());  
    894  
    895             } 
    896  
    897  
    898             } 
    899  
    900         } 
    901         catch (RecognitionException re) { 
    902             reportError(re); 
    903             recover(input,re); 
    904         } 
    905         finally { 
     1035            if (state.failed) return ; 
     1036 
     1037            } 
     1038 
     1039            if ( state.backtracking==0 ) { 
     1040               after(grammarAccess.getMergeRuleAccess().getAlternatives());  
     1041            } 
     1042 
     1043            } 
     1044 
     1045 
     1046            } 
     1047 
     1048        } 
     1049        catch (RecognitionException re) { 
     1050            reportError(re); 
     1051            recover(input,re); 
     1052        } 
     1053        finally { 
     1054            if ( state.backtracking>0 ) { memoize(input, 20, ruleMergeRule_StartIndex); } 
    9061055 
    9071056                restoreStackSize(stackSize); 
     
    9141063 
    9151064    // $ANTLR start "entryRuleGlobalCombinator" 
    916     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:347:1: entryRuleGlobalCombinator : ruleGlobalCombinator EOF ; 
     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 ; 
    9171066    public final void entryRuleGlobalCombinator() throws RecognitionException { 
    918         try { 
    919             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:348:1: ( ruleGlobalCombinator EOF ) 
    920             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:349:1: ruleGlobalCombinator EOF 
    921             { 
    922              before(grammarAccess.getGlobalCombinatorRule());  
    923             pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator678); 
     1067        int entryRuleGlobalCombinator_StartIndex = input.index(); 
     1068        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 
     1072            { 
     1073            if ( state.backtracking==0 ) { 
     1074               before(grammarAccess.getGlobalCombinatorRule());  
     1075            } 
     1076            pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator691); 
    9241077            ruleGlobalCombinator(); 
    9251078 
    9261079            state._fsp--; 
    927  
    928              after(grammarAccess.getGlobalCombinatorRule());  
    929             match(input,EOF,FOLLOW_EOF_in_entryRuleGlobalCombinator685);  
    930  
    931             } 
    932  
    933         } 
    934         catch (RecognitionException re) { 
    935             reportError(re); 
    936             recover(input,re); 
    937         } 
    938         finally { 
     1080            if (state.failed) return ; 
     1081            if ( state.backtracking==0 ) { 
     1082               after(grammarAccess.getGlobalCombinatorRule());  
     1083            } 
     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); } 
    9391095        } 
    9401096        return ; 
     
    9441100 
    9451101    // $ANTLR start "ruleGlobalCombinator" 
    946     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:356:1: ruleGlobalCombinator : ( ( rule__GlobalCombinator__Group__0 ) ) ; 
     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 ) ) ; 
    9471103    public final void ruleGlobalCombinator() throws RecognitionException { 
    948  
    949                         int stackSize = keepStackSize(); 
    950              
    951         try { 
    952             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:360:2: ( ( ( rule__GlobalCombinator__Group__0 ) ) ) 
    953             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:361:1: ( ( rule__GlobalCombinator__Group__0 ) ) 
    954             { 
    955             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:361:1: ( ( rule__GlobalCombinator__Group__0 ) ) 
    956             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:362:1: ( rule__GlobalCombinator__Group__0 ) 
    957             { 
    958              before(grammarAccess.getGlobalCombinatorAccess().getGroup());  
    959             // ../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 ) 
    960             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:363:2: rule__GlobalCombinator__Group__0 
    961             { 
    962             pushFollow(FOLLOW_rule__GlobalCombinator__Group__0_in_ruleGlobalCombinator711); 
     1104        int ruleGlobalCombinator_StartIndex = input.index(); 
     1105 
     1106                        int stackSize = keepStackSize(); 
     1107             
     1108        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 ) 
     1115            { 
     1116            if ( state.backtracking==0 ) { 
     1117               before(grammarAccess.getGlobalCombinatorAccess().getGroup());  
     1118            } 
     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); 
    9631123            rule__GlobalCombinator__Group__0(); 
    9641124 
    9651125            state._fsp--; 
    966  
    967  
    968             } 
    969  
    970              after(grammarAccess.getGlobalCombinatorAccess().getGroup());  
    971  
    972             } 
    973  
    974  
    975             } 
    976  
    977         } 
    978         catch (RecognitionException re) { 
    979             reportError(re); 
    980             recover(input,re); 
    981         } 
    982         finally { 
     1126            if (state.failed) return ; 
     1127 
     1128            } 
     1129 
     1130            if ( state.backtracking==0 ) { 
     1131               after(grammarAccess.getGlobalCombinatorAccess().getGroup());  
     1132            } 
     1133 
     1134            } 
     1135 
     1136 
     1137            } 
     1138 
     1139        } 
     1140        catch (RecognitionException re) { 
     1141            reportError(re); 
     1142            recover(input,re); 
     1143        } 
     1144        finally { 
     1145            if ( state.backtracking>0 ) { memoize(input, 22, ruleGlobalCombinator_StartIndex); } 
    9831146 
    9841147                restoreStackSize(stackSize); 
     
    9911154 
    9921155    // $ANTLR start "entryRuleRuleCombinator" 
    993     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:375:1: entryRuleRuleCombinator : ruleRuleCombinator EOF ; 
     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 ; 
    9941157    public final void entryRuleRuleCombinator() throws RecognitionException { 
    995         try { 
    996             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:376:1: ( ruleRuleCombinator EOF ) 
    997             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:377:1: ruleRuleCombinator EOF 
    998             { 
    999              before(grammarAccess.getRuleCombinatorRule());  
    1000             pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator738); 
     1158        int entryRuleRuleCombinator_StartIndex = input.index(); 
     1159        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 
     1163            { 
     1164            if ( state.backtracking==0 ) { 
     1165               before(grammarAccess.getRuleCombinatorRule());  
     1166            } 
     1167            pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator751); 
    10011168            ruleRuleCombinator(); 
    10021169 
    10031170            state._fsp--; 
    1004  
    1005              after(grammarAccess.getRuleCombinatorRule());  
    1006             match(input,EOF,FOLLOW_EOF_in_entryRuleRuleCombinator745);  
    1007  
    1008             } 
    1009  
    1010         } 
    1011         catch (RecognitionException re) { 
    1012             reportError(re); 
    1013             recover(input,re); 
    1014         } 
    1015         finally { 
     1171            if (state.failed) return ; 
     1172            if ( state.backtracking==0 ) { 
     1173               after(grammarAccess.getRuleCombinatorRule());  
     1174            } 
     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); } 
    10161186        } 
    10171187        return ; 
     
    10211191 
    10221192    // $ANTLR start "ruleRuleCombinator" 
    1023     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:384:1: ruleRuleCombinator : ( ( rule__RuleCombinator__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: ruleRuleCombinator : ( ( rule__RuleCombinator__Group__0 ) ) ; 
    10241194    public final void ruleRuleCombinator() throws RecognitionException { 
    1025  
    1026                         int stackSize = keepStackSize(); 
    1027              
    1028         try { 
    1029             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:388:2: ( ( ( rule__RuleCombinator__Group__0 ) ) ) 
    1030             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:389:1: ( ( rule__RuleCombinator__Group__0 ) ) 
    1031             { 
    1032             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:389:1: ( ( rule__RuleCombinator__Group__0 ) ) 
    1033             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:390:1: ( rule__RuleCombinator__Group__0 ) 
    1034             { 
    1035              before(grammarAccess.getRuleCombinatorAccess().getGroup());  
    1036             // ../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 ) 
    1037             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:391:2: rule__RuleCombinator__Group__0 
    1038             { 
    1039             pushFollow(FOLLOW_rule__RuleCombinator__Group__0_in_ruleRuleCombinator771); 
     1195        int ruleRuleCombinator_StartIndex = input.index(); 
     1196 
     1197                        int stackSize = keepStackSize(); 
     1198             
     1199        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 ) 
     1206            { 
     1207            if ( state.backtracking==0 ) { 
     1208               before(grammarAccess.getRuleCombinatorAccess().getGroup());  
     1209            } 
     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); 
    10401214            rule__RuleCombinator__Group__0(); 
    10411215 
    10421216            state._fsp--; 
    1043  
    1044  
    1045             } 
    1046  
    1047              after(grammarAccess.getRuleCombinatorAccess().getGroup());  
    1048  
    1049             } 
    1050  
    1051  
    1052             } 
    1053  
    1054         } 
    1055         catch (RecognitionException re) { 
    1056             reportError(re); 
    1057             recover(input,re); 
    1058         } 
    1059         finally { 
     1217            if (state.failed) return ; 
     1218 
     1219            } 
     1220 
     1221            if ( state.backtracking==0 ) { 
     1222               after(grammarAccess.getRuleCombinatorAccess().getGroup());  
     1223            } 
     1224 
     1225            } 
     1226 
     1227 
     1228            } 
     1229 
     1230        } 
     1231        catch (RecognitionException re) { 
     1232            reportError(re); 
     1233            recover(input,re); 
     1234        } 
     1235        finally { 
     1236            if ( state.backtracking>0 ) { memoize(input, 24, ruleRuleCombinator_StartIndex); } 
    10601237 
    10611238                restoreStackSize(stackSize); 
     
    10681245 
    10691246    // $ANTLR start "entryRuleHookCombinator" 
    1070     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:403:1: entryRuleHookCombinator : ruleHookCombinator EOF ; 
     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 ; 
    10711248    public final void entryRuleHookCombinator() throws RecognitionException { 
    1072         try { 
    1073             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:404:1: ( ruleHookCombinator EOF ) 
    1074             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:405:1: ruleHookCombinator EOF 
    1075             { 
    1076              before(grammarAccess.getHookCombinatorRule());  
    1077             pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator798); 
     1249        int entryRuleHookCombinator_StartIndex = input.index(); 
     1250        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 
     1254            { 
     1255            if ( state.backtracking==0 ) { 
     1256               before(grammarAccess.getHookCombinatorRule());  
     1257            } 
     1258            pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator811); 
    10781259            ruleHookCombinator(); 
    10791260 
    10801261            state._fsp--; 
    1081  
    1082              after(grammarAccess.getHookCombinatorRule());  
    1083             match(input,EOF,FOLLOW_EOF_in_entryRuleHookCombinator805);  
    1084  
    1085             } 
    1086  
    1087         } 
    1088         catch (RecognitionException re) { 
    1089             reportError(re); 
    1090             recover(input,re); 
    1091         } 
    1092         finally { 
     1262            if (state.failed) return ; 
     1263            if ( state.backtracking==0 ) { 
     1264               after(grammarAccess.getHookCombinatorRule());  
     1265            } 
     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); } 
    10931277        } 
    10941278        return ; 
     
    10981282 
    10991283    // $ANTLR start "ruleHookCombinator" 
    1100     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:412:1: ruleHookCombinator : ( ( rule__HookCombinator__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: ruleHookCombinator : ( ( rule__HookCombinator__Group__0 ) ) ; 
    11011285    public final void ruleHookCombinator() throws RecognitionException { 
    1102  
    1103                         int stackSize = keepStackSize(); 
    1104              
    1105         try { 
    1106             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:416:2: ( ( ( rule__HookCombinator__Group__0 ) ) ) 
    1107             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:417:1: ( ( rule__HookCombinator__Group__0 ) ) 
    1108             { 
    1109             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:417:1: ( ( rule__HookCombinator__Group__0 ) ) 
    1110             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:418:1: ( rule__HookCombinator__Group__0 ) 
    1111             { 
    1112              before(grammarAccess.getHookCombinatorAccess().getGroup());  
    1113             // ../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 ) 
    1114             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:419:2: rule__HookCombinator__Group__0 
    1115             { 
    1116             pushFollow(FOLLOW_rule__HookCombinator__Group__0_in_ruleHookCombinator831); 
     1286        int ruleHookCombinator_StartIndex = input.index(); 
     1287 
     1288                        int stackSize = keepStackSize(); 
     1289             
     1290        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 ) 
     1297            { 
     1298            if ( state.backtracking==0 ) { 
     1299               before(grammarAccess.getHookCombinatorAccess().getGroup());  
     1300            } 
     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); 
    11171305            rule__HookCombinator__Group__0(); 
    11181306 
    11191307            state._fsp--; 
    1120  
    1121  
    1122             } 
    1123  
    1124              after(grammarAccess.getHookCombinatorAccess().getGroup());  
    1125  
    1126             } 
    1127  
    1128  
    1129             } 
    1130  
    1131         } 
    1132         catch (RecognitionException re) { 
    1133             reportError(re); 
    1134             recover(input,re); 
    1135         } 
    1136         finally { 
     1308            if (state.failed) return ; 
     1309 
     1310            } 
     1311 
     1312            if ( state.backtracking==0 ) { 
     1313               after(grammarAccess.getHookCombinatorAccess().getGroup());  
     1314            } 
     1315 
     1316            } 
     1317 
     1318 
     1319            } 
     1320 
     1321        } 
     1322        catch (RecognitionException re) { 
     1323            reportError(re); 
     1324            recover(input,re); 
     1325        } 
     1326        finally { 
     1327            if ( state.backtracking>0 ) { memoize(input, 26, ruleHookCombinator_StartIndex); } 
    11371328 
    11381329                restoreStackSize(stackSize); 
     
    11451336 
    11461337    // $ANTLR start "entryRuleDefinitionList" 
    1147     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:431:1: entryRuleDefinitionList : ruleDefinitionList EOF ; 
     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 ; 
    11481339    public final void entryRuleDefinitionList() throws RecognitionException { 
    1149         try { 
    1150             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:432:1: ( ruleDefinitionList EOF ) 
    1151             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:433:1: ruleDefinitionList EOF 
    1152             { 
    1153              before(grammarAccess.getDefinitionListRule());  
    1154             pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList858); 
     1340        int entryRuleDefinitionList_StartIndex = input.index(); 
     1341        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 
     1345            { 
     1346            if ( state.backtracking==0 ) { 
     1347               before(grammarAccess.getDefinitionListRule());  
     1348            } 
     1349            pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList871); 
    11551350            ruleDefinitionList(); 
    11561351 
    11571352            state._fsp--; 
    1158  
    1159              after(grammarAccess.getDefinitionListRule());  
    1160             match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitionList865);  
    1161  
    1162             } 
    1163  
    1164         } 
    1165         catch (RecognitionException re) { 
    1166             reportError(re); 
    1167             recover(input,re); 
    1168         } 
    1169         finally { 
     1353            if (state.failed) return ; 
     1354            if ( state.backtracking==0 ) { 
     1355               after(grammarAccess.getDefinitionListRule());  
     1356            } 
     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); } 
    11701368        } 
    11711369        return ; 
     
    11751373 
    11761374    // $ANTLR start "ruleDefinitionList" 
    1177     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:440:1: ruleDefinitionList : ( ( rule__DefinitionList__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: ruleDefinitionList : ( ( rule__DefinitionList__Group__0 ) ) ; 
    11781376    public final void ruleDefinitionList() throws RecognitionException { 
    1179  
    1180                         int stackSize = keepStackSize(); 
    1181              
    1182         try { 
    1183             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:444:2: ( ( ( rule__DefinitionList__Group__0 ) ) ) 
    1184             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:445:1: ( ( rule__DefinitionList__Group__0 ) ) 
    1185             { 
    1186             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:445:1: ( ( rule__DefinitionList__Group__0 ) ) 
    1187             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:446:1: ( rule__DefinitionList__Group__0 ) 
    1188             { 
    1189              before(grammarAccess.getDefinitionListAccess().getGroup());  
    1190             // ../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 ) 
    1191             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:447:2: rule__DefinitionList__Group__0 
    1192             { 
    1193             pushFollow(FOLLOW_rule__DefinitionList__Group__0_in_ruleDefinitionList891); 
     1377        int ruleDefinitionList_StartIndex = input.index(); 
     1378 
     1379                        int stackSize = keepStackSize(); 
     1380             
     1381        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 ) 
     1388            { 
     1389            if ( state.backtracking==0 ) { 
     1390               before(grammarAccess.getDefinitionListAccess().getGroup());  
     1391            } 
     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); 
    11941396            rule__DefinitionList__Group__0(); 
    11951397 
    11961398            state._fsp--; 
    1197  
    1198  
    1199             } 
    1200  
    1201              after(grammarAccess.getDefinitionListAccess().getGroup());  
    1202  
    1203             } 
    1204  
    1205  
    1206             } 
    1207  
    1208         } 
    1209         catch (RecognitionException re) { 
    1210             reportError(re); 
    1211             recover(input,re); 
    1212         } 
    1213         finally { 
     1399            if (state.failed) return ; 
     1400 
     1401            } 
     1402 
     1403            if ( state.backtracking==0 ) { 
     1404               after(grammarAccess.getDefinitionListAccess().getGroup());  
     1405            } 
     1406 
     1407            } 
     1408 
     1409 
     1410            } 
     1411 
     1412        } 
     1413        catch (RecognitionException re) { 
     1414            reportError(re); 
     1415            recover(input,re); 
     1416        } 
     1417        finally { 
     1418            if ( state.backtracking>0 ) { memoize(input, 28, ruleDefinitionList_StartIndex); } 
    12141419 
    12151420                restoreStackSize(stackSize); 
     
    12221427 
    12231428    // $ANTLR start "entryRuleSingleDefinition" 
    1224     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:459:1: entryRuleSingleDefinition : ruleSingleDefinition EOF ; 
     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 ; 
    12251430    public final void entryRuleSingleDefinition() throws RecognitionException { 
    1226         try { 
    1227             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:460:1: ( ruleSingleDefinition EOF ) 
    1228             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:461:1: ruleSingleDefinition EOF 
    1229             { 
    1230              before(grammarAccess.getSingleDefinitionRule());  
    1231             pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition918); 
     1431        int entryRuleSingleDefinition_StartIndex = input.index(); 
     1432        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 
     1436            { 
     1437            if ( state.backtracking==0 ) { 
     1438               before(grammarAccess.getSingleDefinitionRule());  
     1439            } 
     1440            pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition931); 
    12321441            ruleSingleDefinition(); 
    12331442 
    12341443            state._fsp--; 
    1235  
    1236              after(grammarAccess.getSingleDefinitionRule());  
    1237             match(input,EOF,FOLLOW_EOF_in_entryRuleSingleDefinition925);  
    1238  
    1239             } 
    1240  
    1241         } 
    1242         catch (RecognitionException re) { 
    1243             reportError(re); 
    1244             recover(input,re); 
    1245         } 
    1246         finally { 
     1444            if (state.failed) return ; 
     1445            if ( state.backtracking==0 ) { 
     1446               after(grammarAccess.getSingleDefinitionRule());  
     1447            } 
     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); } 
    12471459        } 
    12481460        return ; 
     
    12521464 
    12531465    // $ANTLR start "ruleSingleDefinition" 
    1254     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:468:1: ruleSingleDefinition : ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) ; 
     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 )* ) ) ; 
    12551467    public final void ruleSingleDefinition() throws RecognitionException { 
    1256  
    1257                         int stackSize = keepStackSize(); 
    1258              
    1259         try { 
    1260             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:472:2: ( ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) ) 
    1261             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:473:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) 
    1262             { 
    1263             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:473:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) 
    1264             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:474:1: ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) 
    1265             { 
    1266             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:474:1: ( ( rule__SingleDefinition__TermsAssignment ) ) 
    1267             // ../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 ) 
    1268             { 
    1269              before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
    1270             // ../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 ) 
    1271             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:476:2: rule__SingleDefinition__TermsAssignment 
    1272             { 
    1273             pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition953); 
     1468        int ruleSingleDefinition_StartIndex = input.index(); 
     1469 
     1470                        int stackSize = keepStackSize(); 
     1471             
     1472        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 ) 
     1482            { 
     1483            if ( state.backtracking==0 ) { 
     1484               before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
     1485            } 
     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); 
    12741490            rule__SingleDefinition__TermsAssignment(); 
    12751491 
    12761492            state._fsp--; 
    1277  
    1278  
    1279             } 
    1280  
    1281              after(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
    1282  
    1283             } 
    1284  
    1285             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:479:1: ( ( rule__SingleDefinition__TermsAssignment )* ) 
    1286             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:480:1: ( rule__SingleDefinition__TermsAssignment )* 
    1287             { 
    1288              before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
    1289             // ../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 )* 
     1493            if (state.failed) return ; 
     1494 
     1495            } 
     1496 
     1497            if ( state.backtracking==0 ) { 
     1498               after(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
     1499            } 
     1500 
     1501            } 
     1502 
     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 )* 
     1505            { 
     1506            if ( state.backtracking==0 ) { 
     1507               before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
     1508            } 
     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 )* 
    12901510            loop2: 
    12911511            do { 
     
    13181538                switch (alt2) { 
    13191539                case 1 : 
    1320                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:481:2: rule__SingleDefinition__TermsAssignment 
     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 
    13211541                    { 
    1322                     pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition965); 
     1542                    pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition978); 
    13231543                    rule__SingleDefinition__TermsAssignment(); 
    13241544 
    13251545                    state._fsp--; 
    1326  
     1546                    if (state.failed) return ; 
    13271547 
    13281548                    } 
     
    13341554            } while (true); 
    13351555 
    1336              after(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
    1337  
    1338             } 
    1339  
    1340  
    1341             } 
    1342  
    1343  
    1344             } 
    1345  
    1346         } 
    1347         catch (RecognitionException re) { 
    1348             reportError(re); 
    1349             recover(input,re); 
    1350         } 
    1351         finally { 
     1556            if ( state.backtracking==0 ) { 
     1557               after(grammarAccess.getSingleDefinitionAccess().getTermsAssignment());  
     1558            } 
     1559 
     1560            } 
     1561 
     1562 
     1563            } 
     1564 
     1565 
     1566            } 
     1567 
     1568        } 
     1569        catch (RecognitionException re) { 
     1570            reportError(re); 
     1571            recover(input,re); 
     1572        } 
     1573        finally { 
     1574            if ( state.backtracking>0 ) { memoize(input, 30, ruleSingleDefinition_StartIndex); } 
    13521575 
    13531576                restoreStackSize(stackSize); 
     
    13601583 
    13611584    // $ANTLR start "entryRuleTerm" 
    1362     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:494:1: entryRuleTerm : ruleTerm EOF ; 
     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 ; 
    13631586    public final void entryRuleTerm() throws RecognitionException { 
    1364         try { 
    1365             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:495:1: ( ruleTerm EOF ) 
    1366             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:496:1: ruleTerm EOF 
    1367             { 
    1368              before(grammarAccess.getTermRule());  
    1369             pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm995); 
     1587        int entryRuleTerm_StartIndex = input.index(); 
     1588        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 
     1592            { 
     1593            if ( state.backtracking==0 ) { 
     1594               before(grammarAccess.getTermRule());  
     1595            } 
     1596            pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm1008); 
    13701597            ruleTerm(); 
    13711598 
    13721599            state._fsp--; 
    1373  
    1374              after(grammarAccess.getTermRule());  
    1375             match(input,EOF,FOLLOW_EOF_in_entryRuleTerm1002);  
    1376  
    1377             } 
    1378  
    1379         } 
    1380         catch (RecognitionException re) { 
    1381             reportError(re); 
    1382             recover(input,re); 
    1383         } 
    1384         finally { 
     1600            if (state.failed) return ; 
     1601            if ( state.backtracking==0 ) { 
     1602               after(grammarAccess.getTermRule());  
     1603            } 
     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); } 
    13851615        } 
    13861616        return ; 
     
    13901620 
    13911621    // $ANTLR start "ruleTerm" 
    1392     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:503:1: ruleTerm : ( ( rule__Term__Alternatives ) ) ; 
     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 ) ) ; 
    13931623    public final void ruleTerm() throws RecognitionException { 
    1394  
    1395                         int stackSize = keepStackSize(); 
    1396              
    1397         try { 
    1398             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:507:2: ( ( ( rule__Term__Alternatives ) ) ) 
    1399             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:508:1: ( ( rule__Term__Alternatives ) ) 
    1400             { 
    1401             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:508:1: ( ( rule__Term__Alternatives ) ) 
    1402             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:509:1: ( rule__Term__Alternatives ) 
    1403             { 
    1404              before(grammarAccess.getTermAccess().getAlternatives());  
    1405             // ../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 ) 
    1406             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:510:2: rule__Term__Alternatives 
    1407             { 
    1408             pushFollow(FOLLOW_rule__Term__Alternatives_in_ruleTerm1028); 
     1624        int ruleTerm_StartIndex = input.index(); 
     1625 
     1626                        int stackSize = keepStackSize(); 
     1627             
     1628        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 ) 
     1635            { 
     1636            if ( state.backtracking==0 ) { 
     1637               before(grammarAccess.getTermAccess().getAlternatives());  
     1638            } 
     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); 
    14091643            rule__Term__Alternatives(); 
    14101644 
    14111645            state._fsp--; 
    1412  
    1413  
    1414             } 
    1415  
    1416              after(grammarAccess.getTermAccess().getAlternatives());  
    1417  
    1418             } 
    1419  
    1420  
    1421             } 
    1422  
    1423         } 
    1424         catch (RecognitionException re) { 
    1425             reportError(re); 
    1426             recover(input,re); 
    1427         } 
    1428         finally { 
     1646            if (state.failed) return ; 
     1647 
     1648            } 
     1649 
     1650            if ( state.backtracking==0 ) { 
     1651               after(grammarAccess.getTermAccess().getAlternatives());  
     1652            } 
     1653 
     1654            } 
     1655 
     1656 
     1657            } 
     1658 
     1659        } 
     1660        catch (RecognitionException re) { 
     1661            reportError(re); 
     1662            recover(input,re); 
     1663        } 
     1664        finally { 
     1665            if ( state.backtracking>0 ) { memoize(input, 32, ruleTerm_StartIndex); } 
    14291666 
    14301667                restoreStackSize(stackSize); 
     
    14371674 
    14381675    // $ANTLR start "entryRuleAtom" 
    1439     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:522:1: entryRuleAtom : ruleAtom EOF ; 
     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 ; 
    14401677    public final void entryRuleAtom() throws RecognitionException { 
    1441         try { 
    1442             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:523:1: ( ruleAtom EOF ) 
    1443             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:524:1: ruleAtom EOF 
    1444             { 
    1445              before(grammarAccess.getAtomRule());  
    1446             pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom1055); 
     1678        int entryRuleAtom_StartIndex = input.index(); 
     1679        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 
     1683            { 
     1684            if ( state.backtracking==0 ) { 
     1685               before(grammarAccess.getAtomRule());  
     1686            } 
     1687            pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom1068); 
    14471688            ruleAtom(); 
    14481689 
    14491690            state._fsp--; 
    1450  
    1451              after(grammarAccess.getAtomRule());  
    1452             match(input,EOF,FOLLOW_EOF_in_entryRuleAtom1062);  
    1453  
    1454             } 
    1455  
    1456         } 
    1457         catch (RecognitionException re) { 
    1458             reportError(re); 
    1459             recover(input,re); 
    1460         } 
    1461         finally { 
     1691            if (state.failed) return ; 
     1692            if ( state.backtracking==0 ) { 
     1693               after(grammarAccess.getAtomRule());  
     1694            } 
     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); } 
    14621706        } 
    14631707        return ; 
     
    14671711 
    14681712    // $ANTLR start "ruleAtom" 
    1469     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:531:1: ruleAtom : ( ( rule__Atom__Alternatives ) ) ; 
     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 ) ) ; 
    14701714    public final void ruleAtom() throws RecognitionException { 
    1471  
    1472                         int stackSize = keepStackSize(); 
    1473              
    1474         try { 
    1475             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:535:2: ( ( ( rule__Atom__Alternatives ) ) ) 
    1476             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:536:1: ( ( rule__Atom__Alternatives ) ) 
    1477             { 
    1478             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:536:1: ( ( rule__Atom__Alternatives ) ) 
    1479             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:537:1: ( rule__Atom__Alternatives ) 
    1480             { 
    1481              before(grammarAccess.getAtomAccess().getAlternatives());  
    1482             // ../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 ) 
    1483             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:538:2: rule__Atom__Alternatives 
    1484             { 
    1485             pushFollow(FOLLOW_rule__Atom__Alternatives_in_ruleAtom1088); 
     1715        int ruleAtom_StartIndex = input.index(); 
     1716 
     1717                        int stackSize = keepStackSize(); 
     1718             
     1719        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 ) 
     1726            { 
     1727            if ( state.backtracking==0 ) { 
     1728               before(grammarAccess.getAtomAccess().getAlternatives());  
     1729            } 
     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); 
    14861734            rule__Atom__Alternatives(); 
    14871735 
    14881736            state._fsp--; 
    1489  
    1490  
    1491             } 
    1492  
    1493              after(grammarAccess.getAtomAccess().getAlternatives());  
    1494  
    1495             } 
    1496  
    1497  
    1498             } 
    1499  
    1500         } 
    1501         catch (RecognitionException re) { 
    1502             reportError(re); 
    1503             recover(input,re); 
    1504         } 
    1505         finally { 
     1737            if (state.failed) return ; 
     1738 
     1739            } 
     1740 
     1741            if ( state.backtracking==0 ) { 
     1742               after(grammarAccess.getAtomAccess().getAlternatives());  
     1743            } 
     1744 
     1745            } 
     1746 
     1747 
     1748            } 
     1749 
     1750        } 
     1751        catch (RecognitionException re) { 
     1752            reportError(re); 
     1753            recover(input,re); 
     1754        } 
     1755        finally { 
     1756            if ( state.backtracking>0 ) { memoize(input, 34, ruleAtom_StartIndex); } 
    15061757 
    15071758                restoreStackSize(stackSize); 
     
    15141765 
    15151766    // $ANTLR start "entryRuleRuleReference" 
    1516     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:550:1: entryRuleRuleReference : ruleRuleReference EOF ; 
     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 ; 
    15171768    public final void entryRuleRuleReference() throws RecognitionException { 
    1518         try { 
    1519             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:551:1: ( ruleRuleReference EOF ) 
    1520             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:552:1: ruleRuleReference EOF 
    1521             { 
    1522              before(grammarAccess.getRuleReferenceRule());  
    1523             pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference1115); 
     1769        int entryRuleRuleReference_StartIndex = input.index(); 
     1770        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 
     1774            { 
     1775            if ( state.backtracking==0 ) { 
     1776               before(grammarAccess.getRuleReferenceRule());  
     1777            } 
     1778            pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference1128); 
    15241779            ruleRuleReference(); 
    15251780 
    15261781            state._fsp--; 
    1527  
    1528              after(grammarAccess.getRuleReferenceRule());  
    1529             match(input,EOF,FOLLOW_EOF_in_entryRuleRuleReference1122);  
    1530  
    1531             } 
    1532  
    1533         } 
    1534         catch (RecognitionException re) { 
    1535             reportError(re); 
    1536             recover(input,re); 
    1537         } 
    1538         finally { 
     1782            if (state.failed) return ; 
     1783            if ( state.backtracking==0 ) { 
     1784               after(grammarAccess.getRuleReferenceRule());  
     1785            } 
     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); } 
    15391797        } 
    15401798        return ; 
     
    15441802 
    15451803    // $ANTLR start "ruleRuleReference" 
    1546     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:559:1: ruleRuleReference : ( ( rule__RuleReference__RulerefAssignment ) ) ; 
     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 ) ) ; 
    15471805    public final void ruleRuleReference() throws RecognitionException { 
    1548  
    1549                         int stackSize = keepStackSize(); 
    1550              
    1551         try { 
    1552             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:563:2: ( ( ( rule__RuleReference__RulerefAssignment ) ) ) 
    1553             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:564:1: ( ( rule__RuleReference__RulerefAssignment ) ) 
    1554             { 
    1555             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:564:1: ( ( rule__RuleReference__RulerefAssignment ) ) 
    1556             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:565:1: ( rule__RuleReference__RulerefAssignment ) 
    1557             { 
    1558              before(grammarAccess.getRuleReferenceAccess().getRulerefAssignment());  
    1559             // ../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 ) 
    1560             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:566:2: rule__RuleReference__RulerefAssignment 
    1561             { 
    1562             pushFollow(FOLLOW_rule__RuleReference__RulerefAssignment_in_ruleRuleReference1148); 
     1806        int ruleRuleReference_StartIndex = input.index(); 
     1807 
     1808                        int stackSize = keepStackSize(); 
     1809             
     1810        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 ) 
     1817            { 
     1818            if ( state.backtracking==0 ) { 
     1819               before(grammarAccess.getRuleReferenceAccess().getRulerefAssignment());  
     1820            } 
     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); 
    15631825            rule__RuleReference__RulerefAssignment(); 
    15641826 
    15651827            state._fsp--; 
    1566  
    1567  
    1568             } 
    1569  
    1570              after(grammarAccess.getRuleReferenceAccess().getRulerefAssignment());  
    1571  
    1572             } 
    1573  
    1574  
    1575             } 
    1576  
    1577         } 
    1578         catch (RecognitionException re) { 
    1579             reportError(re); 
    1580             recover(input,re); 
    1581         } 
    1582         finally { 
     1828            if (state.failed) return ; 
     1829 
     1830            } 
     1831 
     1832            if ( state.backtracking==0 ) { 
     1833               after(grammarAccess.getRuleReferenceAccess().getRulerefAssignment());  
     1834            } 
     1835 
     1836            } 
     1837 
     1838 
     1839            } 
     1840 
     1841        } 
     1842        catch (RecognitionException re) { 
     1843            reportError(re); 
     1844            recover(input,re); 
     1845        } 
     1846        finally { 
     1847            if ( state.backtracking>0 ) { memoize(input, 36, ruleRuleReference_StartIndex); } 
    15831848 
    15841849                restoreStackSize(stackSize); 
     
    15911856 
    15921857    // $ANTLR start "entryRuleStringRule" 
    1593     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:578:1: entryRuleStringRule : ruleStringRule EOF ; 
     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 ; 
    15941859    public final void entryRuleStringRule() throws RecognitionException { 
    1595         try { 
    1596             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:579:1: ( ruleStringRule EOF ) 
    1597             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:580:1: ruleStringRule EOF 
    1598             { 
    1599              before(grammarAccess.getStringRuleRule());  
    1600             pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule1175); 
     1860        int entryRuleStringRule_StartIndex = input.index(); 
     1861        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 
     1865            { 
     1866            if ( state.backtracking==0 ) { 
     1867               before(grammarAccess.getStringRuleRule());  
     1868            } 
     1869            pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule1188); 
    16011870            ruleStringRule(); 
    16021871 
    16031872            state._fsp--; 
    1604  
    1605              after(grammarAccess.getStringRuleRule());  
    1606             match(input,EOF,FOLLOW_EOF_in_entryRuleStringRule1182);  
    1607  
    1608             } 
    1609  
    1610         } 
    1611         catch (RecognitionException re) { 
    1612             reportError(re); 
    1613             recover(input,re); 
    1614         } 
    1615         finally { 
     1873            if (state.failed) return ; 
     1874            if ( state.backtracking==0 ) { 
     1875               after(grammarAccess.getStringRuleRule());  
     1876            } 
     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); } 
    16161888        } 
    16171889        return ; 
     
    16211893 
    16221894    // $ANTLR start "ruleStringRule" 
    1623     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:587:1: ruleStringRule : ( ( rule__StringRule__Alternatives ) ) ; 
     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 ) ) ; 
    16241896    public final void ruleStringRule() throws RecognitionException { 
    1625  
    1626                         int stackSize = keepStackSize(); 
    1627              
    1628         try { 
    1629             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:591:2: ( ( ( rule__StringRule__Alternatives ) ) ) 
    1630             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:592:1: ( ( rule__StringRule__Alternatives ) ) 
    1631             { 
    1632             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:592:1: ( ( rule__StringRule__Alternatives ) ) 
    1633             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:593:1: ( rule__StringRule__Alternatives ) 
    1634             { 
    1635              before(grammarAccess.getStringRuleAccess().getAlternatives());  
    1636             // ../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 ) 
    1637             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:594:2: rule__StringRule__Alternatives 
    1638             { 
    1639             pushFollow(FOLLOW_rule__StringRule__Alternatives_in_ruleStringRule1208); 
     1897        int ruleStringRule_StartIndex = input.index(); 
     1898 
     1899                        int stackSize = keepStackSize(); 
     1900             
     1901        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 ) 
     1908            { 
     1909            if ( state.backtracking==0 ) { 
     1910               before(grammarAccess.getStringRuleAccess().getAlternatives());  
     1911            } 
     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); 
    16401916            rule__StringRule__Alternatives(); 
    16411917 
    16421918            state._fsp--; 
    1643  
    1644  
    1645             } 
    1646  
    1647              after(grammarAccess.getStringRuleAccess().getAlternatives());  
    1648  
    1649             } 
    1650  
    1651  
    1652             } 
    1653  
    1654         } 
    1655         catch (RecognitionException re) { 
    1656             reportError(re); 
    1657             recover(input,re); 
    1658         } 
    1659         finally { 
     1919            if (state.failed) return ; 
     1920 
     1921            } 
     1922 
     1923            if ( state.backtracking==0 ) { 
     1924               after(grammarAccess.getStringRuleAccess().getAlternatives());  
     1925            } 
     1926 
     1927            } 
     1928 
     1929 
     1930            } 
     1931 
     1932        } 
     1933        catch (RecognitionException re) { 
     1934            reportError(re); 
     1935            recover(input,re); 
     1936        } 
     1937        finally { 
     1938            if ( state.backtracking>0 ) { memoize(input, 38, ruleStringRule_StartIndex); } 
    16601939 
    16611940                restoreStackSize(stackSize); 
     
    16681947 
    16691948    // $ANTLR start "entryRuleGroupedSequence" 
    1670     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:606:1: entryRuleGroupedSequence : ruleGroupedSequence EOF ; 
     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 ; 
    16711950    public final void entryRuleGroupedSequence() throws RecognitionException { 
    1672         try { 
    1673             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:607:1: ( ruleGroupedSequence EOF ) 
    1674             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:608:1: ruleGroupedSequence EOF 
    1675             { 
    1676              before(grammarAccess.getGroupedSequenceRule());  
    1677             pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1235); 
     1951        int entryRuleGroupedSequence_StartIndex = input.index(); 
     1952        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 
     1956            { 
     1957            if ( state.backtracking==0 ) { 
     1958               before(grammarAccess.getGroupedSequenceRule());  
     1959            } 
     1960            pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1248); 
    16781961            ruleGroupedSequence(); 
    16791962 
    16801963            state._fsp--; 
    1681  
    1682              after(grammarAccess.getGroupedSequenceRule());  
    1683             match(input,EOF,FOLLOW_EOF_in_entryRuleGroupedSequence1242);  
    1684  
    1685             } 
    1686  
    1687         } 
    1688         catch (RecognitionException re) { 
    1689             reportError(re); 
    1690             recover(input,re); 
    1691         } 
    1692         finally { 
     1964            if (state.failed) return ; 
     1965            if ( state.backtracking==0 ) { 
     1966               after(grammarAccess.getGroupedSequenceRule());  
     1967            } 
     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); } 
    16931979        } 
    16941980        return ; 
     
    16981984 
    16991985    // $ANTLR start "ruleGroupedSequence" 
    1700     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:615:1: ruleGroupedSequence : ( ( rule__GroupedSequence__Group__0 ) ) ; 
     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 ) ) ; 
    17011987    public final void ruleGroupedSequence() throws RecognitionException { 
    1702  
    1703                         int stackSize = keepStackSize(); 
    1704              
    1705         try { 
    1706             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:619:2: ( ( ( rule__GroupedSequence__Group__0 ) ) ) 
    1707             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:620:1: ( ( rule__GroupedSequence__Group__0 ) ) 
    1708             { 
    1709             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:620:1: ( ( rule__GroupedSequence__Group__0 ) ) 
    1710             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:621:1: ( rule__GroupedSequence__Group__0 ) 
    1711             { 
    1712              before(grammarAccess.getGroupedSequenceAccess().getGroup());  
    1713             // ../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 ) 
    1714             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:622:2: rule__GroupedSequence__Group__0 
    1715             { 
    1716             pushFollow(FOLLOW_rule__GroupedSequence__Group__0_in_ruleGroupedSequence1268); 
     1988        int ruleGroupedSequence_StartIndex = input.index(); 
     1989 
     1990                        int stackSize = keepStackSize(); 
     1991             
     1992        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 ) 
     1999            { 
     2000            if ( state.backtracking==0 ) { 
     2001               before(grammarAccess.getGroupedSequenceAccess().getGroup());  
     2002            } 
     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); 
    17172007            rule__GroupedSequence__Group__0(); 
    17182008 
    17192009            state._fsp--; 
    1720  
    1721  
    1722             } 
    1723  
    1724              after(grammarAccess.getGroupedSequenceAccess().getGroup());  
    1725  
    1726             } 
    1727  
    1728  
    1729             } 
    1730  
    1731         } 
    1732         catch (RecognitionException re) { 
    1733             reportError(re); 
    1734             recover(input,re); 
    1735         } 
    1736         finally { 
     2010            if (state.failed) return ; 
     2011 
     2012            } 
     2013 
     2014            if ( state.backtracking==0 ) { 
     2015               after(grammarAccess.getGroupedSequenceAccess().getGroup());  
     2016            } 
     2017 
     2018            } 
     2019 
     2020 
     2021            } 
     2022 
     2023        } 
     2024        catch (RecognitionException re) { 
     2025            reportError(re); 
     2026            recover(input,re); 
     2027        } 
     2028        finally { 
     2029            if ( state.backtracking>0 ) { memoize(input, 40, ruleGroupedSequence_StartIndex); } 
    17372030 
    17382031                restoreStackSize(stackSize); 
     
    17452038 
    17462039    // $ANTLR start "entryRuleOptionalSequence" 
    1747     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:634:1: entryRuleOptionalSequence : ruleOptionalSequence EOF ; 
     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 ; 
    17482041    public final void entryRuleOptionalSequence() throws RecognitionException { 
    1749         try { 
    1750             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:635:1: ( ruleOptionalSequence EOF ) 
    1751             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:636:1: ruleOptionalSequence EOF 
    1752             { 
    1753              before(grammarAccess.getOptionalSequenceRule());  
    1754             pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1295); 
     2042        int entryRuleOptionalSequence_StartIndex = input.index(); 
     2043        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 
     2047            { 
     2048            if ( state.backtracking==0 ) { 
     2049               before(grammarAccess.getOptionalSequenceRule());  
     2050            } 
     2051            pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1308); 
    17552052            ruleOptionalSequence(); 
    17562053 
    17572054            state._fsp--; 
    1758  
    1759              after(grammarAccess.getOptionalSequenceRule());  
    1760             match(input,EOF,FOLLOW_EOF_in_entryRuleOptionalSequence1302);  
    1761  
    1762             } 
    1763  
    1764         } 
    1765         catch (RecognitionException re) { 
    1766             reportError(re); 
    1767             recover(input,re); 
    1768         } 
    1769         finally { 
     2055            if (state.failed) return ; 
     2056            if ( state.backtracking==0 ) { 
     2057               after(grammarAccess.getOptionalSequenceRule());  
     2058            } 
     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); } 
    17702070        } 
    17712071        return ; 
     
    17752075 
    17762076    // $ANTLR start "ruleOptionalSequence" 
    1777     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:643:1: ruleOptionalSequence : ( ( rule__OptionalSequence__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: ruleOptionalSequence : ( ( rule__OptionalSequence__Group__0 ) ) ; 
    17782078    public final void ruleOptionalSequence() throws RecognitionException { 
    1779  
    1780                         int stackSize = keepStackSize(); 
    1781              
    1782         try { 
    1783             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:647:2: ( ( ( rule__OptionalSequence__Group__0 ) ) ) 
    1784             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:648:1: ( ( rule__OptionalSequence__Group__0 ) ) 
    1785             { 
    1786             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:648:1: ( ( rule__OptionalSequence__Group__0 ) ) 
    1787             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:649:1: ( rule__OptionalSequence__Group__0 ) 
    1788             { 
    1789              before(grammarAccess.getOptionalSequenceAccess().getGroup());  
    1790             // ../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 ) 
    1791             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:650:2: rule__OptionalSequence__Group__0 
    1792             { 
    1793             pushFollow(FOLLOW_rule__OptionalSequence__Group__0_in_ruleOptionalSequence1328); 
     2079        int ruleOptionalSequence_StartIndex = input.index(); 
     2080 
     2081                        int stackSize = keepStackSize(); 
     2082             
     2083        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 ) 
     2090            { 
     2091            if ( state.backtracking==0 ) { 
     2092               before(grammarAccess.getOptionalSequenceAccess().getGroup());  
     2093            } 
     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); 
    17942098            rule__OptionalSequence__Group__0(); 
    17952099 
    17962100            state._fsp--; 
    1797  
    1798  
    1799             } 
    1800  
    1801              after(grammarAccess.getOptionalSequenceAccess().getGroup());  
    1802  
    1803             } 
    1804  
    1805  
    1806             } 
    1807  
    1808         } 
    1809         catch (RecognitionException re) { 
    1810             reportError(re); 
    1811             recover(input,re); 
    1812         } 
    1813         finally { 
     2101            if (state.failed) return ; 
     2102 
     2103            } 
     2104 
     2105            if ( state.backtracking==0 ) { 
     2106               after(grammarAccess.getOptionalSequenceAccess().getGroup());  
     2107            } 
     2108 
     2109            } 
     2110 
     2111 
     2112            } 
     2113 
     2114        } 
     2115        catch (RecognitionException re) { 
     2116            reportError(re); 
     2117            recover(input,re); 
     2118        } 
     2119        finally { 
     2120            if ( state.backtracking>0 ) { memoize(input, 42, ruleOptionalSequence_StartIndex); } 
    18142121 
    18152122                restoreStackSize(stackSize); 
     
    18222129 
    18232130    // $ANTLR start "entryRuleRepeatedSequence" 
    1824     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:662:1: entryRuleRepeatedSequence : ruleRepeatedSequence EOF ; 
     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 ; 
    18252132    public final void entryRuleRepeatedSequence() throws RecognitionException { 
    1826         try { 
    1827             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:663:1: ( ruleRepeatedSequence EOF ) 
    1828             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:664:1: ruleRepeatedSequence EOF 
    1829             { 
    1830              before(grammarAccess.getRepeatedSequenceRule());  
    1831             pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1355); 
     2133        int entryRuleRepeatedSequence_StartIndex = input.index(); 
     2134        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 
     2138            { 
     2139            if ( state.backtracking==0 ) { 
     2140               before(grammarAccess.getRepeatedSequenceRule());  
     2141            } 
     2142            pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1368); 
    18322143            ruleRepeatedSequence(); 
    18332144 
    18342145            state._fsp--; 
    1835  
    1836              after(grammarAccess.getRepeatedSequenceRule());  
    1837             match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatedSequence1362);  
    1838  
    1839             } 
    1840  
    1841         } 
    1842         catch (RecognitionException re) { 
    1843             reportError(re); 
    1844             recover(input,re); 
    1845         } 
    1846         finally { 
     2146            if (state.failed) return ; 
     2147            if ( state.backtracking==0 ) { 
     2148               after(grammarAccess.getRepeatedSequenceRule());  
     2149            } 
     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); } 
    18472161        } 
    18482162        return ; 
     
    18522166 
    18532167    // $ANTLR start "ruleRepeatedSequence" 
    1854     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:671:1: ruleRepeatedSequence : ( ( rule__RepeatedSequence__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: ruleRepeatedSequence : ( ( rule__RepeatedSequence__Group__0 ) ) ; 
    18552169    public final void ruleRepeatedSequence() throws RecognitionException { 
    1856  
    1857                         int stackSize = keepStackSize(); 
    1858              
    1859         try { 
    1860             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:675:2: ( ( ( rule__RepeatedSequence__Group__0 ) ) ) 
    1861             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:676:1: ( ( rule__RepeatedSequence__Group__0 ) ) 
    1862             { 
    1863             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:676:1: ( ( rule__RepeatedSequence__Group__0 ) ) 
    1864             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:677:1: ( rule__RepeatedSequence__Group__0 ) 
    1865             { 
    1866              before(grammarAccess.getRepeatedSequenceAccess().getGroup());  
    1867             // ../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 ) 
    1868             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:678:2: rule__RepeatedSequence__Group__0 
    1869             { 
    1870             pushFollow(FOLLOW_rule__RepeatedSequence__Group__0_in_ruleRepeatedSequence1388); 
     2170        int ruleRepeatedSequence_StartIndex = input.index(); 
     2171 
     2172                        int stackSize = keepStackSize(); 
     2173             
     2174        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 ) 
     2181            { 
     2182            if ( state.backtracking==0 ) { 
     2183               before(grammarAccess.getRepeatedSequenceAccess().getGroup());  
     2184            } 
     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); 
    18712189            rule__RepeatedSequence__Group__0(); 
    18722190 
    18732191            state._fsp--; 
    1874  
    1875  
    1876             } 
    1877  
    1878              after(grammarAccess.getRepeatedSequenceAccess().getGroup());  
    1879  
    1880             } 
    1881  
    1882  
    1883             } 
    1884  
    1885         } 
    1886         catch (RecognitionException re) { 
    1887             reportError(re); 
    1888             recover(input,re); 
    1889         } 
    1890         finally { 
     2192            if (state.failed) return ; 
     2193 
     2194            } 
     2195 
     2196            if ( state.backtracking==0 ) { 
     2197               after(grammarAccess.getRepeatedSequenceAccess().getGroup());  
     2198            } 
     2199 
     2200            } 
     2201 
     2202 
     2203            } 
     2204 
     2205        } 
     2206        catch (RecognitionException re) { 
     2207            reportError(re); 
     2208            recover(input,re); 
     2209        } 
     2210        finally { 
     2211            if ( state.backtracking>0 ) { memoize(input, 44, ruleRepeatedSequence_StartIndex); } 
    18912212 
    18922213                restoreStackSize(stackSize); 
     
    18982219 
    18992220 
     2221    // $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 ; 
     2223    public final void entryRuleRepeatRange() throws RecognitionException { 
     2224        int entryRuleRepeatRange_StartIndex = input.index(); 
     2225        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 
     2229            { 
     2230            if ( state.backtracking==0 ) { 
     2231               before(grammarAccess.getRepeatRangeRule());  
     2232            } 
     2233            pushFollow(FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange1428); 
     2234            ruleRepeatRange(); 
     2235 
     2236            state._fsp--; 
     2237            if (state.failed) return ; 
     2238            if ( state.backtracking==0 ) { 
     2239               after(grammarAccess.getRepeatRangeRule());  
     2240            } 
     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); } 
     2252        } 
     2253        return ; 
     2254    } 
     2255    // $ANTLR end "entryRuleRepeatRange" 
     2256 
     2257 
     2258    // $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 ) ) ; 
     2260    public final void ruleRepeatRange() throws RecognitionException { 
     2261        int ruleRepeatRange_StartIndex = input.index(); 
     2262 
     2263                        int stackSize = keepStackSize(); 
     2264             
     2265        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 ) 
     2272            { 
     2273            if ( state.backtracking==0 ) { 
     2274               before(grammarAccess.getRepeatRangeAccess().getGroup());  
     2275            } 
     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); 
     2280            rule__RepeatRange__Group__0(); 
     2281 
     2282            state._fsp--; 
     2283            if (state.failed) return ; 
     2284 
     2285            } 
     2286 
     2287            if ( state.backtracking==0 ) { 
     2288               after(grammarAccess.getRepeatRangeAccess().getGroup());  
     2289            } 
     2290 
     2291            } 
     2292 
     2293 
     2294            } 
     2295 
     2296        } 
     2297        catch (RecognitionException re) { 
     2298            reportError(re); 
     2299            recover(input,re); 
     2300        } 
     2301        finally { 
     2302            if ( state.backtracking>0 ) { memoize(input, 46, ruleRepeatRange_StartIndex); } 
     2303 
     2304                restoreStackSize(stackSize); 
     2305 
     2306        } 
     2307        return ; 
     2308    } 
     2309    // $ANTLR end "ruleRepeatRange" 
     2310 
     2311 
    19002312    // $ANTLR start "rule__EtsiBnf__Alternatives" 
    1901     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:690:1: rule__EtsiBnf__Alternatives : ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) ); 
     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 ) ) ); 
    19022314    public final void rule__EtsiBnf__Alternatives() throws RecognitionException { 
    1903  
    1904                         int stackSize = keepStackSize(); 
    1905              
    1906         try { 
    1907             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:694:1: ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) ) 
     2315        int rule__EtsiBnf__Alternatives_StartIndex = input.index(); 
     2316 
     2317                        int stackSize = keepStackSize(); 
     2318             
     2319        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 ) ) ) 
    19082322            int alt3=3; 
    19092323            switch ( input.LA(1) ) { 
     
    19132327                } 
    19142328                break; 
    1915             case 35: 
     2329            case 37: 
    19162330                { 
    19172331                alt3=2; 
    19182332                } 
    19192333                break; 
    1920             case 36: 
     2334            case 38: 
    19212335                { 
    19222336                alt3=3; 
     
    19242338                break; 
    19252339            default: 
     2340                if (state.backtracking>0) {state.failed=true; return ;} 
    19262341                NoViableAltException nvae = 
    19272342                    new NoViableAltException("", 3, 0, input); 
     
    19322347            switch (alt3) { 
    19332348                case 1 : 
    1934                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:695:1: ( ( rule__EtsiBnf__Group_0__0 ) ) 
     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 ) ) 
    19352350                    { 
    1936                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:695:1: ( ( rule__EtsiBnf__Group_0__0 ) ) 
    1937                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:696:1: ( rule__EtsiBnf__Group_0__0 ) 
     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 ) 
    19382353                    { 
    1939                      before(grammarAccess.getEtsiBnfAccess().getGroup_0());  
    1940                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:697:1: ( rule__EtsiBnf__Group_0__0 ) 
    1941                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:697:2: rule__EtsiBnf__Group_0__0 
     2354                    if ( state.backtracking==0 ) { 
     2355                       before(grammarAccess.getEtsiBnfAccess().getGroup_0());  
     2356                    } 
     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 
    19422359                    { 
    1943                     pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1424); 
     2360                    pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1497); 
    19442361                    rule__EtsiBnf__Group_0__0(); 
    19452362 
    19462363                    state._fsp--; 
    1947  
    1948  
    1949                     } 
    1950  
    1951                      after(grammarAccess.getEtsiBnfAccess().getGroup_0());  
     2364                    if (state.failed) return ; 
     2365 
     2366                    } 
     2367 
     2368                    if ( state.backtracking==0 ) { 
     2369                       after(grammarAccess.getEtsiBnfAccess().getGroup_0());  
     2370                    } 
    19522371 
    19532372                    } 
     
    19572376                    break; 
    19582377                case 2 : 
    1959                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:701:6: ( ( rule__EtsiBnf__Group_1__0 ) ) 
     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 ) ) 
    19602379                    { 
    1961                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:701:6: ( ( rule__EtsiBnf__Group_1__0 ) ) 
    1962                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:702:1: ( rule__EtsiBnf__Group_1__0 ) 
     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 ) 
    19632382                    { 
    1964                      before(grammarAccess.getEtsiBnfAccess().getGroup_1());  
    1965                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:703:1: ( rule__EtsiBnf__Group_1__0 ) 
    1966                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:703:2: rule__EtsiBnf__Group_1__0 
     2383                    if ( state.backtracking==0 ) { 
     2384                       before(grammarAccess.getEtsiBnfAccess().getGroup_1());  
     2385                    } 
     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 
    19672388                    { 
    1968                     pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1442); 
     2389                    pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1515); 
    19692390                    rule__EtsiBnf__Group_1__0(); 
    19702391 
    19712392                    state._fsp--; 
    1972  
    1973  
    1974                     } 
    1975  
    1976                      after(grammarAccess.getEtsiBnfAccess().getGroup_1());  
     2393                    if (state.failed) return ; 
     2394 
     2395                    } 
     2396 
     2397                    if ( state.backtracking==0 ) { 
     2398                       after(grammarAccess.getEtsiBnfAccess().getGroup_1());  
     2399                    } 
    19772400 
    19782401                    } 
     
    19822405                    break; 
    19832406                case 3 : 
    1984                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:707:6: ( ( rule__EtsiBnf__Group_2__0 ) ) 
     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 ) ) 
    19852408                    { 
    1986                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:707:6: ( ( rule__EtsiBnf__Group_2__0 ) ) 
    1987                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:708:1: ( rule__EtsiBnf__Group_2__0 ) 
     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 ) 
    19882411                    { 
    1989                      before(grammarAccess.getEtsiBnfAccess().getGroup_2());  
    1990                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:709:1: ( rule__EtsiBnf__Group_2__0 ) 
    1991                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:709:2: rule__EtsiBnf__Group_2__0 
     2412                    if ( state.backtracking==0 ) { 
     2413                       before(grammarAccess.getEtsiBnfAccess().getGroup_2());  
     2414                    } 
     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 
    19922417                    { 
    1993                     pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1460); 
     2418                    pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1533); 
    19942419                    rule__EtsiBnf__Group_2__0(); 
    19952420 
    19962421                    state._fsp--; 
    1997  
    1998  
    1999                     } 
    2000  
    2001                      after(grammarAccess.getEtsiBnfAccess().getGroup_2());  
     2422                    if (state.failed) return ; 
     2423 
     2424                    } 
     2425 
     2426                    if ( state.backtracking==0 ) { 
     2427                       after(grammarAccess.getEtsiBnfAccess().getGroup_2());  
     2428                    } 
    20022429 
    20032430                    } 
     
    20142441        } 
    20152442        finally { 
     2443            if ( state.backtracking>0 ) { memoize(input, 47, rule__EtsiBnf__Alternatives_StartIndex); } 
    20162444 
    20172445                restoreStackSize(stackSize); 
     
    20242452 
    20252453    // $ANTLR start "rule__BnfEntry__Alternatives" 
    2026     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:718:1: rule__BnfEntry__Alternatives : ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) ); 
     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 ) ) ); 
    20272455    public final void rule__BnfEntry__Alternatives() throws RecognitionException { 
    2028  
    2029                         int stackSize = keepStackSize(); 
    2030              
    2031         try { 
    2032             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:722:1: ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) ) 
     2456        int rule__BnfEntry__Alternatives_StartIndex = input.index(); 
     2457 
     2458                        int stackSize = keepStackSize(); 
     2459             
     2460        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 ) ) ) 
    20332463            int alt4=2; 
    20342464            int LA4_0 = input.LA(1); 
     
    20412471            } 
    20422472            else { 
     2473                if (state.backtracking>0) {state.failed=true; return ;} 
    20432474                NoViableAltException nvae = 
    20442475                    new NoViableAltException("", 4, 0, input); 
     
    20482479            switch (alt4) { 
    20492480                case 1 : 
    2050                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:723:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) 
     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 ) ) 
    20512482                    { 
    2052                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:723:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) 
    2053                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:724:1: ( rule__BnfEntry__SectionheaderAssignment_0 ) 
     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 ) 
    20542485                    { 
    2055                      before(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0());  
    2056                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:725:1: ( rule__BnfEntry__SectionheaderAssignment_0 ) 
    2057                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:725:2: rule__BnfEntry__SectionheaderAssignment_0 
     2486                    if ( state.backtracking==0 ) { 
     2487                       before(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0());  
     2488                    } 
     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 
    20582491                    { 
    2059                     pushFollow(FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1493); 
     2492                    pushFollow(FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1566); 
    20602493                    rule__BnfEntry__SectionheaderAssignment_0(); 
    20612494 
    20622495                    state._fsp--; 
    2063  
    2064  
    2065                     } 
    2066  
    2067                      after(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0());  
     2496                    if (state.failed) return ; 
     2497 
     2498                    } 
     2499 
     2500                    if ( state.backtracking==0 ) { 
     2501                       after(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0());  
     2502                    } 
    20682503 
    20692504                    } 
     
    20732508                    break; 
    20742509                case 2 : 
    2075                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:729:6: ( ( rule__BnfEntry__RuleAssignment_1 ) ) 
     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 ) ) 
    20762511                    { 
    2077                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:729:6: ( ( rule__BnfEntry__RuleAssignment_1 ) ) 
    2078                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:730:1: ( rule__BnfEntry__RuleAssignment_1 ) 
     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 ) 
    20792514                    { 
    2080                      before(grammarAccess.getBnfEntryAccess().getRuleAssignment_1());  
    2081                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:731:1: ( rule__BnfEntry__RuleAssignment_1 ) 
    2082                     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:731:2: rule__BnfEntry__RuleAssignment_1 
     2515                    if ( state.backtracking==0 ) { 
     2516                       before(grammarAccess.getBnfEntryAccess().getRuleAssignment_1());  
     2517                    } 
     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 
    20832520                    { 
    2084                     pushFollow(FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1511); 
     2521                    pushFollow(FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1584); 
    20852522                    rule__BnfEntry__RuleAssignment_1(); 
    20862523 
    20872524                    state._fsp--; 
    2088  
    2089  
    2090                     } 
    2091  
    2092                      after(grammarAccess.getBnfEntryAccess().getRuleAssignment_1());  
     2525                    if (state.failed) return ; 
     2526 
     2527                    } 
     2528 
     2529                    if ( state.backtracking==0 ) { 
     2530                       after(grammarAccess.getBnfEntryAccess().getRuleAssignment_1());  
     2531                    } 
    20932532 
    20942533                    } 
     
    21052544        } 
    21062545        finally { 
     2546            if ( state.backtracking>0 ) { memoize(input, 48, rule__BnfEntry__Alternatives_StartIndex); } 
    21072547 
    21082548                restoreStackSize(stackSize); 
     
    21152555 
    21162556    // $ANTLR start "rule__DeltaEntry__Alternatives" 
    2117     // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:740:1: rule__DeltaEntry__Alternatives : ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) ); 
     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 ) ) ); 
    21182558    public final void rule__DeltaEntry__Alternatives() throws RecognitionException { 
    2119  
    2120                         int stackSize = keepStackSize(); 
    2121              
    2122         try { 
    2123             // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:744:1: ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) ) 
     2559        int rule__DeltaEntry__Alternatives_StartIndex = input.index(); 
     2560 
     2561                        int stackSize = keepStackSize(); 
     2562             
     2563        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 ) ) ) 
    21242566            int alt5=3; 
    21252567            switch ( input.LA(1) ) { 
     
    21372579                            int LA5_2 = input.LA(5); 
    21382580 
    2139                             if ( (LA5_2==27) ) { 
     2581                            if ( (LA5_2==17) ) { 
     2582                                alt5=3; 
     2583                            } 
     2584                            else if ( (LA5_2==27) ) { 
    21402585                                alt5=1; 
    21412586                            } 
    2142                             else if ( (LA5_2==17) ) { 
    2143                                 alt5=3; 
    2144                             } 
    21452587                            else { 
     2588                                if (state.backtracking>0) {state.failed=true; return ;} 
    21462589                                NoViableAltException nvae = 
    21472590                                    new NoViableAltException("", 5, 2, input); 
     
    21512594                        } 
    21522595                        else { 
     2596                            if (state.backtracking>0) {state.failed=true; return ;} 
    21532597                            NoViableAltException nvae = 
    21542598                                new NoViableAltException("", 5, 5, input); 
     
    21582602                    } 
    21592603                    else { 
     2604                        if (state.backtracking>0) {state.failed=true; return ;} 
    21602605                        NoViableAltException nvae = 
    21612606                            new NoViableAltException("", 5, 4, input); 
     
    21702615                        int LA5_2 = input.LA(4); 
    21712616 
    2172                         if ( (LA5_2==27) ) { 
     2617                        if ( (LA5_2==17) ) { 
     2618                            alt5=3; 
     2619                        } 
     2620                        else if ( (LA5_2==27) ) { 
    21732621                            alt5=1; 
    21742622                        } 
    2175                         else if ( (LA5_2==17) ) { 
    2176                             alt5=3; 
    2177                         } 
    21782623                        else { 
     2624                            if (state.backtracking>0) {state.failed=true; return ;} 
    21792625                            NoViableAltException nvae = 
    21802626                                new NoViableAltException("", 5, 2, input); 
     
    21842630                    } 
    21852631                    else { 
     2632                        if (state.backtracking>0) {state.failed=true; return ;} 
    21862633                        NoViableAltException nvae = 
    21872634                            new NoViableAltException("", 5, 5, input); 
     
    21912638                } 
    21922639                else { 
     2640                    if (state.backtracking>0) {state.failed=true; return ;} 
    21932641                    NoViableAltException nvae = 
    21942642                        new NoViableAltException("", 5, 1, input); 
     
    22022650                int LA5_2 = input.LA(2); 
    22032651 
    2204                 if ( (LA5_2==27) ) { 
     2652                if ( (LA5_2==17) ) { 
     2653                    alt5=3; 
     2654                } 
     2655                else if ( (LA5_2==27) ) { 
    22052656                    alt5=1; 
    22062657                } 
    2207                 else if ( (LA5_2==17) ) { 
    2208                     alt5=3; 
    2209                 } 
    22102658                else { 
     2659                    if (state.backtracking>0) {state.failed=true; return ;} 
    22112660                    NoViableAltException nvae = 
    22122661                        new NoViableAltException("", 5, 2, input); 
     
    22222671                break; 
    22232672            default: 
     2673                if (state.backtracking>0) {state.failed=true; return ;} 
    22242674                NoViableAltException nvae = 
    22252675                    new NoViableAltException("", 5, 0, input);