Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/AbstractEbnfProposalProvider.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/AbstractEbnfProposalProvider.java	(revision 97)
+++ v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/AbstractEbnfProposalProvider.java	(revision 100)
@@ -44,4 +44,7 @@
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeBnfEntry_Comment(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeDeltaEntry_Rule(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
@@ -60,4 +63,7 @@
 	}
 	public void completeSectionHeading_SectionHeader(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeComment_Content(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -195,4 +201,7 @@
 		// subclasses may override
 	}
+	public void complete_Comment(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_Import(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/EbnfParser.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/EbnfParser.java	(revision 97)
+++ v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/EbnfParser.java	(revision 100)
@@ -54,4 +54,5 @@
 					put(grammarAccess.getEtsiBnfAccess().getGroup_2(), "rule__EtsiBnf__Group_2__0");
 					put(grammarAccess.getSectionHeadingAccess().getGroup(), "rule__SectionHeading__Group__0");
+					put(grammarAccess.getCommentAccess().getGroup(), "rule__Comment__Group__0");
 					put(grammarAccess.getImportAccess().getGroup(), "rule__Import__Group__0");
 					put(grammarAccess.getImportAccess().getGroup_2(), "rule__Import__Group_2__0");
@@ -88,4 +89,5 @@
 					put(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0(), "rule__BnfEntry__SectionheaderAssignment_0");
 					put(grammarAccess.getBnfEntryAccess().getRuleAssignment_1(), "rule__BnfEntry__RuleAssignment_1");
+					put(grammarAccess.getBnfEntryAccess().getCommentAssignment_2(), "rule__BnfEntry__CommentAssignment_2");
 					put(grammarAccess.getDeltaEntryAccess().getRuleAssignment_0(), "rule__DeltaEntry__RuleAssignment_0");
 					put(grammarAccess.getDeltaEntryAccess().getSectionheaderAssignment_1(), "rule__DeltaEntry__SectionheaderAssignment_1");
@@ -94,4 +96,5 @@
 					put(grammarAccess.getMergeEntryAccess().getMergeRuleAssignment_1(), "rule__MergeEntry__MergeRuleAssignment_1");
 					put(grammarAccess.getSectionHeadingAccess().getSectionHeaderAssignment_1(), "rule__SectionHeading__SectionHeaderAssignment_1");
+					put(grammarAccess.getCommentAccess().getContentAssignment_1(), "rule__Comment__ContentAssignment_1");
 					put(grammarAccess.getImportAccess().getImportURIAssignment_1(), "rule__Import__ImportURIAssignment_1");
 					put(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_0(), "rule__Import__GrammarTypeAssignment_2_1_0");
@@ -154,5 +157,5 @@
 	@Override
 	protected String[] getInitialHiddenTokens() {
-		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+		return new String[] { "RULE_WS", "RULE_SL_COMMENT" };
 	}
 	
Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g	(revision 97)
+++ v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g	(revision 100)
@@ -234,4 +234,32 @@
 
 
+// Entry rule entryRuleComment
+entryRuleComment 
+:
+{ before(grammarAccess.getCommentRule()); }
+	 ruleComment
+{ after(grammarAccess.getCommentRule()); } 
+	 EOF 
+;
+
+// Rule Comment
+ruleComment
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getCommentAccess().getGroup()); }
+(rule__Comment__Group__0)
+{ after(grammarAccess.getCommentAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
 // Entry rule entryRuleImport
 entryRuleImport 
@@ -763,4 +791,10 @@
 )
 
+    |(
+{ before(grammarAccess.getBnfEntryAccess().getCommentAssignment_2()); }
+(rule__BnfEntry__CommentAssignment_2)
+{ after(grammarAccess.getBnfEntryAccess().getCommentAssignment_2()); }
+)
+
 ;
 finally {
@@ -1603,4 +1637,67 @@
 
 
+rule__Comment__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Comment__Group__0__Impl
+	rule__Comment__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Comment__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCommentAccess().getCommentAction_0()); }
+(
+
+)
+{ after(grammarAccess.getCommentAccess().getCommentAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Comment__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Comment__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Comment__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCommentAccess().getContentAssignment_1()); }
+(rule__Comment__ContentAssignment_1)
+{ after(grammarAccess.getCommentAccess().getContentAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
 rule__Import__Group__0
     @init {
@@ -4241,4 +4338,19 @@
 }
 
+rule__BnfEntry__CommentAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0()); }
+	ruleComment{ after(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DeltaEntry__RuleAssignment_0
     @init {
@@ -4331,4 +4443,19 @@
 }
 
+rule__Comment__ContentAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0()); }
+	RULE_ML_COMMENT{ after(grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__Import__ImportURIAssignment_1
     @init {
Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.tokens
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.tokens	(revision 97)
+++ v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.tokens	(revision 100)
@@ -13,11 +13,11 @@
 T__21=21
 T__20=20
-RULE_SL_COMMENT=11
-RULE_ML_COMMENT=12
+RULE_SL_COMMENT=12
+RULE_ML_COMMENT=6
 T__30=30
 T__19=19
-RULE_COLON=9
+RULE_COLON=10
 T__31=31
-RULE_STRING=6
+RULE_STRING=7
 T__32=32
 T__33=33
@@ -29,5 +29,5 @@
 T__36=36
 T__17=17
-RULE_LOGIC=8
+RULE_LOGIC=9
 T__37=37
 T__38=38
@@ -35,6 +35,6 @@
 T__14=14
 T__13=13
-RULE_INT=7
-RULE_WS=10
+RULE_INT=8
+RULE_WS=11
 'update'=41
 '|'=16
Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfLexer.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfLexer.java	(revision 97)
+++ v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfLexer.java	(revision 100)
@@ -28,12 +28,12 @@
     public static final int T__20=20;
     public static final int EOF=-1;
-    public static final int RULE_SL_COMMENT=11;
-    public static final int RULE_ML_COMMENT=12;
+    public static final int RULE_SL_COMMENT=12;
+    public static final int RULE_ML_COMMENT=6;
     public static final int T__19=19;
     public static final int T__30=30;
     public static final int T__31=31;
-    public static final int RULE_COLON=9;
+    public static final int RULE_COLON=10;
     public static final int T__32=32;
-    public static final int RULE_STRING=6;
+    public static final int RULE_STRING=7;
     public static final int T__16=16;
     public static final int T__33=33;
@@ -45,11 +45,11 @@
     public static final int T__36=36;
     public static final int T__37=37;
-    public static final int RULE_LOGIC=8;
+    public static final int RULE_LOGIC=9;
     public static final int T__38=38;
     public static final int T__14=14;
     public static final int T__39=39;
     public static final int T__13=13;
-    public static final int RULE_INT=7;
-    public static final int RULE_WS=10;
+    public static final int RULE_INT=8;
+    public static final int RULE_WS=11;
 
     // delegates
@@ -666,6 +666,6 @@
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../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' | '_' )* )
-            // ../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' | '_' )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5112:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5112:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
             {
             if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
@@ -678,5 +678,5 @@
                 throw mse;}
 
-            // ../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' | '_' )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5112:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
             loop1:
             do {
@@ -727,8 +727,8 @@
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:10: ( ( '0' .. '9' )+ )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:12: ( '0' .. '9' )+
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:12: ( '0' .. '9' )+
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:10: ( ( '0' .. '9' )+ )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:12: ( '0' .. '9' )+
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:12: ( '0' .. '9' )+
             int cnt2=0;
             loop2:
@@ -744,5 +744,5 @@
                 switch (alt2) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:13: '0' .. '9'
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5114:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
@@ -776,8 +776,8 @@
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../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' )+ )
-            // ../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' )+
-            {
-            // ../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' )+
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:9: ( ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+
             int cnt4=0;
             loop4:
@@ -806,5 +806,5 @@
                 switch (alt4) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:12: ' '
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:12: ' '
             	    {
             	    match(' '); 
@@ -813,5 +813,5 @@
             	    break;
             	case 2 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:16: '\\t'
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:16: '\\t'
             	    {
             	    match('\t'); 
@@ -820,7 +820,7 @@
             	    break;
             	case 3 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: ( '\\r' )? '\\n'
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:21: ( '\\r' )? '\\n'
             	    {
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: ( '\\r' )?
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:21: ( '\\r' )?
             	    int alt3=2;
             	    int LA3_0 = input.LA(1);
@@ -831,5 +831,5 @@
             	    switch (alt3) {
             	        case 1 :
-            	            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:21: '\\r'
+            	            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5116:21: '\\r'
             	            {
             	            match('\r'); 
@@ -870,6 +870,6 @@
             int _type = RULE_COLON;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4991:12: ( '\"' '\"' '\"' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4991:14: '\"' '\"' '\"'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5118:12: ( '\"' '\"' '\"' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5118:14: '\"' '\"' '\"'
             {
             match('\"'); 
@@ -892,8 +892,8 @@
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
             int alt7=2;
             int LA7_0 = input.LA(1);
@@ -913,8 +913,8 @@
             switch (alt7) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:16: '\"' (~ ( '\"' ) )* '\"'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:16: '\"' (~ ( '\"' ) )* '\"'
                     {
                     match('\"'); 
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:20: (~ ( '\"' ) )*
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:20: (~ ( '\"' ) )*
                     loop5:
                     do {
@@ -929,5 +929,5 @@
                         switch (alt5) {
                     	case 1 :
-                    	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:20: ~ ( '\"' )
+                    	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:20: ~ ( '\"' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) {
@@ -954,8 +954,8 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:32: '\\'' (~ ( '\\'' ) )* '\\''
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:32: '\\'' (~ ( '\\'' ) )* '\\''
                     {
                     match('\''); 
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:37: (~ ( '\\'' ) )*
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:37: (~ ( '\\'' ) )*
                     loop6:
                     do {
@@ -970,5 +970,5 @@
                         switch (alt6) {
                     	case 1 :
-                    	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4993:37: ~ ( '\\'' )
+                    	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5120:37: ~ ( '\\'' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) {
@@ -1013,6 +1013,6 @@
             int _type = RULE_SECTIONHEADER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../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' )
-            // ../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'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:20: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:22: ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n'
             {
             if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
@@ -1025,5 +1025,5 @@
                 throw mse;}
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:42: ( '.' | '0' .. '9' )+
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:42: ( '.' | '0' .. '9' )+
             int cnt8=0;
             loop8:
@@ -1072,5 +1072,5 @@
                 throw mse;}
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:69: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:69: (~ ( ( '\\n' | '\\r' ) ) )*
             loop9:
             do {
@@ -1085,5 +1085,5 @@
                 switch (alt9) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:69: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:69: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    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') ) {
@@ -1105,5 +1105,5 @@
             } while (true);
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:85: ( '\\r' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:85: ( '\\r' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
@@ -1114,5 +1114,5 @@
             switch (alt10) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4995:85: '\\r'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5122:85: '\\r'
                     {
                     match('\r'); 
@@ -1140,10 +1140,10 @@
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../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' )? )
-            // ../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' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop11:
             do {
@@ -1158,5 +1158,5 @@
                 switch (alt11) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    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') ) {
@@ -1178,5 +1178,5 @@
             } while (true);
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:40: ( ( '\\r' )? '\\n' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:40: ( ( '\\r' )? '\\n' )?
             int alt13=2;
             int LA13_0 = input.LA(1);
@@ -1187,7 +1187,7 @@
             switch (alt13) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: ( '\\r' )? '\\n'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:41: ( '\\r' )? '\\n'
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: ( '\\r' )?
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:41: ( '\\r' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
@@ -1198,5 +1198,5 @@
                     switch (alt12) {
                         case 1 :
-                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4997:41: '\\r'
+                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5124:41: '\\r'
                             {
                             match('\r'); 
@@ -1230,10 +1230,10 @@
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../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; } : . )* '*/' )
-            // ../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; } : . )* '*/'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // ../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; } : . )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:24: ( options {greedy=false; } : . )*
             loop14:
             do {
@@ -1260,5 +1260,5 @@
                 switch (alt14) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4999:52: .
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5126:52: .
             	    {
             	    matchAny(); 
@@ -1290,13 +1290,13 @@
             int _type = RULE_LOGIC;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../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' ) )
-            // ../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' )
-            {
-            // ../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' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:12: ( ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )
             int alt15=6;
             alt15 = dfa15.predict(input);
             switch (alt15) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:15: '/and'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:15: '/and'
                     {
                     match("/and"); 
@@ -1306,5 +1306,5 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:22: '/or'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:22: '/or'
                     {
                     match("/or"); 
@@ -1314,5 +1314,5 @@
                     break;
                 case 3 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:28: '/andr'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:28: '/andr'
                     {
                     match("/andr"); 
@@ -1322,5 +1322,5 @@
                     break;
                 case 4 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:36: '/orr'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:36: '/orr'
                     {
                     match("/orr"); 
@@ -1330,5 +1330,5 @@
                     break;
                 case 5 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:43: '/any'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:43: '/any'
                     {
                     match("/any"); 
@@ -1338,5 +1338,5 @@
                     break;
                 case 6 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5001:50: '/together'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5128:50: '/together'
                     {
                     match("/together"); 
@@ -1696,5 +1696,5 @@
         }
         public String getDescription() {
-            return "5001:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )";
+            return "5128:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )";
         }
     }
Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfParser.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfParser.java	(revision 97)
+++ v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnfParser.java	(revision 100)
@@ -24,5 +24,5 @@
 public class InternalEbnfParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<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'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_SECTIONHEADER", "RULE_ML_COMMENT", "RULE_STRING", "RULE_INT", "RULE_LOGIC", "RULE_COLON", "RULE_WS", "RULE_SL_COMMENT", "')'", "']'", "'}'", "'|'", "'('", "'['", "'{'", "'*'", "'+'", "'grammar'", "';'", "'import'", "'/'", "'label:'", "'::='", "'.'", "'<-'", "'global'", "'combinator:'", "'rule'", "'hook'", "'#'", "','", "'/bnf'", "'/delta'", "'/merge'", "'core'", "'package'", "'update'"
     };
     public static final int RULE_ID=4;
@@ -40,12 +40,12 @@
     public static final int T__21=21;
     public static final int T__20=20;
-    public static final int RULE_SL_COMMENT=11;
+    public static final int RULE_SL_COMMENT=12;
     public static final int EOF=-1;
-    public static final int RULE_ML_COMMENT=12;
+    public static final int RULE_ML_COMMENT=6;
     public static final int T__30=30;
     public static final int T__19=19;
-    public static final int RULE_COLON=9;
+    public static final int RULE_COLON=10;
     public static final int T__31=31;
-    public static final int RULE_STRING=6;
+    public static final int RULE_STRING=7;
     public static final int T__32=32;
     public static final int T__33=33;
@@ -57,5 +57,5 @@
     public static final int T__36=36;
     public static final int T__17=17;
-    public static final int RULE_LOGIC=8;
+    public static final int RULE_LOGIC=9;
     public static final int T__37=37;
     public static final int T__38=38;
@@ -63,6 +63,6 @@
     public static final int T__14=14;
     public static final int T__13=13;
-    public static final int RULE_INT=7;
-    public static final int RULE_WS=10;
+    public static final int RULE_INT=8;
+    public static final int RULE_WS=11;
 
     // delegates
@@ -75,5 +75,5 @@
         public InternalEbnfParser(TokenStream input, RecognizerSharedState state) {
             super(input, state);
-            this.state.ruleMemo = new HashMap[356+1];
+            this.state.ruleMemo = new HashMap[365+1];
              
              
@@ -698,17 +698,108 @@
 
 
+    // $ANTLR start "entryRuleComment"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:237:1: entryRuleComment : ruleComment EOF ;
+    public final void entryRuleComment() throws RecognitionException {
+        int entryRuleComment_StartIndex = input.index();
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:238:1: ( ruleComment EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:239:1: ruleComment EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCommentRule()); 
+            }
+            pushFollow(FOLLOW_ruleComment_in_entryRuleComment451);
+            ruleComment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCommentRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleComment458); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 13, entryRuleComment_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleComment"
+
+
+    // $ANTLR start "ruleComment"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:246:1: ruleComment : ( ( rule__Comment__Group__0 ) ) ;
+    public final void ruleComment() throws RecognitionException {
+        int ruleComment_StartIndex = input.index();
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:250:2: ( ( ( rule__Comment__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:251:1: ( ( rule__Comment__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:251:1: ( ( rule__Comment__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:252:1: ( rule__Comment__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCommentAccess().getGroup()); 
+            }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:253:1: ( rule__Comment__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:253:2: rule__Comment__Group__0
+            {
+            pushFollow(FOLLOW_rule__Comment__Group__0_in_ruleComment484);
+            rule__Comment__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCommentAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 14, ruleComment_StartIndex); }
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleComment"
+
+
     // $ANTLR start "entryRuleImport"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:265:1: entryRuleImport : ruleImport EOF ;
     public final void entryRuleImport() throws RecognitionException {
         int entryRuleImport_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:238:1: ( ruleImport EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:239:1: ruleImport EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:266:1: ( ruleImport EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:267:1: ruleImport EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportRule()); 
             }
-            pushFollow(FOLLOW_ruleImport_in_entryRuleImport451);
+            pushFollow(FOLLOW_ruleImport_in_entryRuleImport511);
             ruleImport();
 
@@ -718,15 +809,15 @@
                after(grammarAccess.getImportRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleImport458); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 13, entryRuleImport_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleImport518); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 15, entryRuleImport_StartIndex); }
         }
         return ;
@@ -736,5 +827,5 @@
 
     // $ANTLR start "ruleImport"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:274:1: ruleImport : ( ( rule__Import__Group__0 ) ) ;
     public final void ruleImport() throws RecognitionException {
         int ruleImport_StartIndex = input.index();
@@ -743,18 +834,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:278:2: ( ( ( rule__Import__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:279:1: ( ( rule__Import__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:279:1: ( ( rule__Import__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:280:1: ( rule__Import__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport484);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:281:1: ( rule__Import__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:281:2: rule__Import__Group__0
+            {
+            pushFollow(FOLLOW_rule__Import__Group__0_in_ruleImport544);
             rule__Import__Group__0();
 
@@ -779,5 +870,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 14, ruleImport_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 16, ruleImport_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -790,16 +881,16 @@
 
     // $ANTLR start "entryRuleRule"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:293:1: entryRuleRule : ruleRule EOF ;
     public final void entryRuleRule() throws RecognitionException {
         int entryRuleRule_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:266:1: ( ruleRule EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:267:1: ruleRule EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:294:1: ( ruleRule EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:295:1: ruleRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleRule()); 
             }
-            pushFollow(FOLLOW_ruleRule_in_entryRuleRule511);
+            pushFollow(FOLLOW_ruleRule_in_entryRuleRule571);
             ruleRule();
 
@@ -809,15 +900,15 @@
                after(grammarAccess.getRuleRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRule518); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 15, entryRuleRule_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRule578); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 17, entryRuleRule_StartIndex); }
         }
         return ;
@@ -827,5 +918,5 @@
 
     // $ANTLR start "ruleRule"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:302:1: ruleRule : ( ( rule__Rule__Group__0 ) ) ;
     public final void ruleRule() throws RecognitionException {
         int ruleRule_StartIndex = input.index();
@@ -834,18 +925,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:306:2: ( ( ( rule__Rule__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:307:1: ( ( rule__Rule__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:307:1: ( ( rule__Rule__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:308:1: ( rule__Rule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__Rule__Group__0_in_ruleRule544);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:309:1: ( rule__Rule__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:309:2: rule__Rule__Group__0
+            {
+            pushFollow(FOLLOW_rule__Rule__Group__0_in_ruleRule604);
             rule__Rule__Group__0();
 
@@ -870,5 +961,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 16, ruleRule_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 18, ruleRule_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -881,16 +972,16 @@
 
     // $ANTLR start "entryRuleExtRule"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:321:1: entryRuleExtRule : ruleExtRule EOF ;
     public final void entryRuleExtRule() throws RecognitionException {
         int entryRuleExtRule_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:294:1: ( ruleExtRule EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:295:1: ruleExtRule EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:322:1: ( ruleExtRule EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:323:1: ruleExtRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleRule()); 
             }
-            pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule571);
+            pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule631);
             ruleExtRule();
 
@@ -900,15 +991,15 @@
                after(grammarAccess.getExtRuleRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleExtRule578); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 17, entryRuleExtRule_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleExtRule638); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 19, entryRuleExtRule_StartIndex); }
         }
         return ;
@@ -918,5 +1009,5 @@
 
     // $ANTLR start "ruleExtRule"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:330:1: ruleExtRule : ( ( rule__ExtRule__Group__0 ) ) ;
     public final void ruleExtRule() throws RecognitionException {
         int ruleExtRule_StartIndex = input.index();
@@ -925,18 +1016,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:334:2: ( ( ( rule__ExtRule__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:335:1: ( ( rule__ExtRule__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:335:1: ( ( rule__ExtRule__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:336:1: ( rule__ExtRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group__0_in_ruleExtRule604);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:337:1: ( rule__ExtRule__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:337:2: rule__ExtRule__Group__0
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group__0_in_ruleExtRule664);
             rule__ExtRule__Group__0();
 
@@ -961,5 +1052,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 18, ruleExtRule_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 20, ruleExtRule_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -972,16 +1063,16 @@
 
     // $ANTLR start "entryRuleMergeRule"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:349:1: entryRuleMergeRule : ruleMergeRule EOF ;
     public final void entryRuleMergeRule() throws RecognitionException {
         int entryRuleMergeRule_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:322:1: ( ruleMergeRule EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:323:1: ruleMergeRule EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:350:1: ( ruleMergeRule EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:351:1: ruleMergeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMergeRuleRule()); 
             }
-            pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule631);
+            pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule691);
             ruleMergeRule();
 
@@ -991,15 +1082,15 @@
                after(grammarAccess.getMergeRuleRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleMergeRule638); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 19, entryRuleMergeRule_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMergeRule698); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 21, entryRuleMergeRule_StartIndex); }
         }
         return ;
@@ -1009,5 +1100,5 @@
 
     // $ANTLR start "ruleMergeRule"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:358:1: ruleMergeRule : ( ( rule__MergeRule__Alternatives ) ) ;
     public final void ruleMergeRule() throws RecognitionException {
         int ruleMergeRule_StartIndex = input.index();
@@ -1016,18 +1107,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:362:2: ( ( ( rule__MergeRule__Alternatives ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:363:1: ( ( rule__MergeRule__Alternatives ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:363:1: ( ( rule__MergeRule__Alternatives ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:364:1: ( rule__MergeRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMergeRuleAccess().getAlternatives()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__MergeRule__Alternatives_in_ruleMergeRule664);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:365:1: ( rule__MergeRule__Alternatives )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:365:2: rule__MergeRule__Alternatives
+            {
+            pushFollow(FOLLOW_rule__MergeRule__Alternatives_in_ruleMergeRule724);
             rule__MergeRule__Alternatives();
 
@@ -1052,5 +1143,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 20, ruleMergeRule_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 22, ruleMergeRule_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1063,16 +1154,16 @@
 
     // $ANTLR start "entryRuleGlobalCombinator"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:377:1: entryRuleGlobalCombinator : ruleGlobalCombinator EOF ;
     public final void entryRuleGlobalCombinator() throws RecognitionException {
         int entryRuleGlobalCombinator_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:350:1: ( ruleGlobalCombinator EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:351:1: ruleGlobalCombinator EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:378:1: ( ruleGlobalCombinator EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:379:1: ruleGlobalCombinator EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorRule()); 
             }
-            pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator691);
+            pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator751);
             ruleGlobalCombinator();
 
@@ -1082,15 +1173,15 @@
                after(grammarAccess.getGlobalCombinatorRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleGlobalCombinator698); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 21, entryRuleGlobalCombinator_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleGlobalCombinator758); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 23, entryRuleGlobalCombinator_StartIndex); }
         }
         return ;
@@ -1100,5 +1191,5 @@
 
     // $ANTLR start "ruleGlobalCombinator"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:386:1: ruleGlobalCombinator : ( ( rule__GlobalCombinator__Group__0 ) ) ;
     public final void ruleGlobalCombinator() throws RecognitionException {
         int ruleGlobalCombinator_StartIndex = input.index();
@@ -1107,18 +1198,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:390:2: ( ( ( rule__GlobalCombinator__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:391:1: ( ( rule__GlobalCombinator__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:391:1: ( ( rule__GlobalCombinator__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:392:1: ( rule__GlobalCombinator__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group__0_in_ruleGlobalCombinator724);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:393:1: ( rule__GlobalCombinator__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:393:2: rule__GlobalCombinator__Group__0
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group__0_in_ruleGlobalCombinator784);
             rule__GlobalCombinator__Group__0();
 
@@ -1143,5 +1234,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 22, ruleGlobalCombinator_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 24, ruleGlobalCombinator_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1154,16 +1245,16 @@
 
     // $ANTLR start "entryRuleRuleCombinator"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:405:1: entryRuleRuleCombinator : ruleRuleCombinator EOF ;
     public final void entryRuleRuleCombinator() throws RecognitionException {
         int entryRuleRuleCombinator_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:378:1: ( ruleRuleCombinator EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:379:1: ruleRuleCombinator EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:406:1: ( ruleRuleCombinator EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:407:1: ruleRuleCombinator EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorRule()); 
             }
-            pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator751);
+            pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator811);
             ruleRuleCombinator();
 
@@ -1173,15 +1264,15 @@
                after(grammarAccess.getRuleCombinatorRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleCombinator758); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 23, entryRuleRuleCombinator_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleCombinator818); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 25, entryRuleRuleCombinator_StartIndex); }
         }
         return ;
@@ -1191,5 +1282,5 @@
 
     // $ANTLR start "ruleRuleCombinator"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:414:1: ruleRuleCombinator : ( ( rule__RuleCombinator__Group__0 ) ) ;
     public final void ruleRuleCombinator() throws RecognitionException {
         int ruleRuleCombinator_StartIndex = input.index();
@@ -1198,18 +1289,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:418:2: ( ( ( rule__RuleCombinator__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:419:1: ( ( rule__RuleCombinator__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:419:1: ( ( rule__RuleCombinator__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:420:1: ( rule__RuleCombinator__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__0_in_ruleRuleCombinator784);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:421:1: ( rule__RuleCombinator__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:421:2: rule__RuleCombinator__Group__0
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__0_in_ruleRuleCombinator844);
             rule__RuleCombinator__Group__0();
 
@@ -1234,5 +1325,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 24, ruleRuleCombinator_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 26, ruleRuleCombinator_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1245,16 +1336,16 @@
 
     // $ANTLR start "entryRuleHookCombinator"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:433:1: entryRuleHookCombinator : ruleHookCombinator EOF ;
     public final void entryRuleHookCombinator() throws RecognitionException {
         int entryRuleHookCombinator_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:406:1: ( ruleHookCombinator EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:407:1: ruleHookCombinator EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:434:1: ( ruleHookCombinator EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:435:1: ruleHookCombinator EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorRule()); 
             }
-            pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator811);
+            pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator871);
             ruleHookCombinator();
 
@@ -1264,15 +1355,15 @@
                after(grammarAccess.getHookCombinatorRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleHookCombinator818); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 25, entryRuleHookCombinator_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleHookCombinator878); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 27, entryRuleHookCombinator_StartIndex); }
         }
         return ;
@@ -1282,5 +1373,5 @@
 
     // $ANTLR start "ruleHookCombinator"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:442:1: ruleHookCombinator : ( ( rule__HookCombinator__Group__0 ) ) ;
     public final void ruleHookCombinator() throws RecognitionException {
         int ruleHookCombinator_StartIndex = input.index();
@@ -1289,18 +1380,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:446:2: ( ( ( rule__HookCombinator__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:447:1: ( ( rule__HookCombinator__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:447:1: ( ( rule__HookCombinator__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:448:1: ( rule__HookCombinator__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__0_in_ruleHookCombinator844);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:449:1: ( rule__HookCombinator__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:449:2: rule__HookCombinator__Group__0
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__0_in_ruleHookCombinator904);
             rule__HookCombinator__Group__0();
 
@@ -1325,5 +1416,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 26, ruleHookCombinator_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 28, ruleHookCombinator_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1336,16 +1427,16 @@
 
     // $ANTLR start "entryRuleDefinitionList"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:461:1: entryRuleDefinitionList : ruleDefinitionList EOF ;
     public final void entryRuleDefinitionList() throws RecognitionException {
         int entryRuleDefinitionList_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:434:1: ( ruleDefinitionList EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:435:1: ruleDefinitionList EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:462:1: ( ruleDefinitionList EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:463:1: ruleDefinitionList EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListRule()); 
             }
-            pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList871);
+            pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList931);
             ruleDefinitionList();
 
@@ -1355,15 +1446,15 @@
                after(grammarAccess.getDefinitionListRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitionList878); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 27, entryRuleDefinitionList_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitionList938); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 29, entryRuleDefinitionList_StartIndex); }
         }
         return ;
@@ -1373,5 +1464,5 @@
 
     // $ANTLR start "ruleDefinitionList"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:470:1: ruleDefinitionList : ( ( rule__DefinitionList__Group__0 ) ) ;
     public final void ruleDefinitionList() throws RecognitionException {
         int ruleDefinitionList_StartIndex = input.index();
@@ -1380,18 +1471,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:474:2: ( ( ( rule__DefinitionList__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:475:1: ( ( rule__DefinitionList__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:475:1: ( ( rule__DefinitionList__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:476:1: ( rule__DefinitionList__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__DefinitionList__Group__0_in_ruleDefinitionList904);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:477:1: ( rule__DefinitionList__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:477:2: rule__DefinitionList__Group__0
+            {
+            pushFollow(FOLLOW_rule__DefinitionList__Group__0_in_ruleDefinitionList964);
             rule__DefinitionList__Group__0();
 
@@ -1416,5 +1507,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 28, ruleDefinitionList_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 30, ruleDefinitionList_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1427,16 +1518,16 @@
 
     // $ANTLR start "entryRuleSingleDefinition"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:489:1: entryRuleSingleDefinition : ruleSingleDefinition EOF ;
     public final void entryRuleSingleDefinition() throws RecognitionException {
         int entryRuleSingleDefinition_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:462:1: ( ruleSingleDefinition EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:463:1: ruleSingleDefinition EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:490:1: ( ruleSingleDefinition EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:491:1: ruleSingleDefinition EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSingleDefinitionRule()); 
             }
-            pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition931);
+            pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition991);
             ruleSingleDefinition();
 
@@ -1446,15 +1537,15 @@
                after(grammarAccess.getSingleDefinitionRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSingleDefinition938); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 29, entryRuleSingleDefinition_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSingleDefinition998); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 31, entryRuleSingleDefinition_StartIndex); }
         }
         return ;
@@ -1464,5 +1555,5 @@
 
     // $ANTLR start "ruleSingleDefinition"
-    // ../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 )* ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:498:1: ruleSingleDefinition : ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) ;
     public final void ruleSingleDefinition() throws RecognitionException {
         int ruleSingleDefinition_StartIndex = input.index();
@@ -1471,21 +1562,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return ; }
-            // ../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 )* ) ) )
-            // ../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 )* ) )
-            {
-            // ../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 )* ) )
-            // ../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 )* )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:502:2: ( ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:503:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:503:1: ( ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:504:1: ( ( rule__SingleDefinition__TermsAssignment ) ) ( ( rule__SingleDefinition__TermsAssignment )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:504:1: ( ( rule__SingleDefinition__TermsAssignment ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:505:1: ( rule__SingleDefinition__TermsAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition966);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:506:1: ( rule__SingleDefinition__TermsAssignment )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:506:2: rule__SingleDefinition__TermsAssignment
+            {
+            pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition1026);
             rule__SingleDefinition__TermsAssignment();
 
@@ -1501,11 +1592,11 @@
             }
 
-            // ../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 )* )
-            // ../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 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:509:1: ( ( rule__SingleDefinition__TermsAssignment )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:510:1: ( rule__SingleDefinition__TermsAssignment )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSingleDefinitionAccess().getTermsAssignment()); 
             }
-            // ../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 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:511:1: ( rule__SingleDefinition__TermsAssignment )*
             loop2:
             do {
@@ -1538,7 +1629,7 @@
                 switch (alt2) {
             	case 1 :
-            	    // ../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
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:511:2: rule__SingleDefinition__TermsAssignment
             	    {
-            	    pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition978);
+            	    pushFollow(FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition1038);
             	    rule__SingleDefinition__TermsAssignment();
 
@@ -1572,5 +1663,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 30, ruleSingleDefinition_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 32, ruleSingleDefinition_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1583,16 +1674,16 @@
 
     // $ANTLR start "entryRuleTerm"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:524:1: entryRuleTerm : ruleTerm EOF ;
     public final void entryRuleTerm() throws RecognitionException {
         int entryRuleTerm_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:497:1: ( ruleTerm EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:498:1: ruleTerm EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:525:1: ( ruleTerm EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:526:1: ruleTerm EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTermRule()); 
             }
-            pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm1008);
+            pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm1068);
             ruleTerm();
 
@@ -1602,15 +1693,15 @@
                after(grammarAccess.getTermRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTerm1015); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 31, entryRuleTerm_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTerm1075); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 33, entryRuleTerm_StartIndex); }
         }
         return ;
@@ -1620,5 +1711,5 @@
 
     // $ANTLR start "ruleTerm"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:533:1: ruleTerm : ( ( rule__Term__Alternatives ) ) ;
     public final void ruleTerm() throws RecognitionException {
         int ruleTerm_StartIndex = input.index();
@@ -1627,18 +1718,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:537:2: ( ( ( rule__Term__Alternatives ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:538:1: ( ( rule__Term__Alternatives ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:538:1: ( ( rule__Term__Alternatives ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:539:1: ( rule__Term__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTermAccess().getAlternatives()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__Term__Alternatives_in_ruleTerm1041);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:540:1: ( rule__Term__Alternatives )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:540:2: rule__Term__Alternatives
+            {
+            pushFollow(FOLLOW_rule__Term__Alternatives_in_ruleTerm1101);
             rule__Term__Alternatives();
 
@@ -1663,5 +1754,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 32, ruleTerm_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 34, ruleTerm_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1674,16 +1765,16 @@
 
     // $ANTLR start "entryRuleAtom"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:552:1: entryRuleAtom : ruleAtom EOF ;
     public final void entryRuleAtom() throws RecognitionException {
         int entryRuleAtom_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:525:1: ( ruleAtom EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:526:1: ruleAtom EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:553:1: ( ruleAtom EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:554:1: ruleAtom EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAtomRule()); 
             }
-            pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom1068);
+            pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom1128);
             ruleAtom();
 
@@ -1693,15 +1784,15 @@
                after(grammarAccess.getAtomRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleAtom1075); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 33, entryRuleAtom_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleAtom1135); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 35, entryRuleAtom_StartIndex); }
         }
         return ;
@@ -1711,5 +1802,5 @@
 
     // $ANTLR start "ruleAtom"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:561:1: ruleAtom : ( ( rule__Atom__Alternatives ) ) ;
     public final void ruleAtom() throws RecognitionException {
         int ruleAtom_StartIndex = input.index();
@@ -1718,18 +1809,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:565:2: ( ( ( rule__Atom__Alternatives ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:566:1: ( ( rule__Atom__Alternatives ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:566:1: ( ( rule__Atom__Alternatives ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:567:1: ( rule__Atom__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAtomAccess().getAlternatives()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__Atom__Alternatives_in_ruleAtom1101);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:568:1: ( rule__Atom__Alternatives )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:568:2: rule__Atom__Alternatives
+            {
+            pushFollow(FOLLOW_rule__Atom__Alternatives_in_ruleAtom1161);
             rule__Atom__Alternatives();
 
@@ -1754,5 +1845,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 34, ruleAtom_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 36, ruleAtom_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1765,16 +1856,16 @@
 
     // $ANTLR start "entryRuleRuleReference"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:580:1: entryRuleRuleReference : ruleRuleReference EOF ;
     public final void entryRuleRuleReference() throws RecognitionException {
         int entryRuleRuleReference_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:553:1: ( ruleRuleReference EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:554:1: ruleRuleReference EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:581:1: ( ruleRuleReference EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:582:1: ruleRuleReference EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleReferenceRule()); 
             }
-            pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference1128);
+            pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference1188);
             ruleRuleReference();
 
@@ -1784,15 +1875,15 @@
                after(grammarAccess.getRuleReferenceRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleReference1135); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 35, entryRuleRuleReference_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleReference1195); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 37, entryRuleRuleReference_StartIndex); }
         }
         return ;
@@ -1802,5 +1893,5 @@
 
     // $ANTLR start "ruleRuleReference"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:589:1: ruleRuleReference : ( ( rule__RuleReference__RulerefAssignment ) ) ;
     public final void ruleRuleReference() throws RecognitionException {
         int ruleRuleReference_StartIndex = input.index();
@@ -1809,18 +1900,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:593:2: ( ( ( rule__RuleReference__RulerefAssignment ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:594:1: ( ( rule__RuleReference__RulerefAssignment ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:594:1: ( ( rule__RuleReference__RulerefAssignment ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:595:1: ( rule__RuleReference__RulerefAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleReferenceAccess().getRulerefAssignment()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__RuleReference__RulerefAssignment_in_ruleRuleReference1161);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:596:1: ( rule__RuleReference__RulerefAssignment )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:596:2: rule__RuleReference__RulerefAssignment
+            {
+            pushFollow(FOLLOW_rule__RuleReference__RulerefAssignment_in_ruleRuleReference1221);
             rule__RuleReference__RulerefAssignment();
 
@@ -1845,5 +1936,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 36, ruleRuleReference_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 38, ruleRuleReference_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1856,16 +1947,16 @@
 
     // $ANTLR start "entryRuleStringRule"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:608:1: entryRuleStringRule : ruleStringRule EOF ;
     public final void entryRuleStringRule() throws RecognitionException {
         int entryRuleStringRule_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:581:1: ( ruleStringRule EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:582:1: ruleStringRule EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:609:1: ( ruleStringRule EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:610:1: ruleStringRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringRuleRule()); 
             }
-            pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule1188);
+            pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule1248);
             ruleStringRule();
 
@@ -1875,15 +1966,15 @@
                after(grammarAccess.getStringRuleRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleStringRule1195); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 37, entryRuleStringRule_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStringRule1255); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 39, entryRuleStringRule_StartIndex); }
         }
         return ;
@@ -1893,5 +1984,5 @@
 
     // $ANTLR start "ruleStringRule"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:617:1: ruleStringRule : ( ( rule__StringRule__Alternatives ) ) ;
     public final void ruleStringRule() throws RecognitionException {
         int ruleStringRule_StartIndex = input.index();
@@ -1900,18 +1991,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:621:2: ( ( ( rule__StringRule__Alternatives ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:622:1: ( ( rule__StringRule__Alternatives ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:622:1: ( ( rule__StringRule__Alternatives ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:623:1: ( rule__StringRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringRuleAccess().getAlternatives()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__StringRule__Alternatives_in_ruleStringRule1221);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:624:1: ( rule__StringRule__Alternatives )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:624:2: rule__StringRule__Alternatives
+            {
+            pushFollow(FOLLOW_rule__StringRule__Alternatives_in_ruleStringRule1281);
             rule__StringRule__Alternatives();
 
@@ -1936,5 +2027,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 38, ruleStringRule_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 40, ruleStringRule_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -1947,16 +2038,16 @@
 
     // $ANTLR start "entryRuleGroupedSequence"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:636:1: entryRuleGroupedSequence : ruleGroupedSequence EOF ;
     public final void entryRuleGroupedSequence() throws RecognitionException {
         int entryRuleGroupedSequence_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:609:1: ( ruleGroupedSequence EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:610:1: ruleGroupedSequence EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:637:1: ( ruleGroupedSequence EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:638:1: ruleGroupedSequence EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGroupedSequenceRule()); 
             }
-            pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1248);
+            pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1308);
             ruleGroupedSequence();
 
@@ -1966,15 +2057,15 @@
                after(grammarAccess.getGroupedSequenceRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleGroupedSequence1255); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 39, entryRuleGroupedSequence_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleGroupedSequence1315); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 41, entryRuleGroupedSequence_StartIndex); }
         }
         return ;
@@ -1984,5 +2075,5 @@
 
     // $ANTLR start "ruleGroupedSequence"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:645:1: ruleGroupedSequence : ( ( rule__GroupedSequence__Group__0 ) ) ;
     public final void ruleGroupedSequence() throws RecognitionException {
         int ruleGroupedSequence_StartIndex = input.index();
@@ -1991,18 +2082,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:649:2: ( ( ( rule__GroupedSequence__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:650:1: ( ( rule__GroupedSequence__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:650:1: ( ( rule__GroupedSequence__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:651:1: ( rule__GroupedSequence__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGroupedSequenceAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__GroupedSequence__Group__0_in_ruleGroupedSequence1281);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:652:1: ( rule__GroupedSequence__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:652:2: rule__GroupedSequence__Group__0
+            {
+            pushFollow(FOLLOW_rule__GroupedSequence__Group__0_in_ruleGroupedSequence1341);
             rule__GroupedSequence__Group__0();
 
@@ -2027,5 +2118,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 40, ruleGroupedSequence_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 42, ruleGroupedSequence_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2038,16 +2129,16 @@
 
     // $ANTLR start "entryRuleOptionalSequence"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:664:1: entryRuleOptionalSequence : ruleOptionalSequence EOF ;
     public final void entryRuleOptionalSequence() throws RecognitionException {
         int entryRuleOptionalSequence_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:637:1: ( ruleOptionalSequence EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:638:1: ruleOptionalSequence EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:665:1: ( ruleOptionalSequence EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:666:1: ruleOptionalSequence EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOptionalSequenceRule()); 
             }
-            pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1308);
+            pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1368);
             ruleOptionalSequence();
 
@@ -2057,15 +2148,15 @@
                after(grammarAccess.getOptionalSequenceRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOptionalSequence1315); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 41, entryRuleOptionalSequence_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOptionalSequence1375); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 43, entryRuleOptionalSequence_StartIndex); }
         }
         return ;
@@ -2075,5 +2166,5 @@
 
     // $ANTLR start "ruleOptionalSequence"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:673:1: ruleOptionalSequence : ( ( rule__OptionalSequence__Group__0 ) ) ;
     public final void ruleOptionalSequence() throws RecognitionException {
         int ruleOptionalSequence_StartIndex = input.index();
@@ -2082,18 +2173,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:677:2: ( ( ( rule__OptionalSequence__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:678:1: ( ( rule__OptionalSequence__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:678:1: ( ( rule__OptionalSequence__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:679:1: ( rule__OptionalSequence__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOptionalSequenceAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__OptionalSequence__Group__0_in_ruleOptionalSequence1341);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:680:1: ( rule__OptionalSequence__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:680:2: rule__OptionalSequence__Group__0
+            {
+            pushFollow(FOLLOW_rule__OptionalSequence__Group__0_in_ruleOptionalSequence1401);
             rule__OptionalSequence__Group__0();
 
@@ -2118,5 +2209,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 42, ruleOptionalSequence_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 44, ruleOptionalSequence_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2129,16 +2220,16 @@
 
     // $ANTLR start "entryRuleRepeatedSequence"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:692:1: entryRuleRepeatedSequence : ruleRepeatedSequence EOF ;
     public final void entryRuleRepeatedSequence() throws RecognitionException {
         int entryRuleRepeatedSequence_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:665:1: ( ruleRepeatedSequence EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:666:1: ruleRepeatedSequence EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:693:1: ( ruleRepeatedSequence EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:694:1: ruleRepeatedSequence EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceRule()); 
             }
-            pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1368);
+            pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1428);
             ruleRepeatedSequence();
 
@@ -2148,15 +2239,15 @@
                after(grammarAccess.getRepeatedSequenceRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatedSequence1375); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 43, entryRuleRepeatedSequence_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatedSequence1435); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 45, entryRuleRepeatedSequence_StartIndex); }
         }
         return ;
@@ -2166,5 +2257,5 @@
 
     // $ANTLR start "ruleRepeatedSequence"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:701:1: ruleRepeatedSequence : ( ( rule__RepeatedSequence__Group__0 ) ) ;
     public final void ruleRepeatedSequence() throws RecognitionException {
         int ruleRepeatedSequence_StartIndex = input.index();
@@ -2173,18 +2264,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:705:2: ( ( ( rule__RepeatedSequence__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:706:1: ( ( rule__RepeatedSequence__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:706:1: ( ( rule__RepeatedSequence__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:707:1: ( rule__RepeatedSequence__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__0_in_ruleRepeatedSequence1401);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:708:1: ( rule__RepeatedSequence__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:708:2: rule__RepeatedSequence__Group__0
+            {
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__0_in_ruleRepeatedSequence1461);
             rule__RepeatedSequence__Group__0();
 
@@ -2209,5 +2300,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 44, ruleRepeatedSequence_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 46, ruleRepeatedSequence_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2220,16 +2311,16 @@
 
     // $ANTLR start "entryRuleRepeatRange"
-    // ../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 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:720:1: entryRuleRepeatRange : ruleRepeatRange EOF ;
     public final void entryRuleRepeatRange() throws RecognitionException {
         int entryRuleRepeatRange_StartIndex = input.index();
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:693:1: ( ruleRepeatRange EOF )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:694:1: ruleRepeatRange EOF
+            if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:721:1: ( ruleRepeatRange EOF )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:722:1: ruleRepeatRange EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeRule()); 
             }
-            pushFollow(FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange1428);
+            pushFollow(FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange1488);
             ruleRepeatRange();
 
@@ -2239,15 +2330,15 @@
                after(grammarAccess.getRepeatRangeRule()); 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatRange1435); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 45, entryRuleRepeatRange_StartIndex); }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatRange1495); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 47, entryRuleRepeatRange_StartIndex); }
         }
         return ;
@@ -2257,5 +2348,5 @@
 
     // $ANTLR start "ruleRepeatRange"
-    // ../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 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:729:1: ruleRepeatRange : ( ( rule__RepeatRange__Group__0 ) ) ;
     public final void ruleRepeatRange() throws RecognitionException {
         int ruleRepeatRange_StartIndex = input.index();
@@ -2264,18 +2355,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return ; }
-            // ../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 ) ) )
-            // ../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 ) )
-            {
-            // ../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 ) )
-            // ../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 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:733:2: ( ( ( rule__RepeatRange__Group__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:734:1: ( ( rule__RepeatRange__Group__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:734:1: ( ( rule__RepeatRange__Group__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:735:1: ( rule__RepeatRange__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getGroup()); 
             }
-            // ../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 )
-            // ../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
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__Group__0_in_ruleRepeatRange1461);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:736:1: ( rule__RepeatRange__Group__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:736:2: rule__RepeatRange__Group__0
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__Group__0_in_ruleRepeatRange1521);
             rule__RepeatRange__Group__0();
 
@@ -2300,5 +2391,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 46, ruleRepeatRange_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 48, ruleRepeatRange_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2311,5 +2402,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Alternatives"
-    // ../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 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:748:1: rule__EtsiBnf__Alternatives : ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) );
     public final void rule__EtsiBnf__Alternatives() throws RecognitionException {
         int rule__EtsiBnf__Alternatives_StartIndex = input.index();
@@ -2318,6 +2409,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return ; }
-            // ../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 ) ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:752:1: ( ( ( rule__EtsiBnf__Group_0__0 ) ) | ( ( rule__EtsiBnf__Group_1__0 ) ) | ( ( rule__EtsiBnf__Group_2__0 ) ) )
             int alt3=3;
             switch ( input.LA(1) ) {
@@ -2347,16 +2438,16 @@
             switch (alt3) {
                 case 1 :
-                    // ../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 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:753:1: ( ( rule__EtsiBnf__Group_0__0 ) )
                     {
-                    // ../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 ) )
-                    // ../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 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:753:1: ( ( rule__EtsiBnf__Group_0__0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:754:1: ( rule__EtsiBnf__Group_0__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEtsiBnfAccess().getGroup_0()); 
                     }
-                    // ../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 )
-                    // ../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
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:755:1: ( rule__EtsiBnf__Group_0__0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:755:2: rule__EtsiBnf__Group_0__0
                     {
-                    pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1497);
+                    pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1557);
                     rule__EtsiBnf__Group_0__0();
 
@@ -2376,16 +2467,16 @@
                     break;
                 case 2 :
-                    // ../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 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:759:6: ( ( rule__EtsiBnf__Group_1__0 ) )
                     {
-                    // ../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 ) )
-                    // ../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 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:759:6: ( ( rule__EtsiBnf__Group_1__0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:760:1: ( rule__EtsiBnf__Group_1__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEtsiBnfAccess().getGroup_1()); 
                     }
-                    // ../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 )
-                    // ../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
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:761:1: ( rule__EtsiBnf__Group_1__0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:761:2: rule__EtsiBnf__Group_1__0
                     {
-                    pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1515);
+                    pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1575);
                     rule__EtsiBnf__Group_1__0();
 
@@ -2405,16 +2496,16 @@
                     break;
                 case 3 :
-                    // ../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 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:765:6: ( ( rule__EtsiBnf__Group_2__0 ) )
                     {
-                    // ../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 ) )
-                    // ../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 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:765:6: ( ( rule__EtsiBnf__Group_2__0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:766:1: ( rule__EtsiBnf__Group_2__0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getEtsiBnfAccess().getGroup_2()); 
                     }
-                    // ../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 )
-                    // ../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
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:767:1: ( rule__EtsiBnf__Group_2__0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:767:2: rule__EtsiBnf__Group_2__0
                     {
-                    pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1533);
+                    pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1593);
                     rule__EtsiBnf__Group_2__0();
 
@@ -2441,5 +2532,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 47, rule__EtsiBnf__Alternatives_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 49, rule__EtsiBnf__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2452,5 +2543,5 @@
 
     // $ANTLR start "rule__BnfEntry__Alternatives"
-    // ../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 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:776:1: rule__BnfEntry__Alternatives : ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) | ( ( rule__BnfEntry__CommentAssignment_2 ) ) );
     public final void rule__BnfEntry__Alternatives() throws RecognitionException {
         int rule__BnfEntry__Alternatives_StartIndex = input.index();
@@ -2459,16 +2550,25 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return ; }
-            // ../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 ) ) )
-            int alt4=2;
-            int LA4_0 = input.LA(1);
-
-            if ( (LA4_0==RULE_SECTIONHEADER) ) {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:780:1: ( ( ( rule__BnfEntry__SectionheaderAssignment_0 ) ) | ( ( rule__BnfEntry__RuleAssignment_1 ) ) | ( ( rule__BnfEntry__CommentAssignment_2 ) ) )
+            int alt4=3;
+            switch ( input.LA(1) ) {
+            case RULE_SECTIONHEADER:
+                {
                 alt4=1;
-            }
-            else if ( (LA4_0==RULE_ID||LA4_0==RULE_INT) ) {
+                }
+                break;
+            case RULE_ID:
+            case RULE_INT:
+                {
                 alt4=2;
-            }
-            else {
+                }
+                break;
+            case RULE_ML_COMMENT:
+                {
+                alt4=3;
+                }
+                break;
+            default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
@@ -2477,18 +2577,19 @@
                 throw nvae;
             }
+
             switch (alt4) {
                 case 1 :
-                    // ../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 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) )
                     {
-                    // ../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 ) )
-                    // ../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 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:1: ( ( rule__BnfEntry__SectionheaderAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:782:1: ( rule__BnfEntry__SectionheaderAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBnfEntryAccess().getSectionheaderAssignment_0()); 
                     }
-                    // ../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 )
-                    // ../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
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:1: ( rule__BnfEntry__SectionheaderAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:2: rule__BnfEntry__SectionheaderAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1566);
+                    pushFollow(FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1626);
                     rule__BnfEntry__SectionheaderAssignment_0();
 
@@ -2508,16 +2609,16 @@
                     break;
                 case 2 :
-                    // ../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 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__BnfEntry__RuleAssignment_1 ) )
                     {
-                    // ../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 ) )
-                    // ../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 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__BnfEntry__RuleAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:788:1: ( rule__BnfEntry__RuleAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBnfEntryAccess().getRuleAssignment_1()); 
                     }
-                    // ../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 )
-                    // ../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
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:1: ( rule__BnfEntry__RuleAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:2: rule__BnfEntry__RuleAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1584);
+                    pushFollow(FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1644);
                     rule__BnfEntry__RuleAssignment_1();
 
@@ -2536,13 +2637,42 @@
                     }
                     break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-            if ( state.backtracking>0 ) { memoize(input, 48, rule__BnfEntry__Alternatives_StartIndex); }
+                case 3 :
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:793:6: ( ( rule__BnfEntry__CommentAssignment_2 ) )
+                    {
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:793:6: ( ( rule__BnfEntry__CommentAssignment_2 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:794:1: ( rule__BnfEntry__CommentAssignment_2 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getBnfEntryAccess().getCommentAssignment_2()); 
+                    }
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:795:1: ( rule__BnfEntry__CommentAssignment_2 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:795:2: rule__BnfEntry__CommentAssignment_2
+                    {
+                    pushFollow(FOLLOW_rule__BnfEntry__CommentAssignment_2_in_rule__BnfEntry__Alternatives1662);
+                    rule__BnfEntry__CommentAssignment_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getBnfEntryAccess().getCommentAssignment_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 50, rule__BnfEntry__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2555,5 +2685,5 @@
 
     // $ANTLR start "rule__DeltaEntry__Alternatives"
-    // ../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 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:804:1: rule__DeltaEntry__Alternatives : ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) );
     public final void rule__DeltaEntry__Alternatives() throws RecognitionException {
         int rule__DeltaEntry__Alternatives_StartIndex = input.index();
@@ -2562,6 +2692,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return ; }
-            // ../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 ) ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:808:1: ( ( ( rule__DeltaEntry__RuleAssignment_0 ) ) | ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) ) | ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) ) )
             int alt5=3;
             switch ( input.LA(1) ) {
@@ -2680,16 +2810,16 @@
             switch (alt5) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:775:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:775:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:776:1: ( rule__DeltaEntry__RuleAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:1: ( ( rule__DeltaEntry__RuleAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:810:1: ( rule__DeltaEntry__RuleAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDeltaEntryAccess().getRuleAssignment_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:777:1: ( rule__DeltaEntry__RuleAssignment_0 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:777:2: rule__DeltaEntry__RuleAssignment_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:1: ( rule__DeltaEntry__RuleAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:2: rule__DeltaEntry__RuleAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__DeltaEntry__RuleAssignment_0_in_rule__DeltaEntry__Alternatives1617);
+                    pushFollow(FOLLOW_rule__DeltaEntry__RuleAssignment_0_in_rule__DeltaEntry__Alternatives1695);
                     rule__DeltaEntry__RuleAssignment_0();
 
@@ -2709,16 +2839,16 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:815:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:781:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:782:1: ( rule__DeltaEntry__SectionheaderAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:815:6: ( ( rule__DeltaEntry__SectionheaderAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:816:1: ( rule__DeltaEntry__SectionheaderAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDeltaEntryAccess().getSectionheaderAssignment_1()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:1: ( rule__DeltaEntry__SectionheaderAssignment_1 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:783:2: rule__DeltaEntry__SectionheaderAssignment_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:817:1: ( rule__DeltaEntry__SectionheaderAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:817:2: rule__DeltaEntry__SectionheaderAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__DeltaEntry__SectionheaderAssignment_1_in_rule__DeltaEntry__Alternatives1635);
+                    pushFollow(FOLLOW_rule__DeltaEntry__SectionheaderAssignment_1_in_rule__DeltaEntry__Alternatives1713);
                     rule__DeltaEntry__SectionheaderAssignment_1();
 
@@ -2738,16 +2868,16 @@
                     break;
                 case 3 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:821:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:787:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:788:1: ( rule__DeltaEntry__ExtRuleAssignment_2 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:821:6: ( ( rule__DeltaEntry__ExtRuleAssignment_2 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:822:1: ( rule__DeltaEntry__ExtRuleAssignment_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDeltaEntryAccess().getExtRuleAssignment_2()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:1: ( rule__DeltaEntry__ExtRuleAssignment_2 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:789:2: rule__DeltaEntry__ExtRuleAssignment_2
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:823:1: ( rule__DeltaEntry__ExtRuleAssignment_2 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:823:2: rule__DeltaEntry__ExtRuleAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__DeltaEntry__ExtRuleAssignment_2_in_rule__DeltaEntry__Alternatives1653);
+                    pushFollow(FOLLOW_rule__DeltaEntry__ExtRuleAssignment_2_in_rule__DeltaEntry__Alternatives1731);
                     rule__DeltaEntry__ExtRuleAssignment_2();
 
@@ -2774,5 +2904,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 49, rule__DeltaEntry__Alternatives_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 51, rule__DeltaEntry__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2785,5 +2915,5 @@
 
     // $ANTLR start "rule__MergeEntry__Alternatives"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:798:1: rule__MergeEntry__Alternatives : ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:832:1: rule__MergeEntry__Alternatives : ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) );
     public final void rule__MergeEntry__Alternatives() throws RecognitionException {
         int rule__MergeEntry__Alternatives_StartIndex = input.index();
@@ -2792,6 +2922,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:802:1: ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:836:1: ( ( ( rule__MergeEntry__SectionheaderAssignment_0 ) ) | ( ( rule__MergeEntry__MergeRuleAssignment_1 ) ) )
             int alt6=2;
             int LA6_0 = input.LA(1);
@@ -2812,16 +2942,16 @@
             switch (alt6) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:803:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:803:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:804:1: ( rule__MergeEntry__SectionheaderAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:1: ( ( rule__MergeEntry__SectionheaderAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:838:1: ( rule__MergeEntry__SectionheaderAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMergeEntryAccess().getSectionheaderAssignment_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:805:1: ( rule__MergeEntry__SectionheaderAssignment_0 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:805:2: rule__MergeEntry__SectionheaderAssignment_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:1: ( rule__MergeEntry__SectionheaderAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:2: rule__MergeEntry__SectionheaderAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__MergeEntry__SectionheaderAssignment_0_in_rule__MergeEntry__Alternatives1686);
+                    pushFollow(FOLLOW_rule__MergeEntry__SectionheaderAssignment_0_in_rule__MergeEntry__Alternatives1764);
                     rule__MergeEntry__SectionheaderAssignment_0();
 
@@ -2841,16 +2971,16 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:843:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:809:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:810:1: ( rule__MergeEntry__MergeRuleAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:843:6: ( ( rule__MergeEntry__MergeRuleAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:844:1: ( rule__MergeEntry__MergeRuleAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMergeEntryAccess().getMergeRuleAssignment_1()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:1: ( rule__MergeEntry__MergeRuleAssignment_1 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:811:2: rule__MergeEntry__MergeRuleAssignment_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:845:1: ( rule__MergeEntry__MergeRuleAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:845:2: rule__MergeEntry__MergeRuleAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__MergeEntry__MergeRuleAssignment_1_in_rule__MergeEntry__Alternatives1704);
+                    pushFollow(FOLLOW_rule__MergeEntry__MergeRuleAssignment_1_in_rule__MergeEntry__Alternatives1782);
                     rule__MergeEntry__MergeRuleAssignment_1();
 
@@ -2877,5 +3007,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 50, rule__MergeEntry__Alternatives_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 52, rule__MergeEntry__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -2888,5 +3018,5 @@
 
     // $ANTLR start "rule__Import__Alternatives_2_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:820:1: rule__Import__Alternatives_2_1 : ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:854:1: rule__Import__Alternatives_2_1 : ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) );
     public final void rule__Import__Alternatives_2_1() throws RecognitionException {
         int rule__Import__Alternatives_2_1_StartIndex = input.index();
@@ -2895,6 +3025,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:824:1: ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:858:1: ( ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) ) | ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) ) )
             int alt7=3;
             switch ( input.LA(1) ) {
@@ -2924,16 +3054,16 @@
             switch (alt7) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:825:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:825:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:826:1: ( rule__Import__GrammarTypeAssignment_2_1_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:1: ( ( rule__Import__GrammarTypeAssignment_2_1_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:860:1: ( rule__Import__GrammarTypeAssignment_2_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:827:1: ( rule__Import__GrammarTypeAssignment_2_1_0 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:827:2: rule__Import__GrammarTypeAssignment_2_1_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:861:1: ( rule__Import__GrammarTypeAssignment_2_1_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:861:2: rule__Import__GrammarTypeAssignment_2_1_0
                     {
-                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_0_in_rule__Import__Alternatives_2_11737);
+                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_0_in_rule__Import__Alternatives_2_11815);
                     rule__Import__GrammarTypeAssignment_2_1_0();
 
@@ -2953,16 +3083,16 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:831:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:865:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:831:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:832:1: ( rule__Import__GrammarTypeAssignment_2_1_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:865:6: ( ( rule__Import__GrammarTypeAssignment_2_1_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:866:1: ( rule__Import__GrammarTypeAssignment_2_1_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_1()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:833:1: ( rule__Import__GrammarTypeAssignment_2_1_1 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:833:2: rule__Import__GrammarTypeAssignment_2_1_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:1: ( rule__Import__GrammarTypeAssignment_2_1_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:2: rule__Import__GrammarTypeAssignment_2_1_1
                     {
-                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_1_in_rule__Import__Alternatives_2_11755);
+                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_1_in_rule__Import__Alternatives_2_11833);
                     rule__Import__GrammarTypeAssignment_2_1_1();
 
@@ -2982,16 +3112,16 @@
                     break;
                 case 3 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:871:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:837:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:838:1: ( rule__Import__GrammarTypeAssignment_2_1_2 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:871:6: ( ( rule__Import__GrammarTypeAssignment_2_1_2 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:872:1: ( rule__Import__GrammarTypeAssignment_2_1_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getImportAccess().getGrammarTypeAssignment_2_1_2()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:1: ( rule__Import__GrammarTypeAssignment_2_1_2 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:839:2: rule__Import__GrammarTypeAssignment_2_1_2
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:873:1: ( rule__Import__GrammarTypeAssignment_2_1_2 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:873:2: rule__Import__GrammarTypeAssignment_2_1_2
                     {
-                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_2_in_rule__Import__Alternatives_2_11773);
+                    pushFollow(FOLLOW_rule__Import__GrammarTypeAssignment_2_1_2_in_rule__Import__Alternatives_2_11851);
                     rule__Import__GrammarTypeAssignment_2_1_2();
 
@@ -3018,5 +3148,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 51, rule__Import__Alternatives_2_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 53, rule__Import__Alternatives_2_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3029,5 +3159,5 @@
 
     // $ANTLR start "rule__ExtRule__Alternatives_4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:848:1: rule__ExtRule__Alternatives_4 : ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:882:1: rule__ExtRule__Alternatives_4 : ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) );
     public final void rule__ExtRule__Alternatives_4() throws RecognitionException {
         int rule__ExtRule__Alternatives_4_StartIndex = input.index();
@@ -3036,6 +3166,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:852:1: ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:886:1: ( ( ( rule__ExtRule__ElementsAssignment_4_0 ) ) | ( ')' ) | ( ']' ) | ( '}' ) | ( '|' ) | ( '(' ) | ( '[' ) | ( '{' ) | ( '*' ) | ( '+' ) )
             int alt8=10;
             switch ( input.LA(1) ) {
@@ -3102,16 +3232,16 @@
             switch (alt8) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:853:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:887:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:853:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:854:1: ( rule__ExtRule__ElementsAssignment_4_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:887:1: ( ( rule__ExtRule__ElementsAssignment_4_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:888:1: ( rule__ExtRule__ElementsAssignment_4_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getElementsAssignment_4_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:855:1: ( rule__ExtRule__ElementsAssignment_4_0 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:855:2: rule__ExtRule__ElementsAssignment_4_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:889:1: ( rule__ExtRule__ElementsAssignment_4_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:889:2: rule__ExtRule__ElementsAssignment_4_0
                     {
-                    pushFollow(FOLLOW_rule__ExtRule__ElementsAssignment_4_0_in_rule__ExtRule__Alternatives_41806);
+                    pushFollow(FOLLOW_rule__ExtRule__ElementsAssignment_4_0_in_rule__ExtRule__Alternatives_41884);
                     rule__ExtRule__ElementsAssignment_4_0();
 
@@ -3131,13 +3261,13 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:6: ( ')' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:893:6: ( ')' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:859:6: ( ')' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:860:1: ')'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:893:6: ( ')' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:894:1: ')'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getRightParenthesisKeyword_4_1()); 
                     }
-                    match(input,13,FOLLOW_13_in_rule__ExtRule__Alternatives_41825); if (state.failed) return ;
+                    match(input,13,FOLLOW_13_in_rule__ExtRule__Alternatives_41903); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getRightParenthesisKeyword_4_1()); 
@@ -3150,13 +3280,13 @@
                     break;
                 case 3 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:6: ( ']' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:901:6: ( ']' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:867:6: ( ']' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:868:1: ']'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:901:6: ( ']' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:902:1: ']'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getRightSquareBracketKeyword_4_2()); 
                     }
-                    match(input,14,FOLLOW_14_in_rule__ExtRule__Alternatives_41845); if (state.failed) return ;
+                    match(input,14,FOLLOW_14_in_rule__ExtRule__Alternatives_41923); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getRightSquareBracketKeyword_4_2()); 
@@ -3169,13 +3299,13 @@
                     break;
                 case 4 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:875:6: ( '}' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:909:6: ( '}' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:875:6: ( '}' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:876:1: '}'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:909:6: ( '}' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:910:1: '}'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getRightCurlyBracketKeyword_4_3()); 
                     }
-                    match(input,15,FOLLOW_15_in_rule__ExtRule__Alternatives_41865); if (state.failed) return ;
+                    match(input,15,FOLLOW_15_in_rule__ExtRule__Alternatives_41943); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getRightCurlyBracketKeyword_4_3()); 
@@ -3188,13 +3318,13 @@
                     break;
                 case 5 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:883:6: ( '|' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:917:6: ( '|' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:883:6: ( '|' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:884:1: '|'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:917:6: ( '|' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:918:1: '|'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getVerticalLineKeyword_4_4()); 
                     }
-                    match(input,16,FOLLOW_16_in_rule__ExtRule__Alternatives_41885); if (state.failed) return ;
+                    match(input,16,FOLLOW_16_in_rule__ExtRule__Alternatives_41963); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getVerticalLineKeyword_4_4()); 
@@ -3207,13 +3337,13 @@
                     break;
                 case 6 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:891:6: ( '(' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:925:6: ( '(' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:891:6: ( '(' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:892:1: '('
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:925:6: ( '(' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:926:1: '('
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getLeftParenthesisKeyword_4_5()); 
                     }
-                    match(input,17,FOLLOW_17_in_rule__ExtRule__Alternatives_41905); if (state.failed) return ;
+                    match(input,17,FOLLOW_17_in_rule__ExtRule__Alternatives_41983); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getLeftParenthesisKeyword_4_5()); 
@@ -3226,13 +3356,13 @@
                     break;
                 case 7 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:899:6: ( '[' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:933:6: ( '[' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:899:6: ( '[' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:900:1: '['
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:933:6: ( '[' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:934:1: '['
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getLeftSquareBracketKeyword_4_6()); 
                     }
-                    match(input,18,FOLLOW_18_in_rule__ExtRule__Alternatives_41925); if (state.failed) return ;
+                    match(input,18,FOLLOW_18_in_rule__ExtRule__Alternatives_42003); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getLeftSquareBracketKeyword_4_6()); 
@@ -3245,13 +3375,13 @@
                     break;
                 case 8 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:907:6: ( '{' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:6: ( '{' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:907:6: ( '{' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:908:1: '{'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:6: ( '{' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:942:1: '{'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getLeftCurlyBracketKeyword_4_7()); 
                     }
-                    match(input,19,FOLLOW_19_in_rule__ExtRule__Alternatives_41945); if (state.failed) return ;
+                    match(input,19,FOLLOW_19_in_rule__ExtRule__Alternatives_42023); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getLeftCurlyBracketKeyword_4_7()); 
@@ -3264,13 +3394,13 @@
                     break;
                 case 9 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:915:6: ( '*' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:949:6: ( '*' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:915:6: ( '*' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:916:1: '*'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:949:6: ( '*' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:950:1: '*'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getAsteriskKeyword_4_8()); 
                     }
-                    match(input,20,FOLLOW_20_in_rule__ExtRule__Alternatives_41965); if (state.failed) return ;
+                    match(input,20,FOLLOW_20_in_rule__ExtRule__Alternatives_42043); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getAsteriskKeyword_4_8()); 
@@ -3283,13 +3413,13 @@
                     break;
                 case 10 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:923:6: ( '+' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:957:6: ( '+' )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:923:6: ( '+' )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:924:1: '+'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:957:6: ( '+' )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:958:1: '+'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getExtRuleAccess().getPlusSignKeyword_4_9()); 
                     }
-                    match(input,21,FOLLOW_21_in_rule__ExtRule__Alternatives_41985); if (state.failed) return ;
+                    match(input,21,FOLLOW_21_in_rule__ExtRule__Alternatives_42063); if (state.failed) return ;
                     if ( state.backtracking==0 ) {
                        after(grammarAccess.getExtRuleAccess().getPlusSignKeyword_4_9()); 
@@ -3309,5 +3439,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 52, rule__ExtRule__Alternatives_4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 54, rule__ExtRule__Alternatives_4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3320,5 +3450,5 @@
 
     // $ANTLR start "rule__MergeRule__Alternatives"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:936:1: rule__MergeRule__Alternatives : ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:970:1: rule__MergeRule__Alternatives : ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) );
     public final void rule__MergeRule__Alternatives() throws RecognitionException {
         int rule__MergeRule__Alternatives_StartIndex = input.index();
@@ -3327,6 +3457,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:940:1: ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:974:1: ( ( ruleGlobalCombinator ) | ( ruleRuleCombinator ) | ( ruleHookCombinator ) )
             int alt9=3;
             switch ( input.LA(1) ) {
@@ -3356,13 +3486,13 @@
             switch (alt9) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:1: ( ruleGlobalCombinator )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:1: ( ruleGlobalCombinator )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:941:1: ( ruleGlobalCombinator )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:942:1: ruleGlobalCombinator
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:1: ( ruleGlobalCombinator )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:976:1: ruleGlobalCombinator
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMergeRuleAccess().getGlobalCombinatorParserRuleCall_0()); 
                     }
-                    pushFollow(FOLLOW_ruleGlobalCombinator_in_rule__MergeRule__Alternatives2019);
+                    pushFollow(FOLLOW_ruleGlobalCombinator_in_rule__MergeRule__Alternatives2097);
                     ruleGlobalCombinator();
 
@@ -3379,13 +3509,13 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:947:6: ( ruleRuleCombinator )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ruleRuleCombinator )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:947:6: ( ruleRuleCombinator )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:948:1: ruleRuleCombinator
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ruleRuleCombinator )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:982:1: ruleRuleCombinator
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMergeRuleAccess().getRuleCombinatorParserRuleCall_1()); 
                     }
-                    pushFollow(FOLLOW_ruleRuleCombinator_in_rule__MergeRule__Alternatives2036);
+                    pushFollow(FOLLOW_ruleRuleCombinator_in_rule__MergeRule__Alternatives2114);
                     ruleRuleCombinator();
 
@@ -3402,13 +3532,13 @@
                     break;
                 case 3 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:953:6: ( ruleHookCombinator )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ruleHookCombinator )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:953:6: ( ruleHookCombinator )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:954:1: ruleHookCombinator
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ruleHookCombinator )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:988:1: ruleHookCombinator
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMergeRuleAccess().getHookCombinatorParserRuleCall_2()); 
                     }
-                    pushFollow(FOLLOW_ruleHookCombinator_in_rule__MergeRule__Alternatives2053);
+                    pushFollow(FOLLOW_ruleHookCombinator_in_rule__MergeRule__Alternatives2131);
                     ruleHookCombinator();
 
@@ -3432,5 +3562,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 53, rule__MergeRule__Alternatives_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 55, rule__MergeRule__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3443,5 +3573,5 @@
 
     // $ANTLR start "rule__Term__Alternatives"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:964:1: rule__Term__Alternatives : ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:998:1: rule__Term__Alternatives : ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) );
     public final void rule__Term__Alternatives() throws RecognitionException {
         int rule__Term__Alternatives_StartIndex = input.index();
@@ -3450,6 +3580,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:968:1: ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1002:1: ( ( ( rule__Term__TermAtomAssignment_0 ) ) | ( ( rule__Term__TermGroupedSequenceAssignment_1 ) ) | ( ( rule__Term__TermOptionalSequenceAssignment_2 ) ) | ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) ) )
             int alt10=4;
             switch ( input.LA(1) ) {
@@ -3486,16 +3616,16 @@
             switch (alt10) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:969:1: ( ( rule__Term__TermAtomAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Term__TermAtomAssignment_0 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:969:1: ( ( rule__Term__TermAtomAssignment_0 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:970:1: ( rule__Term__TermAtomAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Term__TermAtomAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1004:1: ( rule__Term__TermAtomAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTermAccess().getTermAtomAssignment_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:971:1: ( rule__Term__TermAtomAssignment_0 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:971:2: rule__Term__TermAtomAssignment_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:1: ( rule__Term__TermAtomAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:2: rule__Term__TermAtomAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__Term__TermAtomAssignment_0_in_rule__Term__Alternatives2085);
+                    pushFollow(FOLLOW_rule__Term__TermAtomAssignment_0_in_rule__Term__Alternatives2163);
                     rule__Term__TermAtomAssignment_0();
 
@@ -3515,16 +3645,16 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:975:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:976:1: ( rule__Term__TermGroupedSequenceAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Term__TermGroupedSequenceAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1010:1: ( rule__Term__TermGroupedSequenceAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTermAccess().getTermGroupedSequenceAssignment_1()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:977:1: ( rule__Term__TermGroupedSequenceAssignment_1 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:977:2: rule__Term__TermGroupedSequenceAssignment_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:1: ( rule__Term__TermGroupedSequenceAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:2: rule__Term__TermGroupedSequenceAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__Term__TermGroupedSequenceAssignment_1_in_rule__Term__Alternatives2103);
+                    pushFollow(FOLLOW_rule__Term__TermGroupedSequenceAssignment_1_in_rule__Term__Alternatives2181);
                     rule__Term__TermGroupedSequenceAssignment_1();
 
@@ -3544,16 +3674,16 @@
                     break;
                 case 3 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1015:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:981:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:982:1: ( rule__Term__TermOptionalSequenceAssignment_2 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1015:6: ( ( rule__Term__TermOptionalSequenceAssignment_2 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1016:1: ( rule__Term__TermOptionalSequenceAssignment_2 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTermAccess().getTermOptionalSequenceAssignment_2()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:983:1: ( rule__Term__TermOptionalSequenceAssignment_2 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:983:2: rule__Term__TermOptionalSequenceAssignment_2
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1017:1: ( rule__Term__TermOptionalSequenceAssignment_2 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1017:2: rule__Term__TermOptionalSequenceAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__Term__TermOptionalSequenceAssignment_2_in_rule__Term__Alternatives2121);
+                    pushFollow(FOLLOW_rule__Term__TermOptionalSequenceAssignment_2_in_rule__Term__Alternatives2199);
                     rule__Term__TermOptionalSequenceAssignment_2();
 
@@ -3573,16 +3703,16 @@
                     break;
                 case 4 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1021:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:987:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:988:1: ( rule__Term__TermRepeatedSequenceAssignment_3 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1021:6: ( ( rule__Term__TermRepeatedSequenceAssignment_3 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1022:1: ( rule__Term__TermRepeatedSequenceAssignment_3 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTermAccess().getTermRepeatedSequenceAssignment_3()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:989:1: ( rule__Term__TermRepeatedSequenceAssignment_3 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:989:2: rule__Term__TermRepeatedSequenceAssignment_3
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1023:1: ( rule__Term__TermRepeatedSequenceAssignment_3 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1023:2: rule__Term__TermRepeatedSequenceAssignment_3
                     {
-                    pushFollow(FOLLOW_rule__Term__TermRepeatedSequenceAssignment_3_in_rule__Term__Alternatives2139);
+                    pushFollow(FOLLOW_rule__Term__TermRepeatedSequenceAssignment_3_in_rule__Term__Alternatives2217);
                     rule__Term__TermRepeatedSequenceAssignment_3();
 
@@ -3609,5 +3739,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 54, rule__Term__Alternatives_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 56, rule__Term__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3620,5 +3750,5 @@
 
     // $ANTLR start "rule__Atom__Alternatives"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:998:1: rule__Atom__Alternatives : ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1032:1: rule__Atom__Alternatives : ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) );
     public final void rule__Atom__Alternatives() throws RecognitionException {
         int rule__Atom__Alternatives_StartIndex = input.index();
@@ -3627,6 +3757,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1002:1: ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1036:1: ( ( ( rule__Atom__AtomStringRuleAssignment_0 ) ) | ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) ) )
             int alt11=2;
             int LA11_0 = input.LA(1);
@@ -3647,16 +3777,16 @@
             switch (alt11) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1037:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1003:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1004:1: ( rule__Atom__AtomStringRuleAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1037:1: ( ( rule__Atom__AtomStringRuleAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1038:1: ( rule__Atom__AtomStringRuleAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAtomAccess().getAtomStringRuleAssignment_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:1: ( rule__Atom__AtomStringRuleAssignment_0 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1005:2: rule__Atom__AtomStringRuleAssignment_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1039:1: ( rule__Atom__AtomStringRuleAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1039:2: rule__Atom__AtomStringRuleAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__Atom__AtomStringRuleAssignment_0_in_rule__Atom__Alternatives2172);
+                    pushFollow(FOLLOW_rule__Atom__AtomStringRuleAssignment_0_in_rule__Atom__Alternatives2250);
                     rule__Atom__AtomStringRuleAssignment_0();
 
@@ -3676,16 +3806,16 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1043:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1009:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1010:1: ( rule__Atom__AtomRuleReferenceAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1043:6: ( ( rule__Atom__AtomRuleReferenceAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1044:1: ( rule__Atom__AtomRuleReferenceAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAtomAccess().getAtomRuleReferenceAssignment_1()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:1: ( rule__Atom__AtomRuleReferenceAssignment_1 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1011:2: rule__Atom__AtomRuleReferenceAssignment_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1045:1: ( rule__Atom__AtomRuleReferenceAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1045:2: rule__Atom__AtomRuleReferenceAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__Atom__AtomRuleReferenceAssignment_1_in_rule__Atom__Alternatives2190);
+                    pushFollow(FOLLOW_rule__Atom__AtomRuleReferenceAssignment_1_in_rule__Atom__Alternatives2268);
                     rule__Atom__AtomRuleReferenceAssignment_1();
 
@@ -3712,5 +3842,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 55, rule__Atom__Alternatives_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 57, rule__Atom__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3723,5 +3853,5 @@
 
     // $ANTLR start "rule__StringRule__Alternatives"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1020:1: rule__StringRule__Alternatives : ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1054:1: rule__StringRule__Alternatives : ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) );
     public final void rule__StringRule__Alternatives() throws RecognitionException {
         int rule__StringRule__Alternatives_StartIndex = input.index();
@@ -3730,6 +3860,6 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1024:1: ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1058:1: ( ( ( rule__StringRule__LiteralAssignment_0 ) ) | ( ( rule__StringRule__ColonAssignment_1 ) ) )
             int alt12=2;
             int LA12_0 = input.LA(1);
@@ -3750,16 +3880,16 @@
             switch (alt12) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1025:1: ( ( rule__StringRule__LiteralAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1059:1: ( ( rule__StringRule__LiteralAssignment_0 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1025:1: ( ( rule__StringRule__LiteralAssignment_0 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1026:1: ( rule__StringRule__LiteralAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1059:1: ( ( rule__StringRule__LiteralAssignment_0 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1060:1: ( rule__StringRule__LiteralAssignment_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStringRuleAccess().getLiteralAssignment_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1027:1: ( rule__StringRule__LiteralAssignment_0 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1027:2: rule__StringRule__LiteralAssignment_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1061:1: ( rule__StringRule__LiteralAssignment_0 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1061:2: rule__StringRule__LiteralAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__StringRule__LiteralAssignment_0_in_rule__StringRule__Alternatives2223);
+                    pushFollow(FOLLOW_rule__StringRule__LiteralAssignment_0_in_rule__StringRule__Alternatives2301);
                     rule__StringRule__LiteralAssignment_0();
 
@@ -3779,16 +3909,16 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1031:6: ( ( rule__StringRule__ColonAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1065:6: ( ( rule__StringRule__ColonAssignment_1 ) )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1031:6: ( ( rule__StringRule__ColonAssignment_1 ) )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1032:1: ( rule__StringRule__ColonAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1065:6: ( ( rule__StringRule__ColonAssignment_1 ) )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1066:1: ( rule__StringRule__ColonAssignment_1 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStringRuleAccess().getColonAssignment_1()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1033:1: ( rule__StringRule__ColonAssignment_1 )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1033:2: rule__StringRule__ColonAssignment_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1067:1: ( rule__StringRule__ColonAssignment_1 )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1067:2: rule__StringRule__ColonAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__StringRule__ColonAssignment_1_in_rule__StringRule__Alternatives2241);
+                    pushFollow(FOLLOW_rule__StringRule__ColonAssignment_1_in_rule__StringRule__Alternatives2319);
                     rule__StringRule__ColonAssignment_1();
 
@@ -3815,5 +3945,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 56, rule__StringRule__Alternatives_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 58, rule__StringRule__Alternatives_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3826,5 +3956,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Alternatives_3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1042:1: rule__RepeatedSequence__Alternatives_3 : ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) );
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1076:1: rule__RepeatedSequence__Alternatives_3 : ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) );
     public final void rule__RepeatedSequence__Alternatives_3() throws RecognitionException {
         int rule__RepeatedSequence__Alternatives_3_StartIndex = input.index();
@@ -3833,19 +3963,19 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1046:1: ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1080:1: ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) )
             int alt15=2;
             alt15 = dfa15.predict(input);
             switch (alt15) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1047:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1081:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1047:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1048:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1081:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1082:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3_0()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1049:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
                     int alt13=2;
                     int LA13_0 = input.LA(1);
@@ -3856,7 +3986,7 @@
                     switch (alt13) {
                         case 1 :
-                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1049:2: rule__RepeatedSequence__MorethanonceAssignment_3_0
+                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:2: rule__RepeatedSequence__MorethanonceAssignment_3_0
                             {
-                            pushFollow(FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_rule__RepeatedSequence__Alternatives_32274);
+                            pushFollow(FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_rule__RepeatedSequence__Alternatives_32352);
                             rule__RepeatedSequence__MorethanonceAssignment_3_0();
 
@@ -3879,13 +4009,13 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1053:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1087:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? )
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1053:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? )
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1054:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )?
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1087:6: ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? )
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1088:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )?
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRepeatedSequenceAccess().getRangeAssignment_3_1()); 
                     }
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1055:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )?
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1089:1: ( rule__RepeatedSequence__RangeAssignment_3_1 )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
@@ -3896,7 +4026,7 @@
                     switch (alt14) {
                         case 1 :
-                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1055:2: rule__RepeatedSequence__RangeAssignment_3_1
+                            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1089:2: rule__RepeatedSequence__RangeAssignment_3_1
                             {
-                            pushFollow(FOLLOW_rule__RepeatedSequence__RangeAssignment_3_1_in_rule__RepeatedSequence__Alternatives_32293);
+                            pushFollow(FOLLOW_rule__RepeatedSequence__RangeAssignment_3_1_in_rule__RepeatedSequence__Alternatives_32371);
                             rule__RepeatedSequence__RangeAssignment_3_1();
 
@@ -3926,5 +4056,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 57, rule__RepeatedSequence__Alternatives_3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 59, rule__RepeatedSequence__Alternatives_3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3937,5 +4067,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1066:1: rule__EtsiBnf__Group_0__0 : rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1100:1: rule__EtsiBnf__Group_0__0 : rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 ;
     public final void rule__EtsiBnf__Group_0__0() throws RecognitionException {
         int rule__EtsiBnf__Group_0__0_StartIndex = input.index();
@@ -3944,14 +4074,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1070:1: ( rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1071:2: rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0__Impl_in_rule__EtsiBnf__Group_0__02325);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1104:1: ( rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1105:2: rule__EtsiBnf__Group_0__0__Impl rule__EtsiBnf__Group_0__1
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__0__Impl_in_rule__EtsiBnf__Group_0__02403);
             rule__EtsiBnf__Group_0__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1_in_rule__EtsiBnf__Group_0__02328);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1_in_rule__EtsiBnf__Group_0__02406);
             rule__EtsiBnf__Group_0__1();
 
@@ -3967,5 +4097,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 58, rule__EtsiBnf__Group_0__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 60, rule__EtsiBnf__Group_0__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -3978,5 +4108,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1078:1: rule__EtsiBnf__Group_0__0__Impl : ( 'grammar' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1112:1: rule__EtsiBnf__Group_0__0__Impl : ( 'grammar' ) ;
     public final void rule__EtsiBnf__Group_0__0__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_0__0__Impl_StartIndex = input.index();
@@ -3985,15 +4115,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1082:1: ( ( 'grammar' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:1: ( 'grammar' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:1: ( 'grammar' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1084:1: 'grammar'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1116:1: ( ( 'grammar' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1117:1: ( 'grammar' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1117:1: ( 'grammar' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1118:1: 'grammar'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getGrammarKeyword_0_0()); 
             }
-            match(input,22,FOLLOW_22_in_rule__EtsiBnf__Group_0__0__Impl2356); if (state.failed) return ;
+            match(input,22,FOLLOW_22_in_rule__EtsiBnf__Group_0__0__Impl2434); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getGrammarKeyword_0_0()); 
@@ -4011,5 +4141,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 59, rule__EtsiBnf__Group_0__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 61, rule__EtsiBnf__Group_0__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4022,5 +4152,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1097:1: rule__EtsiBnf__Group_0__1 : rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1131:1: rule__EtsiBnf__Group_0__1 : rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 ;
     public final void rule__EtsiBnf__Group_0__1() throws RecognitionException {
         int rule__EtsiBnf__Group_0__1_StartIndex = input.index();
@@ -4029,14 +4159,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1101:1: ( rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1102:2: rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1__Impl_in_rule__EtsiBnf__Group_0__12387);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1135:1: ( rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1136:2: rule__EtsiBnf__Group_0__1__Impl rule__EtsiBnf__Group_0__2
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__1__Impl_in_rule__EtsiBnf__Group_0__12465);
             rule__EtsiBnf__Group_0__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2_in_rule__EtsiBnf__Group_0__12390);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2_in_rule__EtsiBnf__Group_0__12468);
             rule__EtsiBnf__Group_0__2();
 
@@ -4052,5 +4182,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 60, rule__EtsiBnf__Group_0__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 62, rule__EtsiBnf__Group_0__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4063,5 +4193,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1109:1: rule__EtsiBnf__Group_0__1__Impl : ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1143:1: rule__EtsiBnf__Group_0__1__Impl : ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) ;
     public final void rule__EtsiBnf__Group_0__1__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_0__1__Impl_StartIndex = input.index();
@@ -4070,18 +4200,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1113:1: ( ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1114:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1114:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1115:1: ( rule__EtsiBnf__NameAssignment_0_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1147:1: ( ( ( rule__EtsiBnf__NameAssignment_0_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1148:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1148:1: ( ( rule__EtsiBnf__NameAssignment_0_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1149:1: ( rule__EtsiBnf__NameAssignment_0_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getNameAssignment_0_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1116:1: ( rule__EtsiBnf__NameAssignment_0_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1116:2: rule__EtsiBnf__NameAssignment_0_1
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__NameAssignment_0_1_in_rule__EtsiBnf__Group_0__1__Impl2417);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1150:1: ( rule__EtsiBnf__NameAssignment_0_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1150:2: rule__EtsiBnf__NameAssignment_0_1
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__NameAssignment_0_1_in_rule__EtsiBnf__Group_0__1__Impl2495);
             rule__EtsiBnf__NameAssignment_0_1();
 
@@ -4106,5 +4236,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 61, rule__EtsiBnf__Group_0__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 63, rule__EtsiBnf__Group_0__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4117,5 +4247,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1126:1: rule__EtsiBnf__Group_0__2 : rule__EtsiBnf__Group_0__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1160:1: rule__EtsiBnf__Group_0__2 : rule__EtsiBnf__Group_0__2__Impl ;
     public final void rule__EtsiBnf__Group_0__2() throws RecognitionException {
         int rule__EtsiBnf__Group_0__2_StartIndex = input.index();
@@ -4124,9 +4254,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1130:1: ( rule__EtsiBnf__Group_0__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1131:2: rule__EtsiBnf__Group_0__2__Impl
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2__Impl_in_rule__EtsiBnf__Group_0__22447);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1164:1: ( rule__EtsiBnf__Group_0__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1165:2: rule__EtsiBnf__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0__2__Impl_in_rule__EtsiBnf__Group_0__22525);
             rule__EtsiBnf__Group_0__2__Impl();
 
@@ -4142,5 +4272,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 62, rule__EtsiBnf__Group_0__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 64, rule__EtsiBnf__Group_0__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4153,5 +4283,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1137:1: rule__EtsiBnf__Group_0__2__Impl : ( ( rule__EtsiBnf__Group_0_2__0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1171:1: rule__EtsiBnf__Group_0__2__Impl : ( ( rule__EtsiBnf__Group_0_2__0 ) ) ;
     public final void rule__EtsiBnf__Group_0__2__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_0__2__Impl_StartIndex = input.index();
@@ -4160,18 +4290,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1141:1: ( ( ( rule__EtsiBnf__Group_0_2__0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1142:1: ( ( rule__EtsiBnf__Group_0_2__0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1142:1: ( ( rule__EtsiBnf__Group_0_2__0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1143:1: ( rule__EtsiBnf__Group_0_2__0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1175:1: ( ( ( rule__EtsiBnf__Group_0_2__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1176:1: ( ( rule__EtsiBnf__Group_0_2__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1176:1: ( ( rule__EtsiBnf__Group_0_2__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1177:1: ( rule__EtsiBnf__Group_0_2__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getGroup_0_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1144:1: ( rule__EtsiBnf__Group_0_2__0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1144:2: rule__EtsiBnf__Group_0_2__0
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0_in_rule__EtsiBnf__Group_0__2__Impl2474);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1178:1: ( rule__EtsiBnf__Group_0_2__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1178:2: rule__EtsiBnf__Group_0_2__0
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0_in_rule__EtsiBnf__Group_0__2__Impl2552);
             rule__EtsiBnf__Group_0_2__0();
 
@@ -4196,5 +4326,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 63, rule__EtsiBnf__Group_0__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 65, rule__EtsiBnf__Group_0__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4207,5 +4337,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1160:1: rule__EtsiBnf__Group_0_2__0 : rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1194:1: rule__EtsiBnf__Group_0_2__0 : rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 ;
     public final void rule__EtsiBnf__Group_0_2__0() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__0_StartIndex = input.index();
@@ -4214,14 +4344,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1164:1: ( rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1165:2: rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0__Impl_in_rule__EtsiBnf__Group_0_2__02510);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1198:1: ( rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1199:2: rule__EtsiBnf__Group_0_2__0__Impl rule__EtsiBnf__Group_0_2__1
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__0__Impl_in_rule__EtsiBnf__Group_0_2__02588);
             rule__EtsiBnf__Group_0_2__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1_in_rule__EtsiBnf__Group_0_2__02513);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1_in_rule__EtsiBnf__Group_0_2__02591);
             rule__EtsiBnf__Group_0_2__1();
 
@@ -4237,5 +4367,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 64, rule__EtsiBnf__Group_0_2__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 66, rule__EtsiBnf__Group_0_2__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4248,5 +4378,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1172:1: rule__EtsiBnf__Group_0_2__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1206:1: rule__EtsiBnf__Group_0_2__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) ;
     public final void rule__EtsiBnf__Group_0_2__0__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__0__Impl_StartIndex = input.index();
@@ -4255,15 +4385,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1176:1: ( ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1177:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1177:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1178:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1210:1: ( ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1211:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1211:1: ( ( rule__EtsiBnf__TypeAssignment_0_2_0 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1212:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeAssignment_0_2_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1179:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1213:1: ( rule__EtsiBnf__TypeAssignment_0_2_0 )?
             int alt16=2;
             int LA16_0 = input.LA(1);
@@ -4274,7 +4404,7 @@
             switch (alt16) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1179:2: rule__EtsiBnf__TypeAssignment_0_2_0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1213:2: rule__EtsiBnf__TypeAssignment_0_2_0
                     {
-                    pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_0_2_0_in_rule__EtsiBnf__Group_0_2__0__Impl2540);
+                    pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_0_2_0_in_rule__EtsiBnf__Group_0_2__0__Impl2618);
                     rule__EtsiBnf__TypeAssignment_0_2_0();
 
@@ -4302,5 +4432,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 65, rule__EtsiBnf__Group_0_2__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 67, rule__EtsiBnf__Group_0_2__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4313,5 +4443,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1189:1: rule__EtsiBnf__Group_0_2__1 : rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1223:1: rule__EtsiBnf__Group_0_2__1 : rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 ;
     public final void rule__EtsiBnf__Group_0_2__1() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__1_StartIndex = input.index();
@@ -4320,14 +4450,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1193:1: ( rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1194:2: rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1__Impl_in_rule__EtsiBnf__Group_0_2__12571);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1227:1: ( rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1228:2: rule__EtsiBnf__Group_0_2__1__Impl rule__EtsiBnf__Group_0_2__2
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__1__Impl_in_rule__EtsiBnf__Group_0_2__12649);
             rule__EtsiBnf__Group_0_2__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__2_in_rule__EtsiBnf__Group_0_2__12574);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__2_in_rule__EtsiBnf__Group_0_2__12652);
             rule__EtsiBnf__Group_0_2__2();
 
@@ -4343,5 +4473,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 66, rule__EtsiBnf__Group_0_2__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 68, rule__EtsiBnf__Group_0_2__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4354,5 +4484,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1201:1: rule__EtsiBnf__Group_0_2__1__Impl : ( ';' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1235:1: rule__EtsiBnf__Group_0_2__1__Impl : ( ';' ) ;
     public final void rule__EtsiBnf__Group_0_2__1__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__1__Impl_StartIndex = input.index();
@@ -4361,15 +4491,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1205:1: ( ( ';' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1206:1: ( ';' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1206:1: ( ';' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1207:1: ';'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1239:1: ( ( ';' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1240:1: ( ';' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1240:1: ( ';' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1241:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_0_2_1()); 
             }
-            match(input,23,FOLLOW_23_in_rule__EtsiBnf__Group_0_2__1__Impl2602); if (state.failed) return ;
+            match(input,23,FOLLOW_23_in_rule__EtsiBnf__Group_0_2__1__Impl2680); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_0_2_1()); 
@@ -4387,5 +4517,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 67, rule__EtsiBnf__Group_0_2__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 69, rule__EtsiBnf__Group_0_2__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4398,5 +4528,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1220:1: rule__EtsiBnf__Group_0_2__2 : rule__EtsiBnf__Group_0_2__2__Impl rule__EtsiBnf__Group_0_2__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1254:1: rule__EtsiBnf__Group_0_2__2 : rule__EtsiBnf__Group_0_2__2__Impl rule__EtsiBnf__Group_0_2__3 ;
     public final void rule__EtsiBnf__Group_0_2__2() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__2_StartIndex = input.index();
@@ -4405,14 +4535,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1224:1: ( rule__EtsiBnf__Group_0_2__2__Impl rule__EtsiBnf__Group_0_2__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1225:2: rule__EtsiBnf__Group_0_2__2__Impl rule__EtsiBnf__Group_0_2__3
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__2__Impl_in_rule__EtsiBnf__Group_0_2__22633);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 70) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1258:1: ( rule__EtsiBnf__Group_0_2__2__Impl rule__EtsiBnf__Group_0_2__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1259:2: rule__EtsiBnf__Group_0_2__2__Impl rule__EtsiBnf__Group_0_2__3
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__2__Impl_in_rule__EtsiBnf__Group_0_2__22711);
             rule__EtsiBnf__Group_0_2__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__3_in_rule__EtsiBnf__Group_0_2__22636);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__3_in_rule__EtsiBnf__Group_0_2__22714);
             rule__EtsiBnf__Group_0_2__3();
 
@@ -4428,5 +4558,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 68, rule__EtsiBnf__Group_0_2__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 70, rule__EtsiBnf__Group_0_2__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4439,5 +4569,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1232:1: rule__EtsiBnf__Group_0_2__2__Impl : ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1266:1: rule__EtsiBnf__Group_0_2__2__Impl : ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? ) ;
     public final void rule__EtsiBnf__Group_0_2__2__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__2__Impl_StartIndex = input.index();
@@ -4446,15 +4576,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1236:1: ( ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1237:1: ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1237:1: ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1238:1: ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 71) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1270:1: ( ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1271:1: ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1271:1: ( ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1272:1: ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getImportSectionAssignment_0_2_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1239:1: ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1273:1: ( rule__EtsiBnf__ImportSectionAssignment_0_2_2 )?
             int alt17=2;
             int LA17_0 = input.LA(1);
@@ -4465,7 +4595,7 @@
             switch (alt17) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1239:2: rule__EtsiBnf__ImportSectionAssignment_0_2_2
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1273:2: rule__EtsiBnf__ImportSectionAssignment_0_2_2
                     {
-                    pushFollow(FOLLOW_rule__EtsiBnf__ImportSectionAssignment_0_2_2_in_rule__EtsiBnf__Group_0_2__2__Impl2663);
+                    pushFollow(FOLLOW_rule__EtsiBnf__ImportSectionAssignment_0_2_2_in_rule__EtsiBnf__Group_0_2__2__Impl2741);
                     rule__EtsiBnf__ImportSectionAssignment_0_2_2();
 
@@ -4493,5 +4623,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 69, rule__EtsiBnf__Group_0_2__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 71, rule__EtsiBnf__Group_0_2__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4504,5 +4634,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1249:1: rule__EtsiBnf__Group_0_2__3 : rule__EtsiBnf__Group_0_2__3__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1283:1: rule__EtsiBnf__Group_0_2__3 : rule__EtsiBnf__Group_0_2__3__Impl ;
     public final void rule__EtsiBnf__Group_0_2__3() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__3_StartIndex = input.index();
@@ -4511,9 +4641,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 70) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1253:1: ( rule__EtsiBnf__Group_0_2__3__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1254:2: rule__EtsiBnf__Group_0_2__3__Impl
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__3__Impl_in_rule__EtsiBnf__Group_0_2__32694);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 72) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1287:1: ( rule__EtsiBnf__Group_0_2__3__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1288:2: rule__EtsiBnf__Group_0_2__3__Impl
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_0_2__3__Impl_in_rule__EtsiBnf__Group_0_2__32772);
             rule__EtsiBnf__Group_0_2__3__Impl();
 
@@ -4529,5 +4659,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 70, rule__EtsiBnf__Group_0_2__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 72, rule__EtsiBnf__Group_0_2__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4540,5 +4670,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_0_2__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1260:1: rule__EtsiBnf__Group_0_2__3__Impl : ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1294:1: rule__EtsiBnf__Group_0_2__3__Impl : ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) ) ;
     public final void rule__EtsiBnf__Group_0_2__3__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_0_2__3__Impl_StartIndex = input.index();
@@ -4547,21 +4677,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 71) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1264:1: ( ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1265:1: ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1265:1: ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1266:1: ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1266:1: ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1267:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 73) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1298:1: ( ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1299:1: ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1299:1: ( ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1300:1: ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) ) ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1300:1: ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1301:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getBnfEntryAssignment_0_2_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1268:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1268:2: rule__EtsiBnf__BnfEntryAssignment_0_2_3
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2723);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1302:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1302:2: rule__EtsiBnf__BnfEntryAssignment_0_2_3
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2801);
             rule__EtsiBnf__BnfEntryAssignment_0_2_3();
 
@@ -4577,11 +4707,11 @@
             }
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1271:1: ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1272:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1305:1: ( ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1306:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getBnfEntryAssignment_0_2_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1273:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1307:1: ( rule__EtsiBnf__BnfEntryAssignment_0_2_3 )*
             loop18:
             do {
@@ -4589,5 +4719,5 @@
                 int LA18_0 = input.LA(1);
 
-                if ( ((LA18_0>=RULE_ID && LA18_0<=RULE_SECTIONHEADER)||LA18_0==RULE_INT) ) {
+                if ( ((LA18_0>=RULE_ID && LA18_0<=RULE_ML_COMMENT)||LA18_0==RULE_INT) ) {
                     alt18=1;
                 }
@@ -4596,7 +4726,7 @@
                 switch (alt18) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1273:2: rule__EtsiBnf__BnfEntryAssignment_0_2_3
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1307:2: rule__EtsiBnf__BnfEntryAssignment_0_2_3
             	    {
-            	    pushFollow(FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2735);
+            	    pushFollow(FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2813);
             	    rule__EtsiBnf__BnfEntryAssignment_0_2_3();
 
@@ -4630,5 +4760,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 71, rule__EtsiBnf__Group_0_2__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 73, rule__EtsiBnf__Group_0_2__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4641,5 +4771,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1292:1: rule__EtsiBnf__Group_1__0 : rule__EtsiBnf__Group_1__0__Impl rule__EtsiBnf__Group_1__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1326:1: rule__EtsiBnf__Group_1__0 : rule__EtsiBnf__Group_1__0__Impl rule__EtsiBnf__Group_1__1 ;
     public final void rule__EtsiBnf__Group_1__0() throws RecognitionException {
         int rule__EtsiBnf__Group_1__0_StartIndex = input.index();
@@ -4648,14 +4778,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 72) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1296:1: ( rule__EtsiBnf__Group_1__0__Impl rule__EtsiBnf__Group_1__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1297:2: rule__EtsiBnf__Group_1__0__Impl rule__EtsiBnf__Group_1__1
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0__Impl_in_rule__EtsiBnf__Group_1__02776);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 74) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1330:1: ( rule__EtsiBnf__Group_1__0__Impl rule__EtsiBnf__Group_1__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1331:2: rule__EtsiBnf__Group_1__0__Impl rule__EtsiBnf__Group_1__1
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__0__Impl_in_rule__EtsiBnf__Group_1__02854);
             rule__EtsiBnf__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__1_in_rule__EtsiBnf__Group_1__02779);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__1_in_rule__EtsiBnf__Group_1__02857);
             rule__EtsiBnf__Group_1__1();
 
@@ -4671,5 +4801,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 72, rule__EtsiBnf__Group_1__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 74, rule__EtsiBnf__Group_1__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4682,5 +4812,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1304:1: rule__EtsiBnf__Group_1__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_1_0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1338:1: rule__EtsiBnf__Group_1__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_1_0 ) ) ;
     public final void rule__EtsiBnf__Group_1__0__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_1__0__Impl_StartIndex = input.index();
@@ -4689,18 +4819,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 73) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1308:1: ( ( ( rule__EtsiBnf__TypeAssignment_1_0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1309:1: ( ( rule__EtsiBnf__TypeAssignment_1_0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1309:1: ( ( rule__EtsiBnf__TypeAssignment_1_0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1310:1: ( rule__EtsiBnf__TypeAssignment_1_0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 75) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1342:1: ( ( ( rule__EtsiBnf__TypeAssignment_1_0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1343:1: ( ( rule__EtsiBnf__TypeAssignment_1_0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1343:1: ( ( rule__EtsiBnf__TypeAssignment_1_0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1344:1: ( rule__EtsiBnf__TypeAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeAssignment_1_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1311:1: ( rule__EtsiBnf__TypeAssignment_1_0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1311:2: rule__EtsiBnf__TypeAssignment_1_0
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_1_0_in_rule__EtsiBnf__Group_1__0__Impl2806);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1345:1: ( rule__EtsiBnf__TypeAssignment_1_0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1345:2: rule__EtsiBnf__TypeAssignment_1_0
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_1_0_in_rule__EtsiBnf__Group_1__0__Impl2884);
             rule__EtsiBnf__TypeAssignment_1_0();
 
@@ -4725,5 +4855,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 73, rule__EtsiBnf__Group_1__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 75, rule__EtsiBnf__Group_1__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4736,5 +4866,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1321:1: rule__EtsiBnf__Group_1__1 : rule__EtsiBnf__Group_1__1__Impl rule__EtsiBnf__Group_1__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1355:1: rule__EtsiBnf__Group_1__1 : rule__EtsiBnf__Group_1__1__Impl rule__EtsiBnf__Group_1__2 ;
     public final void rule__EtsiBnf__Group_1__1() throws RecognitionException {
         int rule__EtsiBnf__Group_1__1_StartIndex = input.index();
@@ -4743,14 +4873,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 74) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1325:1: ( rule__EtsiBnf__Group_1__1__Impl rule__EtsiBnf__Group_1__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1326:2: rule__EtsiBnf__Group_1__1__Impl rule__EtsiBnf__Group_1__2
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__1__Impl_in_rule__EtsiBnf__Group_1__12836);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 76) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1359:1: ( rule__EtsiBnf__Group_1__1__Impl rule__EtsiBnf__Group_1__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1360:2: rule__EtsiBnf__Group_1__1__Impl rule__EtsiBnf__Group_1__2
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__1__Impl_in_rule__EtsiBnf__Group_1__12914);
             rule__EtsiBnf__Group_1__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__2_in_rule__EtsiBnf__Group_1__12839);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__2_in_rule__EtsiBnf__Group_1__12917);
             rule__EtsiBnf__Group_1__2();
 
@@ -4766,5 +4896,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 74, rule__EtsiBnf__Group_1__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 76, rule__EtsiBnf__Group_1__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4777,5 +4907,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1333:1: rule__EtsiBnf__Group_1__1__Impl : ( ';' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1367:1: rule__EtsiBnf__Group_1__1__Impl : ( ';' ) ;
     public final void rule__EtsiBnf__Group_1__1__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_1__1__Impl_StartIndex = input.index();
@@ -4784,15 +4914,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 75) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1337:1: ( ( ';' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1338:1: ( ';' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1338:1: ( ';' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1339:1: ';'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 77) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1371:1: ( ( ';' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1372:1: ( ';' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1372:1: ( ';' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1373:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_1_1()); 
             }
-            match(input,23,FOLLOW_23_in_rule__EtsiBnf__Group_1__1__Impl2867); if (state.failed) return ;
+            match(input,23,FOLLOW_23_in_rule__EtsiBnf__Group_1__1__Impl2945); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_1_1()); 
@@ -4810,5 +4940,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 75, rule__EtsiBnf__Group_1__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 77, rule__EtsiBnf__Group_1__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4821,5 +4951,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1352:1: rule__EtsiBnf__Group_1__2 : rule__EtsiBnf__Group_1__2__Impl rule__EtsiBnf__Group_1__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1386:1: rule__EtsiBnf__Group_1__2 : rule__EtsiBnf__Group_1__2__Impl rule__EtsiBnf__Group_1__3 ;
     public final void rule__EtsiBnf__Group_1__2() throws RecognitionException {
         int rule__EtsiBnf__Group_1__2_StartIndex = input.index();
@@ -4828,14 +4958,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 76) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1356:1: ( rule__EtsiBnf__Group_1__2__Impl rule__EtsiBnf__Group_1__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1357:2: rule__EtsiBnf__Group_1__2__Impl rule__EtsiBnf__Group_1__3
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__2__Impl_in_rule__EtsiBnf__Group_1__22898);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 78) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1390:1: ( rule__EtsiBnf__Group_1__2__Impl rule__EtsiBnf__Group_1__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1391:2: rule__EtsiBnf__Group_1__2__Impl rule__EtsiBnf__Group_1__3
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__2__Impl_in_rule__EtsiBnf__Group_1__22976);
             rule__EtsiBnf__Group_1__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__3_in_rule__EtsiBnf__Group_1__22901);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__3_in_rule__EtsiBnf__Group_1__22979);
             rule__EtsiBnf__Group_1__3();
 
@@ -4851,5 +4981,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 76, rule__EtsiBnf__Group_1__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 78, rule__EtsiBnf__Group_1__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4862,5 +4992,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1364:1: rule__EtsiBnf__Group_1__2__Impl : ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1398:1: rule__EtsiBnf__Group_1__2__Impl : ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? ) ;
     public final void rule__EtsiBnf__Group_1__2__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_1__2__Impl_StartIndex = input.index();
@@ -4869,15 +4999,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 77) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1368:1: ( ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1369:1: ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1369:1: ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1370:1: ( rule__EtsiBnf__ImportSectionAssignment_1_2 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 79) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1402:1: ( ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1403:1: ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1403:1: ( ( rule__EtsiBnf__ImportSectionAssignment_1_2 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1404:1: ( rule__EtsiBnf__ImportSectionAssignment_1_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getImportSectionAssignment_1_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1371:1: ( rule__EtsiBnf__ImportSectionAssignment_1_2 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1405:1: ( rule__EtsiBnf__ImportSectionAssignment_1_2 )?
             int alt19=2;
             int LA19_0 = input.LA(1);
@@ -4888,7 +5018,7 @@
             switch (alt19) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1371:2: rule__EtsiBnf__ImportSectionAssignment_1_2
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1405:2: rule__EtsiBnf__ImportSectionAssignment_1_2
                     {
-                    pushFollow(FOLLOW_rule__EtsiBnf__ImportSectionAssignment_1_2_in_rule__EtsiBnf__Group_1__2__Impl2928);
+                    pushFollow(FOLLOW_rule__EtsiBnf__ImportSectionAssignment_1_2_in_rule__EtsiBnf__Group_1__2__Impl3006);
                     rule__EtsiBnf__ImportSectionAssignment_1_2();
 
@@ -4916,5 +5046,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 77, rule__EtsiBnf__Group_1__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 79, rule__EtsiBnf__Group_1__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4927,5 +5057,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1381:1: rule__EtsiBnf__Group_1__3 : rule__EtsiBnf__Group_1__3__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1415:1: rule__EtsiBnf__Group_1__3 : rule__EtsiBnf__Group_1__3__Impl ;
     public final void rule__EtsiBnf__Group_1__3() throws RecognitionException {
         int rule__EtsiBnf__Group_1__3_StartIndex = input.index();
@@ -4934,9 +5064,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 78) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1385:1: ( rule__EtsiBnf__Group_1__3__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1386:2: rule__EtsiBnf__Group_1__3__Impl
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__3__Impl_in_rule__EtsiBnf__Group_1__32959);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 80) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1419:1: ( rule__EtsiBnf__Group_1__3__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1420:2: rule__EtsiBnf__Group_1__3__Impl
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_1__3__Impl_in_rule__EtsiBnf__Group_1__33037);
             rule__EtsiBnf__Group_1__3__Impl();
 
@@ -4952,5 +5082,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 78, rule__EtsiBnf__Group_1__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 80, rule__EtsiBnf__Group_1__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -4963,5 +5093,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_1__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1392:1: rule__EtsiBnf__Group_1__3__Impl : ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1426:1: rule__EtsiBnf__Group_1__3__Impl : ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* ) ;
     public final void rule__EtsiBnf__Group_1__3__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_1__3__Impl_StartIndex = input.index();
@@ -4970,15 +5100,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 79) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1396:1: ( ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1397:1: ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1397:1: ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1398:1: ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )*
+            if ( state.backtracking>0 && alreadyParsedRule(input, 81) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1430:1: ( ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1431:1: ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1431:1: ( ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1432:1: ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getDeltaEntryAssignment_1_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1399:1: ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1433:1: ( rule__EtsiBnf__DeltaEntryAssignment_1_3 )*
             loop20:
             do {
@@ -4993,7 +5123,7 @@
                 switch (alt20) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1399:2: rule__EtsiBnf__DeltaEntryAssignment_1_3
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1433:2: rule__EtsiBnf__DeltaEntryAssignment_1_3
             	    {
-            	    pushFollow(FOLLOW_rule__EtsiBnf__DeltaEntryAssignment_1_3_in_rule__EtsiBnf__Group_1__3__Impl2986);
+            	    pushFollow(FOLLOW_rule__EtsiBnf__DeltaEntryAssignment_1_3_in_rule__EtsiBnf__Group_1__3__Impl3064);
             	    rule__EtsiBnf__DeltaEntryAssignment_1_3();
 
@@ -5024,5 +5154,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 79, rule__EtsiBnf__Group_1__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 81, rule__EtsiBnf__Group_1__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5035,5 +5165,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1417:1: rule__EtsiBnf__Group_2__0 : rule__EtsiBnf__Group_2__0__Impl rule__EtsiBnf__Group_2__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1451:1: rule__EtsiBnf__Group_2__0 : rule__EtsiBnf__Group_2__0__Impl rule__EtsiBnf__Group_2__1 ;
     public final void rule__EtsiBnf__Group_2__0() throws RecognitionException {
         int rule__EtsiBnf__Group_2__0_StartIndex = input.index();
@@ -5042,14 +5172,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 80) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1421:1: ( rule__EtsiBnf__Group_2__0__Impl rule__EtsiBnf__Group_2__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1422:2: rule__EtsiBnf__Group_2__0__Impl rule__EtsiBnf__Group_2__1
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0__Impl_in_rule__EtsiBnf__Group_2__03025);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 82) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1455:1: ( rule__EtsiBnf__Group_2__0__Impl rule__EtsiBnf__Group_2__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1456:2: rule__EtsiBnf__Group_2__0__Impl rule__EtsiBnf__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__0__Impl_in_rule__EtsiBnf__Group_2__03103);
             rule__EtsiBnf__Group_2__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__1_in_rule__EtsiBnf__Group_2__03028);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__1_in_rule__EtsiBnf__Group_2__03106);
             rule__EtsiBnf__Group_2__1();
 
@@ -5065,5 +5195,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 80, rule__EtsiBnf__Group_2__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 82, rule__EtsiBnf__Group_2__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5076,5 +5206,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1429:1: rule__EtsiBnf__Group_2__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_2_0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1463:1: rule__EtsiBnf__Group_2__0__Impl : ( ( rule__EtsiBnf__TypeAssignment_2_0 ) ) ;
     public final void rule__EtsiBnf__Group_2__0__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_2__0__Impl_StartIndex = input.index();
@@ -5083,18 +5213,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 81) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1433:1: ( ( ( rule__EtsiBnf__TypeAssignment_2_0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1434:1: ( ( rule__EtsiBnf__TypeAssignment_2_0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1434:1: ( ( rule__EtsiBnf__TypeAssignment_2_0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1435:1: ( rule__EtsiBnf__TypeAssignment_2_0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 83) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1467:1: ( ( ( rule__EtsiBnf__TypeAssignment_2_0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1468:1: ( ( rule__EtsiBnf__TypeAssignment_2_0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1468:1: ( ( rule__EtsiBnf__TypeAssignment_2_0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1469:1: ( rule__EtsiBnf__TypeAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeAssignment_2_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1436:1: ( rule__EtsiBnf__TypeAssignment_2_0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1436:2: rule__EtsiBnf__TypeAssignment_2_0
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_2_0_in_rule__EtsiBnf__Group_2__0__Impl3055);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1470:1: ( rule__EtsiBnf__TypeAssignment_2_0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1470:2: rule__EtsiBnf__TypeAssignment_2_0
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__TypeAssignment_2_0_in_rule__EtsiBnf__Group_2__0__Impl3133);
             rule__EtsiBnf__TypeAssignment_2_0();
 
@@ -5119,5 +5249,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 81, rule__EtsiBnf__Group_2__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 83, rule__EtsiBnf__Group_2__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5130,5 +5260,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1446:1: rule__EtsiBnf__Group_2__1 : rule__EtsiBnf__Group_2__1__Impl rule__EtsiBnf__Group_2__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1480:1: rule__EtsiBnf__Group_2__1 : rule__EtsiBnf__Group_2__1__Impl rule__EtsiBnf__Group_2__2 ;
     public final void rule__EtsiBnf__Group_2__1() throws RecognitionException {
         int rule__EtsiBnf__Group_2__1_StartIndex = input.index();
@@ -5137,14 +5267,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 82) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1450:1: ( rule__EtsiBnf__Group_2__1__Impl rule__EtsiBnf__Group_2__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1451:2: rule__EtsiBnf__Group_2__1__Impl rule__EtsiBnf__Group_2__2
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__1__Impl_in_rule__EtsiBnf__Group_2__13085);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 84) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1484:1: ( rule__EtsiBnf__Group_2__1__Impl rule__EtsiBnf__Group_2__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1485:2: rule__EtsiBnf__Group_2__1__Impl rule__EtsiBnf__Group_2__2
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__1__Impl_in_rule__EtsiBnf__Group_2__13163);
             rule__EtsiBnf__Group_2__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__2_in_rule__EtsiBnf__Group_2__13088);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__2_in_rule__EtsiBnf__Group_2__13166);
             rule__EtsiBnf__Group_2__2();
 
@@ -5160,5 +5290,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 82, rule__EtsiBnf__Group_2__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 84, rule__EtsiBnf__Group_2__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5171,5 +5301,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1458:1: rule__EtsiBnf__Group_2__1__Impl : ( ';' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1492:1: rule__EtsiBnf__Group_2__1__Impl : ( ';' ) ;
     public final void rule__EtsiBnf__Group_2__1__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_2__1__Impl_StartIndex = input.index();
@@ -5178,15 +5308,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 83) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1462:1: ( ( ';' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1463:1: ( ';' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1463:1: ( ';' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1464:1: ';'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 85) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1496:1: ( ( ';' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1497:1: ( ';' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1497:1: ( ';' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1498:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_2_1()); 
             }
-            match(input,23,FOLLOW_23_in_rule__EtsiBnf__Group_2__1__Impl3116); if (state.failed) return ;
+            match(input,23,FOLLOW_23_in_rule__EtsiBnf__Group_2__1__Impl3194); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_2_1()); 
@@ -5204,5 +5334,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 83, rule__EtsiBnf__Group_2__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 85, rule__EtsiBnf__Group_2__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5215,5 +5345,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1477:1: rule__EtsiBnf__Group_2__2 : rule__EtsiBnf__Group_2__2__Impl rule__EtsiBnf__Group_2__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1511:1: rule__EtsiBnf__Group_2__2 : rule__EtsiBnf__Group_2__2__Impl rule__EtsiBnf__Group_2__3 ;
     public final void rule__EtsiBnf__Group_2__2() throws RecognitionException {
         int rule__EtsiBnf__Group_2__2_StartIndex = input.index();
@@ -5222,14 +5352,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 84) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1481:1: ( rule__EtsiBnf__Group_2__2__Impl rule__EtsiBnf__Group_2__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1482:2: rule__EtsiBnf__Group_2__2__Impl rule__EtsiBnf__Group_2__3
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__2__Impl_in_rule__EtsiBnf__Group_2__23147);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 86) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1515:1: ( rule__EtsiBnf__Group_2__2__Impl rule__EtsiBnf__Group_2__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1516:2: rule__EtsiBnf__Group_2__2__Impl rule__EtsiBnf__Group_2__3
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__2__Impl_in_rule__EtsiBnf__Group_2__23225);
             rule__EtsiBnf__Group_2__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__3_in_rule__EtsiBnf__Group_2__23150);
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__3_in_rule__EtsiBnf__Group_2__23228);
             rule__EtsiBnf__Group_2__3();
 
@@ -5245,5 +5375,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 84, rule__EtsiBnf__Group_2__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 86, rule__EtsiBnf__Group_2__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5256,5 +5386,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1489:1: rule__EtsiBnf__Group_2__2__Impl : ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1523:1: rule__EtsiBnf__Group_2__2__Impl : ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? ) ;
     public final void rule__EtsiBnf__Group_2__2__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_2__2__Impl_StartIndex = input.index();
@@ -5263,15 +5393,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 85) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1493:1: ( ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1494:1: ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1494:1: ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1495:1: ( rule__EtsiBnf__ImportSectionAssignment_2_2 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 87) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1527:1: ( ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1528:1: ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1528:1: ( ( rule__EtsiBnf__ImportSectionAssignment_2_2 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1529:1: ( rule__EtsiBnf__ImportSectionAssignment_2_2 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getImportSectionAssignment_2_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1496:1: ( rule__EtsiBnf__ImportSectionAssignment_2_2 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1530:1: ( rule__EtsiBnf__ImportSectionAssignment_2_2 )?
             int alt21=2;
             int LA21_0 = input.LA(1);
@@ -5282,7 +5412,7 @@
             switch (alt21) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1496:2: rule__EtsiBnf__ImportSectionAssignment_2_2
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1530:2: rule__EtsiBnf__ImportSectionAssignment_2_2
                     {
-                    pushFollow(FOLLOW_rule__EtsiBnf__ImportSectionAssignment_2_2_in_rule__EtsiBnf__Group_2__2__Impl3177);
+                    pushFollow(FOLLOW_rule__EtsiBnf__ImportSectionAssignment_2_2_in_rule__EtsiBnf__Group_2__2__Impl3255);
                     rule__EtsiBnf__ImportSectionAssignment_2_2();
 
@@ -5310,5 +5440,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 85, rule__EtsiBnf__Group_2__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 87, rule__EtsiBnf__Group_2__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5321,5 +5451,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1506:1: rule__EtsiBnf__Group_2__3 : rule__EtsiBnf__Group_2__3__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1540:1: rule__EtsiBnf__Group_2__3 : rule__EtsiBnf__Group_2__3__Impl ;
     public final void rule__EtsiBnf__Group_2__3() throws RecognitionException {
         int rule__EtsiBnf__Group_2__3_StartIndex = input.index();
@@ -5328,9 +5458,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 86) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1510:1: ( rule__EtsiBnf__Group_2__3__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1511:2: rule__EtsiBnf__Group_2__3__Impl
-            {
-            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__3__Impl_in_rule__EtsiBnf__Group_2__33208);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 88) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1544:1: ( rule__EtsiBnf__Group_2__3__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1545:2: rule__EtsiBnf__Group_2__3__Impl
+            {
+            pushFollow(FOLLOW_rule__EtsiBnf__Group_2__3__Impl_in_rule__EtsiBnf__Group_2__33286);
             rule__EtsiBnf__Group_2__3__Impl();
 
@@ -5346,5 +5476,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 86, rule__EtsiBnf__Group_2__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 88, rule__EtsiBnf__Group_2__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5357,5 +5487,5 @@
 
     // $ANTLR start "rule__EtsiBnf__Group_2__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1517:1: rule__EtsiBnf__Group_2__3__Impl : ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1551:1: rule__EtsiBnf__Group_2__3__Impl : ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* ) ;
     public final void rule__EtsiBnf__Group_2__3__Impl() throws RecognitionException {
         int rule__EtsiBnf__Group_2__3__Impl_StartIndex = input.index();
@@ -5364,15 +5494,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 87) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1521:1: ( ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1522:1: ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1522:1: ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1523:1: ( rule__EtsiBnf__MergeEntryAssignment_2_3 )*
+            if ( state.backtracking>0 && alreadyParsedRule(input, 89) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1555:1: ( ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1556:1: ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1556:1: ( ( rule__EtsiBnf__MergeEntryAssignment_2_3 )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1557:1: ( rule__EtsiBnf__MergeEntryAssignment_2_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getMergeEntryAssignment_2_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1524:1: ( rule__EtsiBnf__MergeEntryAssignment_2_3 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1558:1: ( rule__EtsiBnf__MergeEntryAssignment_2_3 )*
             loop22:
             do {
@@ -5387,7 +5517,7 @@
                 switch (alt22) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1524:2: rule__EtsiBnf__MergeEntryAssignment_2_3
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1558:2: rule__EtsiBnf__MergeEntryAssignment_2_3
             	    {
-            	    pushFollow(FOLLOW_rule__EtsiBnf__MergeEntryAssignment_2_3_in_rule__EtsiBnf__Group_2__3__Impl3235);
+            	    pushFollow(FOLLOW_rule__EtsiBnf__MergeEntryAssignment_2_3_in_rule__EtsiBnf__Group_2__3__Impl3313);
             	    rule__EtsiBnf__MergeEntryAssignment_2_3();
 
@@ -5418,5 +5548,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 87, rule__EtsiBnf__Group_2__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 89, rule__EtsiBnf__Group_2__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5429,5 +5559,5 @@
 
     // $ANTLR start "rule__SectionHeading__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1542:1: rule__SectionHeading__Group__0 : rule__SectionHeading__Group__0__Impl rule__SectionHeading__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1576:1: rule__SectionHeading__Group__0 : rule__SectionHeading__Group__0__Impl rule__SectionHeading__Group__1 ;
     public final void rule__SectionHeading__Group__0() throws RecognitionException {
         int rule__SectionHeading__Group__0_StartIndex = input.index();
@@ -5436,14 +5566,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 88) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1546:1: ( rule__SectionHeading__Group__0__Impl rule__SectionHeading__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1547:2: rule__SectionHeading__Group__0__Impl rule__SectionHeading__Group__1
-            {
-            pushFollow(FOLLOW_rule__SectionHeading__Group__0__Impl_in_rule__SectionHeading__Group__03274);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 90) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1580:1: ( rule__SectionHeading__Group__0__Impl rule__SectionHeading__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1581:2: rule__SectionHeading__Group__0__Impl rule__SectionHeading__Group__1
+            {
+            pushFollow(FOLLOW_rule__SectionHeading__Group__0__Impl_in_rule__SectionHeading__Group__03352);
             rule__SectionHeading__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__SectionHeading__Group__1_in_rule__SectionHeading__Group__03277);
+            pushFollow(FOLLOW_rule__SectionHeading__Group__1_in_rule__SectionHeading__Group__03355);
             rule__SectionHeading__Group__1();
 
@@ -5459,5 +5589,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 88, rule__SectionHeading__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 90, rule__SectionHeading__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5470,5 +5600,5 @@
 
     // $ANTLR start "rule__SectionHeading__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1554:1: rule__SectionHeading__Group__0__Impl : ( () ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1588:1: rule__SectionHeading__Group__0__Impl : ( () ) ;
     public final void rule__SectionHeading__Group__0__Impl() throws RecognitionException {
         int rule__SectionHeading__Group__0__Impl_StartIndex = input.index();
@@ -5477,16 +5607,16 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 89) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1558:1: ( ( () ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1559:1: ( () )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1559:1: ( () )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1560:1: ()
+            if ( state.backtracking>0 && alreadyParsedRule(input, 91) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1592:1: ( ( () ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1593:1: ( () )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1593:1: ( () )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1594:1: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSectionHeadingAccess().getSectionHeadingAction_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1561:1: ()
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1563:1: 
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1595:1: ()
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1597:1: 
             {
             }
@@ -5503,5 +5633,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 89, rule__SectionHeading__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 91, rule__SectionHeading__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5514,5 +5644,5 @@
 
     // $ANTLR start "rule__SectionHeading__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1573:1: rule__SectionHeading__Group__1 : rule__SectionHeading__Group__1__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1607:1: rule__SectionHeading__Group__1 : rule__SectionHeading__Group__1__Impl ;
     public final void rule__SectionHeading__Group__1() throws RecognitionException {
         int rule__SectionHeading__Group__1_StartIndex = input.index();
@@ -5521,9 +5651,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 90) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1577:1: ( rule__SectionHeading__Group__1__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1578:2: rule__SectionHeading__Group__1__Impl
-            {
-            pushFollow(FOLLOW_rule__SectionHeading__Group__1__Impl_in_rule__SectionHeading__Group__13335);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 92) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1611:1: ( rule__SectionHeading__Group__1__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1612:2: rule__SectionHeading__Group__1__Impl
+            {
+            pushFollow(FOLLOW_rule__SectionHeading__Group__1__Impl_in_rule__SectionHeading__Group__13413);
             rule__SectionHeading__Group__1__Impl();
 
@@ -5539,5 +5669,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 90, rule__SectionHeading__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 92, rule__SectionHeading__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5550,5 +5680,5 @@
 
     // $ANTLR start "rule__SectionHeading__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1584:1: rule__SectionHeading__Group__1__Impl : ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1618:1: rule__SectionHeading__Group__1__Impl : ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) ) ;
     public final void rule__SectionHeading__Group__1__Impl() throws RecognitionException {
         int rule__SectionHeading__Group__1__Impl_StartIndex = input.index();
@@ -5557,18 +5687,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 91) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1588:1: ( ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1589:1: ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1589:1: ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1590:1: ( rule__SectionHeading__SectionHeaderAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 93) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1622:1: ( ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1623:1: ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1623:1: ( ( rule__SectionHeading__SectionHeaderAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1624:1: ( rule__SectionHeading__SectionHeaderAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSectionHeadingAccess().getSectionHeaderAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1591:1: ( rule__SectionHeading__SectionHeaderAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1591:2: rule__SectionHeading__SectionHeaderAssignment_1
-            {
-            pushFollow(FOLLOW_rule__SectionHeading__SectionHeaderAssignment_1_in_rule__SectionHeading__Group__1__Impl3362);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1625:1: ( rule__SectionHeading__SectionHeaderAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1625:2: rule__SectionHeading__SectionHeaderAssignment_1
+            {
+            pushFollow(FOLLOW_rule__SectionHeading__SectionHeaderAssignment_1_in_rule__SectionHeading__Group__1__Impl3440);
             rule__SectionHeading__SectionHeaderAssignment_1();
 
@@ -5593,5 +5723,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 91, rule__SectionHeading__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 93, rule__SectionHeading__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5603,6 +5733,181 @@
 
 
+    // $ANTLR start "rule__Comment__Group__0"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1639:1: rule__Comment__Group__0 : rule__Comment__Group__0__Impl rule__Comment__Group__1 ;
+    public final void rule__Comment__Group__0() throws RecognitionException {
+        int rule__Comment__Group__0_StartIndex = input.index();
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 94) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1643:1: ( rule__Comment__Group__0__Impl rule__Comment__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1644:2: rule__Comment__Group__0__Impl rule__Comment__Group__1
+            {
+            pushFollow(FOLLOW_rule__Comment__Group__0__Impl_in_rule__Comment__Group__03474);
+            rule__Comment__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_rule__Comment__Group__1_in_rule__Comment__Group__03477);
+            rule__Comment__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 94, rule__Comment__Group__0_StartIndex); }
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Comment__Group__0"
+
+
+    // $ANTLR start "rule__Comment__Group__0__Impl"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1651:1: rule__Comment__Group__0__Impl : ( () ) ;
+    public final void rule__Comment__Group__0__Impl() throws RecognitionException {
+        int rule__Comment__Group__0__Impl_StartIndex = input.index();
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 95) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1655:1: ( ( () ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1656:1: ( () )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1656:1: ( () )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1657:1: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCommentAccess().getCommentAction_0()); 
+            }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1658:1: ()
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1660:1: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCommentAccess().getCommentAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 95, rule__Comment__Group__0__Impl_StartIndex); }
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Comment__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Comment__Group__1"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1670:1: rule__Comment__Group__1 : rule__Comment__Group__1__Impl ;
+    public final void rule__Comment__Group__1() throws RecognitionException {
+        int rule__Comment__Group__1_StartIndex = input.index();
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 96) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1674:1: ( rule__Comment__Group__1__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1675:2: rule__Comment__Group__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Comment__Group__1__Impl_in_rule__Comment__Group__13535);
+            rule__Comment__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 96, rule__Comment__Group__1_StartIndex); }
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Comment__Group__1"
+
+
+    // $ANTLR start "rule__Comment__Group__1__Impl"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1681:1: rule__Comment__Group__1__Impl : ( ( rule__Comment__ContentAssignment_1 ) ) ;
+    public final void rule__Comment__Group__1__Impl() throws RecognitionException {
+        int rule__Comment__Group__1__Impl_StartIndex = input.index();
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 97) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1685:1: ( ( ( rule__Comment__ContentAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1686:1: ( ( rule__Comment__ContentAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1686:1: ( ( rule__Comment__ContentAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1687:1: ( rule__Comment__ContentAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCommentAccess().getContentAssignment_1()); 
+            }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1688:1: ( rule__Comment__ContentAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1688:2: rule__Comment__ContentAssignment_1
+            {
+            pushFollow(FOLLOW_rule__Comment__ContentAssignment_1_in_rule__Comment__Group__1__Impl3562);
+            rule__Comment__ContentAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCommentAccess().getContentAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 97, rule__Comment__Group__1__Impl_StartIndex); }
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Comment__Group__1__Impl"
+
+
     // $ANTLR start "rule__Import__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1605:1: rule__Import__Group__0 : rule__Import__Group__0__Impl rule__Import__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1702:1: rule__Import__Group__0 : rule__Import__Group__0__Impl rule__Import__Group__1 ;
     public final void rule__Import__Group__0() throws RecognitionException {
         int rule__Import__Group__0_StartIndex = input.index();
@@ -5611,14 +5916,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 92) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1609:1: ( rule__Import__Group__0__Impl rule__Import__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1610:2: rule__Import__Group__0__Impl rule__Import__Group__1
-            {
-            pushFollow(FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__03396);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 98) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1706:1: ( rule__Import__Group__0__Impl rule__Import__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1707:2: rule__Import__Group__0__Impl rule__Import__Group__1
+            {
+            pushFollow(FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__03596);
             rule__Import__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Import__Group__1_in_rule__Import__Group__03399);
+            pushFollow(FOLLOW_rule__Import__Group__1_in_rule__Import__Group__03599);
             rule__Import__Group__1();
 
@@ -5634,5 +5939,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 92, rule__Import__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 98, rule__Import__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5645,5 +5950,5 @@
 
     // $ANTLR start "rule__Import__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1617:1: rule__Import__Group__0__Impl : ( 'import' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1714:1: rule__Import__Group__0__Impl : ( 'import' ) ;
     public final void rule__Import__Group__0__Impl() throws RecognitionException {
         int rule__Import__Group__0__Impl_StartIndex = input.index();
@@ -5652,15 +5957,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 93) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1621:1: ( ( 'import' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1622:1: ( 'import' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1622:1: ( 'import' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1623:1: 'import'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 99) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1718:1: ( ( 'import' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1719:1: ( 'import' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1719:1: ( 'import' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1720:1: 'import'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getImportKeyword_0()); 
             }
-            match(input,24,FOLLOW_24_in_rule__Import__Group__0__Impl3427); if (state.failed) return ;
+            match(input,24,FOLLOW_24_in_rule__Import__Group__0__Impl3627); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getImportKeyword_0()); 
@@ -5678,5 +5983,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 93, rule__Import__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 99, rule__Import__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5689,5 +5994,5 @@
 
     // $ANTLR start "rule__Import__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1636:1: rule__Import__Group__1 : rule__Import__Group__1__Impl rule__Import__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1733:1: rule__Import__Group__1 : rule__Import__Group__1__Impl rule__Import__Group__2 ;
     public final void rule__Import__Group__1() throws RecognitionException {
         int rule__Import__Group__1_StartIndex = input.index();
@@ -5696,14 +6001,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 94) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1640:1: ( rule__Import__Group__1__Impl rule__Import__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1641:2: rule__Import__Group__1__Impl rule__Import__Group__2
-            {
-            pushFollow(FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__13458);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 100) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1737:1: ( rule__Import__Group__1__Impl rule__Import__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1738:2: rule__Import__Group__1__Impl rule__Import__Group__2
+            {
+            pushFollow(FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__13658);
             rule__Import__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Import__Group__2_in_rule__Import__Group__13461);
+            pushFollow(FOLLOW_rule__Import__Group__2_in_rule__Import__Group__13661);
             rule__Import__Group__2();
 
@@ -5719,5 +6024,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 94, rule__Import__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 100, rule__Import__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5730,5 +6035,5 @@
 
     // $ANTLR start "rule__Import__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1648:1: rule__Import__Group__1__Impl : ( ( rule__Import__ImportURIAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1745:1: rule__Import__Group__1__Impl : ( ( rule__Import__ImportURIAssignment_1 ) ) ;
     public final void rule__Import__Group__1__Impl() throws RecognitionException {
         int rule__Import__Group__1__Impl_StartIndex = input.index();
@@ -5737,18 +6042,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 95) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1652:1: ( ( ( rule__Import__ImportURIAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1653:1: ( ( rule__Import__ImportURIAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1653:1: ( ( rule__Import__ImportURIAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1654:1: ( rule__Import__ImportURIAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 101) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1749:1: ( ( ( rule__Import__ImportURIAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1750:1: ( ( rule__Import__ImportURIAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1750:1: ( ( rule__Import__ImportURIAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1751:1: ( rule__Import__ImportURIAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getImportURIAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1655:1: ( rule__Import__ImportURIAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1655:2: rule__Import__ImportURIAssignment_1
-            {
-            pushFollow(FOLLOW_rule__Import__ImportURIAssignment_1_in_rule__Import__Group__1__Impl3488);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1752:1: ( rule__Import__ImportURIAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1752:2: rule__Import__ImportURIAssignment_1
+            {
+            pushFollow(FOLLOW_rule__Import__ImportURIAssignment_1_in_rule__Import__Group__1__Impl3688);
             rule__Import__ImportURIAssignment_1();
 
@@ -5773,5 +6078,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 95, rule__Import__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 101, rule__Import__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5784,5 +6089,5 @@
 
     // $ANTLR start "rule__Import__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1665:1: rule__Import__Group__2 : rule__Import__Group__2__Impl rule__Import__Group__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1762:1: rule__Import__Group__2 : rule__Import__Group__2__Impl rule__Import__Group__3 ;
     public final void rule__Import__Group__2() throws RecognitionException {
         int rule__Import__Group__2_StartIndex = input.index();
@@ -5791,14 +6096,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 96) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1669:1: ( rule__Import__Group__2__Impl rule__Import__Group__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1670:2: rule__Import__Group__2__Impl rule__Import__Group__3
-            {
-            pushFollow(FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__23518);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 102) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1766:1: ( rule__Import__Group__2__Impl rule__Import__Group__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1767:2: rule__Import__Group__2__Impl rule__Import__Group__3
+            {
+            pushFollow(FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__23718);
             rule__Import__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Import__Group__3_in_rule__Import__Group__23521);
+            pushFollow(FOLLOW_rule__Import__Group__3_in_rule__Import__Group__23721);
             rule__Import__Group__3();
 
@@ -5814,5 +6119,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 96, rule__Import__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 102, rule__Import__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5825,5 +6130,5 @@
 
     // $ANTLR start "rule__Import__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1677:1: rule__Import__Group__2__Impl : ( ( rule__Import__Group_2__0 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1774:1: rule__Import__Group__2__Impl : ( ( rule__Import__Group_2__0 )? ) ;
     public final void rule__Import__Group__2__Impl() throws RecognitionException {
         int rule__Import__Group__2__Impl_StartIndex = input.index();
@@ -5832,15 +6137,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 97) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1681:1: ( ( ( rule__Import__Group_2__0 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1682:1: ( ( rule__Import__Group_2__0 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1682:1: ( ( rule__Import__Group_2__0 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1683:1: ( rule__Import__Group_2__0 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 103) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1778:1: ( ( ( rule__Import__Group_2__0 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1779:1: ( ( rule__Import__Group_2__0 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1779:1: ( ( rule__Import__Group_2__0 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1780:1: ( rule__Import__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGroup_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1684:1: ( rule__Import__Group_2__0 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1781:1: ( rule__Import__Group_2__0 )?
             int alt23=2;
             int LA23_0 = input.LA(1);
@@ -5851,7 +6156,7 @@
             switch (alt23) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1684:2: rule__Import__Group_2__0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1781:2: rule__Import__Group_2__0
                     {
-                    pushFollow(FOLLOW_rule__Import__Group_2__0_in_rule__Import__Group__2__Impl3548);
+                    pushFollow(FOLLOW_rule__Import__Group_2__0_in_rule__Import__Group__2__Impl3748);
                     rule__Import__Group_2__0();
 
@@ -5879,5 +6184,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 97, rule__Import__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 103, rule__Import__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5890,5 +6195,5 @@
 
     // $ANTLR start "rule__Import__Group__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1694:1: rule__Import__Group__3 : rule__Import__Group__3__Impl rule__Import__Group__4 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1791:1: rule__Import__Group__3 : rule__Import__Group__3__Impl rule__Import__Group__4 ;
     public final void rule__Import__Group__3() throws RecognitionException {
         int rule__Import__Group__3_StartIndex = input.index();
@@ -5897,14 +6202,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 98) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1698:1: ( rule__Import__Group__3__Impl rule__Import__Group__4 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1699:2: rule__Import__Group__3__Impl rule__Import__Group__4
-            {
-            pushFollow(FOLLOW_rule__Import__Group__3__Impl_in_rule__Import__Group__33579);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 104) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1795:1: ( rule__Import__Group__3__Impl rule__Import__Group__4 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1796:2: rule__Import__Group__3__Impl rule__Import__Group__4
+            {
+            pushFollow(FOLLOW_rule__Import__Group__3__Impl_in_rule__Import__Group__33779);
             rule__Import__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Import__Group__4_in_rule__Import__Group__33582);
+            pushFollow(FOLLOW_rule__Import__Group__4_in_rule__Import__Group__33782);
             rule__Import__Group__4();
 
@@ -5920,5 +6225,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 98, rule__Import__Group__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 104, rule__Import__Group__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5931,5 +6236,5 @@
 
     // $ANTLR start "rule__Import__Group__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1706:1: rule__Import__Group__3__Impl : ( ( rule__Import__Group_3__0 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1803:1: rule__Import__Group__3__Impl : ( ( rule__Import__Group_3__0 )? ) ;
     public final void rule__Import__Group__3__Impl() throws RecognitionException {
         int rule__Import__Group__3__Impl_StartIndex = input.index();
@@ -5938,15 +6243,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 99) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1710:1: ( ( ( rule__Import__Group_3__0 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1711:1: ( ( rule__Import__Group_3__0 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1711:1: ( ( rule__Import__Group_3__0 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1712:1: ( rule__Import__Group_3__0 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 105) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1807:1: ( ( ( rule__Import__Group_3__0 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1808:1: ( ( rule__Import__Group_3__0 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1808:1: ( ( rule__Import__Group_3__0 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1809:1: ( rule__Import__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGroup_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1713:1: ( rule__Import__Group_3__0 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1810:1: ( rule__Import__Group_3__0 )?
             int alt24=2;
             int LA24_0 = input.LA(1);
@@ -5957,7 +6262,7 @@
             switch (alt24) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1713:2: rule__Import__Group_3__0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1810:2: rule__Import__Group_3__0
                     {
-                    pushFollow(FOLLOW_rule__Import__Group_3__0_in_rule__Import__Group__3__Impl3609);
+                    pushFollow(FOLLOW_rule__Import__Group_3__0_in_rule__Import__Group__3__Impl3809);
                     rule__Import__Group_3__0();
 
@@ -5985,5 +6290,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 99, rule__Import__Group__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 105, rule__Import__Group__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -5996,5 +6301,5 @@
 
     // $ANTLR start "rule__Import__Group__4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1723:1: rule__Import__Group__4 : rule__Import__Group__4__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1820:1: rule__Import__Group__4 : rule__Import__Group__4__Impl ;
     public final void rule__Import__Group__4() throws RecognitionException {
         int rule__Import__Group__4_StartIndex = input.index();
@@ -6003,9 +6308,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 100) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1727:1: ( rule__Import__Group__4__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1728:2: rule__Import__Group__4__Impl
-            {
-            pushFollow(FOLLOW_rule__Import__Group__4__Impl_in_rule__Import__Group__43640);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 106) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1824:1: ( rule__Import__Group__4__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1825:2: rule__Import__Group__4__Impl
+            {
+            pushFollow(FOLLOW_rule__Import__Group__4__Impl_in_rule__Import__Group__43840);
             rule__Import__Group__4__Impl();
 
@@ -6021,5 +6326,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 100, rule__Import__Group__4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 106, rule__Import__Group__4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6032,5 +6337,5 @@
 
     // $ANTLR start "rule__Import__Group__4__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1734:1: rule__Import__Group__4__Impl : ( ';' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1831:1: rule__Import__Group__4__Impl : ( ';' ) ;
     public final void rule__Import__Group__4__Impl() throws RecognitionException {
         int rule__Import__Group__4__Impl_StartIndex = input.index();
@@ -6039,15 +6344,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 101) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1738:1: ( ( ';' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1739:1: ( ';' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1739:1: ( ';' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1740:1: ';'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 107) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1835:1: ( ( ';' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1836:1: ( ';' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1836:1: ( ';' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1837:1: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getSemicolonKeyword_4()); 
             }
-            match(input,23,FOLLOW_23_in_rule__Import__Group__4__Impl3668); if (state.failed) return ;
+            match(input,23,FOLLOW_23_in_rule__Import__Group__4__Impl3868); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getSemicolonKeyword_4()); 
@@ -6065,5 +6370,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 101, rule__Import__Group__4__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 107, rule__Import__Group__4__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6076,5 +6381,5 @@
 
     // $ANTLR start "rule__Import__Group_2__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1763:1: rule__Import__Group_2__0 : rule__Import__Group_2__0__Impl rule__Import__Group_2__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1860:1: rule__Import__Group_2__0 : rule__Import__Group_2__0__Impl rule__Import__Group_2__1 ;
     public final void rule__Import__Group_2__0() throws RecognitionException {
         int rule__Import__Group_2__0_StartIndex = input.index();
@@ -6083,14 +6388,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 102) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1767:1: ( rule__Import__Group_2__0__Impl rule__Import__Group_2__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1768:2: rule__Import__Group_2__0__Impl rule__Import__Group_2__1
-            {
-            pushFollow(FOLLOW_rule__Import__Group_2__0__Impl_in_rule__Import__Group_2__03709);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 108) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1864:1: ( rule__Import__Group_2__0__Impl rule__Import__Group_2__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1865:2: rule__Import__Group_2__0__Impl rule__Import__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__Import__Group_2__0__Impl_in_rule__Import__Group_2__03909);
             rule__Import__Group_2__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Import__Group_2__1_in_rule__Import__Group_2__03712);
+            pushFollow(FOLLOW_rule__Import__Group_2__1_in_rule__Import__Group_2__03912);
             rule__Import__Group_2__1();
 
@@ -6106,5 +6411,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 102, rule__Import__Group_2__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 108, rule__Import__Group_2__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6117,5 +6422,5 @@
 
     // $ANTLR start "rule__Import__Group_2__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1775:1: rule__Import__Group_2__0__Impl : ( '/' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1872:1: rule__Import__Group_2__0__Impl : ( '/' ) ;
     public final void rule__Import__Group_2__0__Impl() throws RecognitionException {
         int rule__Import__Group_2__0__Impl_StartIndex = input.index();
@@ -6124,15 +6429,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 103) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1779:1: ( ( '/' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1780:1: ( '/' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1780:1: ( '/' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1781:1: '/'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 109) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1876:1: ( ( '/' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1877:1: ( '/' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1877:1: ( '/' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1878:1: '/'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getSolidusKeyword_2_0()); 
             }
-            match(input,25,FOLLOW_25_in_rule__Import__Group_2__0__Impl3740); if (state.failed) return ;
+            match(input,25,FOLLOW_25_in_rule__Import__Group_2__0__Impl3940); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getSolidusKeyword_2_0()); 
@@ -6150,5 +6455,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 103, rule__Import__Group_2__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 109, rule__Import__Group_2__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6161,5 +6466,5 @@
 
     // $ANTLR start "rule__Import__Group_2__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1794:1: rule__Import__Group_2__1 : rule__Import__Group_2__1__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1891:1: rule__Import__Group_2__1 : rule__Import__Group_2__1__Impl ;
     public final void rule__Import__Group_2__1() throws RecognitionException {
         int rule__Import__Group_2__1_StartIndex = input.index();
@@ -6168,9 +6473,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 104) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1798:1: ( rule__Import__Group_2__1__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1799:2: rule__Import__Group_2__1__Impl
-            {
-            pushFollow(FOLLOW_rule__Import__Group_2__1__Impl_in_rule__Import__Group_2__13771);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 110) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1895:1: ( rule__Import__Group_2__1__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1896:2: rule__Import__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Import__Group_2__1__Impl_in_rule__Import__Group_2__13971);
             rule__Import__Group_2__1__Impl();
 
@@ -6186,5 +6491,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 104, rule__Import__Group_2__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 110, rule__Import__Group_2__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6197,5 +6502,5 @@
 
     // $ANTLR start "rule__Import__Group_2__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1805:1: rule__Import__Group_2__1__Impl : ( ( rule__Import__Alternatives_2_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1902:1: rule__Import__Group_2__1__Impl : ( ( rule__Import__Alternatives_2_1 ) ) ;
     public final void rule__Import__Group_2__1__Impl() throws RecognitionException {
         int rule__Import__Group_2__1__Impl_StartIndex = input.index();
@@ -6204,18 +6509,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 105) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1809:1: ( ( ( rule__Import__Alternatives_2_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1810:1: ( ( rule__Import__Alternatives_2_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1810:1: ( ( rule__Import__Alternatives_2_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1811:1: ( rule__Import__Alternatives_2_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 111) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1906:1: ( ( ( rule__Import__Alternatives_2_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1907:1: ( ( rule__Import__Alternatives_2_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1907:1: ( ( rule__Import__Alternatives_2_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1908:1: ( rule__Import__Alternatives_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getAlternatives_2_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1812:1: ( rule__Import__Alternatives_2_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1812:2: rule__Import__Alternatives_2_1
-            {
-            pushFollow(FOLLOW_rule__Import__Alternatives_2_1_in_rule__Import__Group_2__1__Impl3798);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1909:1: ( rule__Import__Alternatives_2_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1909:2: rule__Import__Alternatives_2_1
+            {
+            pushFollow(FOLLOW_rule__Import__Alternatives_2_1_in_rule__Import__Group_2__1__Impl3998);
             rule__Import__Alternatives_2_1();
 
@@ -6240,5 +6545,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 105, rule__Import__Group_2__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 111, rule__Import__Group_2__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6251,5 +6556,5 @@
 
     // $ANTLR start "rule__Import__Group_3__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1826:1: rule__Import__Group_3__0 : rule__Import__Group_3__0__Impl rule__Import__Group_3__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1923:1: rule__Import__Group_3__0 : rule__Import__Group_3__0__Impl rule__Import__Group_3__1 ;
     public final void rule__Import__Group_3__0() throws RecognitionException {
         int rule__Import__Group_3__0_StartIndex = input.index();
@@ -6258,14 +6563,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 106) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1830:1: ( rule__Import__Group_3__0__Impl rule__Import__Group_3__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1831:2: rule__Import__Group_3__0__Impl rule__Import__Group_3__1
-            {
-            pushFollow(FOLLOW_rule__Import__Group_3__0__Impl_in_rule__Import__Group_3__03832);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 112) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1927:1: ( rule__Import__Group_3__0__Impl rule__Import__Group_3__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1928:2: rule__Import__Group_3__0__Impl rule__Import__Group_3__1
+            {
+            pushFollow(FOLLOW_rule__Import__Group_3__0__Impl_in_rule__Import__Group_3__04032);
             rule__Import__Group_3__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Import__Group_3__1_in_rule__Import__Group_3__03835);
+            pushFollow(FOLLOW_rule__Import__Group_3__1_in_rule__Import__Group_3__04035);
             rule__Import__Group_3__1();
 
@@ -6281,5 +6586,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 106, rule__Import__Group_3__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 112, rule__Import__Group_3__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6292,5 +6597,5 @@
 
     // $ANTLR start "rule__Import__Group_3__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1838:1: rule__Import__Group_3__0__Impl : ( 'label:' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1935:1: rule__Import__Group_3__0__Impl : ( 'label:' ) ;
     public final void rule__Import__Group_3__0__Impl() throws RecognitionException {
         int rule__Import__Group_3__0__Impl_StartIndex = input.index();
@@ -6299,15 +6604,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 107) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1842:1: ( ( 'label:' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1843:1: ( 'label:' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1843:1: ( 'label:' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1844:1: 'label:'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 113) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1939:1: ( ( 'label:' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1940:1: ( 'label:' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1940:1: ( 'label:' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1941:1: 'label:'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getLabelKeyword_3_0()); 
             }
-            match(input,26,FOLLOW_26_in_rule__Import__Group_3__0__Impl3863); if (state.failed) return ;
+            match(input,26,FOLLOW_26_in_rule__Import__Group_3__0__Impl4063); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getLabelKeyword_3_0()); 
@@ -6325,5 +6630,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 107, rule__Import__Group_3__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 113, rule__Import__Group_3__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6336,5 +6641,5 @@
 
     // $ANTLR start "rule__Import__Group_3__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1857:1: rule__Import__Group_3__1 : rule__Import__Group_3__1__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1954:1: rule__Import__Group_3__1 : rule__Import__Group_3__1__Impl ;
     public final void rule__Import__Group_3__1() throws RecognitionException {
         int rule__Import__Group_3__1_StartIndex = input.index();
@@ -6343,9 +6648,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 108) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1861:1: ( rule__Import__Group_3__1__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1862:2: rule__Import__Group_3__1__Impl
-            {
-            pushFollow(FOLLOW_rule__Import__Group_3__1__Impl_in_rule__Import__Group_3__13894);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 114) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1958:1: ( rule__Import__Group_3__1__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1959:2: rule__Import__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_rule__Import__Group_3__1__Impl_in_rule__Import__Group_3__14094);
             rule__Import__Group_3__1__Impl();
 
@@ -6361,5 +6666,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 108, rule__Import__Group_3__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 114, rule__Import__Group_3__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6372,5 +6677,5 @@
 
     // $ANTLR start "rule__Import__Group_3__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1868:1: rule__Import__Group_3__1__Impl : ( ( rule__Import__LabelAssignment_3_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1965:1: rule__Import__Group_3__1__Impl : ( ( rule__Import__LabelAssignment_3_1 ) ) ;
     public final void rule__Import__Group_3__1__Impl() throws RecognitionException {
         int rule__Import__Group_3__1__Impl_StartIndex = input.index();
@@ -6379,18 +6684,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 109) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1872:1: ( ( ( rule__Import__LabelAssignment_3_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1873:1: ( ( rule__Import__LabelAssignment_3_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1873:1: ( ( rule__Import__LabelAssignment_3_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1874:1: ( rule__Import__LabelAssignment_3_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 115) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1969:1: ( ( ( rule__Import__LabelAssignment_3_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1970:1: ( ( rule__Import__LabelAssignment_3_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1970:1: ( ( rule__Import__LabelAssignment_3_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1971:1: ( rule__Import__LabelAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getLabelAssignment_3_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1875:1: ( rule__Import__LabelAssignment_3_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1875:2: rule__Import__LabelAssignment_3_1
-            {
-            pushFollow(FOLLOW_rule__Import__LabelAssignment_3_1_in_rule__Import__Group_3__1__Impl3921);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1972:1: ( rule__Import__LabelAssignment_3_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1972:2: rule__Import__LabelAssignment_3_1
+            {
+            pushFollow(FOLLOW_rule__Import__LabelAssignment_3_1_in_rule__Import__Group_3__1__Impl4121);
             rule__Import__LabelAssignment_3_1();
 
@@ -6415,5 +6720,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 109, rule__Import__Group_3__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 115, rule__Import__Group_3__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6426,5 +6731,5 @@
 
     // $ANTLR start "rule__Rule__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1889:1: rule__Rule__Group__0 : rule__Rule__Group__0__Impl rule__Rule__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1986:1: rule__Rule__Group__0 : rule__Rule__Group__0__Impl rule__Rule__Group__1 ;
     public final void rule__Rule__Group__0() throws RecognitionException {
         int rule__Rule__Group__0_StartIndex = input.index();
@@ -6433,14 +6738,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 110) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1893:1: ( rule__Rule__Group__0__Impl rule__Rule__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1894:2: rule__Rule__Group__0__Impl rule__Rule__Group__1
-            {
-            pushFollow(FOLLOW_rule__Rule__Group__0__Impl_in_rule__Rule__Group__03955);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 116) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1990:1: ( rule__Rule__Group__0__Impl rule__Rule__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1991:2: rule__Rule__Group__0__Impl rule__Rule__Group__1
+            {
+            pushFollow(FOLLOW_rule__Rule__Group__0__Impl_in_rule__Rule__Group__04155);
             rule__Rule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Rule__Group__1_in_rule__Rule__Group__03958);
+            pushFollow(FOLLOW_rule__Rule__Group__1_in_rule__Rule__Group__04158);
             rule__Rule__Group__1();
 
@@ -6456,5 +6761,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 110, rule__Rule__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 116, rule__Rule__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6467,5 +6772,5 @@
 
     // $ANTLR start "rule__Rule__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1901:1: rule__Rule__Group__0__Impl : ( ( rule__Rule__Group_0__0 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1998:1: rule__Rule__Group__0__Impl : ( ( rule__Rule__Group_0__0 )? ) ;
     public final void rule__Rule__Group__0__Impl() throws RecognitionException {
         int rule__Rule__Group__0__Impl_StartIndex = input.index();
@@ -6474,15 +6779,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 111) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1905:1: ( ( ( rule__Rule__Group_0__0 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1906:1: ( ( rule__Rule__Group_0__0 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1906:1: ( ( rule__Rule__Group_0__0 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1907:1: ( rule__Rule__Group_0__0 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 117) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2002:1: ( ( ( rule__Rule__Group_0__0 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2003:1: ( ( rule__Rule__Group_0__0 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2003:1: ( ( rule__Rule__Group_0__0 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2004:1: ( rule__Rule__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getGroup_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1908:1: ( rule__Rule__Group_0__0 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2005:1: ( rule__Rule__Group_0__0 )?
             int alt25=2;
             int LA25_0 = input.LA(1);
@@ -6493,7 +6798,7 @@
             switch (alt25) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1908:2: rule__Rule__Group_0__0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2005:2: rule__Rule__Group_0__0
                     {
-                    pushFollow(FOLLOW_rule__Rule__Group_0__0_in_rule__Rule__Group__0__Impl3985);
+                    pushFollow(FOLLOW_rule__Rule__Group_0__0_in_rule__Rule__Group__0__Impl4185);
                     rule__Rule__Group_0__0();
 
@@ -6521,5 +6826,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 111, rule__Rule__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 117, rule__Rule__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6532,5 +6837,5 @@
 
     // $ANTLR start "rule__Rule__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1918:1: rule__Rule__Group__1 : rule__Rule__Group__1__Impl rule__Rule__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2015:1: rule__Rule__Group__1 : rule__Rule__Group__1__Impl rule__Rule__Group__2 ;
     public final void rule__Rule__Group__1() throws RecognitionException {
         int rule__Rule__Group__1_StartIndex = input.index();
@@ -6539,14 +6844,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 112) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1922:1: ( rule__Rule__Group__1__Impl rule__Rule__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1923:2: rule__Rule__Group__1__Impl rule__Rule__Group__2
-            {
-            pushFollow(FOLLOW_rule__Rule__Group__1__Impl_in_rule__Rule__Group__14016);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 118) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2019:1: ( rule__Rule__Group__1__Impl rule__Rule__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2020:2: rule__Rule__Group__1__Impl rule__Rule__Group__2
+            {
+            pushFollow(FOLLOW_rule__Rule__Group__1__Impl_in_rule__Rule__Group__14216);
             rule__Rule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Rule__Group__2_in_rule__Rule__Group__14019);
+            pushFollow(FOLLOW_rule__Rule__Group__2_in_rule__Rule__Group__14219);
             rule__Rule__Group__2();
 
@@ -6562,5 +6867,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 112, rule__Rule__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 118, rule__Rule__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6573,5 +6878,5 @@
 
     // $ANTLR start "rule__Rule__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1930:1: rule__Rule__Group__1__Impl : ( ( rule__Rule__NameAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2027:1: rule__Rule__Group__1__Impl : ( ( rule__Rule__NameAssignment_1 ) ) ;
     public final void rule__Rule__Group__1__Impl() throws RecognitionException {
         int rule__Rule__Group__1__Impl_StartIndex = input.index();
@@ -6580,18 +6885,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 113) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1934:1: ( ( ( rule__Rule__NameAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1935:1: ( ( rule__Rule__NameAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1935:1: ( ( rule__Rule__NameAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1936:1: ( rule__Rule__NameAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 119) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2031:1: ( ( ( rule__Rule__NameAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2032:1: ( ( rule__Rule__NameAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2032:1: ( ( rule__Rule__NameAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2033:1: ( rule__Rule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getNameAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1937:1: ( rule__Rule__NameAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1937:2: rule__Rule__NameAssignment_1
-            {
-            pushFollow(FOLLOW_rule__Rule__NameAssignment_1_in_rule__Rule__Group__1__Impl4046);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2034:1: ( rule__Rule__NameAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2034:2: rule__Rule__NameAssignment_1
+            {
+            pushFollow(FOLLOW_rule__Rule__NameAssignment_1_in_rule__Rule__Group__1__Impl4246);
             rule__Rule__NameAssignment_1();
 
@@ -6616,5 +6921,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 113, rule__Rule__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 119, rule__Rule__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6627,5 +6932,5 @@
 
     // $ANTLR start "rule__Rule__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1947:1: rule__Rule__Group__2 : rule__Rule__Group__2__Impl rule__Rule__Group__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2044:1: rule__Rule__Group__2 : rule__Rule__Group__2__Impl rule__Rule__Group__3 ;
     public final void rule__Rule__Group__2() throws RecognitionException {
         int rule__Rule__Group__2_StartIndex = input.index();
@@ -6634,14 +6939,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 114) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1951:1: ( rule__Rule__Group__2__Impl rule__Rule__Group__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1952:2: rule__Rule__Group__2__Impl rule__Rule__Group__3
-            {
-            pushFollow(FOLLOW_rule__Rule__Group__2__Impl_in_rule__Rule__Group__24076);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 120) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2048:1: ( rule__Rule__Group__2__Impl rule__Rule__Group__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2049:2: rule__Rule__Group__2__Impl rule__Rule__Group__3
+            {
+            pushFollow(FOLLOW_rule__Rule__Group__2__Impl_in_rule__Rule__Group__24276);
             rule__Rule__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Rule__Group__3_in_rule__Rule__Group__24079);
+            pushFollow(FOLLOW_rule__Rule__Group__3_in_rule__Rule__Group__24279);
             rule__Rule__Group__3();
 
@@ -6657,5 +6962,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 114, rule__Rule__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 120, rule__Rule__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6668,5 +6973,5 @@
 
     // $ANTLR start "rule__Rule__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1959:1: rule__Rule__Group__2__Impl : ( '::=' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2056:1: rule__Rule__Group__2__Impl : ( '::=' ) ;
     public final void rule__Rule__Group__2__Impl() throws RecognitionException {
         int rule__Rule__Group__2__Impl_StartIndex = input.index();
@@ -6675,15 +6980,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 115) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1963:1: ( ( '::=' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1964:1: ( '::=' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1964:1: ( '::=' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1965:1: '::='
+            if ( state.backtracking>0 && alreadyParsedRule(input, 121) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2060:1: ( ( '::=' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2061:1: ( '::=' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2061:1: ( '::=' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2062:1: '::='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getColonColonEqualsSignKeyword_2()); 
             }
-            match(input,27,FOLLOW_27_in_rule__Rule__Group__2__Impl4107); if (state.failed) return ;
+            match(input,27,FOLLOW_27_in_rule__Rule__Group__2__Impl4307); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleAccess().getColonColonEqualsSignKeyword_2()); 
@@ -6701,5 +7006,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 115, rule__Rule__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 121, rule__Rule__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6712,5 +7017,5 @@
 
     // $ANTLR start "rule__Rule__Group__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1978:1: rule__Rule__Group__3 : rule__Rule__Group__3__Impl rule__Rule__Group__4 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2075:1: rule__Rule__Group__3 : rule__Rule__Group__3__Impl rule__Rule__Group__4 ;
     public final void rule__Rule__Group__3() throws RecognitionException {
         int rule__Rule__Group__3_StartIndex = input.index();
@@ -6719,14 +7024,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 116) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1982:1: ( rule__Rule__Group__3__Impl rule__Rule__Group__4 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1983:2: rule__Rule__Group__3__Impl rule__Rule__Group__4
-            {
-            pushFollow(FOLLOW_rule__Rule__Group__3__Impl_in_rule__Rule__Group__34138);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 122) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2079:1: ( rule__Rule__Group__3__Impl rule__Rule__Group__4 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2080:2: rule__Rule__Group__3__Impl rule__Rule__Group__4
+            {
+            pushFollow(FOLLOW_rule__Rule__Group__3__Impl_in_rule__Rule__Group__34338);
             rule__Rule__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Rule__Group__4_in_rule__Rule__Group__34141);
+            pushFollow(FOLLOW_rule__Rule__Group__4_in_rule__Rule__Group__34341);
             rule__Rule__Group__4();
 
@@ -6742,5 +7047,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 116, rule__Rule__Group__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 122, rule__Rule__Group__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6753,5 +7058,5 @@
 
     // $ANTLR start "rule__Rule__Group__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1990:1: rule__Rule__Group__3__Impl : ( ( rule__Rule__DefinitionListAssignment_3 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2087:1: rule__Rule__Group__3__Impl : ( ( rule__Rule__DefinitionListAssignment_3 )? ) ;
     public final void rule__Rule__Group__3__Impl() throws RecognitionException {
         int rule__Rule__Group__3__Impl_StartIndex = input.index();
@@ -6760,15 +7065,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 117) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1994:1: ( ( ( rule__Rule__DefinitionListAssignment_3 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1995:1: ( ( rule__Rule__DefinitionListAssignment_3 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1995:1: ( ( rule__Rule__DefinitionListAssignment_3 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1996:1: ( rule__Rule__DefinitionListAssignment_3 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 123) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2091:1: ( ( ( rule__Rule__DefinitionListAssignment_3 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2092:1: ( ( rule__Rule__DefinitionListAssignment_3 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2092:1: ( ( rule__Rule__DefinitionListAssignment_3 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2093:1: ( rule__Rule__DefinitionListAssignment_3 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getDefinitionListAssignment_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1997:1: ( rule__Rule__DefinitionListAssignment_3 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2094:1: ( rule__Rule__DefinitionListAssignment_3 )?
             int alt26=2;
             int LA26_0 = input.LA(1);
@@ -6780,20 +7085,20 @@
                 int LA26_2 = input.LA(2);
 
-                if ( (LA26_2==EOF||(LA26_2>=RULE_ID && LA26_2<=RULE_INT)||LA26_2==RULE_COLON||LA26_2==16||(LA26_2>=18 && LA26_2<=19)||LA26_2==23) ) {
+                if ( (LA26_2==17) ) {
+                    int LA26_4 = input.LA(3);
+
+                    if ( (LA26_4==RULE_ID||LA26_4==RULE_STRING||LA26_4==RULE_COLON||(LA26_4>=17 && LA26_4<=19)) ) {
+                        alt26=1;
+                    }
+                }
+                else if ( (LA26_2==EOF||(LA26_2>=RULE_ID && LA26_2<=RULE_INT)||LA26_2==RULE_COLON||LA26_2==16||(LA26_2>=18 && LA26_2<=19)||LA26_2==23) ) {
                     alt26=1;
                 }
-                else if ( (LA26_2==17) ) {
-                    int LA26_4 = input.LA(3);
-
-                    if ( (LA26_4==RULE_ID||LA26_4==RULE_STRING||LA26_4==RULE_COLON||(LA26_4>=17 && LA26_4<=19)) ) {
-                        alt26=1;
-                    }
-                }
             }
             switch (alt26) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1997:2: rule__Rule__DefinitionListAssignment_3
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2094:2: rule__Rule__DefinitionListAssignment_3
                     {
-                    pushFollow(FOLLOW_rule__Rule__DefinitionListAssignment_3_in_rule__Rule__Group__3__Impl4168);
+                    pushFollow(FOLLOW_rule__Rule__DefinitionListAssignment_3_in_rule__Rule__Group__3__Impl4368);
                     rule__Rule__DefinitionListAssignment_3();
 
@@ -6821,5 +7126,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 117, rule__Rule__Group__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 123, rule__Rule__Group__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6832,5 +7137,5 @@
 
     // $ANTLR start "rule__Rule__Group__4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2007:1: rule__Rule__Group__4 : rule__Rule__Group__4__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2104:1: rule__Rule__Group__4 : rule__Rule__Group__4__Impl ;
     public final void rule__Rule__Group__4() throws RecognitionException {
         int rule__Rule__Group__4_StartIndex = input.index();
@@ -6839,9 +7144,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 118) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2011:1: ( rule__Rule__Group__4__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2012:2: rule__Rule__Group__4__Impl
-            {
-            pushFollow(FOLLOW_rule__Rule__Group__4__Impl_in_rule__Rule__Group__44199);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 124) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2108:1: ( rule__Rule__Group__4__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2109:2: rule__Rule__Group__4__Impl
+            {
+            pushFollow(FOLLOW_rule__Rule__Group__4__Impl_in_rule__Rule__Group__44399);
             rule__Rule__Group__4__Impl();
 
@@ -6857,5 +7162,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 118, rule__Rule__Group__4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 124, rule__Rule__Group__4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6868,5 +7173,5 @@
 
     // $ANTLR start "rule__Rule__Group__4__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2018:1: rule__Rule__Group__4__Impl : ( ( ';' )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2115:1: rule__Rule__Group__4__Impl : ( ( ';' )? ) ;
     public final void rule__Rule__Group__4__Impl() throws RecognitionException {
         int rule__Rule__Group__4__Impl_StartIndex = input.index();
@@ -6875,15 +7180,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 119) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2022:1: ( ( ( ';' )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2023:1: ( ( ';' )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2023:1: ( ( ';' )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2024:1: ( ';' )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 125) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2119:1: ( ( ( ';' )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2120:1: ( ( ';' )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2120:1: ( ( ';' )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2121:1: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getSemicolonKeyword_4()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2025:1: ( ';' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2122:1: ( ';' )?
             int alt27=2;
             int LA27_0 = input.LA(1);
@@ -6894,7 +7199,7 @@
             switch (alt27) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2026:2: ';'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2123:2: ';'
                     {
-                    match(input,23,FOLLOW_23_in_rule__Rule__Group__4__Impl4228); if (state.failed) return ;
+                    match(input,23,FOLLOW_23_in_rule__Rule__Group__4__Impl4428); if (state.failed) return ;
 
                     }
@@ -6918,5 +7223,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 119, rule__Rule__Group__4__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 125, rule__Rule__Group__4__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6929,5 +7234,5 @@
 
     // $ANTLR start "rule__Rule__Group_0__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2047:1: rule__Rule__Group_0__0 : rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2144:1: rule__Rule__Group_0__0 : rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1 ;
     public final void rule__Rule__Group_0__0() throws RecognitionException {
         int rule__Rule__Group_0__0_StartIndex = input.index();
@@ -6936,14 +7241,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 120) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2051:1: ( rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2052:2: rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1
-            {
-            pushFollow(FOLLOW_rule__Rule__Group_0__0__Impl_in_rule__Rule__Group_0__04271);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 126) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2148:1: ( rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2149:2: rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1
+            {
+            pushFollow(FOLLOW_rule__Rule__Group_0__0__Impl_in_rule__Rule__Group_0__04471);
             rule__Rule__Group_0__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Rule__Group_0__1_in_rule__Rule__Group_0__04274);
+            pushFollow(FOLLOW_rule__Rule__Group_0__1_in_rule__Rule__Group_0__04474);
             rule__Rule__Group_0__1();
 
@@ -6959,5 +7264,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 120, rule__Rule__Group_0__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 126, rule__Rule__Group_0__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -6970,5 +7275,5 @@
 
     // $ANTLR start "rule__Rule__Group_0__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2059:1: rule__Rule__Group_0__0__Impl : ( ( rule__Rule__RulenumberAssignment_0_0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2156:1: rule__Rule__Group_0__0__Impl : ( ( rule__Rule__RulenumberAssignment_0_0 ) ) ;
     public final void rule__Rule__Group_0__0__Impl() throws RecognitionException {
         int rule__Rule__Group_0__0__Impl_StartIndex = input.index();
@@ -6977,18 +7282,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 121) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2063:1: ( ( ( rule__Rule__RulenumberAssignment_0_0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2064:1: ( ( rule__Rule__RulenumberAssignment_0_0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2064:1: ( ( rule__Rule__RulenumberAssignment_0_0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2065:1: ( rule__Rule__RulenumberAssignment_0_0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 127) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2160:1: ( ( ( rule__Rule__RulenumberAssignment_0_0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2161:1: ( ( rule__Rule__RulenumberAssignment_0_0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2161:1: ( ( rule__Rule__RulenumberAssignment_0_0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2162:1: ( rule__Rule__RulenumberAssignment_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getRulenumberAssignment_0_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2066:1: ( rule__Rule__RulenumberAssignment_0_0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2066:2: rule__Rule__RulenumberAssignment_0_0
-            {
-            pushFollow(FOLLOW_rule__Rule__RulenumberAssignment_0_0_in_rule__Rule__Group_0__0__Impl4301);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2163:1: ( rule__Rule__RulenumberAssignment_0_0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2163:2: rule__Rule__RulenumberAssignment_0_0
+            {
+            pushFollow(FOLLOW_rule__Rule__RulenumberAssignment_0_0_in_rule__Rule__Group_0__0__Impl4501);
             rule__Rule__RulenumberAssignment_0_0();
 
@@ -7013,5 +7318,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 121, rule__Rule__Group_0__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 127, rule__Rule__Group_0__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7024,5 +7329,5 @@
 
     // $ANTLR start "rule__Rule__Group_0__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2076:1: rule__Rule__Group_0__1 : rule__Rule__Group_0__1__Impl rule__Rule__Group_0__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2173:1: rule__Rule__Group_0__1 : rule__Rule__Group_0__1__Impl rule__Rule__Group_0__2 ;
     public final void rule__Rule__Group_0__1() throws RecognitionException {
         int rule__Rule__Group_0__1_StartIndex = input.index();
@@ -7031,14 +7336,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 122) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2080:1: ( rule__Rule__Group_0__1__Impl rule__Rule__Group_0__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2081:2: rule__Rule__Group_0__1__Impl rule__Rule__Group_0__2
-            {
-            pushFollow(FOLLOW_rule__Rule__Group_0__1__Impl_in_rule__Rule__Group_0__14331);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 128) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2177:1: ( rule__Rule__Group_0__1__Impl rule__Rule__Group_0__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2178:2: rule__Rule__Group_0__1__Impl rule__Rule__Group_0__2
+            {
+            pushFollow(FOLLOW_rule__Rule__Group_0__1__Impl_in_rule__Rule__Group_0__14531);
             rule__Rule__Group_0__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__Rule__Group_0__2_in_rule__Rule__Group_0__14334);
+            pushFollow(FOLLOW_rule__Rule__Group_0__2_in_rule__Rule__Group_0__14534);
             rule__Rule__Group_0__2();
 
@@ -7054,5 +7359,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 122, rule__Rule__Group_0__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 128, rule__Rule__Group_0__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7065,5 +7370,5 @@
 
     // $ANTLR start "rule__Rule__Group_0__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2088:1: rule__Rule__Group_0__1__Impl : ( ( rule__Rule__RulevariantAssignment_0_1 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2185:1: rule__Rule__Group_0__1__Impl : ( ( rule__Rule__RulevariantAssignment_0_1 )? ) ;
     public final void rule__Rule__Group_0__1__Impl() throws RecognitionException {
         int rule__Rule__Group_0__1__Impl_StartIndex = input.index();
@@ -7072,15 +7377,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 123) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2092:1: ( ( ( rule__Rule__RulevariantAssignment_0_1 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2093:1: ( ( rule__Rule__RulevariantAssignment_0_1 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2093:1: ( ( rule__Rule__RulevariantAssignment_0_1 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2094:1: ( rule__Rule__RulevariantAssignment_0_1 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 129) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2189:1: ( ( ( rule__Rule__RulevariantAssignment_0_1 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2190:1: ( ( rule__Rule__RulevariantAssignment_0_1 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2190:1: ( ( rule__Rule__RulevariantAssignment_0_1 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2191:1: ( rule__Rule__RulevariantAssignment_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getRulevariantAssignment_0_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2095:1: ( rule__Rule__RulevariantAssignment_0_1 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2192:1: ( rule__Rule__RulevariantAssignment_0_1 )?
             int alt28=2;
             int LA28_0 = input.LA(1);
@@ -7091,7 +7396,7 @@
             switch (alt28) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2095:2: rule__Rule__RulevariantAssignment_0_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2192:2: rule__Rule__RulevariantAssignment_0_1
                     {
-                    pushFollow(FOLLOW_rule__Rule__RulevariantAssignment_0_1_in_rule__Rule__Group_0__1__Impl4361);
+                    pushFollow(FOLLOW_rule__Rule__RulevariantAssignment_0_1_in_rule__Rule__Group_0__1__Impl4561);
                     rule__Rule__RulevariantAssignment_0_1();
 
@@ -7119,5 +7424,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 123, rule__Rule__Group_0__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 129, rule__Rule__Group_0__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7130,5 +7435,5 @@
 
     // $ANTLR start "rule__Rule__Group_0__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2105:1: rule__Rule__Group_0__2 : rule__Rule__Group_0__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2202:1: rule__Rule__Group_0__2 : rule__Rule__Group_0__2__Impl ;
     public final void rule__Rule__Group_0__2() throws RecognitionException {
         int rule__Rule__Group_0__2_StartIndex = input.index();
@@ -7137,9 +7442,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 124) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2109:1: ( rule__Rule__Group_0__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2110:2: rule__Rule__Group_0__2__Impl
-            {
-            pushFollow(FOLLOW_rule__Rule__Group_0__2__Impl_in_rule__Rule__Group_0__24392);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 130) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2206:1: ( rule__Rule__Group_0__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2207:2: rule__Rule__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_rule__Rule__Group_0__2__Impl_in_rule__Rule__Group_0__24592);
             rule__Rule__Group_0__2__Impl();
 
@@ -7155,5 +7460,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 124, rule__Rule__Group_0__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 130, rule__Rule__Group_0__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7166,5 +7471,5 @@
 
     // $ANTLR start "rule__Rule__Group_0__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2116:1: rule__Rule__Group_0__2__Impl : ( '.' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2213:1: rule__Rule__Group_0__2__Impl : ( '.' ) ;
     public final void rule__Rule__Group_0__2__Impl() throws RecognitionException {
         int rule__Rule__Group_0__2__Impl_StartIndex = input.index();
@@ -7173,15 +7478,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 125) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2120:1: ( ( '.' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2121:1: ( '.' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2121:1: ( '.' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2122:1: '.'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 131) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2217:1: ( ( '.' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2218:1: ( '.' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2218:1: ( '.' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2219:1: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getFullStopKeyword_0_2()); 
             }
-            match(input,28,FOLLOW_28_in_rule__Rule__Group_0__2__Impl4420); if (state.failed) return ;
+            match(input,28,FOLLOW_28_in_rule__Rule__Group_0__2__Impl4620); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleAccess().getFullStopKeyword_0_2()); 
@@ -7199,5 +7504,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 125, rule__Rule__Group_0__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 131, rule__Rule__Group_0__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7210,5 +7515,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2141:1: rule__ExtRule__Group__0 : rule__ExtRule__Group__0__Impl rule__ExtRule__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2238:1: rule__ExtRule__Group__0 : rule__ExtRule__Group__0__Impl rule__ExtRule__Group__1 ;
     public final void rule__ExtRule__Group__0() throws RecognitionException {
         int rule__ExtRule__Group__0_StartIndex = input.index();
@@ -7217,14 +7522,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 126) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2145:1: ( rule__ExtRule__Group__0__Impl rule__ExtRule__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2146:2: rule__ExtRule__Group__0__Impl rule__ExtRule__Group__1
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group__0__Impl_in_rule__ExtRule__Group__04457);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 132) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2242:1: ( rule__ExtRule__Group__0__Impl rule__ExtRule__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2243:2: rule__ExtRule__Group__0__Impl rule__ExtRule__Group__1
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group__0__Impl_in_rule__ExtRule__Group__04657);
             rule__ExtRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group__1_in_rule__ExtRule__Group__04460);
+            pushFollow(FOLLOW_rule__ExtRule__Group__1_in_rule__ExtRule__Group__04660);
             rule__ExtRule__Group__1();
 
@@ -7240,5 +7545,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 126, rule__ExtRule__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 132, rule__ExtRule__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7251,5 +7556,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2153:1: rule__ExtRule__Group__0__Impl : ( ( rule__ExtRule__Group_0__0 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2250:1: rule__ExtRule__Group__0__Impl : ( ( rule__ExtRule__Group_0__0 )? ) ;
     public final void rule__ExtRule__Group__0__Impl() throws RecognitionException {
         int rule__ExtRule__Group__0__Impl_StartIndex = input.index();
@@ -7258,15 +7563,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 127) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2157:1: ( ( ( rule__ExtRule__Group_0__0 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2158:1: ( ( rule__ExtRule__Group_0__0 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2158:1: ( ( rule__ExtRule__Group_0__0 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2159:1: ( rule__ExtRule__Group_0__0 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 133) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2254:1: ( ( ( rule__ExtRule__Group_0__0 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2255:1: ( ( rule__ExtRule__Group_0__0 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2255:1: ( ( rule__ExtRule__Group_0__0 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2256:1: ( rule__ExtRule__Group_0__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getGroup_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2160:1: ( rule__ExtRule__Group_0__0 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2257:1: ( rule__ExtRule__Group_0__0 )?
             int alt29=2;
             int LA29_0 = input.LA(1);
@@ -7277,7 +7582,7 @@
             switch (alt29) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2160:2: rule__ExtRule__Group_0__0
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2257:2: rule__ExtRule__Group_0__0
                     {
-                    pushFollow(FOLLOW_rule__ExtRule__Group_0__0_in_rule__ExtRule__Group__0__Impl4487);
+                    pushFollow(FOLLOW_rule__ExtRule__Group_0__0_in_rule__ExtRule__Group__0__Impl4687);
                     rule__ExtRule__Group_0__0();
 
@@ -7305,5 +7610,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 127, rule__ExtRule__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 133, rule__ExtRule__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7316,5 +7621,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2170:1: rule__ExtRule__Group__1 : rule__ExtRule__Group__1__Impl rule__ExtRule__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2267:1: rule__ExtRule__Group__1 : rule__ExtRule__Group__1__Impl rule__ExtRule__Group__2 ;
     public final void rule__ExtRule__Group__1() throws RecognitionException {
         int rule__ExtRule__Group__1_StartIndex = input.index();
@@ -7323,14 +7628,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 128) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2174:1: ( rule__ExtRule__Group__1__Impl rule__ExtRule__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2175:2: rule__ExtRule__Group__1__Impl rule__ExtRule__Group__2
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group__1__Impl_in_rule__ExtRule__Group__14518);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 134) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2271:1: ( rule__ExtRule__Group__1__Impl rule__ExtRule__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2272:2: rule__ExtRule__Group__1__Impl rule__ExtRule__Group__2
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group__1__Impl_in_rule__ExtRule__Group__14718);
             rule__ExtRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group__2_in_rule__ExtRule__Group__14521);
+            pushFollow(FOLLOW_rule__ExtRule__Group__2_in_rule__ExtRule__Group__14721);
             rule__ExtRule__Group__2();
 
@@ -7346,5 +7651,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 128, rule__ExtRule__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 134, rule__ExtRule__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7357,5 +7662,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2182:1: rule__ExtRule__Group__1__Impl : ( ( rule__ExtRule__NameAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2279:1: rule__ExtRule__Group__1__Impl : ( ( rule__ExtRule__NameAssignment_1 ) ) ;
     public final void rule__ExtRule__Group__1__Impl() throws RecognitionException {
         int rule__ExtRule__Group__1__Impl_StartIndex = input.index();
@@ -7364,18 +7669,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 129) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2186:1: ( ( ( rule__ExtRule__NameAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2187:1: ( ( rule__ExtRule__NameAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2187:1: ( ( rule__ExtRule__NameAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2188:1: ( rule__ExtRule__NameAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 135) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2283:1: ( ( ( rule__ExtRule__NameAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2284:1: ( ( rule__ExtRule__NameAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2284:1: ( ( rule__ExtRule__NameAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2285:1: ( rule__ExtRule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getNameAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2189:1: ( rule__ExtRule__NameAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2189:2: rule__ExtRule__NameAssignment_1
-            {
-            pushFollow(FOLLOW_rule__ExtRule__NameAssignment_1_in_rule__ExtRule__Group__1__Impl4548);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2286:1: ( rule__ExtRule__NameAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2286:2: rule__ExtRule__NameAssignment_1
+            {
+            pushFollow(FOLLOW_rule__ExtRule__NameAssignment_1_in_rule__ExtRule__Group__1__Impl4748);
             rule__ExtRule__NameAssignment_1();
 
@@ -7400,5 +7705,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 129, rule__ExtRule__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 135, rule__ExtRule__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7411,5 +7716,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2199:1: rule__ExtRule__Group__2 : rule__ExtRule__Group__2__Impl rule__ExtRule__Group__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2296:1: rule__ExtRule__Group__2 : rule__ExtRule__Group__2__Impl rule__ExtRule__Group__3 ;
     public final void rule__ExtRule__Group__2() throws RecognitionException {
         int rule__ExtRule__Group__2_StartIndex = input.index();
@@ -7418,14 +7723,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 130) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2203:1: ( rule__ExtRule__Group__2__Impl rule__ExtRule__Group__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2204:2: rule__ExtRule__Group__2__Impl rule__ExtRule__Group__3
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group__2__Impl_in_rule__ExtRule__Group__24578);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 136) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2300:1: ( rule__ExtRule__Group__2__Impl rule__ExtRule__Group__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2301:2: rule__ExtRule__Group__2__Impl rule__ExtRule__Group__3
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group__2__Impl_in_rule__ExtRule__Group__24778);
             rule__ExtRule__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group__3_in_rule__ExtRule__Group__24581);
+            pushFollow(FOLLOW_rule__ExtRule__Group__3_in_rule__ExtRule__Group__24781);
             rule__ExtRule__Group__3();
 
@@ -7441,5 +7746,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 130, rule__ExtRule__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 136, rule__ExtRule__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7452,5 +7757,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2211:1: rule__ExtRule__Group__2__Impl : ( ( rule__ExtRule__Group_2__0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2308:1: rule__ExtRule__Group__2__Impl : ( ( rule__ExtRule__Group_2__0 ) ) ;
     public final void rule__ExtRule__Group__2__Impl() throws RecognitionException {
         int rule__ExtRule__Group__2__Impl_StartIndex = input.index();
@@ -7459,18 +7764,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 131) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2215:1: ( ( ( rule__ExtRule__Group_2__0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2216:1: ( ( rule__ExtRule__Group_2__0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2216:1: ( ( rule__ExtRule__Group_2__0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2217:1: ( rule__ExtRule__Group_2__0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 137) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2312:1: ( ( ( rule__ExtRule__Group_2__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2313:1: ( ( rule__ExtRule__Group_2__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2313:1: ( ( rule__ExtRule__Group_2__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2314:1: ( rule__ExtRule__Group_2__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getGroup_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2218:1: ( rule__ExtRule__Group_2__0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2218:2: rule__ExtRule__Group_2__0
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group_2__0_in_rule__ExtRule__Group__2__Impl4608);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2315:1: ( rule__ExtRule__Group_2__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2315:2: rule__ExtRule__Group_2__0
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group_2__0_in_rule__ExtRule__Group__2__Impl4808);
             rule__ExtRule__Group_2__0();
 
@@ -7495,5 +7800,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 131, rule__ExtRule__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 137, rule__ExtRule__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7506,5 +7811,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2228:1: rule__ExtRule__Group__3 : rule__ExtRule__Group__3__Impl rule__ExtRule__Group__4 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2325:1: rule__ExtRule__Group__3 : rule__ExtRule__Group__3__Impl rule__ExtRule__Group__4 ;
     public final void rule__ExtRule__Group__3() throws RecognitionException {
         int rule__ExtRule__Group__3_StartIndex = input.index();
@@ -7513,14 +7818,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 132) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2232:1: ( rule__ExtRule__Group__3__Impl rule__ExtRule__Group__4 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2233:2: rule__ExtRule__Group__3__Impl rule__ExtRule__Group__4
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group__3__Impl_in_rule__ExtRule__Group__34638);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 138) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2329:1: ( rule__ExtRule__Group__3__Impl rule__ExtRule__Group__4 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2330:2: rule__ExtRule__Group__3__Impl rule__ExtRule__Group__4
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group__3__Impl_in_rule__ExtRule__Group__34838);
             rule__ExtRule__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group__4_in_rule__ExtRule__Group__34641);
+            pushFollow(FOLLOW_rule__ExtRule__Group__4_in_rule__ExtRule__Group__34841);
             rule__ExtRule__Group__4();
 
@@ -7536,5 +7841,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 132, rule__ExtRule__Group__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 138, rule__ExtRule__Group__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7547,5 +7852,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2240:1: rule__ExtRule__Group__3__Impl : ( '<-' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2337:1: rule__ExtRule__Group__3__Impl : ( '<-' ) ;
     public final void rule__ExtRule__Group__3__Impl() throws RecognitionException {
         int rule__ExtRule__Group__3__Impl_StartIndex = input.index();
@@ -7554,15 +7859,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 133) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2244:1: ( ( '<-' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2245:1: ( '<-' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2245:1: ( '<-' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2246:1: '<-'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 139) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2341:1: ( ( '<-' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2342:1: ( '<-' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2342:1: ( '<-' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2343:1: '<-'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getLessThanSignHyphenMinusKeyword_3()); 
             }
-            match(input,29,FOLLOW_29_in_rule__ExtRule__Group__3__Impl4669); if (state.failed) return ;
+            match(input,29,FOLLOW_29_in_rule__ExtRule__Group__3__Impl4869); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getLessThanSignHyphenMinusKeyword_3()); 
@@ -7580,5 +7885,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 133, rule__ExtRule__Group__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 139, rule__ExtRule__Group__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7591,5 +7896,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2259:1: rule__ExtRule__Group__4 : rule__ExtRule__Group__4__Impl rule__ExtRule__Group__5 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2356:1: rule__ExtRule__Group__4 : rule__ExtRule__Group__4__Impl rule__ExtRule__Group__5 ;
     public final void rule__ExtRule__Group__4() throws RecognitionException {
         int rule__ExtRule__Group__4_StartIndex = input.index();
@@ -7598,14 +7903,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 134) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2263:1: ( rule__ExtRule__Group__4__Impl rule__ExtRule__Group__5 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2264:2: rule__ExtRule__Group__4__Impl rule__ExtRule__Group__5
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group__4__Impl_in_rule__ExtRule__Group__44700);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 140) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2360:1: ( rule__ExtRule__Group__4__Impl rule__ExtRule__Group__5 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2361:2: rule__ExtRule__Group__4__Impl rule__ExtRule__Group__5
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group__4__Impl_in_rule__ExtRule__Group__44900);
             rule__ExtRule__Group__4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group__5_in_rule__ExtRule__Group__44703);
+            pushFollow(FOLLOW_rule__ExtRule__Group__5_in_rule__ExtRule__Group__44903);
             rule__ExtRule__Group__5();
 
@@ -7621,5 +7926,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 134, rule__ExtRule__Group__4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 140, rule__ExtRule__Group__4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7632,5 +7937,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__4__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2271:1: rule__ExtRule__Group__4__Impl : ( ( rule__ExtRule__Alternatives_4 )* ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2368:1: rule__ExtRule__Group__4__Impl : ( ( rule__ExtRule__Alternatives_4 )* ) ;
     public final void rule__ExtRule__Group__4__Impl() throws RecognitionException {
         int rule__ExtRule__Group__4__Impl_StartIndex = input.index();
@@ -7639,15 +7944,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 135) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2275:1: ( ( ( rule__ExtRule__Alternatives_4 )* ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2276:1: ( ( rule__ExtRule__Alternatives_4 )* )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2276:1: ( ( rule__ExtRule__Alternatives_4 )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2277:1: ( rule__ExtRule__Alternatives_4 )*
+            if ( state.backtracking>0 && alreadyParsedRule(input, 141) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2372:1: ( ( ( rule__ExtRule__Alternatives_4 )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2373:1: ( ( rule__ExtRule__Alternatives_4 )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2373:1: ( ( rule__ExtRule__Alternatives_4 )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2374:1: ( rule__ExtRule__Alternatives_4 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getAlternatives_4()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2278:1: ( rule__ExtRule__Alternatives_4 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2375:1: ( rule__ExtRule__Alternatives_4 )*
             loop30:
             do {
@@ -7658,5 +7963,5 @@
                     int LA30_2 = input.LA(2);
 
-                    if ( (LA30_2==EOF||(LA30_2>=RULE_ID && LA30_2<=RULE_INT)||LA30_2==RULE_COLON||(LA30_2>=13 && LA30_2<=16)||(LA30_2>=18 && LA30_2<=21)||LA30_2==23) ) {
+                    if ( (LA30_2==EOF||(LA30_2>=RULE_ID && LA30_2<=RULE_SECTIONHEADER)||(LA30_2>=RULE_STRING && LA30_2<=RULE_INT)||LA30_2==RULE_COLON||(LA30_2>=13 && LA30_2<=16)||(LA30_2>=18 && LA30_2<=21)||LA30_2==23) ) {
                         alt30=1;
                     }
@@ -7664,8 +7969,5 @@
                         int LA30_4 = input.LA(3);
 
-                        if ( (LA30_4==EOF||(LA30_4>=RULE_ID && LA30_4<=RULE_STRING)||LA30_4==RULE_COLON||(LA30_4>=13 && LA30_4<=21)||LA30_4==23) ) {
-                            alt30=1;
-                        }
-                        else if ( (LA30_4==RULE_INT) ) {
+                        if ( (LA30_4==RULE_INT) ) {
                             int LA30_5 = input.LA(4);
 
@@ -7675,4 +7977,7 @@
 
 
+                        }
+                        else if ( (LA30_4==EOF||(LA30_4>=RULE_ID && LA30_4<=RULE_SECTIONHEADER)||LA30_4==RULE_STRING||LA30_4==RULE_COLON||(LA30_4>=13 && LA30_4<=21)||LA30_4==23) ) {
+                            alt30=1;
                         }
 
@@ -7689,7 +7994,7 @@
                 switch (alt30) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2278:2: rule__ExtRule__Alternatives_4
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2375:2: rule__ExtRule__Alternatives_4
             	    {
-            	    pushFollow(FOLLOW_rule__ExtRule__Alternatives_4_in_rule__ExtRule__Group__4__Impl4730);
+            	    pushFollow(FOLLOW_rule__ExtRule__Alternatives_4_in_rule__ExtRule__Group__4__Impl4930);
             	    rule__ExtRule__Alternatives_4();
 
@@ -7720,5 +8025,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 135, rule__ExtRule__Group__4__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 141, rule__ExtRule__Group__4__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7731,5 +8036,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__5"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2288:1: rule__ExtRule__Group__5 : rule__ExtRule__Group__5__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2385:1: rule__ExtRule__Group__5 : rule__ExtRule__Group__5__Impl ;
     public final void rule__ExtRule__Group__5() throws RecognitionException {
         int rule__ExtRule__Group__5_StartIndex = input.index();
@@ -7738,9 +8043,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 136) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2292:1: ( rule__ExtRule__Group__5__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2293:2: rule__ExtRule__Group__5__Impl
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group__5__Impl_in_rule__ExtRule__Group__54761);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 142) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2389:1: ( rule__ExtRule__Group__5__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2390:2: rule__ExtRule__Group__5__Impl
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group__5__Impl_in_rule__ExtRule__Group__54961);
             rule__ExtRule__Group__5__Impl();
 
@@ -7756,5 +8061,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 136, rule__ExtRule__Group__5_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 142, rule__ExtRule__Group__5_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7767,5 +8072,5 @@
 
     // $ANTLR start "rule__ExtRule__Group__5__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2299:1: rule__ExtRule__Group__5__Impl : ( ( ';' )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2396:1: rule__ExtRule__Group__5__Impl : ( ( ';' )? ) ;
     public final void rule__ExtRule__Group__5__Impl() throws RecognitionException {
         int rule__ExtRule__Group__5__Impl_StartIndex = input.index();
@@ -7774,15 +8079,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 137) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2303:1: ( ( ( ';' )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2304:1: ( ( ';' )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2304:1: ( ( ';' )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2305:1: ( ';' )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 143) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2400:1: ( ( ( ';' )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2401:1: ( ( ';' )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2401:1: ( ( ';' )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2402:1: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getSemicolonKeyword_5()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2306:1: ( ';' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2403:1: ( ';' )?
             int alt31=2;
             int LA31_0 = input.LA(1);
@@ -7793,7 +8098,7 @@
             switch (alt31) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2307:2: ';'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2404:2: ';'
                     {
-                    match(input,23,FOLLOW_23_in_rule__ExtRule__Group__5__Impl4790); if (state.failed) return ;
+                    match(input,23,FOLLOW_23_in_rule__ExtRule__Group__5__Impl4990); if (state.failed) return ;
 
                     }
@@ -7817,5 +8122,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 137, rule__ExtRule__Group__5__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 143, rule__ExtRule__Group__5__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7828,5 +8133,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_0__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2330:1: rule__ExtRule__Group_0__0 : rule__ExtRule__Group_0__0__Impl rule__ExtRule__Group_0__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2427:1: rule__ExtRule__Group_0__0 : rule__ExtRule__Group_0__0__Impl rule__ExtRule__Group_0__1 ;
     public final void rule__ExtRule__Group_0__0() throws RecognitionException {
         int rule__ExtRule__Group_0__0_StartIndex = input.index();
@@ -7835,14 +8140,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 138) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2334:1: ( rule__ExtRule__Group_0__0__Impl rule__ExtRule__Group_0__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2335:2: rule__ExtRule__Group_0__0__Impl rule__ExtRule__Group_0__1
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group_0__0__Impl_in_rule__ExtRule__Group_0__04835);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 144) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2431:1: ( rule__ExtRule__Group_0__0__Impl rule__ExtRule__Group_0__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2432:2: rule__ExtRule__Group_0__0__Impl rule__ExtRule__Group_0__1
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group_0__0__Impl_in_rule__ExtRule__Group_0__05035);
             rule__ExtRule__Group_0__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group_0__1_in_rule__ExtRule__Group_0__04838);
+            pushFollow(FOLLOW_rule__ExtRule__Group_0__1_in_rule__ExtRule__Group_0__05038);
             rule__ExtRule__Group_0__1();
 
@@ -7858,5 +8163,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 138, rule__ExtRule__Group_0__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 144, rule__ExtRule__Group_0__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7869,5 +8174,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_0__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2342:1: rule__ExtRule__Group_0__0__Impl : ( ( rule__ExtRule__RulenumberAssignment_0_0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2439:1: rule__ExtRule__Group_0__0__Impl : ( ( rule__ExtRule__RulenumberAssignment_0_0 ) ) ;
     public final void rule__ExtRule__Group_0__0__Impl() throws RecognitionException {
         int rule__ExtRule__Group_0__0__Impl_StartIndex = input.index();
@@ -7876,18 +8181,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 139) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2346:1: ( ( ( rule__ExtRule__RulenumberAssignment_0_0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2347:1: ( ( rule__ExtRule__RulenumberAssignment_0_0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2347:1: ( ( rule__ExtRule__RulenumberAssignment_0_0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2348:1: ( rule__ExtRule__RulenumberAssignment_0_0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 145) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2443:1: ( ( ( rule__ExtRule__RulenumberAssignment_0_0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2444:1: ( ( rule__ExtRule__RulenumberAssignment_0_0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2444:1: ( ( rule__ExtRule__RulenumberAssignment_0_0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2445:1: ( rule__ExtRule__RulenumberAssignment_0_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getRulenumberAssignment_0_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2349:1: ( rule__ExtRule__RulenumberAssignment_0_0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2349:2: rule__ExtRule__RulenumberAssignment_0_0
-            {
-            pushFollow(FOLLOW_rule__ExtRule__RulenumberAssignment_0_0_in_rule__ExtRule__Group_0__0__Impl4865);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2446:1: ( rule__ExtRule__RulenumberAssignment_0_0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2446:2: rule__ExtRule__RulenumberAssignment_0_0
+            {
+            pushFollow(FOLLOW_rule__ExtRule__RulenumberAssignment_0_0_in_rule__ExtRule__Group_0__0__Impl5065);
             rule__ExtRule__RulenumberAssignment_0_0();
 
@@ -7912,5 +8217,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 139, rule__ExtRule__Group_0__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 145, rule__ExtRule__Group_0__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7923,5 +8228,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_0__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2359:1: rule__ExtRule__Group_0__1 : rule__ExtRule__Group_0__1__Impl rule__ExtRule__Group_0__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2456:1: rule__ExtRule__Group_0__1 : rule__ExtRule__Group_0__1__Impl rule__ExtRule__Group_0__2 ;
     public final void rule__ExtRule__Group_0__1() throws RecognitionException {
         int rule__ExtRule__Group_0__1_StartIndex = input.index();
@@ -7930,14 +8235,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 140) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2363:1: ( rule__ExtRule__Group_0__1__Impl rule__ExtRule__Group_0__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2364:2: rule__ExtRule__Group_0__1__Impl rule__ExtRule__Group_0__2
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group_0__1__Impl_in_rule__ExtRule__Group_0__14895);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 146) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2460:1: ( rule__ExtRule__Group_0__1__Impl rule__ExtRule__Group_0__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2461:2: rule__ExtRule__Group_0__1__Impl rule__ExtRule__Group_0__2
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group_0__1__Impl_in_rule__ExtRule__Group_0__15095);
             rule__ExtRule__Group_0__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group_0__2_in_rule__ExtRule__Group_0__14898);
+            pushFollow(FOLLOW_rule__ExtRule__Group_0__2_in_rule__ExtRule__Group_0__15098);
             rule__ExtRule__Group_0__2();
 
@@ -7953,5 +8258,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 140, rule__ExtRule__Group_0__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 146, rule__ExtRule__Group_0__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -7964,5 +8269,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_0__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2371:1: rule__ExtRule__Group_0__1__Impl : ( ( rule__ExtRule__RulevariantAssignment_0_1 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2468:1: rule__ExtRule__Group_0__1__Impl : ( ( rule__ExtRule__RulevariantAssignment_0_1 )? ) ;
     public final void rule__ExtRule__Group_0__1__Impl() throws RecognitionException {
         int rule__ExtRule__Group_0__1__Impl_StartIndex = input.index();
@@ -7971,15 +8276,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 141) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2375:1: ( ( ( rule__ExtRule__RulevariantAssignment_0_1 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2376:1: ( ( rule__ExtRule__RulevariantAssignment_0_1 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2376:1: ( ( rule__ExtRule__RulevariantAssignment_0_1 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2377:1: ( rule__ExtRule__RulevariantAssignment_0_1 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 147) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2472:1: ( ( ( rule__ExtRule__RulevariantAssignment_0_1 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2473:1: ( ( rule__ExtRule__RulevariantAssignment_0_1 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2473:1: ( ( rule__ExtRule__RulevariantAssignment_0_1 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2474:1: ( rule__ExtRule__RulevariantAssignment_0_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getRulevariantAssignment_0_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2378:1: ( rule__ExtRule__RulevariantAssignment_0_1 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2475:1: ( rule__ExtRule__RulevariantAssignment_0_1 )?
             int alt32=2;
             int LA32_0 = input.LA(1);
@@ -7990,7 +8295,7 @@
             switch (alt32) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2378:2: rule__ExtRule__RulevariantAssignment_0_1
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2475:2: rule__ExtRule__RulevariantAssignment_0_1
                     {
-                    pushFollow(FOLLOW_rule__ExtRule__RulevariantAssignment_0_1_in_rule__ExtRule__Group_0__1__Impl4925);
+                    pushFollow(FOLLOW_rule__ExtRule__RulevariantAssignment_0_1_in_rule__ExtRule__Group_0__1__Impl5125);
                     rule__ExtRule__RulevariantAssignment_0_1();
 
@@ -8018,5 +8323,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 141, rule__ExtRule__Group_0__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 147, rule__ExtRule__Group_0__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8029,5 +8334,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_0__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2388:1: rule__ExtRule__Group_0__2 : rule__ExtRule__Group_0__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2485:1: rule__ExtRule__Group_0__2 : rule__ExtRule__Group_0__2__Impl ;
     public final void rule__ExtRule__Group_0__2() throws RecognitionException {
         int rule__ExtRule__Group_0__2_StartIndex = input.index();
@@ -8036,9 +8341,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 142) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2392:1: ( rule__ExtRule__Group_0__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2393:2: rule__ExtRule__Group_0__2__Impl
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group_0__2__Impl_in_rule__ExtRule__Group_0__24956);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 148) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2489:1: ( rule__ExtRule__Group_0__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2490:2: rule__ExtRule__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group_0__2__Impl_in_rule__ExtRule__Group_0__25156);
             rule__ExtRule__Group_0__2__Impl();
 
@@ -8054,5 +8359,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 142, rule__ExtRule__Group_0__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 148, rule__ExtRule__Group_0__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8065,5 +8370,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_0__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2399:1: rule__ExtRule__Group_0__2__Impl : ( '.' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2496:1: rule__ExtRule__Group_0__2__Impl : ( '.' ) ;
     public final void rule__ExtRule__Group_0__2__Impl() throws RecognitionException {
         int rule__ExtRule__Group_0__2__Impl_StartIndex = input.index();
@@ -8072,15 +8377,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 143) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2403:1: ( ( '.' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2404:1: ( '.' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2404:1: ( '.' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2405:1: '.'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 149) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2500:1: ( ( '.' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2501:1: ( '.' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2501:1: ( '.' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2502:1: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getFullStopKeyword_0_2()); 
             }
-            match(input,28,FOLLOW_28_in_rule__ExtRule__Group_0__2__Impl4984); if (state.failed) return ;
+            match(input,28,FOLLOW_28_in_rule__ExtRule__Group_0__2__Impl5184); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getFullStopKeyword_0_2()); 
@@ -8098,5 +8403,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 143, rule__ExtRule__Group_0__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 149, rule__ExtRule__Group_0__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8109,5 +8414,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_2__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2424:1: rule__ExtRule__Group_2__0 : rule__ExtRule__Group_2__0__Impl rule__ExtRule__Group_2__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2521:1: rule__ExtRule__Group_2__0 : rule__ExtRule__Group_2__0__Impl rule__ExtRule__Group_2__1 ;
     public final void rule__ExtRule__Group_2__0() throws RecognitionException {
         int rule__ExtRule__Group_2__0_StartIndex = input.index();
@@ -8116,14 +8421,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 144) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2428:1: ( rule__ExtRule__Group_2__0__Impl rule__ExtRule__Group_2__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2429:2: rule__ExtRule__Group_2__0__Impl rule__ExtRule__Group_2__1
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group_2__0__Impl_in_rule__ExtRule__Group_2__05021);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 150) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2525:1: ( rule__ExtRule__Group_2__0__Impl rule__ExtRule__Group_2__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2526:2: rule__ExtRule__Group_2__0__Impl rule__ExtRule__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group_2__0__Impl_in_rule__ExtRule__Group_2__05221);
             rule__ExtRule__Group_2__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group_2__1_in_rule__ExtRule__Group_2__05024);
+            pushFollow(FOLLOW_rule__ExtRule__Group_2__1_in_rule__ExtRule__Group_2__05224);
             rule__ExtRule__Group_2__1();
 
@@ -8139,5 +8444,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 144, rule__ExtRule__Group_2__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 150, rule__ExtRule__Group_2__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8150,5 +8455,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_2__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2436:1: rule__ExtRule__Group_2__0__Impl : ( '(' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2533:1: rule__ExtRule__Group_2__0__Impl : ( '(' ) ;
     public final void rule__ExtRule__Group_2__0__Impl() throws RecognitionException {
         int rule__ExtRule__Group_2__0__Impl_StartIndex = input.index();
@@ -8157,15 +8462,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 145) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2440:1: ( ( '(' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2441:1: ( '(' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2441:1: ( '(' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2442:1: '('
+            if ( state.backtracking>0 && alreadyParsedRule(input, 151) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2537:1: ( ( '(' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2538:1: ( '(' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2538:1: ( '(' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2539:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getLeftParenthesisKeyword_2_0()); 
             }
-            match(input,17,FOLLOW_17_in_rule__ExtRule__Group_2__0__Impl5052); if (state.failed) return ;
+            match(input,17,FOLLOW_17_in_rule__ExtRule__Group_2__0__Impl5252); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getLeftParenthesisKeyword_2_0()); 
@@ -8183,5 +8488,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 145, rule__ExtRule__Group_2__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 151, rule__ExtRule__Group_2__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8194,5 +8499,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_2__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2455:1: rule__ExtRule__Group_2__1 : rule__ExtRule__Group_2__1__Impl rule__ExtRule__Group_2__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2552:1: rule__ExtRule__Group_2__1 : rule__ExtRule__Group_2__1__Impl rule__ExtRule__Group_2__2 ;
     public final void rule__ExtRule__Group_2__1() throws RecognitionException {
         int rule__ExtRule__Group_2__1_StartIndex = input.index();
@@ -8201,14 +8506,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 146) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2459:1: ( rule__ExtRule__Group_2__1__Impl rule__ExtRule__Group_2__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2460:2: rule__ExtRule__Group_2__1__Impl rule__ExtRule__Group_2__2
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group_2__1__Impl_in_rule__ExtRule__Group_2__15083);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 152) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2556:1: ( rule__ExtRule__Group_2__1__Impl rule__ExtRule__Group_2__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2557:2: rule__ExtRule__Group_2__1__Impl rule__ExtRule__Group_2__2
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group_2__1__Impl_in_rule__ExtRule__Group_2__15283);
             rule__ExtRule__Group_2__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__ExtRule__Group_2__2_in_rule__ExtRule__Group_2__15086);
+            pushFollow(FOLLOW_rule__ExtRule__Group_2__2_in_rule__ExtRule__Group_2__15286);
             rule__ExtRule__Group_2__2();
 
@@ -8224,5 +8529,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 146, rule__ExtRule__Group_2__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 152, rule__ExtRule__Group_2__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8235,5 +8540,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_2__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2467:1: rule__ExtRule__Group_2__1__Impl : ( ( rule__ExtRule__RuleextAssignment_2_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2564:1: rule__ExtRule__Group_2__1__Impl : ( ( rule__ExtRule__RuleextAssignment_2_1 ) ) ;
     public final void rule__ExtRule__Group_2__1__Impl() throws RecognitionException {
         int rule__ExtRule__Group_2__1__Impl_StartIndex = input.index();
@@ -8242,18 +8547,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 147) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2471:1: ( ( ( rule__ExtRule__RuleextAssignment_2_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2472:1: ( ( rule__ExtRule__RuleextAssignment_2_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2472:1: ( ( rule__ExtRule__RuleextAssignment_2_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2473:1: ( rule__ExtRule__RuleextAssignment_2_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 153) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2568:1: ( ( ( rule__ExtRule__RuleextAssignment_2_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2569:1: ( ( rule__ExtRule__RuleextAssignment_2_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2569:1: ( ( rule__ExtRule__RuleextAssignment_2_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2570:1: ( rule__ExtRule__RuleextAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getRuleextAssignment_2_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2474:1: ( rule__ExtRule__RuleextAssignment_2_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2474:2: rule__ExtRule__RuleextAssignment_2_1
-            {
-            pushFollow(FOLLOW_rule__ExtRule__RuleextAssignment_2_1_in_rule__ExtRule__Group_2__1__Impl5113);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2571:1: ( rule__ExtRule__RuleextAssignment_2_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2571:2: rule__ExtRule__RuleextAssignment_2_1
+            {
+            pushFollow(FOLLOW_rule__ExtRule__RuleextAssignment_2_1_in_rule__ExtRule__Group_2__1__Impl5313);
             rule__ExtRule__RuleextAssignment_2_1();
 
@@ -8278,5 +8583,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 147, rule__ExtRule__Group_2__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 153, rule__ExtRule__Group_2__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8289,5 +8594,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_2__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2484:1: rule__ExtRule__Group_2__2 : rule__ExtRule__Group_2__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2581:1: rule__ExtRule__Group_2__2 : rule__ExtRule__Group_2__2__Impl ;
     public final void rule__ExtRule__Group_2__2() throws RecognitionException {
         int rule__ExtRule__Group_2__2_StartIndex = input.index();
@@ -8296,9 +8601,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 148) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2488:1: ( rule__ExtRule__Group_2__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2489:2: rule__ExtRule__Group_2__2__Impl
-            {
-            pushFollow(FOLLOW_rule__ExtRule__Group_2__2__Impl_in_rule__ExtRule__Group_2__25143);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 154) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2585:1: ( rule__ExtRule__Group_2__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2586:2: rule__ExtRule__Group_2__2__Impl
+            {
+            pushFollow(FOLLOW_rule__ExtRule__Group_2__2__Impl_in_rule__ExtRule__Group_2__25343);
             rule__ExtRule__Group_2__2__Impl();
 
@@ -8314,5 +8619,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 148, rule__ExtRule__Group_2__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 154, rule__ExtRule__Group_2__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8325,5 +8630,5 @@
 
     // $ANTLR start "rule__ExtRule__Group_2__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2495:1: rule__ExtRule__Group_2__2__Impl : ( ')' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2592:1: rule__ExtRule__Group_2__2__Impl : ( ')' ) ;
     public final void rule__ExtRule__Group_2__2__Impl() throws RecognitionException {
         int rule__ExtRule__Group_2__2__Impl_StartIndex = input.index();
@@ -8332,15 +8637,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 149) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2499:1: ( ( ')' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2500:1: ( ')' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2500:1: ( ')' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2501:1: ')'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 155) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2596:1: ( ( ')' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2597:1: ( ')' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2597:1: ( ')' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2598:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getRightParenthesisKeyword_2_2()); 
             }
-            match(input,13,FOLLOW_13_in_rule__ExtRule__Group_2__2__Impl5171); if (state.failed) return ;
+            match(input,13,FOLLOW_13_in_rule__ExtRule__Group_2__2__Impl5371); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getRightParenthesisKeyword_2_2()); 
@@ -8358,5 +8663,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 149, rule__ExtRule__Group_2__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 155, rule__ExtRule__Group_2__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8369,5 +8674,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2520:1: rule__GlobalCombinator__Group__0 : rule__GlobalCombinator__Group__0__Impl rule__GlobalCombinator__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2617:1: rule__GlobalCombinator__Group__0 : rule__GlobalCombinator__Group__0__Impl rule__GlobalCombinator__Group__1 ;
     public final void rule__GlobalCombinator__Group__0() throws RecognitionException {
         int rule__GlobalCombinator__Group__0_StartIndex = input.index();
@@ -8376,14 +8681,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 150) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2524:1: ( rule__GlobalCombinator__Group__0__Impl rule__GlobalCombinator__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2525:2: rule__GlobalCombinator__Group__0__Impl rule__GlobalCombinator__Group__1
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group__0__Impl_in_rule__GlobalCombinator__Group__05208);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 156) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2621:1: ( rule__GlobalCombinator__Group__0__Impl rule__GlobalCombinator__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2622:2: rule__GlobalCombinator__Group__0__Impl rule__GlobalCombinator__Group__1
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group__0__Impl_in_rule__GlobalCombinator__Group__05408);
             rule__GlobalCombinator__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group__1_in_rule__GlobalCombinator__Group__05211);
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group__1_in_rule__GlobalCombinator__Group__05411);
             rule__GlobalCombinator__Group__1();
 
@@ -8399,5 +8704,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 150, rule__GlobalCombinator__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 156, rule__GlobalCombinator__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8410,5 +8715,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2532:1: rule__GlobalCombinator__Group__0__Impl : ( ( rule__GlobalCombinator__Group_0__0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2629:1: rule__GlobalCombinator__Group__0__Impl : ( ( rule__GlobalCombinator__Group_0__0 ) ) ;
     public final void rule__GlobalCombinator__Group__0__Impl() throws RecognitionException {
         int rule__GlobalCombinator__Group__0__Impl_StartIndex = input.index();
@@ -8417,18 +8722,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 151) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2536:1: ( ( ( rule__GlobalCombinator__Group_0__0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2537:1: ( ( rule__GlobalCombinator__Group_0__0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2537:1: ( ( rule__GlobalCombinator__Group_0__0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2538:1: ( rule__GlobalCombinator__Group_0__0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 157) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2633:1: ( ( ( rule__GlobalCombinator__Group_0__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2634:1: ( ( rule__GlobalCombinator__Group_0__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2634:1: ( ( rule__GlobalCombinator__Group_0__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2635:1: ( rule__GlobalCombinator__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorAccess().getGroup_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2539:1: ( rule__GlobalCombinator__Group_0__0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2539:2: rule__GlobalCombinator__Group_0__0
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__0_in_rule__GlobalCombinator__Group__0__Impl5238);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2636:1: ( rule__GlobalCombinator__Group_0__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2636:2: rule__GlobalCombinator__Group_0__0
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__0_in_rule__GlobalCombinator__Group__0__Impl5438);
             rule__GlobalCombinator__Group_0__0();
 
@@ -8453,5 +8758,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 151, rule__GlobalCombinator__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 157, rule__GlobalCombinator__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8464,5 +8769,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2549:1: rule__GlobalCombinator__Group__1 : rule__GlobalCombinator__Group__1__Impl rule__GlobalCombinator__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2646:1: rule__GlobalCombinator__Group__1 : rule__GlobalCombinator__Group__1__Impl rule__GlobalCombinator__Group__2 ;
     public final void rule__GlobalCombinator__Group__1() throws RecognitionException {
         int rule__GlobalCombinator__Group__1_StartIndex = input.index();
@@ -8471,14 +8776,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 152) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2553:1: ( rule__GlobalCombinator__Group__1__Impl rule__GlobalCombinator__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2554:2: rule__GlobalCombinator__Group__1__Impl rule__GlobalCombinator__Group__2
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group__1__Impl_in_rule__GlobalCombinator__Group__15268);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 158) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2650:1: ( rule__GlobalCombinator__Group__1__Impl rule__GlobalCombinator__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2651:2: rule__GlobalCombinator__Group__1__Impl rule__GlobalCombinator__Group__2
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group__1__Impl_in_rule__GlobalCombinator__Group__15468);
             rule__GlobalCombinator__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group__2_in_rule__GlobalCombinator__Group__15271);
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group__2_in_rule__GlobalCombinator__Group__15471);
             rule__GlobalCombinator__Group__2();
 
@@ -8494,5 +8799,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 152, rule__GlobalCombinator__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 158, rule__GlobalCombinator__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8505,5 +8810,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2561:1: rule__GlobalCombinator__Group__1__Impl : ( ( rule__GlobalCombinator__LogicAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2658:1: rule__GlobalCombinator__Group__1__Impl : ( ( rule__GlobalCombinator__LogicAssignment_1 ) ) ;
     public final void rule__GlobalCombinator__Group__1__Impl() throws RecognitionException {
         int rule__GlobalCombinator__Group__1__Impl_StartIndex = input.index();
@@ -8512,18 +8817,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 153) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2565:1: ( ( ( rule__GlobalCombinator__LogicAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2566:1: ( ( rule__GlobalCombinator__LogicAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2566:1: ( ( rule__GlobalCombinator__LogicAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2567:1: ( rule__GlobalCombinator__LogicAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 159) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2662:1: ( ( ( rule__GlobalCombinator__LogicAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2663:1: ( ( rule__GlobalCombinator__LogicAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2663:1: ( ( rule__GlobalCombinator__LogicAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2664:1: ( rule__GlobalCombinator__LogicAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorAccess().getLogicAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2568:1: ( rule__GlobalCombinator__LogicAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2568:2: rule__GlobalCombinator__LogicAssignment_1
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__LogicAssignment_1_in_rule__GlobalCombinator__Group__1__Impl5298);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2665:1: ( rule__GlobalCombinator__LogicAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2665:2: rule__GlobalCombinator__LogicAssignment_1
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__LogicAssignment_1_in_rule__GlobalCombinator__Group__1__Impl5498);
             rule__GlobalCombinator__LogicAssignment_1();
 
@@ -8548,5 +8853,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 153, rule__GlobalCombinator__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 159, rule__GlobalCombinator__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8559,5 +8864,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2578:1: rule__GlobalCombinator__Group__2 : rule__GlobalCombinator__Group__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2675:1: rule__GlobalCombinator__Group__2 : rule__GlobalCombinator__Group__2__Impl ;
     public final void rule__GlobalCombinator__Group__2() throws RecognitionException {
         int rule__GlobalCombinator__Group__2_StartIndex = input.index();
@@ -8566,9 +8871,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 154) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2582:1: ( rule__GlobalCombinator__Group__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2583:2: rule__GlobalCombinator__Group__2__Impl
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group__2__Impl_in_rule__GlobalCombinator__Group__25328);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 160) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2679:1: ( rule__GlobalCombinator__Group__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2680:2: rule__GlobalCombinator__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group__2__Impl_in_rule__GlobalCombinator__Group__25528);
             rule__GlobalCombinator__Group__2__Impl();
 
@@ -8584,5 +8889,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 154, rule__GlobalCombinator__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 160, rule__GlobalCombinator__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8595,5 +8900,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2589:1: rule__GlobalCombinator__Group__2__Impl : ( ( ';' )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2686:1: rule__GlobalCombinator__Group__2__Impl : ( ( ';' )? ) ;
     public final void rule__GlobalCombinator__Group__2__Impl() throws RecognitionException {
         int rule__GlobalCombinator__Group__2__Impl_StartIndex = input.index();
@@ -8602,15 +8907,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 155) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2593:1: ( ( ( ';' )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2594:1: ( ( ';' )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2594:1: ( ( ';' )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2595:1: ( ';' )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 161) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2690:1: ( ( ( ';' )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2691:1: ( ( ';' )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2691:1: ( ( ';' )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2692:1: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorAccess().getSemicolonKeyword_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2596:1: ( ';' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2693:1: ( ';' )?
             int alt33=2;
             int LA33_0 = input.LA(1);
@@ -8621,7 +8926,7 @@
             switch (alt33) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2597:2: ';'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2694:2: ';'
                     {
-                    match(input,23,FOLLOW_23_in_rule__GlobalCombinator__Group__2__Impl5357); if (state.failed) return ;
+                    match(input,23,FOLLOW_23_in_rule__GlobalCombinator__Group__2__Impl5557); if (state.failed) return ;
 
                     }
@@ -8645,5 +8950,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 155, rule__GlobalCombinator__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 161, rule__GlobalCombinator__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8656,5 +8961,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group_0__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2614:1: rule__GlobalCombinator__Group_0__0 : rule__GlobalCombinator__Group_0__0__Impl rule__GlobalCombinator__Group_0__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2711:1: rule__GlobalCombinator__Group_0__0 : rule__GlobalCombinator__Group_0__0__Impl rule__GlobalCombinator__Group_0__1 ;
     public final void rule__GlobalCombinator__Group_0__0() throws RecognitionException {
         int rule__GlobalCombinator__Group_0__0_StartIndex = input.index();
@@ -8663,14 +8968,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 156) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2618:1: ( rule__GlobalCombinator__Group_0__0__Impl rule__GlobalCombinator__Group_0__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2619:2: rule__GlobalCombinator__Group_0__0__Impl rule__GlobalCombinator__Group_0__1
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__0__Impl_in_rule__GlobalCombinator__Group_0__05396);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 162) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2715:1: ( rule__GlobalCombinator__Group_0__0__Impl rule__GlobalCombinator__Group_0__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2716:2: rule__GlobalCombinator__Group_0__0__Impl rule__GlobalCombinator__Group_0__1
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__0__Impl_in_rule__GlobalCombinator__Group_0__05596);
             rule__GlobalCombinator__Group_0__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__1_in_rule__GlobalCombinator__Group_0__05399);
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__1_in_rule__GlobalCombinator__Group_0__05599);
             rule__GlobalCombinator__Group_0__1();
 
@@ -8686,5 +8991,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 156, rule__GlobalCombinator__Group_0__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 162, rule__GlobalCombinator__Group_0__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8697,5 +9002,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group_0__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2626:1: rule__GlobalCombinator__Group_0__0__Impl : ( 'global' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2723:1: rule__GlobalCombinator__Group_0__0__Impl : ( 'global' ) ;
     public final void rule__GlobalCombinator__Group_0__0__Impl() throws RecognitionException {
         int rule__GlobalCombinator__Group_0__0__Impl_StartIndex = input.index();
@@ -8704,15 +9009,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 157) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2630:1: ( ( 'global' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2631:1: ( 'global' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2631:1: ( 'global' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2632:1: 'global'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 163) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2727:1: ( ( 'global' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2728:1: ( 'global' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2728:1: ( 'global' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2729:1: 'global'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorAccess().getGlobalKeyword_0_0()); 
             }
-            match(input,30,FOLLOW_30_in_rule__GlobalCombinator__Group_0__0__Impl5427); if (state.failed) return ;
+            match(input,30,FOLLOW_30_in_rule__GlobalCombinator__Group_0__0__Impl5627); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getGlobalCombinatorAccess().getGlobalKeyword_0_0()); 
@@ -8730,5 +9035,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 157, rule__GlobalCombinator__Group_0__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 163, rule__GlobalCombinator__Group_0__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8741,5 +9046,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group_0__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2645:1: rule__GlobalCombinator__Group_0__1 : rule__GlobalCombinator__Group_0__1__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2742:1: rule__GlobalCombinator__Group_0__1 : rule__GlobalCombinator__Group_0__1__Impl ;
     public final void rule__GlobalCombinator__Group_0__1() throws RecognitionException {
         int rule__GlobalCombinator__Group_0__1_StartIndex = input.index();
@@ -8748,9 +9053,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 158) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2649:1: ( rule__GlobalCombinator__Group_0__1__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2650:2: rule__GlobalCombinator__Group_0__1__Impl
-            {
-            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__1__Impl_in_rule__GlobalCombinator__Group_0__15458);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 164) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2746:1: ( rule__GlobalCombinator__Group_0__1__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2747:2: rule__GlobalCombinator__Group_0__1__Impl
+            {
+            pushFollow(FOLLOW_rule__GlobalCombinator__Group_0__1__Impl_in_rule__GlobalCombinator__Group_0__15658);
             rule__GlobalCombinator__Group_0__1__Impl();
 
@@ -8766,5 +9071,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 158, rule__GlobalCombinator__Group_0__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 164, rule__GlobalCombinator__Group_0__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8777,5 +9082,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__Group_0__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2656:1: rule__GlobalCombinator__Group_0__1__Impl : ( 'combinator:' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2753:1: rule__GlobalCombinator__Group_0__1__Impl : ( 'combinator:' ) ;
     public final void rule__GlobalCombinator__Group_0__1__Impl() throws RecognitionException {
         int rule__GlobalCombinator__Group_0__1__Impl_StartIndex = input.index();
@@ -8784,15 +9089,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 159) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2660:1: ( ( 'combinator:' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2661:1: ( 'combinator:' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2661:1: ( 'combinator:' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2662:1: 'combinator:'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 165) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2757:1: ( ( 'combinator:' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2758:1: ( 'combinator:' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2758:1: ( 'combinator:' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2759:1: 'combinator:'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorAccess().getCombinatorKeyword_0_1()); 
             }
-            match(input,31,FOLLOW_31_in_rule__GlobalCombinator__Group_0__1__Impl5486); if (state.failed) return ;
+            match(input,31,FOLLOW_31_in_rule__GlobalCombinator__Group_0__1__Impl5686); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getGlobalCombinatorAccess().getCombinatorKeyword_0_1()); 
@@ -8810,5 +9115,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 159, rule__GlobalCombinator__Group_0__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 165, rule__GlobalCombinator__Group_0__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8821,5 +9126,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2679:1: rule__RuleCombinator__Group__0 : rule__RuleCombinator__Group__0__Impl rule__RuleCombinator__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2776:1: rule__RuleCombinator__Group__0 : rule__RuleCombinator__Group__0__Impl rule__RuleCombinator__Group__1 ;
     public final void rule__RuleCombinator__Group__0() throws RecognitionException {
         int rule__RuleCombinator__Group__0_StartIndex = input.index();
@@ -8828,14 +9133,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 160) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2683:1: ( rule__RuleCombinator__Group__0__Impl rule__RuleCombinator__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2684:2: rule__RuleCombinator__Group__0__Impl rule__RuleCombinator__Group__1
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__0__Impl_in_rule__RuleCombinator__Group__05521);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 166) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2780:1: ( rule__RuleCombinator__Group__0__Impl rule__RuleCombinator__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2781:2: rule__RuleCombinator__Group__0__Impl rule__RuleCombinator__Group__1
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__0__Impl_in_rule__RuleCombinator__Group__05721);
             rule__RuleCombinator__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__1_in_rule__RuleCombinator__Group__05524);
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__1_in_rule__RuleCombinator__Group__05724);
             rule__RuleCombinator__Group__1();
 
@@ -8851,5 +9156,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 160, rule__RuleCombinator__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 166, rule__RuleCombinator__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8862,5 +9167,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2691:1: rule__RuleCombinator__Group__0__Impl : ( ( rule__RuleCombinator__Group_0__0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2788:1: rule__RuleCombinator__Group__0__Impl : ( ( rule__RuleCombinator__Group_0__0 ) ) ;
     public final void rule__RuleCombinator__Group__0__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group__0__Impl_StartIndex = input.index();
@@ -8869,18 +9174,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 161) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2695:1: ( ( ( rule__RuleCombinator__Group_0__0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2696:1: ( ( rule__RuleCombinator__Group_0__0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2696:1: ( ( rule__RuleCombinator__Group_0__0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2697:1: ( rule__RuleCombinator__Group_0__0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 167) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2792:1: ( ( ( rule__RuleCombinator__Group_0__0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2793:1: ( ( rule__RuleCombinator__Group_0__0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2793:1: ( ( rule__RuleCombinator__Group_0__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2794:1: ( rule__RuleCombinator__Group_0__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getGroup_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2698:1: ( rule__RuleCombinator__Group_0__0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2698:2: rule__RuleCombinator__Group_0__0
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__0_in_rule__RuleCombinator__Group__0__Impl5551);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2795:1: ( rule__RuleCombinator__Group_0__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2795:2: rule__RuleCombinator__Group_0__0
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__0_in_rule__RuleCombinator__Group__0__Impl5751);
             rule__RuleCombinator__Group_0__0();
 
@@ -8905,5 +9210,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 161, rule__RuleCombinator__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 167, rule__RuleCombinator__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8916,5 +9221,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2708:1: rule__RuleCombinator__Group__1 : rule__RuleCombinator__Group__1__Impl rule__RuleCombinator__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2805:1: rule__RuleCombinator__Group__1 : rule__RuleCombinator__Group__1__Impl rule__RuleCombinator__Group__2 ;
     public final void rule__RuleCombinator__Group__1() throws RecognitionException {
         int rule__RuleCombinator__Group__1_StartIndex = input.index();
@@ -8923,14 +9228,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 162) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2712:1: ( rule__RuleCombinator__Group__1__Impl rule__RuleCombinator__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2713:2: rule__RuleCombinator__Group__1__Impl rule__RuleCombinator__Group__2
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__1__Impl_in_rule__RuleCombinator__Group__15581);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 168) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2809:1: ( rule__RuleCombinator__Group__1__Impl rule__RuleCombinator__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2810:2: rule__RuleCombinator__Group__1__Impl rule__RuleCombinator__Group__2
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__1__Impl_in_rule__RuleCombinator__Group__15781);
             rule__RuleCombinator__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__2_in_rule__RuleCombinator__Group__15584);
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__2_in_rule__RuleCombinator__Group__15784);
             rule__RuleCombinator__Group__2();
 
@@ -8946,5 +9251,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 162, rule__RuleCombinator__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 168, rule__RuleCombinator__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -8957,5 +9262,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2720:1: rule__RuleCombinator__Group__1__Impl : ( ( rule__RuleCombinator__LogicAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2817:1: rule__RuleCombinator__Group__1__Impl : ( ( rule__RuleCombinator__LogicAssignment_1 ) ) ;
     public final void rule__RuleCombinator__Group__1__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group__1__Impl_StartIndex = input.index();
@@ -8964,18 +9269,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 163) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2724:1: ( ( ( rule__RuleCombinator__LogicAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2725:1: ( ( rule__RuleCombinator__LogicAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2725:1: ( ( rule__RuleCombinator__LogicAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2726:1: ( rule__RuleCombinator__LogicAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 169) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2821:1: ( ( ( rule__RuleCombinator__LogicAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2822:1: ( ( rule__RuleCombinator__LogicAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2822:1: ( ( rule__RuleCombinator__LogicAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2823:1: ( rule__RuleCombinator__LogicAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getLogicAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2727:1: ( rule__RuleCombinator__LogicAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2727:2: rule__RuleCombinator__LogicAssignment_1
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__LogicAssignment_1_in_rule__RuleCombinator__Group__1__Impl5611);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2824:1: ( rule__RuleCombinator__LogicAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2824:2: rule__RuleCombinator__LogicAssignment_1
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__LogicAssignment_1_in_rule__RuleCombinator__Group__1__Impl5811);
             rule__RuleCombinator__LogicAssignment_1();
 
@@ -9000,5 +9305,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 163, rule__RuleCombinator__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 169, rule__RuleCombinator__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9011,5 +9316,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2737:1: rule__RuleCombinator__Group__2 : rule__RuleCombinator__Group__2__Impl rule__RuleCombinator__Group__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2834:1: rule__RuleCombinator__Group__2 : rule__RuleCombinator__Group__2__Impl rule__RuleCombinator__Group__3 ;
     public final void rule__RuleCombinator__Group__2() throws RecognitionException {
         int rule__RuleCombinator__Group__2_StartIndex = input.index();
@@ -9018,14 +9323,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 164) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2741:1: ( rule__RuleCombinator__Group__2__Impl rule__RuleCombinator__Group__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2742:2: rule__RuleCombinator__Group__2__Impl rule__RuleCombinator__Group__3
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__2__Impl_in_rule__RuleCombinator__Group__25641);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 170) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2838:1: ( rule__RuleCombinator__Group__2__Impl rule__RuleCombinator__Group__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2839:2: rule__RuleCombinator__Group__2__Impl rule__RuleCombinator__Group__3
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__2__Impl_in_rule__RuleCombinator__Group__25841);
             rule__RuleCombinator__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__3_in_rule__RuleCombinator__Group__25644);
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__3_in_rule__RuleCombinator__Group__25844);
             rule__RuleCombinator__Group__3();
 
@@ -9041,5 +9346,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 164, rule__RuleCombinator__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 170, rule__RuleCombinator__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9052,5 +9357,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2749:1: rule__RuleCombinator__Group__2__Impl : ( ( rule__RuleCombinator__Group_2__0 )* ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2846:1: rule__RuleCombinator__Group__2__Impl : ( ( rule__RuleCombinator__Group_2__0 )* ) ;
     public final void rule__RuleCombinator__Group__2__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group__2__Impl_StartIndex = input.index();
@@ -9059,15 +9364,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 165) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2753:1: ( ( ( rule__RuleCombinator__Group_2__0 )* ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2754:1: ( ( rule__RuleCombinator__Group_2__0 )* )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2754:1: ( ( rule__RuleCombinator__Group_2__0 )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2755:1: ( rule__RuleCombinator__Group_2__0 )*
+            if ( state.backtracking>0 && alreadyParsedRule(input, 171) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2850:1: ( ( ( rule__RuleCombinator__Group_2__0 )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2851:1: ( ( rule__RuleCombinator__Group_2__0 )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2851:1: ( ( rule__RuleCombinator__Group_2__0 )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2852:1: ( rule__RuleCombinator__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getGroup_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2756:1: ( rule__RuleCombinator__Group_2__0 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2853:1: ( rule__RuleCombinator__Group_2__0 )*
             loop34:
             do {
@@ -9082,7 +9387,7 @@
                 switch (alt34) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2756:2: rule__RuleCombinator__Group_2__0
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2853:2: rule__RuleCombinator__Group_2__0
             	    {
-            	    pushFollow(FOLLOW_rule__RuleCombinator__Group_2__0_in_rule__RuleCombinator__Group__2__Impl5671);
+            	    pushFollow(FOLLOW_rule__RuleCombinator__Group_2__0_in_rule__RuleCombinator__Group__2__Impl5871);
             	    rule__RuleCombinator__Group_2__0();
 
@@ -9113,5 +9418,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 165, rule__RuleCombinator__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 171, rule__RuleCombinator__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9124,5 +9429,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2766:1: rule__RuleCombinator__Group__3 : rule__RuleCombinator__Group__3__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2863:1: rule__RuleCombinator__Group__3 : rule__RuleCombinator__Group__3__Impl ;
     public final void rule__RuleCombinator__Group__3() throws RecognitionException {
         int rule__RuleCombinator__Group__3_StartIndex = input.index();
@@ -9131,9 +9436,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 166) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2770:1: ( rule__RuleCombinator__Group__3__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2771:2: rule__RuleCombinator__Group__3__Impl
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group__3__Impl_in_rule__RuleCombinator__Group__35702);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 172) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2867:1: ( rule__RuleCombinator__Group__3__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2868:2: rule__RuleCombinator__Group__3__Impl
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group__3__Impl_in_rule__RuleCombinator__Group__35902);
             rule__RuleCombinator__Group__3__Impl();
 
@@ -9149,5 +9454,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 166, rule__RuleCombinator__Group__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 172, rule__RuleCombinator__Group__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9160,5 +9465,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2777:1: rule__RuleCombinator__Group__3__Impl : ( ( ';' )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2874:1: rule__RuleCombinator__Group__3__Impl : ( ( ';' )? ) ;
     public final void rule__RuleCombinator__Group__3__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group__3__Impl_StartIndex = input.index();
@@ -9167,15 +9472,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 167) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2781:1: ( ( ( ';' )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2782:1: ( ( ';' )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2782:1: ( ( ';' )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2783:1: ( ';' )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 173) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2878:1: ( ( ( ';' )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2879:1: ( ( ';' )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2879:1: ( ( ';' )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2880:1: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getSemicolonKeyword_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2784:1: ( ';' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2881:1: ( ';' )?
             int alt35=2;
             int LA35_0 = input.LA(1);
@@ -9186,7 +9491,7 @@
             switch (alt35) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2785:2: ';'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2882:2: ';'
                     {
-                    match(input,23,FOLLOW_23_in_rule__RuleCombinator__Group__3__Impl5731); if (state.failed) return ;
+                    match(input,23,FOLLOW_23_in_rule__RuleCombinator__Group__3__Impl5931); if (state.failed) return ;
 
                     }
@@ -9210,5 +9515,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 167, rule__RuleCombinator__Group__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 173, rule__RuleCombinator__Group__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9221,5 +9526,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_0__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2804:1: rule__RuleCombinator__Group_0__0 : rule__RuleCombinator__Group_0__0__Impl rule__RuleCombinator__Group_0__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2901:1: rule__RuleCombinator__Group_0__0 : rule__RuleCombinator__Group_0__0__Impl rule__RuleCombinator__Group_0__1 ;
     public final void rule__RuleCombinator__Group_0__0() throws RecognitionException {
         int rule__RuleCombinator__Group_0__0_StartIndex = input.index();
@@ -9228,14 +9533,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 168) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2808:1: ( rule__RuleCombinator__Group_0__0__Impl rule__RuleCombinator__Group_0__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2809:2: rule__RuleCombinator__Group_0__0__Impl rule__RuleCombinator__Group_0__1
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__0__Impl_in_rule__RuleCombinator__Group_0__05772);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 174) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2905:1: ( rule__RuleCombinator__Group_0__0__Impl rule__RuleCombinator__Group_0__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2906:2: rule__RuleCombinator__Group_0__0__Impl rule__RuleCombinator__Group_0__1
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__0__Impl_in_rule__RuleCombinator__Group_0__05972);
             rule__RuleCombinator__Group_0__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__1_in_rule__RuleCombinator__Group_0__05775);
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__1_in_rule__RuleCombinator__Group_0__05975);
             rule__RuleCombinator__Group_0__1();
 
@@ -9251,5 +9556,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 168, rule__RuleCombinator__Group_0__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 174, rule__RuleCombinator__Group_0__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9262,5 +9567,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_0__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2816:1: rule__RuleCombinator__Group_0__0__Impl : ( 'rule' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2913:1: rule__RuleCombinator__Group_0__0__Impl : ( 'rule' ) ;
     public final void rule__RuleCombinator__Group_0__0__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group_0__0__Impl_StartIndex = input.index();
@@ -9269,15 +9574,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 169) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2820:1: ( ( 'rule' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2821:1: ( 'rule' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2821:1: ( 'rule' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2822:1: 'rule'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 175) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2917:1: ( ( 'rule' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2918:1: ( 'rule' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2918:1: ( 'rule' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2919:1: 'rule'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getRuleKeyword_0_0()); 
             }
-            match(input,32,FOLLOW_32_in_rule__RuleCombinator__Group_0__0__Impl5803); if (state.failed) return ;
+            match(input,32,FOLLOW_32_in_rule__RuleCombinator__Group_0__0__Impl6003); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleCombinatorAccess().getRuleKeyword_0_0()); 
@@ -9295,5 +9600,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 169, rule__RuleCombinator__Group_0__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 175, rule__RuleCombinator__Group_0__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9306,5 +9611,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_0__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2835:1: rule__RuleCombinator__Group_0__1 : rule__RuleCombinator__Group_0__1__Impl rule__RuleCombinator__Group_0__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2932:1: rule__RuleCombinator__Group_0__1 : rule__RuleCombinator__Group_0__1__Impl rule__RuleCombinator__Group_0__2 ;
     public final void rule__RuleCombinator__Group_0__1() throws RecognitionException {
         int rule__RuleCombinator__Group_0__1_StartIndex = input.index();
@@ -9313,14 +9618,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 170) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2839:1: ( rule__RuleCombinator__Group_0__1__Impl rule__RuleCombinator__Group_0__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2840:2: rule__RuleCombinator__Group_0__1__Impl rule__RuleCombinator__Group_0__2
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__1__Impl_in_rule__RuleCombinator__Group_0__15834);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 176) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2936:1: ( rule__RuleCombinator__Group_0__1__Impl rule__RuleCombinator__Group_0__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2937:2: rule__RuleCombinator__Group_0__1__Impl rule__RuleCombinator__Group_0__2
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__1__Impl_in_rule__RuleCombinator__Group_0__16034);
             rule__RuleCombinator__Group_0__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__2_in_rule__RuleCombinator__Group_0__15837);
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__2_in_rule__RuleCombinator__Group_0__16037);
             rule__RuleCombinator__Group_0__2();
 
@@ -9336,5 +9641,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 170, rule__RuleCombinator__Group_0__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 176, rule__RuleCombinator__Group_0__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9347,5 +9652,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_0__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2847:1: rule__RuleCombinator__Group_0__1__Impl : ( 'combinator:' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2944:1: rule__RuleCombinator__Group_0__1__Impl : ( 'combinator:' ) ;
     public final void rule__RuleCombinator__Group_0__1__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group_0__1__Impl_StartIndex = input.index();
@@ -9354,15 +9659,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 171) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2851:1: ( ( 'combinator:' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2852:1: ( 'combinator:' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2852:1: ( 'combinator:' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2853:1: 'combinator:'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 177) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2948:1: ( ( 'combinator:' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2949:1: ( 'combinator:' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2949:1: ( 'combinator:' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2950:1: 'combinator:'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getCombinatorKeyword_0_1()); 
             }
-            match(input,31,FOLLOW_31_in_rule__RuleCombinator__Group_0__1__Impl5865); if (state.failed) return ;
+            match(input,31,FOLLOW_31_in_rule__RuleCombinator__Group_0__1__Impl6065); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleCombinatorAccess().getCombinatorKeyword_0_1()); 
@@ -9380,5 +9685,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 171, rule__RuleCombinator__Group_0__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 177, rule__RuleCombinator__Group_0__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9391,5 +9696,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_0__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2866:1: rule__RuleCombinator__Group_0__2 : rule__RuleCombinator__Group_0__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2963:1: rule__RuleCombinator__Group_0__2 : rule__RuleCombinator__Group_0__2__Impl ;
     public final void rule__RuleCombinator__Group_0__2() throws RecognitionException {
         int rule__RuleCombinator__Group_0__2_StartIndex = input.index();
@@ -9398,9 +9703,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 172) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2870:1: ( rule__RuleCombinator__Group_0__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2871:2: rule__RuleCombinator__Group_0__2__Impl
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__2__Impl_in_rule__RuleCombinator__Group_0__25896);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 178) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2967:1: ( rule__RuleCombinator__Group_0__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2968:2: rule__RuleCombinator__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_0__2__Impl_in_rule__RuleCombinator__Group_0__26096);
             rule__RuleCombinator__Group_0__2__Impl();
 
@@ -9416,5 +9721,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 172, rule__RuleCombinator__Group_0__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 178, rule__RuleCombinator__Group_0__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9427,5 +9732,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_0__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2877:1: rule__RuleCombinator__Group_0__2__Impl : ( ( rule__RuleCombinator__NameAssignment_0_2 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2974:1: rule__RuleCombinator__Group_0__2__Impl : ( ( rule__RuleCombinator__NameAssignment_0_2 ) ) ;
     public final void rule__RuleCombinator__Group_0__2__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group_0__2__Impl_StartIndex = input.index();
@@ -9434,18 +9739,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 173) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2881:1: ( ( ( rule__RuleCombinator__NameAssignment_0_2 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2882:1: ( ( rule__RuleCombinator__NameAssignment_0_2 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2882:1: ( ( rule__RuleCombinator__NameAssignment_0_2 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2883:1: ( rule__RuleCombinator__NameAssignment_0_2 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 179) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2978:1: ( ( ( rule__RuleCombinator__NameAssignment_0_2 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2979:1: ( ( rule__RuleCombinator__NameAssignment_0_2 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2979:1: ( ( rule__RuleCombinator__NameAssignment_0_2 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2980:1: ( rule__RuleCombinator__NameAssignment_0_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getNameAssignment_0_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2884:1: ( rule__RuleCombinator__NameAssignment_0_2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2884:2: rule__RuleCombinator__NameAssignment_0_2
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__NameAssignment_0_2_in_rule__RuleCombinator__Group_0__2__Impl5923);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2981:1: ( rule__RuleCombinator__NameAssignment_0_2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2981:2: rule__RuleCombinator__NameAssignment_0_2
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__NameAssignment_0_2_in_rule__RuleCombinator__Group_0__2__Impl6123);
             rule__RuleCombinator__NameAssignment_0_2();
 
@@ -9470,5 +9775,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 173, rule__RuleCombinator__Group_0__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 179, rule__RuleCombinator__Group_0__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9481,5 +9786,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_2__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2900:1: rule__RuleCombinator__Group_2__0 : rule__RuleCombinator__Group_2__0__Impl rule__RuleCombinator__Group_2__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2997:1: rule__RuleCombinator__Group_2__0 : rule__RuleCombinator__Group_2__0__Impl rule__RuleCombinator__Group_2__1 ;
     public final void rule__RuleCombinator__Group_2__0() throws RecognitionException {
         int rule__RuleCombinator__Group_2__0_StartIndex = input.index();
@@ -9488,14 +9793,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 174) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2904:1: ( rule__RuleCombinator__Group_2__0__Impl rule__RuleCombinator__Group_2__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2905:2: rule__RuleCombinator__Group_2__0__Impl rule__RuleCombinator__Group_2__1
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__0__Impl_in_rule__RuleCombinator__Group_2__05959);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 180) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3001:1: ( rule__RuleCombinator__Group_2__0__Impl rule__RuleCombinator__Group_2__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3002:2: rule__RuleCombinator__Group_2__0__Impl rule__RuleCombinator__Group_2__1
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__0__Impl_in_rule__RuleCombinator__Group_2__06159);
             rule__RuleCombinator__Group_2__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__1_in_rule__RuleCombinator__Group_2__05962);
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__1_in_rule__RuleCombinator__Group_2__06162);
             rule__RuleCombinator__Group_2__1();
 
@@ -9511,5 +9816,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 174, rule__RuleCombinator__Group_2__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 180, rule__RuleCombinator__Group_2__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9522,5 +9827,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_2__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2912:1: rule__RuleCombinator__Group_2__0__Impl : ( '(' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3009:1: rule__RuleCombinator__Group_2__0__Impl : ( '(' ) ;
     public final void rule__RuleCombinator__Group_2__0__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group_2__0__Impl_StartIndex = input.index();
@@ -9529,15 +9834,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 175) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2916:1: ( ( '(' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2917:1: ( '(' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2917:1: ( '(' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2918:1: '('
+            if ( state.backtracking>0 && alreadyParsedRule(input, 181) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3013:1: ( ( '(' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3014:1: ( '(' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3014:1: ( '(' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3015:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getLeftParenthesisKeyword_2_0()); 
             }
-            match(input,17,FOLLOW_17_in_rule__RuleCombinator__Group_2__0__Impl5990); if (state.failed) return ;
+            match(input,17,FOLLOW_17_in_rule__RuleCombinator__Group_2__0__Impl6190); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleCombinatorAccess().getLeftParenthesisKeyword_2_0()); 
@@ -9555,5 +9860,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 175, rule__RuleCombinator__Group_2__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 181, rule__RuleCombinator__Group_2__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9566,5 +9871,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_2__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2931:1: rule__RuleCombinator__Group_2__1 : rule__RuleCombinator__Group_2__1__Impl rule__RuleCombinator__Group_2__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3028:1: rule__RuleCombinator__Group_2__1 : rule__RuleCombinator__Group_2__1__Impl rule__RuleCombinator__Group_2__2 ;
     public final void rule__RuleCombinator__Group_2__1() throws RecognitionException {
         int rule__RuleCombinator__Group_2__1_StartIndex = input.index();
@@ -9573,14 +9878,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 176) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2935:1: ( rule__RuleCombinator__Group_2__1__Impl rule__RuleCombinator__Group_2__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2936:2: rule__RuleCombinator__Group_2__1__Impl rule__RuleCombinator__Group_2__2
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__1__Impl_in_rule__RuleCombinator__Group_2__16021);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 182) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3032:1: ( rule__RuleCombinator__Group_2__1__Impl rule__RuleCombinator__Group_2__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3033:2: rule__RuleCombinator__Group_2__1__Impl rule__RuleCombinator__Group_2__2
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__1__Impl_in_rule__RuleCombinator__Group_2__16221);
             rule__RuleCombinator__Group_2__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__2_in_rule__RuleCombinator__Group_2__16024);
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__2_in_rule__RuleCombinator__Group_2__16224);
             rule__RuleCombinator__Group_2__2();
 
@@ -9596,5 +9901,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 176, rule__RuleCombinator__Group_2__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 182, rule__RuleCombinator__Group_2__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9607,5 +9912,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_2__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2943:1: rule__RuleCombinator__Group_2__1__Impl : ( ( rule__RuleCombinator__LABELAssignment_2_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3040:1: rule__RuleCombinator__Group_2__1__Impl : ( ( rule__RuleCombinator__LABELAssignment_2_1 ) ) ;
     public final void rule__RuleCombinator__Group_2__1__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group_2__1__Impl_StartIndex = input.index();
@@ -9614,18 +9919,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 177) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2947:1: ( ( ( rule__RuleCombinator__LABELAssignment_2_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2948:1: ( ( rule__RuleCombinator__LABELAssignment_2_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2948:1: ( ( rule__RuleCombinator__LABELAssignment_2_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2949:1: ( rule__RuleCombinator__LABELAssignment_2_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 183) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3044:1: ( ( ( rule__RuleCombinator__LABELAssignment_2_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3045:1: ( ( rule__RuleCombinator__LABELAssignment_2_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3045:1: ( ( rule__RuleCombinator__LABELAssignment_2_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3046:1: ( rule__RuleCombinator__LABELAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getLABELAssignment_2_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2950:1: ( rule__RuleCombinator__LABELAssignment_2_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2950:2: rule__RuleCombinator__LABELAssignment_2_1
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__LABELAssignment_2_1_in_rule__RuleCombinator__Group_2__1__Impl6051);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3047:1: ( rule__RuleCombinator__LABELAssignment_2_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3047:2: rule__RuleCombinator__LABELAssignment_2_1
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__LABELAssignment_2_1_in_rule__RuleCombinator__Group_2__1__Impl6251);
             rule__RuleCombinator__LABELAssignment_2_1();
 
@@ -9650,5 +9955,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 177, rule__RuleCombinator__Group_2__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 183, rule__RuleCombinator__Group_2__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9661,5 +9966,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_2__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2960:1: rule__RuleCombinator__Group_2__2 : rule__RuleCombinator__Group_2__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3057:1: rule__RuleCombinator__Group_2__2 : rule__RuleCombinator__Group_2__2__Impl ;
     public final void rule__RuleCombinator__Group_2__2() throws RecognitionException {
         int rule__RuleCombinator__Group_2__2_StartIndex = input.index();
@@ -9668,9 +9973,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 178) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2964:1: ( rule__RuleCombinator__Group_2__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2965:2: rule__RuleCombinator__Group_2__2__Impl
-            {
-            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__2__Impl_in_rule__RuleCombinator__Group_2__26081);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 184) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3061:1: ( rule__RuleCombinator__Group_2__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3062:2: rule__RuleCombinator__Group_2__2__Impl
+            {
+            pushFollow(FOLLOW_rule__RuleCombinator__Group_2__2__Impl_in_rule__RuleCombinator__Group_2__26281);
             rule__RuleCombinator__Group_2__2__Impl();
 
@@ -9686,5 +9991,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 178, rule__RuleCombinator__Group_2__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 184, rule__RuleCombinator__Group_2__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9697,5 +10002,5 @@
 
     // $ANTLR start "rule__RuleCombinator__Group_2__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2971:1: rule__RuleCombinator__Group_2__2__Impl : ( ')' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3068:1: rule__RuleCombinator__Group_2__2__Impl : ( ')' ) ;
     public final void rule__RuleCombinator__Group_2__2__Impl() throws RecognitionException {
         int rule__RuleCombinator__Group_2__2__Impl_StartIndex = input.index();
@@ -9704,15 +10009,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 179) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2975:1: ( ( ')' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2976:1: ( ')' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2976:1: ( ')' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2977:1: ')'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 185) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3072:1: ( ( ')' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3073:1: ( ')' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3073:1: ( ')' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3074:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getRightParenthesisKeyword_2_2()); 
             }
-            match(input,13,FOLLOW_13_in_rule__RuleCombinator__Group_2__2__Impl6109); if (state.failed) return ;
+            match(input,13,FOLLOW_13_in_rule__RuleCombinator__Group_2__2__Impl6309); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleCombinatorAccess().getRightParenthesisKeyword_2_2()); 
@@ -9730,5 +10035,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 179, rule__RuleCombinator__Group_2__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 185, rule__RuleCombinator__Group_2__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9741,5 +10046,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:2996:1: rule__HookCombinator__Group__0 : rule__HookCombinator__Group__0__Impl rule__HookCombinator__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3093:1: rule__HookCombinator__Group__0 : rule__HookCombinator__Group__0__Impl rule__HookCombinator__Group__1 ;
     public final void rule__HookCombinator__Group__0() throws RecognitionException {
         int rule__HookCombinator__Group__0_StartIndex = input.index();
@@ -9748,14 +10053,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 180) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3000:1: ( rule__HookCombinator__Group__0__Impl rule__HookCombinator__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3001:2: rule__HookCombinator__Group__0__Impl rule__HookCombinator__Group__1
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__0__Impl_in_rule__HookCombinator__Group__06146);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 186) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3097:1: ( rule__HookCombinator__Group__0__Impl rule__HookCombinator__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3098:2: rule__HookCombinator__Group__0__Impl rule__HookCombinator__Group__1
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__0__Impl_in_rule__HookCombinator__Group__06346);
             rule__HookCombinator__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__1_in_rule__HookCombinator__Group__06149);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__1_in_rule__HookCombinator__Group__06349);
             rule__HookCombinator__Group__1();
 
@@ -9771,5 +10076,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 180, rule__HookCombinator__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 186, rule__HookCombinator__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9782,5 +10087,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3008:1: rule__HookCombinator__Group__0__Impl : ( 'hook' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3105:1: rule__HookCombinator__Group__0__Impl : ( 'hook' ) ;
     public final void rule__HookCombinator__Group__0__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__0__Impl_StartIndex = input.index();
@@ -9789,15 +10094,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 181) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3012:1: ( ( 'hook' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3013:1: ( 'hook' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3013:1: ( 'hook' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3014:1: 'hook'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 187) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3109:1: ( ( 'hook' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3110:1: ( 'hook' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3110:1: ( 'hook' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3111:1: 'hook'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getHookKeyword_0()); 
             }
-            match(input,33,FOLLOW_33_in_rule__HookCombinator__Group__0__Impl6177); if (state.failed) return ;
+            match(input,33,FOLLOW_33_in_rule__HookCombinator__Group__0__Impl6377); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getHookKeyword_0()); 
@@ -9815,5 +10120,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 181, rule__HookCombinator__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 187, rule__HookCombinator__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9826,5 +10131,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3027:1: rule__HookCombinator__Group__1 : rule__HookCombinator__Group__1__Impl rule__HookCombinator__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3124:1: rule__HookCombinator__Group__1 : rule__HookCombinator__Group__1__Impl rule__HookCombinator__Group__2 ;
     public final void rule__HookCombinator__Group__1() throws RecognitionException {
         int rule__HookCombinator__Group__1_StartIndex = input.index();
@@ -9833,14 +10138,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 182) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3031:1: ( rule__HookCombinator__Group__1__Impl rule__HookCombinator__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3032:2: rule__HookCombinator__Group__1__Impl rule__HookCombinator__Group__2
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__1__Impl_in_rule__HookCombinator__Group__16208);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 188) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3128:1: ( rule__HookCombinator__Group__1__Impl rule__HookCombinator__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3129:2: rule__HookCombinator__Group__1__Impl rule__HookCombinator__Group__2
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__1__Impl_in_rule__HookCombinator__Group__16408);
             rule__HookCombinator__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__2_in_rule__HookCombinator__Group__16211);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__2_in_rule__HookCombinator__Group__16411);
             rule__HookCombinator__Group__2();
 
@@ -9856,5 +10161,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 182, rule__HookCombinator__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 188, rule__HookCombinator__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9867,5 +10172,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3039:1: rule__HookCombinator__Group__1__Impl : ( 'combinator:' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3136:1: rule__HookCombinator__Group__1__Impl : ( 'combinator:' ) ;
     public final void rule__HookCombinator__Group__1__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__1__Impl_StartIndex = input.index();
@@ -9874,15 +10179,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 183) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3043:1: ( ( 'combinator:' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3044:1: ( 'combinator:' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3044:1: ( 'combinator:' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3045:1: 'combinator:'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 189) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3140:1: ( ( 'combinator:' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3141:1: ( 'combinator:' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3141:1: ( 'combinator:' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3142:1: 'combinator:'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getCombinatorKeyword_1()); 
             }
-            match(input,31,FOLLOW_31_in_rule__HookCombinator__Group__1__Impl6239); if (state.failed) return ;
+            match(input,31,FOLLOW_31_in_rule__HookCombinator__Group__1__Impl6439); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getCombinatorKeyword_1()); 
@@ -9900,5 +10205,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 183, rule__HookCombinator__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 189, rule__HookCombinator__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9911,5 +10216,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3058:1: rule__HookCombinator__Group__2 : rule__HookCombinator__Group__2__Impl rule__HookCombinator__Group__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3155:1: rule__HookCombinator__Group__2 : rule__HookCombinator__Group__2__Impl rule__HookCombinator__Group__3 ;
     public final void rule__HookCombinator__Group__2() throws RecognitionException {
         int rule__HookCombinator__Group__2_StartIndex = input.index();
@@ -9918,14 +10223,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 184) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3062:1: ( rule__HookCombinator__Group__2__Impl rule__HookCombinator__Group__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3063:2: rule__HookCombinator__Group__2__Impl rule__HookCombinator__Group__3
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__2__Impl_in_rule__HookCombinator__Group__26270);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 190) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3159:1: ( rule__HookCombinator__Group__2__Impl rule__HookCombinator__Group__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3160:2: rule__HookCombinator__Group__2__Impl rule__HookCombinator__Group__3
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__2__Impl_in_rule__HookCombinator__Group__26470);
             rule__HookCombinator__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__3_in_rule__HookCombinator__Group__26273);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__3_in_rule__HookCombinator__Group__26473);
             rule__HookCombinator__Group__3();
 
@@ -9941,5 +10246,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 184, rule__HookCombinator__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 190, rule__HookCombinator__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -9952,5 +10257,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3070:1: rule__HookCombinator__Group__2__Impl : ( ( rule__HookCombinator__NameAssignment_2 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3167:1: rule__HookCombinator__Group__2__Impl : ( ( rule__HookCombinator__NameAssignment_2 ) ) ;
     public final void rule__HookCombinator__Group__2__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__2__Impl_StartIndex = input.index();
@@ -9959,18 +10264,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 185) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3074:1: ( ( ( rule__HookCombinator__NameAssignment_2 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3075:1: ( ( rule__HookCombinator__NameAssignment_2 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3075:1: ( ( rule__HookCombinator__NameAssignment_2 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3076:1: ( rule__HookCombinator__NameAssignment_2 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 191) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3171:1: ( ( ( rule__HookCombinator__NameAssignment_2 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3172:1: ( ( rule__HookCombinator__NameAssignment_2 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3172:1: ( ( rule__HookCombinator__NameAssignment_2 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3173:1: ( rule__HookCombinator__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getNameAssignment_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3077:1: ( rule__HookCombinator__NameAssignment_2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3077:2: rule__HookCombinator__NameAssignment_2
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__NameAssignment_2_in_rule__HookCombinator__Group__2__Impl6300);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3174:1: ( rule__HookCombinator__NameAssignment_2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3174:2: rule__HookCombinator__NameAssignment_2
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__NameAssignment_2_in_rule__HookCombinator__Group__2__Impl6500);
             rule__HookCombinator__NameAssignment_2();
 
@@ -9995,5 +10300,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 185, rule__HookCombinator__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 191, rule__HookCombinator__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10006,5 +10311,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3087:1: rule__HookCombinator__Group__3 : rule__HookCombinator__Group__3__Impl rule__HookCombinator__Group__4 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3184:1: rule__HookCombinator__Group__3 : rule__HookCombinator__Group__3__Impl rule__HookCombinator__Group__4 ;
     public final void rule__HookCombinator__Group__3() throws RecognitionException {
         int rule__HookCombinator__Group__3_StartIndex = input.index();
@@ -10013,14 +10318,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 186) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3091:1: ( rule__HookCombinator__Group__3__Impl rule__HookCombinator__Group__4 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3092:2: rule__HookCombinator__Group__3__Impl rule__HookCombinator__Group__4
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__3__Impl_in_rule__HookCombinator__Group__36330);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 192) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3188:1: ( rule__HookCombinator__Group__3__Impl rule__HookCombinator__Group__4 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3189:2: rule__HookCombinator__Group__3__Impl rule__HookCombinator__Group__4
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__3__Impl_in_rule__HookCombinator__Group__36530);
             rule__HookCombinator__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__4_in_rule__HookCombinator__Group__36333);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__4_in_rule__HookCombinator__Group__36533);
             rule__HookCombinator__Group__4();
 
@@ -10036,5 +10341,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 186, rule__HookCombinator__Group__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 192, rule__HookCombinator__Group__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10047,5 +10352,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3099:1: rule__HookCombinator__Group__3__Impl : ( '(' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3196:1: rule__HookCombinator__Group__3__Impl : ( '(' ) ;
     public final void rule__HookCombinator__Group__3__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__3__Impl_StartIndex = input.index();
@@ -10054,15 +10359,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 187) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3103:1: ( ( '(' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3104:1: ( '(' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3104:1: ( '(' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3105:1: '('
+            if ( state.backtracking>0 && alreadyParsedRule(input, 193) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3200:1: ( ( '(' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3201:1: ( '(' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3201:1: ( '(' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3202:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getLeftParenthesisKeyword_3()); 
             }
-            match(input,17,FOLLOW_17_in_rule__HookCombinator__Group__3__Impl6361); if (state.failed) return ;
+            match(input,17,FOLLOW_17_in_rule__HookCombinator__Group__3__Impl6561); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getLeftParenthesisKeyword_3()); 
@@ -10080,5 +10385,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 187, rule__HookCombinator__Group__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 193, rule__HookCombinator__Group__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10091,5 +10396,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3118:1: rule__HookCombinator__Group__4 : rule__HookCombinator__Group__4__Impl rule__HookCombinator__Group__5 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3215:1: rule__HookCombinator__Group__4 : rule__HookCombinator__Group__4__Impl rule__HookCombinator__Group__5 ;
     public final void rule__HookCombinator__Group__4() throws RecognitionException {
         int rule__HookCombinator__Group__4_StartIndex = input.index();
@@ -10098,14 +10403,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 188) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3122:1: ( rule__HookCombinator__Group__4__Impl rule__HookCombinator__Group__5 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3123:2: rule__HookCombinator__Group__4__Impl rule__HookCombinator__Group__5
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__4__Impl_in_rule__HookCombinator__Group__46392);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 194) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3219:1: ( rule__HookCombinator__Group__4__Impl rule__HookCombinator__Group__5 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3220:2: rule__HookCombinator__Group__4__Impl rule__HookCombinator__Group__5
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__4__Impl_in_rule__HookCombinator__Group__46592);
             rule__HookCombinator__Group__4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__5_in_rule__HookCombinator__Group__46395);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__5_in_rule__HookCombinator__Group__46595);
             rule__HookCombinator__Group__5();
 
@@ -10121,5 +10426,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 188, rule__HookCombinator__Group__4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 194, rule__HookCombinator__Group__4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10132,5 +10437,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__4__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3130:1: rule__HookCombinator__Group__4__Impl : ( ( rule__HookCombinator__RuleextAssignment_4 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3227:1: rule__HookCombinator__Group__4__Impl : ( ( rule__HookCombinator__RuleextAssignment_4 ) ) ;
     public final void rule__HookCombinator__Group__4__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__4__Impl_StartIndex = input.index();
@@ -10139,18 +10444,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 189) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3134:1: ( ( ( rule__HookCombinator__RuleextAssignment_4 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3135:1: ( ( rule__HookCombinator__RuleextAssignment_4 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3135:1: ( ( rule__HookCombinator__RuleextAssignment_4 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3136:1: ( rule__HookCombinator__RuleextAssignment_4 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 195) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3231:1: ( ( ( rule__HookCombinator__RuleextAssignment_4 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3232:1: ( ( rule__HookCombinator__RuleextAssignment_4 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3232:1: ( ( rule__HookCombinator__RuleextAssignment_4 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3233:1: ( rule__HookCombinator__RuleextAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getRuleextAssignment_4()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3137:1: ( rule__HookCombinator__RuleextAssignment_4 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3137:2: rule__HookCombinator__RuleextAssignment_4
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__RuleextAssignment_4_in_rule__HookCombinator__Group__4__Impl6422);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3234:1: ( rule__HookCombinator__RuleextAssignment_4 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3234:2: rule__HookCombinator__RuleextAssignment_4
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__RuleextAssignment_4_in_rule__HookCombinator__Group__4__Impl6622);
             rule__HookCombinator__RuleextAssignment_4();
 
@@ -10175,5 +10480,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 189, rule__HookCombinator__Group__4__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 195, rule__HookCombinator__Group__4__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10186,5 +10491,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__5"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3147:1: rule__HookCombinator__Group__5 : rule__HookCombinator__Group__5__Impl rule__HookCombinator__Group__6 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3244:1: rule__HookCombinator__Group__5 : rule__HookCombinator__Group__5__Impl rule__HookCombinator__Group__6 ;
     public final void rule__HookCombinator__Group__5() throws RecognitionException {
         int rule__HookCombinator__Group__5_StartIndex = input.index();
@@ -10193,14 +10498,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 190) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3151:1: ( rule__HookCombinator__Group__5__Impl rule__HookCombinator__Group__6 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3152:2: rule__HookCombinator__Group__5__Impl rule__HookCombinator__Group__6
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__5__Impl_in_rule__HookCombinator__Group__56452);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 196) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3248:1: ( rule__HookCombinator__Group__5__Impl rule__HookCombinator__Group__6 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3249:2: rule__HookCombinator__Group__5__Impl rule__HookCombinator__Group__6
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__5__Impl_in_rule__HookCombinator__Group__56652);
             rule__HookCombinator__Group__5__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__6_in_rule__HookCombinator__Group__56455);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__6_in_rule__HookCombinator__Group__56655);
             rule__HookCombinator__Group__6();
 
@@ -10216,5 +10521,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 190, rule__HookCombinator__Group__5_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 196, rule__HookCombinator__Group__5_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10227,5 +10532,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__5__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3159:1: rule__HookCombinator__Group__5__Impl : ( ')' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3256:1: rule__HookCombinator__Group__5__Impl : ( ')' ) ;
     public final void rule__HookCombinator__Group__5__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__5__Impl_StartIndex = input.index();
@@ -10234,15 +10539,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 191) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3163:1: ( ( ')' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3164:1: ( ')' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3164:1: ( ')' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3165:1: ')'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 197) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3260:1: ( ( ')' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3261:1: ( ')' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3261:1: ( ')' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3262:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getRightParenthesisKeyword_5()); 
             }
-            match(input,13,FOLLOW_13_in_rule__HookCombinator__Group__5__Impl6483); if (state.failed) return ;
+            match(input,13,FOLLOW_13_in_rule__HookCombinator__Group__5__Impl6683); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getRightParenthesisKeyword_5()); 
@@ -10260,5 +10565,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 191, rule__HookCombinator__Group__5__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 197, rule__HookCombinator__Group__5__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10271,5 +10576,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__6"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3178:1: rule__HookCombinator__Group__6 : rule__HookCombinator__Group__6__Impl rule__HookCombinator__Group__7 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3275:1: rule__HookCombinator__Group__6 : rule__HookCombinator__Group__6__Impl rule__HookCombinator__Group__7 ;
     public final void rule__HookCombinator__Group__6() throws RecognitionException {
         int rule__HookCombinator__Group__6_StartIndex = input.index();
@@ -10278,14 +10583,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 192) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3182:1: ( rule__HookCombinator__Group__6__Impl rule__HookCombinator__Group__7 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3183:2: rule__HookCombinator__Group__6__Impl rule__HookCombinator__Group__7
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__6__Impl_in_rule__HookCombinator__Group__66514);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 198) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3279:1: ( rule__HookCombinator__Group__6__Impl rule__HookCombinator__Group__7 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3280:2: rule__HookCombinator__Group__6__Impl rule__HookCombinator__Group__7
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__6__Impl_in_rule__HookCombinator__Group__66714);
             rule__HookCombinator__Group__6__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__7_in_rule__HookCombinator__Group__66517);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__7_in_rule__HookCombinator__Group__66717);
             rule__HookCombinator__Group__7();
 
@@ -10301,5 +10606,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 192, rule__HookCombinator__Group__6_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 198, rule__HookCombinator__Group__6_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10312,5 +10617,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__6__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3190:1: rule__HookCombinator__Group__6__Impl : ( ( rule__HookCombinator__LogicAssignment_6 )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3287:1: rule__HookCombinator__Group__6__Impl : ( ( rule__HookCombinator__LogicAssignment_6 )? ) ;
     public final void rule__HookCombinator__Group__6__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__6__Impl_StartIndex = input.index();
@@ -10319,15 +10624,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 193) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3194:1: ( ( ( rule__HookCombinator__LogicAssignment_6 )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3195:1: ( ( rule__HookCombinator__LogicAssignment_6 )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3195:1: ( ( rule__HookCombinator__LogicAssignment_6 )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3196:1: ( rule__HookCombinator__LogicAssignment_6 )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 199) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3291:1: ( ( ( rule__HookCombinator__LogicAssignment_6 )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3292:1: ( ( rule__HookCombinator__LogicAssignment_6 )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3292:1: ( ( rule__HookCombinator__LogicAssignment_6 )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3293:1: ( rule__HookCombinator__LogicAssignment_6 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getLogicAssignment_6()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3197:1: ( rule__HookCombinator__LogicAssignment_6 )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3294:1: ( rule__HookCombinator__LogicAssignment_6 )?
             int alt36=2;
             int LA36_0 = input.LA(1);
@@ -10338,7 +10643,7 @@
             switch (alt36) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3197:2: rule__HookCombinator__LogicAssignment_6
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3294:2: rule__HookCombinator__LogicAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__HookCombinator__LogicAssignment_6_in_rule__HookCombinator__Group__6__Impl6544);
+                    pushFollow(FOLLOW_rule__HookCombinator__LogicAssignment_6_in_rule__HookCombinator__Group__6__Impl6744);
                     rule__HookCombinator__LogicAssignment_6();
 
@@ -10366,5 +10671,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 193, rule__HookCombinator__Group__6__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 199, rule__HookCombinator__Group__6__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10377,5 +10682,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__7"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3207:1: rule__HookCombinator__Group__7 : rule__HookCombinator__Group__7__Impl rule__HookCombinator__Group__8 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3304:1: rule__HookCombinator__Group__7 : rule__HookCombinator__Group__7__Impl rule__HookCombinator__Group__8 ;
     public final void rule__HookCombinator__Group__7() throws RecognitionException {
         int rule__HookCombinator__Group__7_StartIndex = input.index();
@@ -10384,14 +10689,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 194) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3211:1: ( rule__HookCombinator__Group__7__Impl rule__HookCombinator__Group__8 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3212:2: rule__HookCombinator__Group__7__Impl rule__HookCombinator__Group__8
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__7__Impl_in_rule__HookCombinator__Group__76575);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 200) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3308:1: ( rule__HookCombinator__Group__7__Impl rule__HookCombinator__Group__8 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3309:2: rule__HookCombinator__Group__7__Impl rule__HookCombinator__Group__8
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__7__Impl_in_rule__HookCombinator__Group__76775);
             rule__HookCombinator__Group__7__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group__8_in_rule__HookCombinator__Group__76578);
+            pushFollow(FOLLOW_rule__HookCombinator__Group__8_in_rule__HookCombinator__Group__76778);
             rule__HookCombinator__Group__8();
 
@@ -10407,5 +10712,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 194, rule__HookCombinator__Group__7_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 200, rule__HookCombinator__Group__7_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10418,5 +10723,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__7__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3219:1: rule__HookCombinator__Group__7__Impl : ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3316:1: rule__HookCombinator__Group__7__Impl : ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) ) ;
     public final void rule__HookCombinator__Group__7__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__7__Impl_StartIndex = input.index();
@@ -10425,21 +10730,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 195) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3223:1: ( ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3224:1: ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3224:1: ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3225:1: ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3225:1: ( ( rule__HookCombinator__Group_7__0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3226:1: ( rule__HookCombinator__Group_7__0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 201) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3320:1: ( ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3321:1: ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3321:1: ( ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3322:1: ( ( rule__HookCombinator__Group_7__0 ) ) ( ( rule__HookCombinator__Group_7__0 )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3322:1: ( ( rule__HookCombinator__Group_7__0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3323:1: ( rule__HookCombinator__Group_7__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getGroup_7()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3227:1: ( rule__HookCombinator__Group_7__0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3227:2: rule__HookCombinator__Group_7__0
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6607);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3324:1: ( rule__HookCombinator__Group_7__0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3324:2: rule__HookCombinator__Group_7__0
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6807);
             rule__HookCombinator__Group_7__0();
 
@@ -10455,11 +10760,11 @@
             }
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3230:1: ( ( rule__HookCombinator__Group_7__0 )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3231:1: ( rule__HookCombinator__Group_7__0 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3327:1: ( ( rule__HookCombinator__Group_7__0 )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3328:1: ( rule__HookCombinator__Group_7__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getGroup_7()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3232:1: ( rule__HookCombinator__Group_7__0 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3329:1: ( rule__HookCombinator__Group_7__0 )*
             loop37:
             do {
@@ -10474,7 +10779,7 @@
                 switch (alt37) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3232:2: rule__HookCombinator__Group_7__0
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3329:2: rule__HookCombinator__Group_7__0
             	    {
-            	    pushFollow(FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6619);
+            	    pushFollow(FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6819);
             	    rule__HookCombinator__Group_7__0();
 
@@ -10508,5 +10813,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 195, rule__HookCombinator__Group__7__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 201, rule__HookCombinator__Group__7__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10519,5 +10824,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__8"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3243:1: rule__HookCombinator__Group__8 : rule__HookCombinator__Group__8__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3340:1: rule__HookCombinator__Group__8 : rule__HookCombinator__Group__8__Impl ;
     public final void rule__HookCombinator__Group__8() throws RecognitionException {
         int rule__HookCombinator__Group__8_StartIndex = input.index();
@@ -10526,9 +10831,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 196) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3247:1: ( rule__HookCombinator__Group__8__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3248:2: rule__HookCombinator__Group__8__Impl
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group__8__Impl_in_rule__HookCombinator__Group__86652);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 202) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3344:1: ( rule__HookCombinator__Group__8__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3345:2: rule__HookCombinator__Group__8__Impl
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group__8__Impl_in_rule__HookCombinator__Group__86852);
             rule__HookCombinator__Group__8__Impl();
 
@@ -10544,5 +10849,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 196, rule__HookCombinator__Group__8_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 202, rule__HookCombinator__Group__8_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10555,5 +10860,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group__8__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3254:1: rule__HookCombinator__Group__8__Impl : ( ( ';' )? ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3351:1: rule__HookCombinator__Group__8__Impl : ( ( ';' )? ) ;
     public final void rule__HookCombinator__Group__8__Impl() throws RecognitionException {
         int rule__HookCombinator__Group__8__Impl_StartIndex = input.index();
@@ -10562,15 +10867,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 197) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3258:1: ( ( ( ';' )? ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3259:1: ( ( ';' )? )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3259:1: ( ( ';' )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3260:1: ( ';' )?
+            if ( state.backtracking>0 && alreadyParsedRule(input, 203) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3355:1: ( ( ( ';' )? ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3356:1: ( ( ';' )? )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3356:1: ( ( ';' )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3357:1: ( ';' )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getSemicolonKeyword_8()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3261:1: ( ';' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3358:1: ( ';' )?
             int alt38=2;
             int LA38_0 = input.LA(1);
@@ -10581,7 +10886,7 @@
             switch (alt38) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3262:2: ';'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3359:2: ';'
                     {
-                    match(input,23,FOLLOW_23_in_rule__HookCombinator__Group__8__Impl6681); if (state.failed) return ;
+                    match(input,23,FOLLOW_23_in_rule__HookCombinator__Group__8__Impl6881); if (state.failed) return ;
 
                     }
@@ -10605,5 +10910,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 197, rule__HookCombinator__Group__8__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 203, rule__HookCombinator__Group__8__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10616,5 +10921,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group_7__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3291:1: rule__HookCombinator__Group_7__0 : rule__HookCombinator__Group_7__0__Impl rule__HookCombinator__Group_7__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3388:1: rule__HookCombinator__Group_7__0 : rule__HookCombinator__Group_7__0__Impl rule__HookCombinator__Group_7__1 ;
     public final void rule__HookCombinator__Group_7__0() throws RecognitionException {
         int rule__HookCombinator__Group_7__0_StartIndex = input.index();
@@ -10623,14 +10928,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 198) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3295:1: ( rule__HookCombinator__Group_7__0__Impl rule__HookCombinator__Group_7__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3296:2: rule__HookCombinator__Group_7__0__Impl rule__HookCombinator__Group_7__1
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group_7__0__Impl_in_rule__HookCombinator__Group_7__06732);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 204) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3392:1: ( rule__HookCombinator__Group_7__0__Impl rule__HookCombinator__Group_7__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3393:2: rule__HookCombinator__Group_7__0__Impl rule__HookCombinator__Group_7__1
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group_7__0__Impl_in_rule__HookCombinator__Group_7__06932);
             rule__HookCombinator__Group_7__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group_7__1_in_rule__HookCombinator__Group_7__06735);
+            pushFollow(FOLLOW_rule__HookCombinator__Group_7__1_in_rule__HookCombinator__Group_7__06935);
             rule__HookCombinator__Group_7__1();
 
@@ -10646,5 +10951,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 198, rule__HookCombinator__Group_7__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 204, rule__HookCombinator__Group_7__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10657,5 +10962,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group_7__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3303:1: rule__HookCombinator__Group_7__0__Impl : ( '(' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3400:1: rule__HookCombinator__Group_7__0__Impl : ( '(' ) ;
     public final void rule__HookCombinator__Group_7__0__Impl() throws RecognitionException {
         int rule__HookCombinator__Group_7__0__Impl_StartIndex = input.index();
@@ -10664,15 +10969,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 199) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3307:1: ( ( '(' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3308:1: ( '(' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3308:1: ( '(' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3309:1: '('
+            if ( state.backtracking>0 && alreadyParsedRule(input, 205) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3404:1: ( ( '(' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3405:1: ( '(' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3405:1: ( '(' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3406:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getLeftParenthesisKeyword_7_0()); 
             }
-            match(input,17,FOLLOW_17_in_rule__HookCombinator__Group_7__0__Impl6763); if (state.failed) return ;
+            match(input,17,FOLLOW_17_in_rule__HookCombinator__Group_7__0__Impl6963); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getLeftParenthesisKeyword_7_0()); 
@@ -10690,5 +10995,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 199, rule__HookCombinator__Group_7__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 205, rule__HookCombinator__Group_7__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10701,5 +11006,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group_7__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3322:1: rule__HookCombinator__Group_7__1 : rule__HookCombinator__Group_7__1__Impl rule__HookCombinator__Group_7__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3419:1: rule__HookCombinator__Group_7__1 : rule__HookCombinator__Group_7__1__Impl rule__HookCombinator__Group_7__2 ;
     public final void rule__HookCombinator__Group_7__1() throws RecognitionException {
         int rule__HookCombinator__Group_7__1_StartIndex = input.index();
@@ -10708,14 +11013,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 200) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3326:1: ( rule__HookCombinator__Group_7__1__Impl rule__HookCombinator__Group_7__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3327:2: rule__HookCombinator__Group_7__1__Impl rule__HookCombinator__Group_7__2
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group_7__1__Impl_in_rule__HookCombinator__Group_7__16794);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 206) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3423:1: ( rule__HookCombinator__Group_7__1__Impl rule__HookCombinator__Group_7__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3424:2: rule__HookCombinator__Group_7__1__Impl rule__HookCombinator__Group_7__2
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group_7__1__Impl_in_rule__HookCombinator__Group_7__16994);
             rule__HookCombinator__Group_7__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__HookCombinator__Group_7__2_in_rule__HookCombinator__Group_7__16797);
+            pushFollow(FOLLOW_rule__HookCombinator__Group_7__2_in_rule__HookCombinator__Group_7__16997);
             rule__HookCombinator__Group_7__2();
 
@@ -10731,5 +11036,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 200, rule__HookCombinator__Group_7__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 206, rule__HookCombinator__Group_7__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10742,5 +11047,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group_7__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3334:1: rule__HookCombinator__Group_7__1__Impl : ( ( rule__HookCombinator__LABELAssignment_7_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3431:1: rule__HookCombinator__Group_7__1__Impl : ( ( rule__HookCombinator__LABELAssignment_7_1 ) ) ;
     public final void rule__HookCombinator__Group_7__1__Impl() throws RecognitionException {
         int rule__HookCombinator__Group_7__1__Impl_StartIndex = input.index();
@@ -10749,18 +11054,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 201) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3338:1: ( ( ( rule__HookCombinator__LABELAssignment_7_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3339:1: ( ( rule__HookCombinator__LABELAssignment_7_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3339:1: ( ( rule__HookCombinator__LABELAssignment_7_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3340:1: ( rule__HookCombinator__LABELAssignment_7_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 207) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3435:1: ( ( ( rule__HookCombinator__LABELAssignment_7_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3436:1: ( ( rule__HookCombinator__LABELAssignment_7_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3436:1: ( ( rule__HookCombinator__LABELAssignment_7_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3437:1: ( rule__HookCombinator__LABELAssignment_7_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getLABELAssignment_7_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3341:1: ( rule__HookCombinator__LABELAssignment_7_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3341:2: rule__HookCombinator__LABELAssignment_7_1
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__LABELAssignment_7_1_in_rule__HookCombinator__Group_7__1__Impl6824);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3438:1: ( rule__HookCombinator__LABELAssignment_7_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3438:2: rule__HookCombinator__LABELAssignment_7_1
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__LABELAssignment_7_1_in_rule__HookCombinator__Group_7__1__Impl7024);
             rule__HookCombinator__LABELAssignment_7_1();
 
@@ -10785,5 +11090,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 201, rule__HookCombinator__Group_7__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 207, rule__HookCombinator__Group_7__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10796,5 +11101,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group_7__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3351:1: rule__HookCombinator__Group_7__2 : rule__HookCombinator__Group_7__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3448:1: rule__HookCombinator__Group_7__2 : rule__HookCombinator__Group_7__2__Impl ;
     public final void rule__HookCombinator__Group_7__2() throws RecognitionException {
         int rule__HookCombinator__Group_7__2_StartIndex = input.index();
@@ -10803,9 +11108,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 202) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3355:1: ( rule__HookCombinator__Group_7__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3356:2: rule__HookCombinator__Group_7__2__Impl
-            {
-            pushFollow(FOLLOW_rule__HookCombinator__Group_7__2__Impl_in_rule__HookCombinator__Group_7__26854);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 208) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3452:1: ( rule__HookCombinator__Group_7__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3453:2: rule__HookCombinator__Group_7__2__Impl
+            {
+            pushFollow(FOLLOW_rule__HookCombinator__Group_7__2__Impl_in_rule__HookCombinator__Group_7__27054);
             rule__HookCombinator__Group_7__2__Impl();
 
@@ -10821,5 +11126,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 202, rule__HookCombinator__Group_7__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 208, rule__HookCombinator__Group_7__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10832,5 +11137,5 @@
 
     // $ANTLR start "rule__HookCombinator__Group_7__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3362:1: rule__HookCombinator__Group_7__2__Impl : ( ')' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3459:1: rule__HookCombinator__Group_7__2__Impl : ( ')' ) ;
     public final void rule__HookCombinator__Group_7__2__Impl() throws RecognitionException {
         int rule__HookCombinator__Group_7__2__Impl_StartIndex = input.index();
@@ -10839,15 +11144,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 203) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3366:1: ( ( ')' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3367:1: ( ')' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3367:1: ( ')' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3368:1: ')'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 209) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3463:1: ( ( ')' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3464:1: ( ')' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3464:1: ( ')' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3465:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getRightParenthesisKeyword_7_2()); 
             }
-            match(input,13,FOLLOW_13_in_rule__HookCombinator__Group_7__2__Impl6882); if (state.failed) return ;
+            match(input,13,FOLLOW_13_in_rule__HookCombinator__Group_7__2__Impl7082); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getRightParenthesisKeyword_7_2()); 
@@ -10865,5 +11170,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 203, rule__HookCombinator__Group_7__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 209, rule__HookCombinator__Group_7__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10876,5 +11181,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3387:1: rule__DefinitionList__Group__0 : rule__DefinitionList__Group__0__Impl rule__DefinitionList__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3484:1: rule__DefinitionList__Group__0 : rule__DefinitionList__Group__0__Impl rule__DefinitionList__Group__1 ;
     public final void rule__DefinitionList__Group__0() throws RecognitionException {
         int rule__DefinitionList__Group__0_StartIndex = input.index();
@@ -10883,14 +11188,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 204) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3391:1: ( rule__DefinitionList__Group__0__Impl rule__DefinitionList__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3392:2: rule__DefinitionList__Group__0__Impl rule__DefinitionList__Group__1
-            {
-            pushFollow(FOLLOW_rule__DefinitionList__Group__0__Impl_in_rule__DefinitionList__Group__06919);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 210) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3488:1: ( rule__DefinitionList__Group__0__Impl rule__DefinitionList__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3489:2: rule__DefinitionList__Group__0__Impl rule__DefinitionList__Group__1
+            {
+            pushFollow(FOLLOW_rule__DefinitionList__Group__0__Impl_in_rule__DefinitionList__Group__07119);
             rule__DefinitionList__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__DefinitionList__Group__1_in_rule__DefinitionList__Group__06922);
+            pushFollow(FOLLOW_rule__DefinitionList__Group__1_in_rule__DefinitionList__Group__07122);
             rule__DefinitionList__Group__1();
 
@@ -10906,5 +11211,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 204, rule__DefinitionList__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 210, rule__DefinitionList__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10917,5 +11222,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3399:1: rule__DefinitionList__Group__0__Impl : ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3496:1: rule__DefinitionList__Group__0__Impl : ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) ) ;
     public final void rule__DefinitionList__Group__0__Impl() throws RecognitionException {
         int rule__DefinitionList__Group__0__Impl_StartIndex = input.index();
@@ -10924,18 +11229,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 205) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3403:1: ( ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3404:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3404:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3405:1: ( rule__DefinitionList__SingleDefinitionAssignment_0 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 211) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3500:1: ( ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3501:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3501:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_0 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3502:1: ( rule__DefinitionList__SingleDefinitionAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListAccess().getSingleDefinitionAssignment_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3406:1: ( rule__DefinitionList__SingleDefinitionAssignment_0 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3406:2: rule__DefinitionList__SingleDefinitionAssignment_0
-            {
-            pushFollow(FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_0_in_rule__DefinitionList__Group__0__Impl6949);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3503:1: ( rule__DefinitionList__SingleDefinitionAssignment_0 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3503:2: rule__DefinitionList__SingleDefinitionAssignment_0
+            {
+            pushFollow(FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_0_in_rule__DefinitionList__Group__0__Impl7149);
             rule__DefinitionList__SingleDefinitionAssignment_0();
 
@@ -10960,5 +11265,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 205, rule__DefinitionList__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 211, rule__DefinitionList__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -10971,5 +11276,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3416:1: rule__DefinitionList__Group__1 : rule__DefinitionList__Group__1__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3513:1: rule__DefinitionList__Group__1 : rule__DefinitionList__Group__1__Impl ;
     public final void rule__DefinitionList__Group__1() throws RecognitionException {
         int rule__DefinitionList__Group__1_StartIndex = input.index();
@@ -10978,9 +11283,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 206) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3420:1: ( rule__DefinitionList__Group__1__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3421:2: rule__DefinitionList__Group__1__Impl
-            {
-            pushFollow(FOLLOW_rule__DefinitionList__Group__1__Impl_in_rule__DefinitionList__Group__16979);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 212) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3517:1: ( rule__DefinitionList__Group__1__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3518:2: rule__DefinitionList__Group__1__Impl
+            {
+            pushFollow(FOLLOW_rule__DefinitionList__Group__1__Impl_in_rule__DefinitionList__Group__17179);
             rule__DefinitionList__Group__1__Impl();
 
@@ -10996,5 +11301,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 206, rule__DefinitionList__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 212, rule__DefinitionList__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11007,5 +11312,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3427:1: rule__DefinitionList__Group__1__Impl : ( ( rule__DefinitionList__Group_1__0 )* ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3524:1: rule__DefinitionList__Group__1__Impl : ( ( rule__DefinitionList__Group_1__0 )* ) ;
     public final void rule__DefinitionList__Group__1__Impl() throws RecognitionException {
         int rule__DefinitionList__Group__1__Impl_StartIndex = input.index();
@@ -11014,15 +11319,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 207) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3431:1: ( ( ( rule__DefinitionList__Group_1__0 )* ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3432:1: ( ( rule__DefinitionList__Group_1__0 )* )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3432:1: ( ( rule__DefinitionList__Group_1__0 )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3433:1: ( rule__DefinitionList__Group_1__0 )*
+            if ( state.backtracking>0 && alreadyParsedRule(input, 213) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3528:1: ( ( ( rule__DefinitionList__Group_1__0 )* ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3529:1: ( ( rule__DefinitionList__Group_1__0 )* )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3529:1: ( ( rule__DefinitionList__Group_1__0 )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3530:1: ( rule__DefinitionList__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListAccess().getGroup_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3434:1: ( rule__DefinitionList__Group_1__0 )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3531:1: ( rule__DefinitionList__Group_1__0 )*
             loop39:
             do {
@@ -11037,7 +11342,7 @@
                 switch (alt39) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3434:2: rule__DefinitionList__Group_1__0
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3531:2: rule__DefinitionList__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_rule__DefinitionList__Group_1__0_in_rule__DefinitionList__Group__1__Impl7006);
+            	    pushFollow(FOLLOW_rule__DefinitionList__Group_1__0_in_rule__DefinitionList__Group__1__Impl7206);
             	    rule__DefinitionList__Group_1__0();
 
@@ -11068,5 +11373,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 207, rule__DefinitionList__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 213, rule__DefinitionList__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11079,5 +11384,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group_1__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3448:1: rule__DefinitionList__Group_1__0 : rule__DefinitionList__Group_1__0__Impl rule__DefinitionList__Group_1__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3545:1: rule__DefinitionList__Group_1__0 : rule__DefinitionList__Group_1__0__Impl rule__DefinitionList__Group_1__1 ;
     public final void rule__DefinitionList__Group_1__0() throws RecognitionException {
         int rule__DefinitionList__Group_1__0_StartIndex = input.index();
@@ -11086,14 +11391,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 208) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3452:1: ( rule__DefinitionList__Group_1__0__Impl rule__DefinitionList__Group_1__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3453:2: rule__DefinitionList__Group_1__0__Impl rule__DefinitionList__Group_1__1
-            {
-            pushFollow(FOLLOW_rule__DefinitionList__Group_1__0__Impl_in_rule__DefinitionList__Group_1__07041);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 214) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3549:1: ( rule__DefinitionList__Group_1__0__Impl rule__DefinitionList__Group_1__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3550:2: rule__DefinitionList__Group_1__0__Impl rule__DefinitionList__Group_1__1
+            {
+            pushFollow(FOLLOW_rule__DefinitionList__Group_1__0__Impl_in_rule__DefinitionList__Group_1__07241);
             rule__DefinitionList__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__DefinitionList__Group_1__1_in_rule__DefinitionList__Group_1__07044);
+            pushFollow(FOLLOW_rule__DefinitionList__Group_1__1_in_rule__DefinitionList__Group_1__07244);
             rule__DefinitionList__Group_1__1();
 
@@ -11109,5 +11414,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 208, rule__DefinitionList__Group_1__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 214, rule__DefinitionList__Group_1__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11120,5 +11425,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group_1__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3460:1: rule__DefinitionList__Group_1__0__Impl : ( '|' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3557:1: rule__DefinitionList__Group_1__0__Impl : ( '|' ) ;
     public final void rule__DefinitionList__Group_1__0__Impl() throws RecognitionException {
         int rule__DefinitionList__Group_1__0__Impl_StartIndex = input.index();
@@ -11127,15 +11432,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 209) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3464:1: ( ( '|' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3465:1: ( '|' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3465:1: ( '|' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3466:1: '|'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 215) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3561:1: ( ( '|' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3562:1: ( '|' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3562:1: ( '|' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3563:1: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListAccess().getVerticalLineKeyword_1_0()); 
             }
-            match(input,16,FOLLOW_16_in_rule__DefinitionList__Group_1__0__Impl7072); if (state.failed) return ;
+            match(input,16,FOLLOW_16_in_rule__DefinitionList__Group_1__0__Impl7272); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getDefinitionListAccess().getVerticalLineKeyword_1_0()); 
@@ -11153,5 +11458,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 209, rule__DefinitionList__Group_1__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 215, rule__DefinitionList__Group_1__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11164,5 +11469,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group_1__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3479:1: rule__DefinitionList__Group_1__1 : rule__DefinitionList__Group_1__1__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3576:1: rule__DefinitionList__Group_1__1 : rule__DefinitionList__Group_1__1__Impl ;
     public final void rule__DefinitionList__Group_1__1() throws RecognitionException {
         int rule__DefinitionList__Group_1__1_StartIndex = input.index();
@@ -11171,9 +11476,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 210) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3483:1: ( rule__DefinitionList__Group_1__1__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3484:2: rule__DefinitionList__Group_1__1__Impl
-            {
-            pushFollow(FOLLOW_rule__DefinitionList__Group_1__1__Impl_in_rule__DefinitionList__Group_1__17103);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 216) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3580:1: ( rule__DefinitionList__Group_1__1__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3581:2: rule__DefinitionList__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_rule__DefinitionList__Group_1__1__Impl_in_rule__DefinitionList__Group_1__17303);
             rule__DefinitionList__Group_1__1__Impl();
 
@@ -11189,5 +11494,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 210, rule__DefinitionList__Group_1__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 216, rule__DefinitionList__Group_1__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11200,5 +11505,5 @@
 
     // $ANTLR start "rule__DefinitionList__Group_1__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3490:1: rule__DefinitionList__Group_1__1__Impl : ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3587:1: rule__DefinitionList__Group_1__1__Impl : ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) ) ;
     public final void rule__DefinitionList__Group_1__1__Impl() throws RecognitionException {
         int rule__DefinitionList__Group_1__1__Impl_StartIndex = input.index();
@@ -11207,18 +11512,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 211) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3494:1: ( ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3495:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3495:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3496:1: ( rule__DefinitionList__SingleDefinitionAssignment_1_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 217) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3591:1: ( ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3592:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3592:1: ( ( rule__DefinitionList__SingleDefinitionAssignment_1_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3593:1: ( rule__DefinitionList__SingleDefinitionAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListAccess().getSingleDefinitionAssignment_1_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3497:1: ( rule__DefinitionList__SingleDefinitionAssignment_1_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3497:2: rule__DefinitionList__SingleDefinitionAssignment_1_1
-            {
-            pushFollow(FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_1_1_in_rule__DefinitionList__Group_1__1__Impl7130);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3594:1: ( rule__DefinitionList__SingleDefinitionAssignment_1_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3594:2: rule__DefinitionList__SingleDefinitionAssignment_1_1
+            {
+            pushFollow(FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_1_1_in_rule__DefinitionList__Group_1__1__Impl7330);
             rule__DefinitionList__SingleDefinitionAssignment_1_1();
 
@@ -11243,5 +11548,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 211, rule__DefinitionList__Group_1__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 217, rule__DefinitionList__Group_1__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11254,5 +11559,5 @@
 
     // $ANTLR start "rule__GroupedSequence__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3511:1: rule__GroupedSequence__Group__0 : rule__GroupedSequence__Group__0__Impl rule__GroupedSequence__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3608:1: rule__GroupedSequence__Group__0 : rule__GroupedSequence__Group__0__Impl rule__GroupedSequence__Group__1 ;
     public final void rule__GroupedSequence__Group__0() throws RecognitionException {
         int rule__GroupedSequence__Group__0_StartIndex = input.index();
@@ -11261,14 +11566,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 212) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3515:1: ( rule__GroupedSequence__Group__0__Impl rule__GroupedSequence__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3516:2: rule__GroupedSequence__Group__0__Impl rule__GroupedSequence__Group__1
-            {
-            pushFollow(FOLLOW_rule__GroupedSequence__Group__0__Impl_in_rule__GroupedSequence__Group__07164);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 218) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3612:1: ( rule__GroupedSequence__Group__0__Impl rule__GroupedSequence__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3613:2: rule__GroupedSequence__Group__0__Impl rule__GroupedSequence__Group__1
+            {
+            pushFollow(FOLLOW_rule__GroupedSequence__Group__0__Impl_in_rule__GroupedSequence__Group__07364);
             rule__GroupedSequence__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__GroupedSequence__Group__1_in_rule__GroupedSequence__Group__07167);
+            pushFollow(FOLLOW_rule__GroupedSequence__Group__1_in_rule__GroupedSequence__Group__07367);
             rule__GroupedSequence__Group__1();
 
@@ -11284,5 +11589,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 212, rule__GroupedSequence__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 218, rule__GroupedSequence__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11295,5 +11600,5 @@
 
     // $ANTLR start "rule__GroupedSequence__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3523:1: rule__GroupedSequence__Group__0__Impl : ( '(' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3620:1: rule__GroupedSequence__Group__0__Impl : ( '(' ) ;
     public final void rule__GroupedSequence__Group__0__Impl() throws RecognitionException {
         int rule__GroupedSequence__Group__0__Impl_StartIndex = input.index();
@@ -11302,15 +11607,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 213) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3527:1: ( ( '(' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3528:1: ( '(' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3528:1: ( '(' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3529:1: '('
+            if ( state.backtracking>0 && alreadyParsedRule(input, 219) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3624:1: ( ( '(' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3625:1: ( '(' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3625:1: ( '(' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3626:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGroupedSequenceAccess().getLeftParenthesisKeyword_0()); 
             }
-            match(input,17,FOLLOW_17_in_rule__GroupedSequence__Group__0__Impl7195); if (state.failed) return ;
+            match(input,17,FOLLOW_17_in_rule__GroupedSequence__Group__0__Impl7395); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getGroupedSequenceAccess().getLeftParenthesisKeyword_0()); 
@@ -11328,5 +11633,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 213, rule__GroupedSequence__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 219, rule__GroupedSequence__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11339,5 +11644,5 @@
 
     // $ANTLR start "rule__GroupedSequence__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3542:1: rule__GroupedSequence__Group__1 : rule__GroupedSequence__Group__1__Impl rule__GroupedSequence__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3639:1: rule__GroupedSequence__Group__1 : rule__GroupedSequence__Group__1__Impl rule__GroupedSequence__Group__2 ;
     public final void rule__GroupedSequence__Group__1() throws RecognitionException {
         int rule__GroupedSequence__Group__1_StartIndex = input.index();
@@ -11346,14 +11651,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 214) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3546:1: ( rule__GroupedSequence__Group__1__Impl rule__GroupedSequence__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3547:2: rule__GroupedSequence__Group__1__Impl rule__GroupedSequence__Group__2
-            {
-            pushFollow(FOLLOW_rule__GroupedSequence__Group__1__Impl_in_rule__GroupedSequence__Group__17226);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 220) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3643:1: ( rule__GroupedSequence__Group__1__Impl rule__GroupedSequence__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3644:2: rule__GroupedSequence__Group__1__Impl rule__GroupedSequence__Group__2
+            {
+            pushFollow(FOLLOW_rule__GroupedSequence__Group__1__Impl_in_rule__GroupedSequence__Group__17426);
             rule__GroupedSequence__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__GroupedSequence__Group__2_in_rule__GroupedSequence__Group__17229);
+            pushFollow(FOLLOW_rule__GroupedSequence__Group__2_in_rule__GroupedSequence__Group__17429);
             rule__GroupedSequence__Group__2();
 
@@ -11369,5 +11674,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 214, rule__GroupedSequence__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 220, rule__GroupedSequence__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11380,5 +11685,5 @@
 
     // $ANTLR start "rule__GroupedSequence__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3554:1: rule__GroupedSequence__Group__1__Impl : ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3651:1: rule__GroupedSequence__Group__1__Impl : ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) ) ;
     public final void rule__GroupedSequence__Group__1__Impl() throws RecognitionException {
         int rule__GroupedSequence__Group__1__Impl_StartIndex = input.index();
@@ -11387,18 +11692,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 215) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3558:1: ( ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3559:1: ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3559:1: ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3560:1: ( rule__GroupedSequence__DefinitionListAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 221) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3655:1: ( ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3656:1: ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3656:1: ( ( rule__GroupedSequence__DefinitionListAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3657:1: ( rule__GroupedSequence__DefinitionListAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGroupedSequenceAccess().getDefinitionListAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3561:1: ( rule__GroupedSequence__DefinitionListAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3561:2: rule__GroupedSequence__DefinitionListAssignment_1
-            {
-            pushFollow(FOLLOW_rule__GroupedSequence__DefinitionListAssignment_1_in_rule__GroupedSequence__Group__1__Impl7256);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3658:1: ( rule__GroupedSequence__DefinitionListAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3658:2: rule__GroupedSequence__DefinitionListAssignment_1
+            {
+            pushFollow(FOLLOW_rule__GroupedSequence__DefinitionListAssignment_1_in_rule__GroupedSequence__Group__1__Impl7456);
             rule__GroupedSequence__DefinitionListAssignment_1();
 
@@ -11423,5 +11728,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 215, rule__GroupedSequence__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 221, rule__GroupedSequence__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11434,5 +11739,5 @@
 
     // $ANTLR start "rule__GroupedSequence__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3571:1: rule__GroupedSequence__Group__2 : rule__GroupedSequence__Group__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3668:1: rule__GroupedSequence__Group__2 : rule__GroupedSequence__Group__2__Impl ;
     public final void rule__GroupedSequence__Group__2() throws RecognitionException {
         int rule__GroupedSequence__Group__2_StartIndex = input.index();
@@ -11441,9 +11746,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 216) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3575:1: ( rule__GroupedSequence__Group__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3576:2: rule__GroupedSequence__Group__2__Impl
-            {
-            pushFollow(FOLLOW_rule__GroupedSequence__Group__2__Impl_in_rule__GroupedSequence__Group__27286);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 222) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3672:1: ( rule__GroupedSequence__Group__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3673:2: rule__GroupedSequence__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__GroupedSequence__Group__2__Impl_in_rule__GroupedSequence__Group__27486);
             rule__GroupedSequence__Group__2__Impl();
 
@@ -11459,5 +11764,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 216, rule__GroupedSequence__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 222, rule__GroupedSequence__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11470,5 +11775,5 @@
 
     // $ANTLR start "rule__GroupedSequence__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3582:1: rule__GroupedSequence__Group__2__Impl : ( ')' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3679:1: rule__GroupedSequence__Group__2__Impl : ( ')' ) ;
     public final void rule__GroupedSequence__Group__2__Impl() throws RecognitionException {
         int rule__GroupedSequence__Group__2__Impl_StartIndex = input.index();
@@ -11477,15 +11782,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 217) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3586:1: ( ( ')' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3587:1: ( ')' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3587:1: ( ')' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3588:1: ')'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 223) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3683:1: ( ( ')' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3684:1: ( ')' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3684:1: ( ')' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3685:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGroupedSequenceAccess().getRightParenthesisKeyword_2()); 
             }
-            match(input,13,FOLLOW_13_in_rule__GroupedSequence__Group__2__Impl7314); if (state.failed) return ;
+            match(input,13,FOLLOW_13_in_rule__GroupedSequence__Group__2__Impl7514); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getGroupedSequenceAccess().getRightParenthesisKeyword_2()); 
@@ -11503,5 +11808,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 217, rule__GroupedSequence__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 223, rule__GroupedSequence__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11514,5 +11819,5 @@
 
     // $ANTLR start "rule__OptionalSequence__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3607:1: rule__OptionalSequence__Group__0 : rule__OptionalSequence__Group__0__Impl rule__OptionalSequence__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3704:1: rule__OptionalSequence__Group__0 : rule__OptionalSequence__Group__0__Impl rule__OptionalSequence__Group__1 ;
     public final void rule__OptionalSequence__Group__0() throws RecognitionException {
         int rule__OptionalSequence__Group__0_StartIndex = input.index();
@@ -11521,14 +11826,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 218) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3611:1: ( rule__OptionalSequence__Group__0__Impl rule__OptionalSequence__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3612:2: rule__OptionalSequence__Group__0__Impl rule__OptionalSequence__Group__1
-            {
-            pushFollow(FOLLOW_rule__OptionalSequence__Group__0__Impl_in_rule__OptionalSequence__Group__07351);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 224) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3708:1: ( rule__OptionalSequence__Group__0__Impl rule__OptionalSequence__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3709:2: rule__OptionalSequence__Group__0__Impl rule__OptionalSequence__Group__1
+            {
+            pushFollow(FOLLOW_rule__OptionalSequence__Group__0__Impl_in_rule__OptionalSequence__Group__07551);
             rule__OptionalSequence__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__OptionalSequence__Group__1_in_rule__OptionalSequence__Group__07354);
+            pushFollow(FOLLOW_rule__OptionalSequence__Group__1_in_rule__OptionalSequence__Group__07554);
             rule__OptionalSequence__Group__1();
 
@@ -11544,5 +11849,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 218, rule__OptionalSequence__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 224, rule__OptionalSequence__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11555,5 +11860,5 @@
 
     // $ANTLR start "rule__OptionalSequence__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3619:1: rule__OptionalSequence__Group__0__Impl : ( '[' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3716:1: rule__OptionalSequence__Group__0__Impl : ( '[' ) ;
     public final void rule__OptionalSequence__Group__0__Impl() throws RecognitionException {
         int rule__OptionalSequence__Group__0__Impl_StartIndex = input.index();
@@ -11562,15 +11867,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 219) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3623:1: ( ( '[' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3624:1: ( '[' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3624:1: ( '[' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3625:1: '['
+            if ( state.backtracking>0 && alreadyParsedRule(input, 225) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3720:1: ( ( '[' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3721:1: ( '[' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3721:1: ( '[' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3722:1: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOptionalSequenceAccess().getLeftSquareBracketKeyword_0()); 
             }
-            match(input,18,FOLLOW_18_in_rule__OptionalSequence__Group__0__Impl7382); if (state.failed) return ;
+            match(input,18,FOLLOW_18_in_rule__OptionalSequence__Group__0__Impl7582); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOptionalSequenceAccess().getLeftSquareBracketKeyword_0()); 
@@ -11588,5 +11893,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 219, rule__OptionalSequence__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 225, rule__OptionalSequence__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11599,5 +11904,5 @@
 
     // $ANTLR start "rule__OptionalSequence__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3638:1: rule__OptionalSequence__Group__1 : rule__OptionalSequence__Group__1__Impl rule__OptionalSequence__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3735:1: rule__OptionalSequence__Group__1 : rule__OptionalSequence__Group__1__Impl rule__OptionalSequence__Group__2 ;
     public final void rule__OptionalSequence__Group__1() throws RecognitionException {
         int rule__OptionalSequence__Group__1_StartIndex = input.index();
@@ -11606,14 +11911,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 220) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3642:1: ( rule__OptionalSequence__Group__1__Impl rule__OptionalSequence__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3643:2: rule__OptionalSequence__Group__1__Impl rule__OptionalSequence__Group__2
-            {
-            pushFollow(FOLLOW_rule__OptionalSequence__Group__1__Impl_in_rule__OptionalSequence__Group__17413);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 226) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3739:1: ( rule__OptionalSequence__Group__1__Impl rule__OptionalSequence__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3740:2: rule__OptionalSequence__Group__1__Impl rule__OptionalSequence__Group__2
+            {
+            pushFollow(FOLLOW_rule__OptionalSequence__Group__1__Impl_in_rule__OptionalSequence__Group__17613);
             rule__OptionalSequence__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__OptionalSequence__Group__2_in_rule__OptionalSequence__Group__17416);
+            pushFollow(FOLLOW_rule__OptionalSequence__Group__2_in_rule__OptionalSequence__Group__17616);
             rule__OptionalSequence__Group__2();
 
@@ -11629,5 +11934,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 220, rule__OptionalSequence__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 226, rule__OptionalSequence__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11640,5 +11945,5 @@
 
     // $ANTLR start "rule__OptionalSequence__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3650:1: rule__OptionalSequence__Group__1__Impl : ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3747:1: rule__OptionalSequence__Group__1__Impl : ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) ) ;
     public final void rule__OptionalSequence__Group__1__Impl() throws RecognitionException {
         int rule__OptionalSequence__Group__1__Impl_StartIndex = input.index();
@@ -11647,18 +11952,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 221) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3654:1: ( ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3655:1: ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3655:1: ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3656:1: ( rule__OptionalSequence__DefinitionListAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 227) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3751:1: ( ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3752:1: ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3752:1: ( ( rule__OptionalSequence__DefinitionListAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3753:1: ( rule__OptionalSequence__DefinitionListAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOptionalSequenceAccess().getDefinitionListAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3657:1: ( rule__OptionalSequence__DefinitionListAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3657:2: rule__OptionalSequence__DefinitionListAssignment_1
-            {
-            pushFollow(FOLLOW_rule__OptionalSequence__DefinitionListAssignment_1_in_rule__OptionalSequence__Group__1__Impl7443);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3754:1: ( rule__OptionalSequence__DefinitionListAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3754:2: rule__OptionalSequence__DefinitionListAssignment_1
+            {
+            pushFollow(FOLLOW_rule__OptionalSequence__DefinitionListAssignment_1_in_rule__OptionalSequence__Group__1__Impl7643);
             rule__OptionalSequence__DefinitionListAssignment_1();
 
@@ -11683,5 +11988,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 221, rule__OptionalSequence__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 227, rule__OptionalSequence__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11694,5 +11999,5 @@
 
     // $ANTLR start "rule__OptionalSequence__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3667:1: rule__OptionalSequence__Group__2 : rule__OptionalSequence__Group__2__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3764:1: rule__OptionalSequence__Group__2 : rule__OptionalSequence__Group__2__Impl ;
     public final void rule__OptionalSequence__Group__2() throws RecognitionException {
         int rule__OptionalSequence__Group__2_StartIndex = input.index();
@@ -11701,9 +12006,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 222) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3671:1: ( rule__OptionalSequence__Group__2__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3672:2: rule__OptionalSequence__Group__2__Impl
-            {
-            pushFollow(FOLLOW_rule__OptionalSequence__Group__2__Impl_in_rule__OptionalSequence__Group__27473);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 228) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3768:1: ( rule__OptionalSequence__Group__2__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3769:2: rule__OptionalSequence__Group__2__Impl
+            {
+            pushFollow(FOLLOW_rule__OptionalSequence__Group__2__Impl_in_rule__OptionalSequence__Group__27673);
             rule__OptionalSequence__Group__2__Impl();
 
@@ -11719,5 +12024,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 222, rule__OptionalSequence__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 228, rule__OptionalSequence__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11730,5 +12035,5 @@
 
     // $ANTLR start "rule__OptionalSequence__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3678:1: rule__OptionalSequence__Group__2__Impl : ( ']' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3775:1: rule__OptionalSequence__Group__2__Impl : ( ']' ) ;
     public final void rule__OptionalSequence__Group__2__Impl() throws RecognitionException {
         int rule__OptionalSequence__Group__2__Impl_StartIndex = input.index();
@@ -11737,15 +12042,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 223) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3682:1: ( ( ']' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3683:1: ( ']' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3683:1: ( ']' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3684:1: ']'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 229) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3779:1: ( ( ']' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3780:1: ( ']' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3780:1: ( ']' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3781:1: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOptionalSequenceAccess().getRightSquareBracketKeyword_2()); 
             }
-            match(input,14,FOLLOW_14_in_rule__OptionalSequence__Group__2__Impl7501); if (state.failed) return ;
+            match(input,14,FOLLOW_14_in_rule__OptionalSequence__Group__2__Impl7701); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getOptionalSequenceAccess().getRightSquareBracketKeyword_2()); 
@@ -11763,5 +12068,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 223, rule__OptionalSequence__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 229, rule__OptionalSequence__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11774,5 +12079,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3703:1: rule__RepeatedSequence__Group__0 : rule__RepeatedSequence__Group__0__Impl rule__RepeatedSequence__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3800:1: rule__RepeatedSequence__Group__0 : rule__RepeatedSequence__Group__0__Impl rule__RepeatedSequence__Group__1 ;
     public final void rule__RepeatedSequence__Group__0() throws RecognitionException {
         int rule__RepeatedSequence__Group__0_StartIndex = input.index();
@@ -11781,14 +12086,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 224) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3707:1: ( rule__RepeatedSequence__Group__0__Impl rule__RepeatedSequence__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3708:2: rule__RepeatedSequence__Group__0__Impl rule__RepeatedSequence__Group__1
-            {
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__0__Impl_in_rule__RepeatedSequence__Group__07538);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 230) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3804:1: ( rule__RepeatedSequence__Group__0__Impl rule__RepeatedSequence__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3805:2: rule__RepeatedSequence__Group__0__Impl rule__RepeatedSequence__Group__1
+            {
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__0__Impl_in_rule__RepeatedSequence__Group__07738);
             rule__RepeatedSequence__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__1_in_rule__RepeatedSequence__Group__07541);
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__1_in_rule__RepeatedSequence__Group__07741);
             rule__RepeatedSequence__Group__1();
 
@@ -11804,5 +12109,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 224, rule__RepeatedSequence__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 230, rule__RepeatedSequence__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11815,5 +12120,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3715:1: rule__RepeatedSequence__Group__0__Impl : ( '{' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3812:1: rule__RepeatedSequence__Group__0__Impl : ( '{' ) ;
     public final void rule__RepeatedSequence__Group__0__Impl() throws RecognitionException {
         int rule__RepeatedSequence__Group__0__Impl_StartIndex = input.index();
@@ -11822,15 +12127,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 225) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3719:1: ( ( '{' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3720:1: ( '{' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3720:1: ( '{' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3721:1: '{'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 231) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3816:1: ( ( '{' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3817:1: ( '{' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3817:1: ( '{' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3818:1: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getLeftCurlyBracketKeyword_0()); 
             }
-            match(input,19,FOLLOW_19_in_rule__RepeatedSequence__Group__0__Impl7569); if (state.failed) return ;
+            match(input,19,FOLLOW_19_in_rule__RepeatedSequence__Group__0__Impl7769); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatedSequenceAccess().getLeftCurlyBracketKeyword_0()); 
@@ -11848,5 +12153,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 225, rule__RepeatedSequence__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 231, rule__RepeatedSequence__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11859,5 +12164,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3734:1: rule__RepeatedSequence__Group__1 : rule__RepeatedSequence__Group__1__Impl rule__RepeatedSequence__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3831:1: rule__RepeatedSequence__Group__1 : rule__RepeatedSequence__Group__1__Impl rule__RepeatedSequence__Group__2 ;
     public final void rule__RepeatedSequence__Group__1() throws RecognitionException {
         int rule__RepeatedSequence__Group__1_StartIndex = input.index();
@@ -11866,14 +12171,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 226) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3738:1: ( rule__RepeatedSequence__Group__1__Impl rule__RepeatedSequence__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3739:2: rule__RepeatedSequence__Group__1__Impl rule__RepeatedSequence__Group__2
-            {
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__1__Impl_in_rule__RepeatedSequence__Group__17600);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 232) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3835:1: ( rule__RepeatedSequence__Group__1__Impl rule__RepeatedSequence__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3836:2: rule__RepeatedSequence__Group__1__Impl rule__RepeatedSequence__Group__2
+            {
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__1__Impl_in_rule__RepeatedSequence__Group__17800);
             rule__RepeatedSequence__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__2_in_rule__RepeatedSequence__Group__17603);
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__2_in_rule__RepeatedSequence__Group__17803);
             rule__RepeatedSequence__Group__2();
 
@@ -11889,5 +12194,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 226, rule__RepeatedSequence__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 232, rule__RepeatedSequence__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11900,5 +12205,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3746:1: rule__RepeatedSequence__Group__1__Impl : ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3843:1: rule__RepeatedSequence__Group__1__Impl : ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) ) ;
     public final void rule__RepeatedSequence__Group__1__Impl() throws RecognitionException {
         int rule__RepeatedSequence__Group__1__Impl_StartIndex = input.index();
@@ -11907,18 +12212,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 227) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3750:1: ( ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3751:1: ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3751:1: ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3752:1: ( rule__RepeatedSequence__DefinitionsAssignment_1 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 233) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3847:1: ( ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3848:1: ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3848:1: ( ( rule__RepeatedSequence__DefinitionsAssignment_1 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3849:1: ( rule__RepeatedSequence__DefinitionsAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getDefinitionsAssignment_1()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3753:1: ( rule__RepeatedSequence__DefinitionsAssignment_1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3753:2: rule__RepeatedSequence__DefinitionsAssignment_1
-            {
-            pushFollow(FOLLOW_rule__RepeatedSequence__DefinitionsAssignment_1_in_rule__RepeatedSequence__Group__1__Impl7630);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3850:1: ( rule__RepeatedSequence__DefinitionsAssignment_1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3850:2: rule__RepeatedSequence__DefinitionsAssignment_1
+            {
+            pushFollow(FOLLOW_rule__RepeatedSequence__DefinitionsAssignment_1_in_rule__RepeatedSequence__Group__1__Impl7830);
             rule__RepeatedSequence__DefinitionsAssignment_1();
 
@@ -11943,5 +12248,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 227, rule__RepeatedSequence__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 233, rule__RepeatedSequence__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11954,5 +12259,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3763:1: rule__RepeatedSequence__Group__2 : rule__RepeatedSequence__Group__2__Impl rule__RepeatedSequence__Group__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3860:1: rule__RepeatedSequence__Group__2 : rule__RepeatedSequence__Group__2__Impl rule__RepeatedSequence__Group__3 ;
     public final void rule__RepeatedSequence__Group__2() throws RecognitionException {
         int rule__RepeatedSequence__Group__2_StartIndex = input.index();
@@ -11961,14 +12266,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 228) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3767:1: ( rule__RepeatedSequence__Group__2__Impl rule__RepeatedSequence__Group__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3768:2: rule__RepeatedSequence__Group__2__Impl rule__RepeatedSequence__Group__3
-            {
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__2__Impl_in_rule__RepeatedSequence__Group__27660);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 234) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3864:1: ( rule__RepeatedSequence__Group__2__Impl rule__RepeatedSequence__Group__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3865:2: rule__RepeatedSequence__Group__2__Impl rule__RepeatedSequence__Group__3
+            {
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__2__Impl_in_rule__RepeatedSequence__Group__27860);
             rule__RepeatedSequence__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__3_in_rule__RepeatedSequence__Group__27663);
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__3_in_rule__RepeatedSequence__Group__27863);
             rule__RepeatedSequence__Group__3();
 
@@ -11984,5 +12289,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 228, rule__RepeatedSequence__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 234, rule__RepeatedSequence__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -11995,5 +12300,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3775:1: rule__RepeatedSequence__Group__2__Impl : ( '}' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3872:1: rule__RepeatedSequence__Group__2__Impl : ( '}' ) ;
     public final void rule__RepeatedSequence__Group__2__Impl() throws RecognitionException {
         int rule__RepeatedSequence__Group__2__Impl_StartIndex = input.index();
@@ -12002,15 +12307,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 229) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3779:1: ( ( '}' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3780:1: ( '}' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3780:1: ( '}' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3781:1: '}'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 235) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3876:1: ( ( '}' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3877:1: ( '}' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3877:1: ( '}' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3878:1: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getRightCurlyBracketKeyword_2()); 
             }
-            match(input,15,FOLLOW_15_in_rule__RepeatedSequence__Group__2__Impl7691); if (state.failed) return ;
+            match(input,15,FOLLOW_15_in_rule__RepeatedSequence__Group__2__Impl7891); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatedSequenceAccess().getRightCurlyBracketKeyword_2()); 
@@ -12028,5 +12333,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 229, rule__RepeatedSequence__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 235, rule__RepeatedSequence__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12039,5 +12344,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3794:1: rule__RepeatedSequence__Group__3 : rule__RepeatedSequence__Group__3__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3891:1: rule__RepeatedSequence__Group__3 : rule__RepeatedSequence__Group__3__Impl ;
     public final void rule__RepeatedSequence__Group__3() throws RecognitionException {
         int rule__RepeatedSequence__Group__3_StartIndex = input.index();
@@ -12046,9 +12351,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 230) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3798:1: ( rule__RepeatedSequence__Group__3__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3799:2: rule__RepeatedSequence__Group__3__Impl
-            {
-            pushFollow(FOLLOW_rule__RepeatedSequence__Group__3__Impl_in_rule__RepeatedSequence__Group__37722);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 236) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3895:1: ( rule__RepeatedSequence__Group__3__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3896:2: rule__RepeatedSequence__Group__3__Impl
+            {
+            pushFollow(FOLLOW_rule__RepeatedSequence__Group__3__Impl_in_rule__RepeatedSequence__Group__37922);
             rule__RepeatedSequence__Group__3__Impl();
 
@@ -12064,5 +12369,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 230, rule__RepeatedSequence__Group__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 236, rule__RepeatedSequence__Group__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12075,5 +12380,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__Group__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3805:1: rule__RepeatedSequence__Group__3__Impl : ( ( rule__RepeatedSequence__Alternatives_3 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3902:1: rule__RepeatedSequence__Group__3__Impl : ( ( rule__RepeatedSequence__Alternatives_3 ) ) ;
     public final void rule__RepeatedSequence__Group__3__Impl() throws RecognitionException {
         int rule__RepeatedSequence__Group__3__Impl_StartIndex = input.index();
@@ -12082,18 +12387,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 231) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3809:1: ( ( ( rule__RepeatedSequence__Alternatives_3 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3810:1: ( ( rule__RepeatedSequence__Alternatives_3 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3810:1: ( ( rule__RepeatedSequence__Alternatives_3 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3811:1: ( rule__RepeatedSequence__Alternatives_3 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 237) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3906:1: ( ( ( rule__RepeatedSequence__Alternatives_3 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3907:1: ( ( rule__RepeatedSequence__Alternatives_3 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3907:1: ( ( rule__RepeatedSequence__Alternatives_3 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3908:1: ( rule__RepeatedSequence__Alternatives_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getAlternatives_3()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3812:1: ( rule__RepeatedSequence__Alternatives_3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3812:2: rule__RepeatedSequence__Alternatives_3
-            {
-            pushFollow(FOLLOW_rule__RepeatedSequence__Alternatives_3_in_rule__RepeatedSequence__Group__3__Impl7749);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3909:1: ( rule__RepeatedSequence__Alternatives_3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3909:2: rule__RepeatedSequence__Alternatives_3
+            {
+            pushFollow(FOLLOW_rule__RepeatedSequence__Alternatives_3_in_rule__RepeatedSequence__Group__3__Impl7949);
             rule__RepeatedSequence__Alternatives_3();
 
@@ -12118,5 +12423,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 231, rule__RepeatedSequence__Group__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 237, rule__RepeatedSequence__Group__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12129,5 +12434,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3830:1: rule__RepeatRange__Group__0 : rule__RepeatRange__Group__0__Impl rule__RepeatRange__Group__1 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3927:1: rule__RepeatRange__Group__0 : rule__RepeatRange__Group__0__Impl rule__RepeatRange__Group__1 ;
     public final void rule__RepeatRange__Group__0() throws RecognitionException {
         int rule__RepeatRange__Group__0_StartIndex = input.index();
@@ -12136,14 +12441,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 232) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3834:1: ( rule__RepeatRange__Group__0__Impl rule__RepeatRange__Group__1 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3835:2: rule__RepeatRange__Group__0__Impl rule__RepeatRange__Group__1
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__Group__0__Impl_in_rule__RepeatRange__Group__07787);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 238) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3931:1: ( rule__RepeatRange__Group__0__Impl rule__RepeatRange__Group__1 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3932:2: rule__RepeatRange__Group__0__Impl rule__RepeatRange__Group__1
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__Group__0__Impl_in_rule__RepeatRange__Group__07987);
             rule__RepeatRange__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatRange__Group__1_in_rule__RepeatRange__Group__07790);
+            pushFollow(FOLLOW_rule__RepeatRange__Group__1_in_rule__RepeatRange__Group__07990);
             rule__RepeatRange__Group__1();
 
@@ -12159,5 +12464,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 232, rule__RepeatRange__Group__0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 238, rule__RepeatRange__Group__0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12170,5 +12475,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__0__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3842:1: rule__RepeatRange__Group__0__Impl : ( '#' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3939:1: rule__RepeatRange__Group__0__Impl : ( '#' ) ;
     public final void rule__RepeatRange__Group__0__Impl() throws RecognitionException {
         int rule__RepeatRange__Group__0__Impl_StartIndex = input.index();
@@ -12177,15 +12482,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 233) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3846:1: ( ( '#' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3847:1: ( '#' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3847:1: ( '#' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3848:1: '#'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 239) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3943:1: ( ( '#' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3944:1: ( '#' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3944:1: ( '#' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3945:1: '#'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getNumberSignKeyword_0()); 
             }
-            match(input,34,FOLLOW_34_in_rule__RepeatRange__Group__0__Impl7818); if (state.failed) return ;
+            match(input,34,FOLLOW_34_in_rule__RepeatRange__Group__0__Impl8018); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatRangeAccess().getNumberSignKeyword_0()); 
@@ -12203,5 +12508,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 233, rule__RepeatRange__Group__0__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 239, rule__RepeatRange__Group__0__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12214,5 +12519,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3861:1: rule__RepeatRange__Group__1 : rule__RepeatRange__Group__1__Impl rule__RepeatRange__Group__2 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3958:1: rule__RepeatRange__Group__1 : rule__RepeatRange__Group__1__Impl rule__RepeatRange__Group__2 ;
     public final void rule__RepeatRange__Group__1() throws RecognitionException {
         int rule__RepeatRange__Group__1_StartIndex = input.index();
@@ -12221,14 +12526,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 234) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3865:1: ( rule__RepeatRange__Group__1__Impl rule__RepeatRange__Group__2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3866:2: rule__RepeatRange__Group__1__Impl rule__RepeatRange__Group__2
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__Group__1__Impl_in_rule__RepeatRange__Group__17849);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 240) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3962:1: ( rule__RepeatRange__Group__1__Impl rule__RepeatRange__Group__2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3963:2: rule__RepeatRange__Group__1__Impl rule__RepeatRange__Group__2
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__Group__1__Impl_in_rule__RepeatRange__Group__18049);
             rule__RepeatRange__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatRange__Group__2_in_rule__RepeatRange__Group__17852);
+            pushFollow(FOLLOW_rule__RepeatRange__Group__2_in_rule__RepeatRange__Group__18052);
             rule__RepeatRange__Group__2();
 
@@ -12244,5 +12549,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 234, rule__RepeatRange__Group__1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 240, rule__RepeatRange__Group__1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12255,5 +12560,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__1__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3873:1: rule__RepeatRange__Group__1__Impl : ( '(' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3970:1: rule__RepeatRange__Group__1__Impl : ( '(' ) ;
     public final void rule__RepeatRange__Group__1__Impl() throws RecognitionException {
         int rule__RepeatRange__Group__1__Impl_StartIndex = input.index();
@@ -12262,15 +12567,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 235) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3877:1: ( ( '(' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3878:1: ( '(' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3878:1: ( '(' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3879:1: '('
+            if ( state.backtracking>0 && alreadyParsedRule(input, 241) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3974:1: ( ( '(' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3975:1: ( '(' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3975:1: ( '(' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3976:1: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getLeftParenthesisKeyword_1()); 
             }
-            match(input,17,FOLLOW_17_in_rule__RepeatRange__Group__1__Impl7880); if (state.failed) return ;
+            match(input,17,FOLLOW_17_in_rule__RepeatRange__Group__1__Impl8080); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatRangeAccess().getLeftParenthesisKeyword_1()); 
@@ -12288,5 +12593,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 235, rule__RepeatRange__Group__1__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 241, rule__RepeatRange__Group__1__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12299,5 +12604,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3892:1: rule__RepeatRange__Group__2 : rule__RepeatRange__Group__2__Impl rule__RepeatRange__Group__3 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3989:1: rule__RepeatRange__Group__2 : rule__RepeatRange__Group__2__Impl rule__RepeatRange__Group__3 ;
     public final void rule__RepeatRange__Group__2() throws RecognitionException {
         int rule__RepeatRange__Group__2_StartIndex = input.index();
@@ -12306,14 +12611,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 236) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3896:1: ( rule__RepeatRange__Group__2__Impl rule__RepeatRange__Group__3 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3897:2: rule__RepeatRange__Group__2__Impl rule__RepeatRange__Group__3
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__Group__2__Impl_in_rule__RepeatRange__Group__27911);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 242) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3993:1: ( rule__RepeatRange__Group__2__Impl rule__RepeatRange__Group__3 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3994:2: rule__RepeatRange__Group__2__Impl rule__RepeatRange__Group__3
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__Group__2__Impl_in_rule__RepeatRange__Group__28111);
             rule__RepeatRange__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatRange__Group__3_in_rule__RepeatRange__Group__27914);
+            pushFollow(FOLLOW_rule__RepeatRange__Group__3_in_rule__RepeatRange__Group__28114);
             rule__RepeatRange__Group__3();
 
@@ -12329,5 +12634,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 236, rule__RepeatRange__Group__2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 242, rule__RepeatRange__Group__2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12340,5 +12645,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__2__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3904:1: rule__RepeatRange__Group__2__Impl : ( ( rule__RepeatRange__FromAssignment_2 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4001:1: rule__RepeatRange__Group__2__Impl : ( ( rule__RepeatRange__FromAssignment_2 ) ) ;
     public final void rule__RepeatRange__Group__2__Impl() throws RecognitionException {
         int rule__RepeatRange__Group__2__Impl_StartIndex = input.index();
@@ -12347,18 +12652,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 237) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3908:1: ( ( ( rule__RepeatRange__FromAssignment_2 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3909:1: ( ( rule__RepeatRange__FromAssignment_2 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3909:1: ( ( rule__RepeatRange__FromAssignment_2 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3910:1: ( rule__RepeatRange__FromAssignment_2 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 243) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4005:1: ( ( ( rule__RepeatRange__FromAssignment_2 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4006:1: ( ( rule__RepeatRange__FromAssignment_2 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4006:1: ( ( rule__RepeatRange__FromAssignment_2 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4007:1: ( rule__RepeatRange__FromAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getFromAssignment_2()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3911:1: ( rule__RepeatRange__FromAssignment_2 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3911:2: rule__RepeatRange__FromAssignment_2
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__FromAssignment_2_in_rule__RepeatRange__Group__2__Impl7941);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4008:1: ( rule__RepeatRange__FromAssignment_2 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4008:2: rule__RepeatRange__FromAssignment_2
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__FromAssignment_2_in_rule__RepeatRange__Group__2__Impl8141);
             rule__RepeatRange__FromAssignment_2();
 
@@ -12383,5 +12688,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 237, rule__RepeatRange__Group__2__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 243, rule__RepeatRange__Group__2__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12394,5 +12699,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3921:1: rule__RepeatRange__Group__3 : rule__RepeatRange__Group__3__Impl rule__RepeatRange__Group__4 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4018:1: rule__RepeatRange__Group__3 : rule__RepeatRange__Group__3__Impl rule__RepeatRange__Group__4 ;
     public final void rule__RepeatRange__Group__3() throws RecognitionException {
         int rule__RepeatRange__Group__3_StartIndex = input.index();
@@ -12401,14 +12706,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 238) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3925:1: ( rule__RepeatRange__Group__3__Impl rule__RepeatRange__Group__4 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3926:2: rule__RepeatRange__Group__3__Impl rule__RepeatRange__Group__4
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__Group__3__Impl_in_rule__RepeatRange__Group__37971);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 244) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4022:1: ( rule__RepeatRange__Group__3__Impl rule__RepeatRange__Group__4 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4023:2: rule__RepeatRange__Group__3__Impl rule__RepeatRange__Group__4
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__Group__3__Impl_in_rule__RepeatRange__Group__38171);
             rule__RepeatRange__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatRange__Group__4_in_rule__RepeatRange__Group__37974);
+            pushFollow(FOLLOW_rule__RepeatRange__Group__4_in_rule__RepeatRange__Group__38174);
             rule__RepeatRange__Group__4();
 
@@ -12424,5 +12729,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 238, rule__RepeatRange__Group__3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 244, rule__RepeatRange__Group__3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12435,5 +12740,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__3__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3933:1: rule__RepeatRange__Group__3__Impl : ( ',' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4030:1: rule__RepeatRange__Group__3__Impl : ( ',' ) ;
     public final void rule__RepeatRange__Group__3__Impl() throws RecognitionException {
         int rule__RepeatRange__Group__3__Impl_StartIndex = input.index();
@@ -12442,15 +12747,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 239) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3937:1: ( ( ',' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3938:1: ( ',' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3938:1: ( ',' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3939:1: ','
+            if ( state.backtracking>0 && alreadyParsedRule(input, 245) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4034:1: ( ( ',' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4035:1: ( ',' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4035:1: ( ',' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4036:1: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getCommaKeyword_3()); 
             }
-            match(input,35,FOLLOW_35_in_rule__RepeatRange__Group__3__Impl8002); if (state.failed) return ;
+            match(input,35,FOLLOW_35_in_rule__RepeatRange__Group__3__Impl8202); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatRangeAccess().getCommaKeyword_3()); 
@@ -12468,5 +12773,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 239, rule__RepeatRange__Group__3__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 245, rule__RepeatRange__Group__3__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12479,5 +12784,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3952:1: rule__RepeatRange__Group__4 : rule__RepeatRange__Group__4__Impl rule__RepeatRange__Group__5 ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4049:1: rule__RepeatRange__Group__4 : rule__RepeatRange__Group__4__Impl rule__RepeatRange__Group__5 ;
     public final void rule__RepeatRange__Group__4() throws RecognitionException {
         int rule__RepeatRange__Group__4_StartIndex = input.index();
@@ -12486,14 +12791,14 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 240) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3956:1: ( rule__RepeatRange__Group__4__Impl rule__RepeatRange__Group__5 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3957:2: rule__RepeatRange__Group__4__Impl rule__RepeatRange__Group__5
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__Group__4__Impl_in_rule__RepeatRange__Group__48033);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 246) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4053:1: ( rule__RepeatRange__Group__4__Impl rule__RepeatRange__Group__5 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4054:2: rule__RepeatRange__Group__4__Impl rule__RepeatRange__Group__5
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__Group__4__Impl_in_rule__RepeatRange__Group__48233);
             rule__RepeatRange__Group__4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
-            pushFollow(FOLLOW_rule__RepeatRange__Group__5_in_rule__RepeatRange__Group__48036);
+            pushFollow(FOLLOW_rule__RepeatRange__Group__5_in_rule__RepeatRange__Group__48236);
             rule__RepeatRange__Group__5();
 
@@ -12509,5 +12814,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 240, rule__RepeatRange__Group__4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 246, rule__RepeatRange__Group__4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12520,5 +12825,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__4__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3964:1: rule__RepeatRange__Group__4__Impl : ( ( rule__RepeatRange__ToAssignment_4 ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4061:1: rule__RepeatRange__Group__4__Impl : ( ( rule__RepeatRange__ToAssignment_4 ) ) ;
     public final void rule__RepeatRange__Group__4__Impl() throws RecognitionException {
         int rule__RepeatRange__Group__4__Impl_StartIndex = input.index();
@@ -12527,18 +12832,18 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 241) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3968:1: ( ( ( rule__RepeatRange__ToAssignment_4 ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3969:1: ( ( rule__RepeatRange__ToAssignment_4 ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3969:1: ( ( rule__RepeatRange__ToAssignment_4 ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3970:1: ( rule__RepeatRange__ToAssignment_4 )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 247) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4065:1: ( ( ( rule__RepeatRange__ToAssignment_4 ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4066:1: ( ( rule__RepeatRange__ToAssignment_4 ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4066:1: ( ( rule__RepeatRange__ToAssignment_4 ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4067:1: ( rule__RepeatRange__ToAssignment_4 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getToAssignment_4()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3971:1: ( rule__RepeatRange__ToAssignment_4 )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3971:2: rule__RepeatRange__ToAssignment_4
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__ToAssignment_4_in_rule__RepeatRange__Group__4__Impl8063);
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4068:1: ( rule__RepeatRange__ToAssignment_4 )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4068:2: rule__RepeatRange__ToAssignment_4
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__ToAssignment_4_in_rule__RepeatRange__Group__4__Impl8263);
             rule__RepeatRange__ToAssignment_4();
 
@@ -12563,5 +12868,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 241, rule__RepeatRange__Group__4__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 247, rule__RepeatRange__Group__4__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12574,5 +12879,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__5"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3981:1: rule__RepeatRange__Group__5 : rule__RepeatRange__Group__5__Impl ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4078:1: rule__RepeatRange__Group__5 : rule__RepeatRange__Group__5__Impl ;
     public final void rule__RepeatRange__Group__5() throws RecognitionException {
         int rule__RepeatRange__Group__5_StartIndex = input.index();
@@ -12581,9 +12886,9 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 242) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3985:1: ( rule__RepeatRange__Group__5__Impl )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3986:2: rule__RepeatRange__Group__5__Impl
-            {
-            pushFollow(FOLLOW_rule__RepeatRange__Group__5__Impl_in_rule__RepeatRange__Group__58093);
+            if ( state.backtracking>0 && alreadyParsedRule(input, 248) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4082:1: ( rule__RepeatRange__Group__5__Impl )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4083:2: rule__RepeatRange__Group__5__Impl
+            {
+            pushFollow(FOLLOW_rule__RepeatRange__Group__5__Impl_in_rule__RepeatRange__Group__58293);
             rule__RepeatRange__Group__5__Impl();
 
@@ -12599,5 +12904,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 242, rule__RepeatRange__Group__5_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 248, rule__RepeatRange__Group__5_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12610,5 +12915,5 @@
 
     // $ANTLR start "rule__RepeatRange__Group__5__Impl"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3992:1: rule__RepeatRange__Group__5__Impl : ( ')' ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4089:1: rule__RepeatRange__Group__5__Impl : ( ')' ) ;
     public final void rule__RepeatRange__Group__5__Impl() throws RecognitionException {
         int rule__RepeatRange__Group__5__Impl_StartIndex = input.index();
@@ -12617,15 +12922,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 243) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3996:1: ( ( ')' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3997:1: ( ')' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3997:1: ( ')' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:3998:1: ')'
+            if ( state.backtracking>0 && alreadyParsedRule(input, 249) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4093:1: ( ( ')' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4094:1: ( ')' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4094:1: ( ')' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4095:1: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getRightParenthesisKeyword_5()); 
             }
-            match(input,13,FOLLOW_13_in_rule__RepeatRange__Group__5__Impl8121); if (state.failed) return ;
+            match(input,13,FOLLOW_13_in_rule__RepeatRange__Group__5__Impl8321); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatRangeAccess().getRightParenthesisKeyword_5()); 
@@ -12643,5 +12948,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 243, rule__RepeatRange__Group__5__Impl_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 249, rule__RepeatRange__Group__5__Impl_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12654,5 +12959,5 @@
 
     // $ANTLR start "rule__EtsiBnf__NameAssignment_0_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4024:1: rule__EtsiBnf__NameAssignment_0_1 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4121:1: rule__EtsiBnf__NameAssignment_0_1 : ( RULE_ID ) ;
     public final void rule__EtsiBnf__NameAssignment_0_1() throws RecognitionException {
         int rule__EtsiBnf__NameAssignment_0_1_StartIndex = input.index();
@@ -12661,15 +12966,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 244) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4028:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4029:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4029:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4030:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 250) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4125:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4126:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4126:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4127:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getNameIDTerminalRuleCall_0_1_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EtsiBnf__NameAssignment_0_18169); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EtsiBnf__NameAssignment_0_18369); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getNameIDTerminalRuleCall_0_1_0()); 
@@ -12687,5 +12992,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 244, rule__EtsiBnf__NameAssignment_0_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 250, rule__EtsiBnf__NameAssignment_0_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12698,5 +13003,5 @@
 
     // $ANTLR start "rule__EtsiBnf__TypeAssignment_0_2_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4039:1: rule__EtsiBnf__TypeAssignment_0_2_0 : ( ( '/bnf' ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4136:1: rule__EtsiBnf__TypeAssignment_0_2_0 : ( ( '/bnf' ) ) ;
     public final void rule__EtsiBnf__TypeAssignment_0_2_0() throws RecognitionException {
         int rule__EtsiBnf__TypeAssignment_0_2_0_StartIndex = input.index();
@@ -12705,21 +13010,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 245) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4043:1: ( ( ( '/bnf' ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4044:1: ( ( '/bnf' ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4044:1: ( ( '/bnf' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4045:1: ( '/bnf' )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 251) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4140:1: ( ( ( '/bnf' ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4141:1: ( ( '/bnf' ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4141:1: ( ( '/bnf' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4142:1: ( '/bnf' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeBnfKeyword_0_2_0_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4046:1: ( '/bnf' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4047:1: '/bnf'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4143:1: ( '/bnf' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4144:1: '/bnf'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeBnfKeyword_0_2_0_0()); 
             }
-            match(input,36,FOLLOW_36_in_rule__EtsiBnf__TypeAssignment_0_2_08205); if (state.failed) return ;
+            match(input,36,FOLLOW_36_in_rule__EtsiBnf__TypeAssignment_0_2_08405); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getTypeBnfKeyword_0_2_0_0()); 
@@ -12743,5 +13048,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 245, rule__EtsiBnf__TypeAssignment_0_2_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 251, rule__EtsiBnf__TypeAssignment_0_2_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12754,5 +13059,5 @@
 
     // $ANTLR start "rule__EtsiBnf__ImportSectionAssignment_0_2_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4062:1: rule__EtsiBnf__ImportSectionAssignment_0_2_2 : ( ruleImportSection ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4159:1: rule__EtsiBnf__ImportSectionAssignment_0_2_2 : ( ruleImportSection ) ;
     public final void rule__EtsiBnf__ImportSectionAssignment_0_2_2() throws RecognitionException {
         int rule__EtsiBnf__ImportSectionAssignment_0_2_2_StartIndex = input.index();
@@ -12761,15 +13066,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 246) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4066:1: ( ( ruleImportSection ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4067:1: ( ruleImportSection )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4067:1: ( ruleImportSection )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4068:1: ruleImportSection
+            if ( state.backtracking>0 && alreadyParsedRule(input, 252) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4163:1: ( ( ruleImportSection ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4164:1: ( ruleImportSection )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4164:1: ( ruleImportSection )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4165:1: ruleImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_0_2_2_0()); 
             }
-            pushFollow(FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_0_2_28244);
+            pushFollow(FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_0_2_28444);
             ruleImportSection();
 
@@ -12791,5 +13096,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 246, rule__EtsiBnf__ImportSectionAssignment_0_2_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 252, rule__EtsiBnf__ImportSectionAssignment_0_2_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12802,5 +13107,5 @@
 
     // $ANTLR start "rule__EtsiBnf__BnfEntryAssignment_0_2_3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4077:1: rule__EtsiBnf__BnfEntryAssignment_0_2_3 : ( ruleBnfEntry ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4174:1: rule__EtsiBnf__BnfEntryAssignment_0_2_3 : ( ruleBnfEntry ) ;
     public final void rule__EtsiBnf__BnfEntryAssignment_0_2_3() throws RecognitionException {
         int rule__EtsiBnf__BnfEntryAssignment_0_2_3_StartIndex = input.index();
@@ -12809,15 +13114,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 247) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4081:1: ( ( ruleBnfEntry ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4082:1: ( ruleBnfEntry )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4082:1: ( ruleBnfEntry )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4083:1: ruleBnfEntry
+            if ( state.backtracking>0 && alreadyParsedRule(input, 253) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4178:1: ( ( ruleBnfEntry ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4179:1: ( ruleBnfEntry )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4179:1: ( ruleBnfEntry )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4180:1: ruleBnfEntry
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getBnfEntryBnfEntryParserRuleCall_0_2_3_0()); 
             }
-            pushFollow(FOLLOW_ruleBnfEntry_in_rule__EtsiBnf__BnfEntryAssignment_0_2_38275);
+            pushFollow(FOLLOW_ruleBnfEntry_in_rule__EtsiBnf__BnfEntryAssignment_0_2_38475);
             ruleBnfEntry();
 
@@ -12839,5 +13144,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 247, rule__EtsiBnf__BnfEntryAssignment_0_2_3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 253, rule__EtsiBnf__BnfEntryAssignment_0_2_3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12850,5 +13155,5 @@
 
     // $ANTLR start "rule__EtsiBnf__TypeAssignment_1_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4092:1: rule__EtsiBnf__TypeAssignment_1_0 : ( ( '/delta' ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4189:1: rule__EtsiBnf__TypeAssignment_1_0 : ( ( '/delta' ) ) ;
     public final void rule__EtsiBnf__TypeAssignment_1_0() throws RecognitionException {
         int rule__EtsiBnf__TypeAssignment_1_0_StartIndex = input.index();
@@ -12857,21 +13162,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 248) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4096:1: ( ( ( '/delta' ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4097:1: ( ( '/delta' ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4097:1: ( ( '/delta' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4098:1: ( '/delta' )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 254) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4193:1: ( ( ( '/delta' ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4194:1: ( ( '/delta' ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4194:1: ( ( '/delta' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4195:1: ( '/delta' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeDeltaKeyword_1_0_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4099:1: ( '/delta' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4100:1: '/delta'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4196:1: ( '/delta' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4197:1: '/delta'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeDeltaKeyword_1_0_0()); 
             }
-            match(input,37,FOLLOW_37_in_rule__EtsiBnf__TypeAssignment_1_08311); if (state.failed) return ;
+            match(input,37,FOLLOW_37_in_rule__EtsiBnf__TypeAssignment_1_08511); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getTypeDeltaKeyword_1_0_0()); 
@@ -12895,5 +13200,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 248, rule__EtsiBnf__TypeAssignment_1_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 254, rule__EtsiBnf__TypeAssignment_1_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12906,5 +13211,5 @@
 
     // $ANTLR start "rule__EtsiBnf__ImportSectionAssignment_1_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4115:1: rule__EtsiBnf__ImportSectionAssignment_1_2 : ( ruleImportSection ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4212:1: rule__EtsiBnf__ImportSectionAssignment_1_2 : ( ruleImportSection ) ;
     public final void rule__EtsiBnf__ImportSectionAssignment_1_2() throws RecognitionException {
         int rule__EtsiBnf__ImportSectionAssignment_1_2_StartIndex = input.index();
@@ -12913,15 +13218,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 249) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4119:1: ( ( ruleImportSection ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4120:1: ( ruleImportSection )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4120:1: ( ruleImportSection )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4121:1: ruleImportSection
+            if ( state.backtracking>0 && alreadyParsedRule(input, 255) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4216:1: ( ( ruleImportSection ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4217:1: ( ruleImportSection )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4217:1: ( ruleImportSection )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4218:1: ruleImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_1_2_0()); 
             }
-            pushFollow(FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_1_28350);
+            pushFollow(FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_1_28550);
             ruleImportSection();
 
@@ -12943,5 +13248,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 249, rule__EtsiBnf__ImportSectionAssignment_1_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 255, rule__EtsiBnf__ImportSectionAssignment_1_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -12954,5 +13259,5 @@
 
     // $ANTLR start "rule__EtsiBnf__DeltaEntryAssignment_1_3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4130:1: rule__EtsiBnf__DeltaEntryAssignment_1_3 : ( ruleDeltaEntry ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4227:1: rule__EtsiBnf__DeltaEntryAssignment_1_3 : ( ruleDeltaEntry ) ;
     public final void rule__EtsiBnf__DeltaEntryAssignment_1_3() throws RecognitionException {
         int rule__EtsiBnf__DeltaEntryAssignment_1_3_StartIndex = input.index();
@@ -12961,15 +13266,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 250) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4134:1: ( ( ruleDeltaEntry ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4135:1: ( ruleDeltaEntry )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4135:1: ( ruleDeltaEntry )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4136:1: ruleDeltaEntry
+            if ( state.backtracking>0 && alreadyParsedRule(input, 256) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4231:1: ( ( ruleDeltaEntry ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4232:1: ( ruleDeltaEntry )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4232:1: ( ruleDeltaEntry )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4233:1: ruleDeltaEntry
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getDeltaEntryDeltaEntryParserRuleCall_1_3_0()); 
             }
-            pushFollow(FOLLOW_ruleDeltaEntry_in_rule__EtsiBnf__DeltaEntryAssignment_1_38381);
+            pushFollow(FOLLOW_ruleDeltaEntry_in_rule__EtsiBnf__DeltaEntryAssignment_1_38581);
             ruleDeltaEntry();
 
@@ -12991,5 +13296,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 250, rule__EtsiBnf__DeltaEntryAssignment_1_3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 256, rule__EtsiBnf__DeltaEntryAssignment_1_3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13002,5 +13307,5 @@
 
     // $ANTLR start "rule__EtsiBnf__TypeAssignment_2_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4145:1: rule__EtsiBnf__TypeAssignment_2_0 : ( ( '/merge' ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4242:1: rule__EtsiBnf__TypeAssignment_2_0 : ( ( '/merge' ) ) ;
     public final void rule__EtsiBnf__TypeAssignment_2_0() throws RecognitionException {
         int rule__EtsiBnf__TypeAssignment_2_0_StartIndex = input.index();
@@ -13009,21 +13314,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 251) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4149:1: ( ( ( '/merge' ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4150:1: ( ( '/merge' ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4150:1: ( ( '/merge' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4151:1: ( '/merge' )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 257) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4246:1: ( ( ( '/merge' ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4247:1: ( ( '/merge' ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4247:1: ( ( '/merge' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4248:1: ( '/merge' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeMergeKeyword_2_0_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4152:1: ( '/merge' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4153:1: '/merge'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4249:1: ( '/merge' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4250:1: '/merge'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getTypeMergeKeyword_2_0_0()); 
             }
-            match(input,38,FOLLOW_38_in_rule__EtsiBnf__TypeAssignment_2_08417); if (state.failed) return ;
+            match(input,38,FOLLOW_38_in_rule__EtsiBnf__TypeAssignment_2_08617); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getEtsiBnfAccess().getTypeMergeKeyword_2_0_0()); 
@@ -13047,5 +13352,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 251, rule__EtsiBnf__TypeAssignment_2_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 257, rule__EtsiBnf__TypeAssignment_2_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13058,5 +13363,5 @@
 
     // $ANTLR start "rule__EtsiBnf__ImportSectionAssignment_2_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4168:1: rule__EtsiBnf__ImportSectionAssignment_2_2 : ( ruleImportSection ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4265:1: rule__EtsiBnf__ImportSectionAssignment_2_2 : ( ruleImportSection ) ;
     public final void rule__EtsiBnf__ImportSectionAssignment_2_2() throws RecognitionException {
         int rule__EtsiBnf__ImportSectionAssignment_2_2_StartIndex = input.index();
@@ -13065,15 +13370,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 252) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4172:1: ( ( ruleImportSection ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4173:1: ( ruleImportSection )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4173:1: ( ruleImportSection )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4174:1: ruleImportSection
+            if ( state.backtracking>0 && alreadyParsedRule(input, 258) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4269:1: ( ( ruleImportSection ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4270:1: ( ruleImportSection )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4270:1: ( ruleImportSection )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4271:1: ruleImportSection
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_2_2_0()); 
             }
-            pushFollow(FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_2_28456);
+            pushFollow(FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_2_28656);
             ruleImportSection();
 
@@ -13095,5 +13400,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 252, rule__EtsiBnf__ImportSectionAssignment_2_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 258, rule__EtsiBnf__ImportSectionAssignment_2_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13106,5 +13411,5 @@
 
     // $ANTLR start "rule__EtsiBnf__MergeEntryAssignment_2_3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4183:1: rule__EtsiBnf__MergeEntryAssignment_2_3 : ( ruleMergeEntry ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4280:1: rule__EtsiBnf__MergeEntryAssignment_2_3 : ( ruleMergeEntry ) ;
     public final void rule__EtsiBnf__MergeEntryAssignment_2_3() throws RecognitionException {
         int rule__EtsiBnf__MergeEntryAssignment_2_3_StartIndex = input.index();
@@ -13113,15 +13418,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 253) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4187:1: ( ( ruleMergeEntry ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4188:1: ( ruleMergeEntry )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4188:1: ( ruleMergeEntry )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4189:1: ruleMergeEntry
+            if ( state.backtracking>0 && alreadyParsedRule(input, 259) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4284:1: ( ( ruleMergeEntry ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4285:1: ( ruleMergeEntry )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4285:1: ( ruleMergeEntry )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4286:1: ruleMergeEntry
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getEtsiBnfAccess().getMergeEntryMergeEntryParserRuleCall_2_3_0()); 
             }
-            pushFollow(FOLLOW_ruleMergeEntry_in_rule__EtsiBnf__MergeEntryAssignment_2_38487);
+            pushFollow(FOLLOW_ruleMergeEntry_in_rule__EtsiBnf__MergeEntryAssignment_2_38687);
             ruleMergeEntry();
 
@@ -13143,5 +13448,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 253, rule__EtsiBnf__MergeEntryAssignment_2_3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 259, rule__EtsiBnf__MergeEntryAssignment_2_3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13154,5 +13459,5 @@
 
     // $ANTLR start "rule__ImportSection__ImportsAssignment"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4198:1: rule__ImportSection__ImportsAssignment : ( ruleImport ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4295:1: rule__ImportSection__ImportsAssignment : ( ruleImport ) ;
     public final void rule__ImportSection__ImportsAssignment() throws RecognitionException {
         int rule__ImportSection__ImportsAssignment_StartIndex = input.index();
@@ -13161,15 +13466,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 254) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4202:1: ( ( ruleImport ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4203:1: ( ruleImport )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4203:1: ( ruleImport )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4204:1: ruleImport
+            if ( state.backtracking>0 && alreadyParsedRule(input, 260) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4299:1: ( ( ruleImport ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4300:1: ( ruleImport )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4300:1: ( ruleImport )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4301:1: ruleImport
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportSectionAccess().getImportsImportParserRuleCall_0()); 
             }
-            pushFollow(FOLLOW_ruleImport_in_rule__ImportSection__ImportsAssignment8518);
+            pushFollow(FOLLOW_ruleImport_in_rule__ImportSection__ImportsAssignment8718);
             ruleImport();
 
@@ -13191,5 +13496,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 254, rule__ImportSection__ImportsAssignment_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 260, rule__ImportSection__ImportsAssignment_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13202,5 +13507,5 @@
 
     // $ANTLR start "rule__BnfEntry__SectionheaderAssignment_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4213:1: rule__BnfEntry__SectionheaderAssignment_0 : ( ruleSectionHeading ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4310:1: rule__BnfEntry__SectionheaderAssignment_0 : ( ruleSectionHeading ) ;
     public final void rule__BnfEntry__SectionheaderAssignment_0() throws RecognitionException {
         int rule__BnfEntry__SectionheaderAssignment_0_StartIndex = input.index();
@@ -13209,15 +13514,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 255) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4217:1: ( ( ruleSectionHeading ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4218:1: ( ruleSectionHeading )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4218:1: ( ruleSectionHeading )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4219:1: ruleSectionHeading
+            if ( state.backtracking>0 && alreadyParsedRule(input, 261) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4314:1: ( ( ruleSectionHeading ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4315:1: ( ruleSectionHeading )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4315:1: ( ruleSectionHeading )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4316:1: ruleSectionHeading
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBnfEntryAccess().getSectionheaderSectionHeadingParserRuleCall_0_0()); 
             }
-            pushFollow(FOLLOW_ruleSectionHeading_in_rule__BnfEntry__SectionheaderAssignment_08549);
+            pushFollow(FOLLOW_ruleSectionHeading_in_rule__BnfEntry__SectionheaderAssignment_08749);
             ruleSectionHeading();
 
@@ -13239,5 +13544,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 255, rule__BnfEntry__SectionheaderAssignment_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 261, rule__BnfEntry__SectionheaderAssignment_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13250,5 +13555,5 @@
 
     // $ANTLR start "rule__BnfEntry__RuleAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4228:1: rule__BnfEntry__RuleAssignment_1 : ( ruleRule ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4325:1: rule__BnfEntry__RuleAssignment_1 : ( ruleRule ) ;
     public final void rule__BnfEntry__RuleAssignment_1() throws RecognitionException {
         int rule__BnfEntry__RuleAssignment_1_StartIndex = input.index();
@@ -13257,15 +13562,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 256) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4232:1: ( ( ruleRule ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4233:1: ( ruleRule )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4233:1: ( ruleRule )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4234:1: ruleRule
+            if ( state.backtracking>0 && alreadyParsedRule(input, 262) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4329:1: ( ( ruleRule ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4330:1: ( ruleRule )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4330:1: ( ruleRule )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4331:1: ruleRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBnfEntryAccess().getRuleRuleParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleRule_in_rule__BnfEntry__RuleAssignment_18580);
+            pushFollow(FOLLOW_ruleRule_in_rule__BnfEntry__RuleAssignment_18780);
             ruleRule();
 
@@ -13287,5 +13592,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 256, rule__BnfEntry__RuleAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 262, rule__BnfEntry__RuleAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13297,6 +13602,54 @@
 
 
+    // $ANTLR start "rule__BnfEntry__CommentAssignment_2"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4340:1: rule__BnfEntry__CommentAssignment_2 : ( ruleComment ) ;
+    public final void rule__BnfEntry__CommentAssignment_2() throws RecognitionException {
+        int rule__BnfEntry__CommentAssignment_2_StartIndex = input.index();
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 263) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4344:1: ( ( ruleComment ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4345:1: ( ruleComment )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4345:1: ( ruleComment )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4346:1: ruleComment
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_ruleComment_in_rule__BnfEntry__CommentAssignment_28811);
+            ruleComment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 263, rule__BnfEntry__CommentAssignment_2_StartIndex); }
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BnfEntry__CommentAssignment_2"
+
+
     // $ANTLR start "rule__DeltaEntry__RuleAssignment_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4243:1: rule__DeltaEntry__RuleAssignment_0 : ( ruleRule ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4355:1: rule__DeltaEntry__RuleAssignment_0 : ( ruleRule ) ;
     public final void rule__DeltaEntry__RuleAssignment_0() throws RecognitionException {
         int rule__DeltaEntry__RuleAssignment_0_StartIndex = input.index();
@@ -13305,15 +13658,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 257) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4247:1: ( ( ruleRule ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4248:1: ( ruleRule )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4248:1: ( ruleRule )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4249:1: ruleRule
+            if ( state.backtracking>0 && alreadyParsedRule(input, 264) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4359:1: ( ( ruleRule ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4360:1: ( ruleRule )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4360:1: ( ruleRule )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4361:1: ruleRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDeltaEntryAccess().getRuleRuleParserRuleCall_0_0()); 
             }
-            pushFollow(FOLLOW_ruleRule_in_rule__DeltaEntry__RuleAssignment_08611);
+            pushFollow(FOLLOW_ruleRule_in_rule__DeltaEntry__RuleAssignment_08842);
             ruleRule();
 
@@ -13335,5 +13688,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 257, rule__DeltaEntry__RuleAssignment_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 264, rule__DeltaEntry__RuleAssignment_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13346,5 +13699,5 @@
 
     // $ANTLR start "rule__DeltaEntry__SectionheaderAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4258:1: rule__DeltaEntry__SectionheaderAssignment_1 : ( ruleSectionHeading ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4370:1: rule__DeltaEntry__SectionheaderAssignment_1 : ( ruleSectionHeading ) ;
     public final void rule__DeltaEntry__SectionheaderAssignment_1() throws RecognitionException {
         int rule__DeltaEntry__SectionheaderAssignment_1_StartIndex = input.index();
@@ -13353,15 +13706,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 258) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4262:1: ( ( ruleSectionHeading ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4263:1: ( ruleSectionHeading )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4263:1: ( ruleSectionHeading )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4264:1: ruleSectionHeading
+            if ( state.backtracking>0 && alreadyParsedRule(input, 265) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4374:1: ( ( ruleSectionHeading ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4375:1: ( ruleSectionHeading )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4375:1: ( ruleSectionHeading )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4376:1: ruleSectionHeading
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDeltaEntryAccess().getSectionheaderSectionHeadingParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleSectionHeading_in_rule__DeltaEntry__SectionheaderAssignment_18642);
+            pushFollow(FOLLOW_ruleSectionHeading_in_rule__DeltaEntry__SectionheaderAssignment_18873);
             ruleSectionHeading();
 
@@ -13383,5 +13736,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 258, rule__DeltaEntry__SectionheaderAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 265, rule__DeltaEntry__SectionheaderAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13394,5 +13747,5 @@
 
     // $ANTLR start "rule__DeltaEntry__ExtRuleAssignment_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4273:1: rule__DeltaEntry__ExtRuleAssignment_2 : ( ruleExtRule ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4385:1: rule__DeltaEntry__ExtRuleAssignment_2 : ( ruleExtRule ) ;
     public final void rule__DeltaEntry__ExtRuleAssignment_2() throws RecognitionException {
         int rule__DeltaEntry__ExtRuleAssignment_2_StartIndex = input.index();
@@ -13401,15 +13754,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 259) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4277:1: ( ( ruleExtRule ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4278:1: ( ruleExtRule )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4278:1: ( ruleExtRule )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4279:1: ruleExtRule
+            if ( state.backtracking>0 && alreadyParsedRule(input, 266) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4389:1: ( ( ruleExtRule ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4390:1: ( ruleExtRule )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4390:1: ( ruleExtRule )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4391:1: ruleExtRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDeltaEntryAccess().getExtRuleExtRuleParserRuleCall_2_0()); 
             }
-            pushFollow(FOLLOW_ruleExtRule_in_rule__DeltaEntry__ExtRuleAssignment_28673);
+            pushFollow(FOLLOW_ruleExtRule_in_rule__DeltaEntry__ExtRuleAssignment_28904);
             ruleExtRule();
 
@@ -13431,5 +13784,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 259, rule__DeltaEntry__ExtRuleAssignment_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 266, rule__DeltaEntry__ExtRuleAssignment_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13442,5 +13795,5 @@
 
     // $ANTLR start "rule__MergeEntry__SectionheaderAssignment_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4288:1: rule__MergeEntry__SectionheaderAssignment_0 : ( ruleSectionHeading ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4400:1: rule__MergeEntry__SectionheaderAssignment_0 : ( ruleSectionHeading ) ;
     public final void rule__MergeEntry__SectionheaderAssignment_0() throws RecognitionException {
         int rule__MergeEntry__SectionheaderAssignment_0_StartIndex = input.index();
@@ -13449,15 +13802,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 260) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4292:1: ( ( ruleSectionHeading ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4293:1: ( ruleSectionHeading )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4293:1: ( ruleSectionHeading )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4294:1: ruleSectionHeading
+            if ( state.backtracking>0 && alreadyParsedRule(input, 267) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4404:1: ( ( ruleSectionHeading ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4405:1: ( ruleSectionHeading )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4405:1: ( ruleSectionHeading )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4406:1: ruleSectionHeading
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMergeEntryAccess().getSectionheaderSectionHeadingParserRuleCall_0_0()); 
             }
-            pushFollow(FOLLOW_ruleSectionHeading_in_rule__MergeEntry__SectionheaderAssignment_08704);
+            pushFollow(FOLLOW_ruleSectionHeading_in_rule__MergeEntry__SectionheaderAssignment_08935);
             ruleSectionHeading();
 
@@ -13479,5 +13832,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 260, rule__MergeEntry__SectionheaderAssignment_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 267, rule__MergeEntry__SectionheaderAssignment_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13490,5 +13843,5 @@
 
     // $ANTLR start "rule__MergeEntry__MergeRuleAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4303:1: rule__MergeEntry__MergeRuleAssignment_1 : ( ruleMergeRule ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4415:1: rule__MergeEntry__MergeRuleAssignment_1 : ( ruleMergeRule ) ;
     public final void rule__MergeEntry__MergeRuleAssignment_1() throws RecognitionException {
         int rule__MergeEntry__MergeRuleAssignment_1_StartIndex = input.index();
@@ -13497,15 +13850,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 261) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4307:1: ( ( ruleMergeRule ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4308:1: ( ruleMergeRule )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4308:1: ( ruleMergeRule )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4309:1: ruleMergeRule
+            if ( state.backtracking>0 && alreadyParsedRule(input, 268) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4419:1: ( ( ruleMergeRule ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4420:1: ( ruleMergeRule )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4420:1: ( ruleMergeRule )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4421:1: ruleMergeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMergeEntryAccess().getMergeRuleMergeRuleParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleMergeRule_in_rule__MergeEntry__MergeRuleAssignment_18735);
+            pushFollow(FOLLOW_ruleMergeRule_in_rule__MergeEntry__MergeRuleAssignment_18966);
             ruleMergeRule();
 
@@ -13527,5 +13880,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 261, rule__MergeEntry__MergeRuleAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 268, rule__MergeEntry__MergeRuleAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13538,5 +13891,5 @@
 
     // $ANTLR start "rule__SectionHeading__SectionHeaderAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4318:1: rule__SectionHeading__SectionHeaderAssignment_1 : ( RULE_SECTIONHEADER ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4430:1: rule__SectionHeading__SectionHeaderAssignment_1 : ( RULE_SECTIONHEADER ) ;
     public final void rule__SectionHeading__SectionHeaderAssignment_1() throws RecognitionException {
         int rule__SectionHeading__SectionHeaderAssignment_1_StartIndex = input.index();
@@ -13545,15 +13898,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 262) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4322:1: ( ( RULE_SECTIONHEADER ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4323:1: ( RULE_SECTIONHEADER )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4323:1: ( RULE_SECTIONHEADER )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4324:1: RULE_SECTIONHEADER
+            if ( state.backtracking>0 && alreadyParsedRule(input, 269) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4434:1: ( ( RULE_SECTIONHEADER ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4435:1: ( RULE_SECTIONHEADER )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4435:1: ( RULE_SECTIONHEADER )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4436:1: RULE_SECTIONHEADER
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSectionHeadingAccess().getSectionHeaderSECTIONHEADERTerminalRuleCall_1_0()); 
             }
-            match(input,RULE_SECTIONHEADER,FOLLOW_RULE_SECTIONHEADER_in_rule__SectionHeading__SectionHeaderAssignment_18766); if (state.failed) return ;
+            match(input,RULE_SECTIONHEADER,FOLLOW_RULE_SECTIONHEADER_in_rule__SectionHeading__SectionHeaderAssignment_18997); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getSectionHeadingAccess().getSectionHeaderSECTIONHEADERTerminalRuleCall_1_0()); 
@@ -13571,5 +13924,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 262, rule__SectionHeading__SectionHeaderAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 269, rule__SectionHeading__SectionHeaderAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13581,6 +13934,50 @@
 
 
+    // $ANTLR start "rule__Comment__ContentAssignment_1"
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4445:1: rule__Comment__ContentAssignment_1 : ( RULE_ML_COMMENT ) ;
+    public final void rule__Comment__ContentAssignment_1() throws RecognitionException {
+        int rule__Comment__ContentAssignment_1_StartIndex = input.index();
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            if ( state.backtracking>0 && alreadyParsedRule(input, 270) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4449:1: ( ( RULE_ML_COMMENT ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4450:1: ( RULE_ML_COMMENT )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4450:1: ( RULE_ML_COMMENT )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4451:1: RULE_ML_COMMENT
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0()); 
+            }
+            match(input,RULE_ML_COMMENT,FOLLOW_RULE_ML_COMMENT_in_rule__Comment__ContentAssignment_19028); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( state.backtracking>0 ) { memoize(input, 270, rule__Comment__ContentAssignment_1_StartIndex); }
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Comment__ContentAssignment_1"
+
+
     // $ANTLR start "rule__Import__ImportURIAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4333:1: rule__Import__ImportURIAssignment_1 : ( RULE_STRING ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4460:1: rule__Import__ImportURIAssignment_1 : ( RULE_STRING ) ;
     public final void rule__Import__ImportURIAssignment_1() throws RecognitionException {
         int rule__Import__ImportURIAssignment_1_StartIndex = input.index();
@@ -13589,15 +13986,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 263) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4337:1: ( ( RULE_STRING ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4338:1: ( RULE_STRING )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4338:1: ( RULE_STRING )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4339:1: RULE_STRING
+            if ( state.backtracking>0 && alreadyParsedRule(input, 271) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4464:1: ( ( RULE_STRING ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4465:1: ( RULE_STRING )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4465:1: ( RULE_STRING )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4466:1: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
             }
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_18797); if (state.failed) return ;
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_19059); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
@@ -13615,5 +14012,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 263, rule__Import__ImportURIAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 271, rule__Import__ImportURIAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13626,5 +14023,5 @@
 
     // $ANTLR start "rule__Import__GrammarTypeAssignment_2_1_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4348:1: rule__Import__GrammarTypeAssignment_2_1_0 : ( ( 'core' ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4475:1: rule__Import__GrammarTypeAssignment_2_1_0 : ( ( 'core' ) ) ;
     public final void rule__Import__GrammarTypeAssignment_2_1_0() throws RecognitionException {
         int rule__Import__GrammarTypeAssignment_2_1_0_StartIndex = input.index();
@@ -13633,21 +14030,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 264) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4352:1: ( ( ( 'core' ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4353:1: ( ( 'core' ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4353:1: ( ( 'core' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4354:1: ( 'core' )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 272) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4479:1: ( ( ( 'core' ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4480:1: ( ( 'core' ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4480:1: ( ( 'core' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4481:1: ( 'core' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGrammarTypeCoreKeyword_2_1_0_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4355:1: ( 'core' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4356:1: 'core'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4482:1: ( 'core' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4483:1: 'core'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGrammarTypeCoreKeyword_2_1_0_0()); 
             }
-            match(input,39,FOLLOW_39_in_rule__Import__GrammarTypeAssignment_2_1_08833); if (state.failed) return ;
+            match(input,39,FOLLOW_39_in_rule__Import__GrammarTypeAssignment_2_1_09095); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getGrammarTypeCoreKeyword_2_1_0_0()); 
@@ -13671,5 +14068,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 264, rule__Import__GrammarTypeAssignment_2_1_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 272, rule__Import__GrammarTypeAssignment_2_1_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13682,5 +14079,5 @@
 
     // $ANTLR start "rule__Import__GrammarTypeAssignment_2_1_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4371:1: rule__Import__GrammarTypeAssignment_2_1_1 : ( ( 'package' ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4498:1: rule__Import__GrammarTypeAssignment_2_1_1 : ( ( 'package' ) ) ;
     public final void rule__Import__GrammarTypeAssignment_2_1_1() throws RecognitionException {
         int rule__Import__GrammarTypeAssignment_2_1_1_StartIndex = input.index();
@@ -13689,21 +14086,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 265) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4375:1: ( ( ( 'package' ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4376:1: ( ( 'package' ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4376:1: ( ( 'package' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4377:1: ( 'package' )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 273) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4502:1: ( ( ( 'package' ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4503:1: ( ( 'package' ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4503:1: ( ( 'package' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4504:1: ( 'package' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGrammarTypePackageKeyword_2_1_1_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4378:1: ( 'package' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4379:1: 'package'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4505:1: ( 'package' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4506:1: 'package'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGrammarTypePackageKeyword_2_1_1_0()); 
             }
-            match(input,40,FOLLOW_40_in_rule__Import__GrammarTypeAssignment_2_1_18877); if (state.failed) return ;
+            match(input,40,FOLLOW_40_in_rule__Import__GrammarTypeAssignment_2_1_19139); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getGrammarTypePackageKeyword_2_1_1_0()); 
@@ -13727,5 +14124,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 265, rule__Import__GrammarTypeAssignment_2_1_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 273, rule__Import__GrammarTypeAssignment_2_1_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13738,5 +14135,5 @@
 
     // $ANTLR start "rule__Import__GrammarTypeAssignment_2_1_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4394:1: rule__Import__GrammarTypeAssignment_2_1_2 : ( ( 'update' ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4521:1: rule__Import__GrammarTypeAssignment_2_1_2 : ( ( 'update' ) ) ;
     public final void rule__Import__GrammarTypeAssignment_2_1_2() throws RecognitionException {
         int rule__Import__GrammarTypeAssignment_2_1_2_StartIndex = input.index();
@@ -13745,21 +14142,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 266) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4398:1: ( ( ( 'update' ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4399:1: ( ( 'update' ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4399:1: ( ( 'update' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4400:1: ( 'update' )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 274) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4525:1: ( ( ( 'update' ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4526:1: ( ( 'update' ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4526:1: ( ( 'update' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4527:1: ( 'update' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGrammarTypeUpdateKeyword_2_1_2_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4401:1: ( 'update' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4402:1: 'update'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4528:1: ( 'update' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4529:1: 'update'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getGrammarTypeUpdateKeyword_2_1_2_0()); 
             }
-            match(input,41,FOLLOW_41_in_rule__Import__GrammarTypeAssignment_2_1_28921); if (state.failed) return ;
+            match(input,41,FOLLOW_41_in_rule__Import__GrammarTypeAssignment_2_1_29183); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getGrammarTypeUpdateKeyword_2_1_2_0()); 
@@ -13783,5 +14180,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 266, rule__Import__GrammarTypeAssignment_2_1_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 274, rule__Import__GrammarTypeAssignment_2_1_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13794,5 +14191,5 @@
 
     // $ANTLR start "rule__Import__LabelAssignment_3_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4417:1: rule__Import__LabelAssignment_3_1 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4544:1: rule__Import__LabelAssignment_3_1 : ( RULE_ID ) ;
     public final void rule__Import__LabelAssignment_3_1() throws RecognitionException {
         int rule__Import__LabelAssignment_3_1_StartIndex = input.index();
@@ -13801,15 +14198,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 267) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4421:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4422:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4422:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4423:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 275) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4548:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4549:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4549:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4550:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getImportAccess().getLabelIDTerminalRuleCall_3_1_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Import__LabelAssignment_3_18960); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Import__LabelAssignment_3_19222); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getImportAccess().getLabelIDTerminalRuleCall_3_1_0()); 
@@ -13827,5 +14224,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 267, rule__Import__LabelAssignment_3_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 275, rule__Import__LabelAssignment_3_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13838,5 +14235,5 @@
 
     // $ANTLR start "rule__Rule__RulenumberAssignment_0_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4432:1: rule__Rule__RulenumberAssignment_0_0 : ( RULE_INT ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4559:1: rule__Rule__RulenumberAssignment_0_0 : ( RULE_INT ) ;
     public final void rule__Rule__RulenumberAssignment_0_0() throws RecognitionException {
         int rule__Rule__RulenumberAssignment_0_0_StartIndex = input.index();
@@ -13845,15 +14242,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 268) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4436:1: ( ( RULE_INT ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4437:1: ( RULE_INT )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4437:1: ( RULE_INT )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4438:1: RULE_INT
+            if ( state.backtracking>0 && alreadyParsedRule(input, 276) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4563:1: ( ( RULE_INT ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4564:1: ( RULE_INT )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4564:1: ( RULE_INT )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4565:1: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getRulenumberINTTerminalRuleCall_0_0_0()); 
             }
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Rule__RulenumberAssignment_0_08991); if (state.failed) return ;
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Rule__RulenumberAssignment_0_09253); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleAccess().getRulenumberINTTerminalRuleCall_0_0_0()); 
@@ -13871,5 +14268,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 268, rule__Rule__RulenumberAssignment_0_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 276, rule__Rule__RulenumberAssignment_0_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13882,5 +14279,5 @@
 
     // $ANTLR start "rule__Rule__RulevariantAssignment_0_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4447:1: rule__Rule__RulevariantAssignment_0_1 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4574:1: rule__Rule__RulevariantAssignment_0_1 : ( RULE_ID ) ;
     public final void rule__Rule__RulevariantAssignment_0_1() throws RecognitionException {
         int rule__Rule__RulevariantAssignment_0_1_StartIndex = input.index();
@@ -13889,15 +14286,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 269) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4451:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4452:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4452:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4453:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 277) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4578:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4579:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4579:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4580:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getRulevariantIDTerminalRuleCall_0_1_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Rule__RulevariantAssignment_0_19022); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Rule__RulevariantAssignment_0_19284); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleAccess().getRulevariantIDTerminalRuleCall_0_1_0()); 
@@ -13915,5 +14312,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 269, rule__Rule__RulevariantAssignment_0_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 277, rule__Rule__RulevariantAssignment_0_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13926,5 +14323,5 @@
 
     // $ANTLR start "rule__Rule__NameAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4462:1: rule__Rule__NameAssignment_1 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4589:1: rule__Rule__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__Rule__NameAssignment_1() throws RecognitionException {
         int rule__Rule__NameAssignment_1_StartIndex = input.index();
@@ -13933,15 +14330,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 270) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4466:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4467:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4467:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4468:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 278) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4593:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4594:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4594:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4595:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getNameIDTerminalRuleCall_1_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Rule__NameAssignment_19053); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Rule__NameAssignment_19315); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleAccess().getNameIDTerminalRuleCall_1_0()); 
@@ -13959,5 +14356,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 270, rule__Rule__NameAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 278, rule__Rule__NameAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -13970,5 +14367,5 @@
 
     // $ANTLR start "rule__Rule__DefinitionListAssignment_3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4477:1: rule__Rule__DefinitionListAssignment_3 : ( ruleDefinitionList ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4604:1: rule__Rule__DefinitionListAssignment_3 : ( ruleDefinitionList ) ;
     public final void rule__Rule__DefinitionListAssignment_3() throws RecognitionException {
         int rule__Rule__DefinitionListAssignment_3_StartIndex = input.index();
@@ -13977,15 +14374,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 271) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4481:1: ( ( ruleDefinitionList ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4482:1: ( ruleDefinitionList )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4482:1: ( ruleDefinitionList )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4483:1: ruleDefinitionList
+            if ( state.backtracking>0 && alreadyParsedRule(input, 279) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4608:1: ( ( ruleDefinitionList ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4609:1: ( ruleDefinitionList )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4609:1: ( ruleDefinitionList )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4610:1: ruleDefinitionList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleAccess().getDefinitionListDefinitionListParserRuleCall_3_0()); 
             }
-            pushFollow(FOLLOW_ruleDefinitionList_in_rule__Rule__DefinitionListAssignment_39084);
+            pushFollow(FOLLOW_ruleDefinitionList_in_rule__Rule__DefinitionListAssignment_39346);
             ruleDefinitionList();
 
@@ -14007,5 +14404,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 271, rule__Rule__DefinitionListAssignment_3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 279, rule__Rule__DefinitionListAssignment_3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14018,5 +14415,5 @@
 
     // $ANTLR start "rule__ExtRule__RulenumberAssignment_0_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4492:1: rule__ExtRule__RulenumberAssignment_0_0 : ( RULE_INT ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4619:1: rule__ExtRule__RulenumberAssignment_0_0 : ( RULE_INT ) ;
     public final void rule__ExtRule__RulenumberAssignment_0_0() throws RecognitionException {
         int rule__ExtRule__RulenumberAssignment_0_0_StartIndex = input.index();
@@ -14025,15 +14422,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 272) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4496:1: ( ( RULE_INT ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4497:1: ( RULE_INT )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4497:1: ( RULE_INT )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4498:1: RULE_INT
+            if ( state.backtracking>0 && alreadyParsedRule(input, 280) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4623:1: ( ( RULE_INT ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4624:1: ( RULE_INT )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4624:1: ( RULE_INT )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4625:1: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getRulenumberINTTerminalRuleCall_0_0_0()); 
             }
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__ExtRule__RulenumberAssignment_0_09115); if (state.failed) return ;
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__ExtRule__RulenumberAssignment_0_09377); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getRulenumberINTTerminalRuleCall_0_0_0()); 
@@ -14051,5 +14448,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 272, rule__ExtRule__RulenumberAssignment_0_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 280, rule__ExtRule__RulenumberAssignment_0_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14062,5 +14459,5 @@
 
     // $ANTLR start "rule__ExtRule__RulevariantAssignment_0_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4507:1: rule__ExtRule__RulevariantAssignment_0_1 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4634:1: rule__ExtRule__RulevariantAssignment_0_1 : ( RULE_ID ) ;
     public final void rule__ExtRule__RulevariantAssignment_0_1() throws RecognitionException {
         int rule__ExtRule__RulevariantAssignment_0_1_StartIndex = input.index();
@@ -14069,15 +14466,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 273) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4511:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4512:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4512:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4513:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 281) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4638:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4639:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4639:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4640:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getRulevariantIDTerminalRuleCall_0_1_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExtRule__RulevariantAssignment_0_19146); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExtRule__RulevariantAssignment_0_19408); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getRulevariantIDTerminalRuleCall_0_1_0()); 
@@ -14095,5 +14492,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 273, rule__ExtRule__RulevariantAssignment_0_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 281, rule__ExtRule__RulevariantAssignment_0_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14106,5 +14503,5 @@
 
     // $ANTLR start "rule__ExtRule__NameAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4522:1: rule__ExtRule__NameAssignment_1 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4649:1: rule__ExtRule__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__ExtRule__NameAssignment_1() throws RecognitionException {
         int rule__ExtRule__NameAssignment_1_StartIndex = input.index();
@@ -14113,15 +14510,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 274) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4526:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4527:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4527:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4528:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 282) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4653:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4654:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4654:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4655:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getNameIDTerminalRuleCall_1_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExtRule__NameAssignment_19177); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExtRule__NameAssignment_19439); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getNameIDTerminalRuleCall_1_0()); 
@@ -14139,5 +14536,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 274, rule__ExtRule__NameAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 282, rule__ExtRule__NameAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14150,5 +14547,5 @@
 
     // $ANTLR start "rule__ExtRule__RuleextAssignment_2_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4537:1: rule__ExtRule__RuleextAssignment_2_1 : ( RULE_INT ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4664:1: rule__ExtRule__RuleextAssignment_2_1 : ( RULE_INT ) ;
     public final void rule__ExtRule__RuleextAssignment_2_1() throws RecognitionException {
         int rule__ExtRule__RuleextAssignment_2_1_StartIndex = input.index();
@@ -14157,15 +14554,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 275) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4541:1: ( ( RULE_INT ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4542:1: ( RULE_INT )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4542:1: ( RULE_INT )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4543:1: RULE_INT
+            if ( state.backtracking>0 && alreadyParsedRule(input, 283) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4668:1: ( ( RULE_INT ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4669:1: ( RULE_INT )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4669:1: ( RULE_INT )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4670:1: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getRuleextINTTerminalRuleCall_2_1_0()); 
             }
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__ExtRule__RuleextAssignment_2_19208); if (state.failed) return ;
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__ExtRule__RuleextAssignment_2_19470); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExtRuleAccess().getRuleextINTTerminalRuleCall_2_1_0()); 
@@ -14183,5 +14580,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 275, rule__ExtRule__RuleextAssignment_2_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 283, rule__ExtRule__RuleextAssignment_2_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14194,5 +14591,5 @@
 
     // $ANTLR start "rule__ExtRule__ElementsAssignment_4_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4552:1: rule__ExtRule__ElementsAssignment_4_0 : ( ruleAtom ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4679:1: rule__ExtRule__ElementsAssignment_4_0 : ( ruleAtom ) ;
     public final void rule__ExtRule__ElementsAssignment_4_0() throws RecognitionException {
         int rule__ExtRule__ElementsAssignment_4_0_StartIndex = input.index();
@@ -14201,15 +14598,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 276) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4556:1: ( ( ruleAtom ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4557:1: ( ruleAtom )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4557:1: ( ruleAtom )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4558:1: ruleAtom
+            if ( state.backtracking>0 && alreadyParsedRule(input, 284) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4683:1: ( ( ruleAtom ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4684:1: ( ruleAtom )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4684:1: ( ruleAtom )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4685:1: ruleAtom
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExtRuleAccess().getElementsAtomParserRuleCall_4_0_0()); 
             }
-            pushFollow(FOLLOW_ruleAtom_in_rule__ExtRule__ElementsAssignment_4_09239);
+            pushFollow(FOLLOW_ruleAtom_in_rule__ExtRule__ElementsAssignment_4_09501);
             ruleAtom();
 
@@ -14231,5 +14628,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 276, rule__ExtRule__ElementsAssignment_4_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 284, rule__ExtRule__ElementsAssignment_4_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14242,5 +14639,5 @@
 
     // $ANTLR start "rule__GlobalCombinator__LogicAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4567:1: rule__GlobalCombinator__LogicAssignment_1 : ( RULE_LOGIC ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4694:1: rule__GlobalCombinator__LogicAssignment_1 : ( RULE_LOGIC ) ;
     public final void rule__GlobalCombinator__LogicAssignment_1() throws RecognitionException {
         int rule__GlobalCombinator__LogicAssignment_1_StartIndex = input.index();
@@ -14249,15 +14646,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 277) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4571:1: ( ( RULE_LOGIC ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4572:1: ( RULE_LOGIC )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4572:1: ( RULE_LOGIC )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4573:1: RULE_LOGIC
+            if ( state.backtracking>0 && alreadyParsedRule(input, 285) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4698:1: ( ( RULE_LOGIC ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:1: ( RULE_LOGIC )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4699:1: ( RULE_LOGIC )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4700:1: RULE_LOGIC
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGlobalCombinatorAccess().getLogicLOGICTerminalRuleCall_1_0()); 
             }
-            match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_rule__GlobalCombinator__LogicAssignment_19270); if (state.failed) return ;
+            match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_rule__GlobalCombinator__LogicAssignment_19532); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getGlobalCombinatorAccess().getLogicLOGICTerminalRuleCall_1_0()); 
@@ -14275,5 +14672,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 277, rule__GlobalCombinator__LogicAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 285, rule__GlobalCombinator__LogicAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14286,5 +14683,5 @@
 
     // $ANTLR start "rule__RuleCombinator__NameAssignment_0_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4582:1: rule__RuleCombinator__NameAssignment_0_2 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4709:1: rule__RuleCombinator__NameAssignment_0_2 : ( RULE_ID ) ;
     public final void rule__RuleCombinator__NameAssignment_0_2() throws RecognitionException {
         int rule__RuleCombinator__NameAssignment_0_2_StartIndex = input.index();
@@ -14293,15 +14690,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 278) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4586:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4587:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4587:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4588:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 286) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4713:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4714:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4714:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4715:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getNameIDTerminalRuleCall_0_2_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RuleCombinator__NameAssignment_0_29301); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RuleCombinator__NameAssignment_0_29563); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleCombinatorAccess().getNameIDTerminalRuleCall_0_2_0()); 
@@ -14319,5 +14716,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 278, rule__RuleCombinator__NameAssignment_0_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 286, rule__RuleCombinator__NameAssignment_0_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14330,5 +14727,5 @@
 
     // $ANTLR start "rule__RuleCombinator__LogicAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4597:1: rule__RuleCombinator__LogicAssignment_1 : ( RULE_LOGIC ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4724:1: rule__RuleCombinator__LogicAssignment_1 : ( RULE_LOGIC ) ;
     public final void rule__RuleCombinator__LogicAssignment_1() throws RecognitionException {
         int rule__RuleCombinator__LogicAssignment_1_StartIndex = input.index();
@@ -14337,15 +14734,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 279) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4601:1: ( ( RULE_LOGIC ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4602:1: ( RULE_LOGIC )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4602:1: ( RULE_LOGIC )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4603:1: RULE_LOGIC
+            if ( state.backtracking>0 && alreadyParsedRule(input, 287) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4728:1: ( ( RULE_LOGIC ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4729:1: ( RULE_LOGIC )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4729:1: ( RULE_LOGIC )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4730:1: RULE_LOGIC
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getLogicLOGICTerminalRuleCall_1_0()); 
             }
-            match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_rule__RuleCombinator__LogicAssignment_19332); if (state.failed) return ;
+            match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_rule__RuleCombinator__LogicAssignment_19594); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleCombinatorAccess().getLogicLOGICTerminalRuleCall_1_0()); 
@@ -14363,5 +14760,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 279, rule__RuleCombinator__LogicAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 287, rule__RuleCombinator__LogicAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14374,5 +14771,5 @@
 
     // $ANTLR start "rule__RuleCombinator__LABELAssignment_2_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4612:1: rule__RuleCombinator__LABELAssignment_2_1 : ( RULE_STRING ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4739:1: rule__RuleCombinator__LABELAssignment_2_1 : ( RULE_STRING ) ;
     public final void rule__RuleCombinator__LABELAssignment_2_1() throws RecognitionException {
         int rule__RuleCombinator__LABELAssignment_2_1_StartIndex = input.index();
@@ -14381,15 +14778,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 280) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4616:1: ( ( RULE_STRING ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4617:1: ( RULE_STRING )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4617:1: ( RULE_STRING )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4618:1: RULE_STRING
+            if ( state.backtracking>0 && alreadyParsedRule(input, 288) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4743:1: ( ( RULE_STRING ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4744:1: ( RULE_STRING )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4744:1: ( RULE_STRING )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4745:1: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleCombinatorAccess().getLABELSTRINGTerminalRuleCall_2_1_0()); 
             }
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__RuleCombinator__LABELAssignment_2_19363); if (state.failed) return ;
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__RuleCombinator__LABELAssignment_2_19625); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleCombinatorAccess().getLABELSTRINGTerminalRuleCall_2_1_0()); 
@@ -14407,5 +14804,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 280, rule__RuleCombinator__LABELAssignment_2_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 288, rule__RuleCombinator__LABELAssignment_2_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14418,5 +14815,5 @@
 
     // $ANTLR start "rule__HookCombinator__NameAssignment_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4627:1: rule__HookCombinator__NameAssignment_2 : ( RULE_ID ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4754:1: rule__HookCombinator__NameAssignment_2 : ( RULE_ID ) ;
     public final void rule__HookCombinator__NameAssignment_2() throws RecognitionException {
         int rule__HookCombinator__NameAssignment_2_StartIndex = input.index();
@@ -14425,15 +14822,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 281) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4631:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4632:1: ( RULE_ID )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4632:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4633:1: RULE_ID
+            if ( state.backtracking>0 && alreadyParsedRule(input, 289) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4758:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4759:1: ( RULE_ID )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4759:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4760:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getNameIDTerminalRuleCall_2_0()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__HookCombinator__NameAssignment_29394); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__HookCombinator__NameAssignment_29656); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getNameIDTerminalRuleCall_2_0()); 
@@ -14451,5 +14848,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 281, rule__HookCombinator__NameAssignment_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 289, rule__HookCombinator__NameAssignment_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14462,5 +14859,5 @@
 
     // $ANTLR start "rule__HookCombinator__RuleextAssignment_4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4642:1: rule__HookCombinator__RuleextAssignment_4 : ( RULE_INT ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4769:1: rule__HookCombinator__RuleextAssignment_4 : ( RULE_INT ) ;
     public final void rule__HookCombinator__RuleextAssignment_4() throws RecognitionException {
         int rule__HookCombinator__RuleextAssignment_4_StartIndex = input.index();
@@ -14469,15 +14866,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 282) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4646:1: ( ( RULE_INT ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4647:1: ( RULE_INT )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4647:1: ( RULE_INT )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4648:1: RULE_INT
+            if ( state.backtracking>0 && alreadyParsedRule(input, 290) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4773:1: ( ( RULE_INT ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4774:1: ( RULE_INT )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4774:1: ( RULE_INT )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4775:1: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getRuleextINTTerminalRuleCall_4_0()); 
             }
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__HookCombinator__RuleextAssignment_49425); if (state.failed) return ;
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__HookCombinator__RuleextAssignment_49687); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getRuleextINTTerminalRuleCall_4_0()); 
@@ -14495,5 +14892,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 282, rule__HookCombinator__RuleextAssignment_4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 290, rule__HookCombinator__RuleextAssignment_4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14506,5 +14903,5 @@
 
     // $ANTLR start "rule__HookCombinator__LogicAssignment_6"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4657:1: rule__HookCombinator__LogicAssignment_6 : ( RULE_LOGIC ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4784:1: rule__HookCombinator__LogicAssignment_6 : ( RULE_LOGIC ) ;
     public final void rule__HookCombinator__LogicAssignment_6() throws RecognitionException {
         int rule__HookCombinator__LogicAssignment_6_StartIndex = input.index();
@@ -14513,15 +14910,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 283) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4661:1: ( ( RULE_LOGIC ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4662:1: ( RULE_LOGIC )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4662:1: ( RULE_LOGIC )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4663:1: RULE_LOGIC
+            if ( state.backtracking>0 && alreadyParsedRule(input, 291) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4788:1: ( ( RULE_LOGIC ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4789:1: ( RULE_LOGIC )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4789:1: ( RULE_LOGIC )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4790:1: RULE_LOGIC
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getLogicLOGICTerminalRuleCall_6_0()); 
             }
-            match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_rule__HookCombinator__LogicAssignment_69456); if (state.failed) return ;
+            match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_rule__HookCombinator__LogicAssignment_69718); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getLogicLOGICTerminalRuleCall_6_0()); 
@@ -14539,5 +14936,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 283, rule__HookCombinator__LogicAssignment_6_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 291, rule__HookCombinator__LogicAssignment_6_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14550,5 +14947,5 @@
 
     // $ANTLR start "rule__HookCombinator__LABELAssignment_7_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4672:1: rule__HookCombinator__LABELAssignment_7_1 : ( RULE_STRING ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4799:1: rule__HookCombinator__LABELAssignment_7_1 : ( RULE_STRING ) ;
     public final void rule__HookCombinator__LABELAssignment_7_1() throws RecognitionException {
         int rule__HookCombinator__LABELAssignment_7_1_StartIndex = input.index();
@@ -14557,15 +14954,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 284) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4676:1: ( ( RULE_STRING ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4677:1: ( RULE_STRING )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4677:1: ( RULE_STRING )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4678:1: RULE_STRING
+            if ( state.backtracking>0 && alreadyParsedRule(input, 292) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4803:1: ( ( RULE_STRING ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4804:1: ( RULE_STRING )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4804:1: ( RULE_STRING )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4805:1: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getHookCombinatorAccess().getLABELSTRINGTerminalRuleCall_7_1_0()); 
             }
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__HookCombinator__LABELAssignment_7_19487); if (state.failed) return ;
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__HookCombinator__LABELAssignment_7_19749); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getHookCombinatorAccess().getLABELSTRINGTerminalRuleCall_7_1_0()); 
@@ -14583,5 +14980,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 284, rule__HookCombinator__LABELAssignment_7_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 292, rule__HookCombinator__LABELAssignment_7_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14594,5 +14991,5 @@
 
     // $ANTLR start "rule__DefinitionList__SingleDefinitionAssignment_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4687:1: rule__DefinitionList__SingleDefinitionAssignment_0 : ( ruleSingleDefinition ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4814:1: rule__DefinitionList__SingleDefinitionAssignment_0 : ( ruleSingleDefinition ) ;
     public final void rule__DefinitionList__SingleDefinitionAssignment_0() throws RecognitionException {
         int rule__DefinitionList__SingleDefinitionAssignment_0_StartIndex = input.index();
@@ -14601,15 +14998,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 285) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4691:1: ( ( ruleSingleDefinition ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4692:1: ( ruleSingleDefinition )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4692:1: ( ruleSingleDefinition )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4693:1: ruleSingleDefinition
+            if ( state.backtracking>0 && alreadyParsedRule(input, 293) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4818:1: ( ( ruleSingleDefinition ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4819:1: ( ruleSingleDefinition )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4819:1: ( ruleSingleDefinition )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4820:1: ruleSingleDefinition
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListAccess().getSingleDefinitionSingleDefinitionParserRuleCall_0_0()); 
             }
-            pushFollow(FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_09518);
+            pushFollow(FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_09780);
             ruleSingleDefinition();
 
@@ -14631,5 +15028,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 285, rule__DefinitionList__SingleDefinitionAssignment_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 293, rule__DefinitionList__SingleDefinitionAssignment_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14642,5 +15039,5 @@
 
     // $ANTLR start "rule__DefinitionList__SingleDefinitionAssignment_1_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4702:1: rule__DefinitionList__SingleDefinitionAssignment_1_1 : ( ruleSingleDefinition ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4829:1: rule__DefinitionList__SingleDefinitionAssignment_1_1 : ( ruleSingleDefinition ) ;
     public final void rule__DefinitionList__SingleDefinitionAssignment_1_1() throws RecognitionException {
         int rule__DefinitionList__SingleDefinitionAssignment_1_1_StartIndex = input.index();
@@ -14649,15 +15046,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 286) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4706:1: ( ( ruleSingleDefinition ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:1: ( ruleSingleDefinition )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4707:1: ( ruleSingleDefinition )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4708:1: ruleSingleDefinition
+            if ( state.backtracking>0 && alreadyParsedRule(input, 294) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4833:1: ( ( ruleSingleDefinition ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4834:1: ( ruleSingleDefinition )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4834:1: ( ruleSingleDefinition )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4835:1: ruleSingleDefinition
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDefinitionListAccess().getSingleDefinitionSingleDefinitionParserRuleCall_1_1_0()); 
             }
-            pushFollow(FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_1_19549);
+            pushFollow(FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_1_19811);
             ruleSingleDefinition();
 
@@ -14679,5 +15076,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 286, rule__DefinitionList__SingleDefinitionAssignment_1_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 294, rule__DefinitionList__SingleDefinitionAssignment_1_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14690,5 +15087,5 @@
 
     // $ANTLR start "rule__SingleDefinition__TermsAssignment"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4717:1: rule__SingleDefinition__TermsAssignment : ( ruleTerm ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4844:1: rule__SingleDefinition__TermsAssignment : ( ruleTerm ) ;
     public final void rule__SingleDefinition__TermsAssignment() throws RecognitionException {
         int rule__SingleDefinition__TermsAssignment_StartIndex = input.index();
@@ -14697,15 +15094,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 287) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4721:1: ( ( ruleTerm ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4722:1: ( ruleTerm )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4722:1: ( ruleTerm )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4723:1: ruleTerm
+            if ( state.backtracking>0 && alreadyParsedRule(input, 295) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4848:1: ( ( ruleTerm ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4849:1: ( ruleTerm )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4849:1: ( ruleTerm )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4850:1: ruleTerm
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSingleDefinitionAccess().getTermsTermParserRuleCall_0()); 
             }
-            pushFollow(FOLLOW_ruleTerm_in_rule__SingleDefinition__TermsAssignment9580);
+            pushFollow(FOLLOW_ruleTerm_in_rule__SingleDefinition__TermsAssignment9842);
             ruleTerm();
 
@@ -14727,5 +15124,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 287, rule__SingleDefinition__TermsAssignment_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 295, rule__SingleDefinition__TermsAssignment_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14738,5 +15135,5 @@
 
     // $ANTLR start "rule__Term__TermAtomAssignment_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4732:1: rule__Term__TermAtomAssignment_0 : ( ruleAtom ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4859:1: rule__Term__TermAtomAssignment_0 : ( ruleAtom ) ;
     public final void rule__Term__TermAtomAssignment_0() throws RecognitionException {
         int rule__Term__TermAtomAssignment_0_StartIndex = input.index();
@@ -14745,15 +15142,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 288) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4736:1: ( ( ruleAtom ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4737:1: ( ruleAtom )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4737:1: ( ruleAtom )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4738:1: ruleAtom
+            if ( state.backtracking>0 && alreadyParsedRule(input, 296) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4863:1: ( ( ruleAtom ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4864:1: ( ruleAtom )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4864:1: ( ruleAtom )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4865:1: ruleAtom
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTermAccess().getTermAtomAtomParserRuleCall_0_0()); 
             }
-            pushFollow(FOLLOW_ruleAtom_in_rule__Term__TermAtomAssignment_09611);
+            pushFollow(FOLLOW_ruleAtom_in_rule__Term__TermAtomAssignment_09873);
             ruleAtom();
 
@@ -14775,5 +15172,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 288, rule__Term__TermAtomAssignment_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 296, rule__Term__TermAtomAssignment_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14786,5 +15183,5 @@
 
     // $ANTLR start "rule__Term__TermGroupedSequenceAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4747:1: rule__Term__TermGroupedSequenceAssignment_1 : ( ruleGroupedSequence ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4874:1: rule__Term__TermGroupedSequenceAssignment_1 : ( ruleGroupedSequence ) ;
     public final void rule__Term__TermGroupedSequenceAssignment_1() throws RecognitionException {
         int rule__Term__TermGroupedSequenceAssignment_1_StartIndex = input.index();
@@ -14793,15 +15190,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 289) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4751:1: ( ( ruleGroupedSequence ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4752:1: ( ruleGroupedSequence )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4752:1: ( ruleGroupedSequence )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4753:1: ruleGroupedSequence
+            if ( state.backtracking>0 && alreadyParsedRule(input, 297) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4878:1: ( ( ruleGroupedSequence ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4879:1: ( ruleGroupedSequence )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4879:1: ( ruleGroupedSequence )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4880:1: ruleGroupedSequence
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTermAccess().getTermGroupedSequenceGroupedSequenceParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleGroupedSequence_in_rule__Term__TermGroupedSequenceAssignment_19642);
+            pushFollow(FOLLOW_ruleGroupedSequence_in_rule__Term__TermGroupedSequenceAssignment_19904);
             ruleGroupedSequence();
 
@@ -14823,5 +15220,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 289, rule__Term__TermGroupedSequenceAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 297, rule__Term__TermGroupedSequenceAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14834,5 +15231,5 @@
 
     // $ANTLR start "rule__Term__TermOptionalSequenceAssignment_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4762:1: rule__Term__TermOptionalSequenceAssignment_2 : ( ruleOptionalSequence ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4889:1: rule__Term__TermOptionalSequenceAssignment_2 : ( ruleOptionalSequence ) ;
     public final void rule__Term__TermOptionalSequenceAssignment_2() throws RecognitionException {
         int rule__Term__TermOptionalSequenceAssignment_2_StartIndex = input.index();
@@ -14841,15 +15238,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 290) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4766:1: ( ( ruleOptionalSequence ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4767:1: ( ruleOptionalSequence )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4767:1: ( ruleOptionalSequence )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4768:1: ruleOptionalSequence
+            if ( state.backtracking>0 && alreadyParsedRule(input, 298) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4893:1: ( ( ruleOptionalSequence ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4894:1: ( ruleOptionalSequence )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4894:1: ( ruleOptionalSequence )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4895:1: ruleOptionalSequence
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTermAccess().getTermOptionalSequenceOptionalSequenceParserRuleCall_2_0()); 
             }
-            pushFollow(FOLLOW_ruleOptionalSequence_in_rule__Term__TermOptionalSequenceAssignment_29673);
+            pushFollow(FOLLOW_ruleOptionalSequence_in_rule__Term__TermOptionalSequenceAssignment_29935);
             ruleOptionalSequence();
 
@@ -14871,5 +15268,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 290, rule__Term__TermOptionalSequenceAssignment_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 298, rule__Term__TermOptionalSequenceAssignment_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14882,5 +15279,5 @@
 
     // $ANTLR start "rule__Term__TermRepeatedSequenceAssignment_3"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4777:1: rule__Term__TermRepeatedSequenceAssignment_3 : ( ruleRepeatedSequence ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4904:1: rule__Term__TermRepeatedSequenceAssignment_3 : ( ruleRepeatedSequence ) ;
     public final void rule__Term__TermRepeatedSequenceAssignment_3() throws RecognitionException {
         int rule__Term__TermRepeatedSequenceAssignment_3_StartIndex = input.index();
@@ -14889,15 +15286,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 291) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4781:1: ( ( ruleRepeatedSequence ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4782:1: ( ruleRepeatedSequence )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4782:1: ( ruleRepeatedSequence )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4783:1: ruleRepeatedSequence
+            if ( state.backtracking>0 && alreadyParsedRule(input, 299) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4908:1: ( ( ruleRepeatedSequence ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4909:1: ( ruleRepeatedSequence )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4909:1: ( ruleRepeatedSequence )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4910:1: ruleRepeatedSequence
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTermAccess().getTermRepeatedSequenceRepeatedSequenceParserRuleCall_3_0()); 
             }
-            pushFollow(FOLLOW_ruleRepeatedSequence_in_rule__Term__TermRepeatedSequenceAssignment_39704);
+            pushFollow(FOLLOW_ruleRepeatedSequence_in_rule__Term__TermRepeatedSequenceAssignment_39966);
             ruleRepeatedSequence();
 
@@ -14919,5 +15316,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 291, rule__Term__TermRepeatedSequenceAssignment_3_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 299, rule__Term__TermRepeatedSequenceAssignment_3_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14930,5 +15327,5 @@
 
     // $ANTLR start "rule__Atom__AtomStringRuleAssignment_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4792:1: rule__Atom__AtomStringRuleAssignment_0 : ( ruleStringRule ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4919:1: rule__Atom__AtomStringRuleAssignment_0 : ( ruleStringRule ) ;
     public final void rule__Atom__AtomStringRuleAssignment_0() throws RecognitionException {
         int rule__Atom__AtomStringRuleAssignment_0_StartIndex = input.index();
@@ -14937,15 +15334,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 292) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4796:1: ( ( ruleStringRule ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4797:1: ( ruleStringRule )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4797:1: ( ruleStringRule )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4798:1: ruleStringRule
+            if ( state.backtracking>0 && alreadyParsedRule(input, 300) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4923:1: ( ( ruleStringRule ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4924:1: ( ruleStringRule )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4924:1: ( ruleStringRule )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4925:1: ruleStringRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAtomAccess().getAtomStringRuleStringRuleParserRuleCall_0_0()); 
             }
-            pushFollow(FOLLOW_ruleStringRule_in_rule__Atom__AtomStringRuleAssignment_09735);
+            pushFollow(FOLLOW_ruleStringRule_in_rule__Atom__AtomStringRuleAssignment_09997);
             ruleStringRule();
 
@@ -14967,5 +15364,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 292, rule__Atom__AtomStringRuleAssignment_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 300, rule__Atom__AtomStringRuleAssignment_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -14978,5 +15375,5 @@
 
     // $ANTLR start "rule__Atom__AtomRuleReferenceAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4807:1: rule__Atom__AtomRuleReferenceAssignment_1 : ( ruleRuleReference ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4934:1: rule__Atom__AtomRuleReferenceAssignment_1 : ( ruleRuleReference ) ;
     public final void rule__Atom__AtomRuleReferenceAssignment_1() throws RecognitionException {
         int rule__Atom__AtomRuleReferenceAssignment_1_StartIndex = input.index();
@@ -14985,15 +15382,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 293) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4811:1: ( ( ruleRuleReference ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4812:1: ( ruleRuleReference )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4812:1: ( ruleRuleReference )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4813:1: ruleRuleReference
+            if ( state.backtracking>0 && alreadyParsedRule(input, 301) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4938:1: ( ( ruleRuleReference ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4939:1: ( ruleRuleReference )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4939:1: ( ruleRuleReference )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4940:1: ruleRuleReference
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAtomAccess().getAtomRuleReferenceRuleReferenceParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleRuleReference_in_rule__Atom__AtomRuleReferenceAssignment_19766);
+            pushFollow(FOLLOW_ruleRuleReference_in_rule__Atom__AtomRuleReferenceAssignment_110028);
             ruleRuleReference();
 
@@ -15015,5 +15412,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 293, rule__Atom__AtomRuleReferenceAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 301, rule__Atom__AtomRuleReferenceAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15026,5 +15423,5 @@
 
     // $ANTLR start "rule__RuleReference__RulerefAssignment"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4822:1: rule__RuleReference__RulerefAssignment : ( ( RULE_ID ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4949:1: rule__RuleReference__RulerefAssignment : ( ( RULE_ID ) ) ;
     public final void rule__RuleReference__RulerefAssignment() throws RecognitionException {
         int rule__RuleReference__RulerefAssignment_StartIndex = input.index();
@@ -15033,21 +15430,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 294) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4826:1: ( ( ( RULE_ID ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4827:1: ( ( RULE_ID ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4827:1: ( ( RULE_ID ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4828:1: ( RULE_ID )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 302) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4953:1: ( ( ( RULE_ID ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4954:1: ( ( RULE_ID ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4954:1: ( ( RULE_ID ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4955:1: ( RULE_ID )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleReferenceAccess().getRulerefRuleCrossReference_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4829:1: ( RULE_ID )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4830:1: RULE_ID
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4956:1: ( RULE_ID )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4957:1: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRuleReferenceAccess().getRulerefRuleIDTerminalRuleCall_0_1()); 
             }
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RuleReference__RulerefAssignment9801); if (state.failed) return ;
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RuleReference__RulerefAssignment10063); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRuleReferenceAccess().getRulerefRuleIDTerminalRuleCall_0_1()); 
@@ -15071,5 +15468,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 294, rule__RuleReference__RulerefAssignment_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 302, rule__RuleReference__RulerefAssignment_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15082,5 +15479,5 @@
 
     // $ANTLR start "rule__StringRule__LiteralAssignment_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4841:1: rule__StringRule__LiteralAssignment_0 : ( RULE_STRING ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4968:1: rule__StringRule__LiteralAssignment_0 : ( RULE_STRING ) ;
     public final void rule__StringRule__LiteralAssignment_0() throws RecognitionException {
         int rule__StringRule__LiteralAssignment_0_StartIndex = input.index();
@@ -15089,15 +15486,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 295) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4845:1: ( ( RULE_STRING ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4846:1: ( RULE_STRING )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4846:1: ( RULE_STRING )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4847:1: RULE_STRING
+            if ( state.backtracking>0 && alreadyParsedRule(input, 303) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4972:1: ( ( RULE_STRING ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4973:1: ( RULE_STRING )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4973:1: ( RULE_STRING )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4974:1: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringRuleAccess().getLiteralSTRINGTerminalRuleCall_0_0()); 
             }
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__StringRule__LiteralAssignment_09836); if (state.failed) return ;
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__StringRule__LiteralAssignment_010098); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getStringRuleAccess().getLiteralSTRINGTerminalRuleCall_0_0()); 
@@ -15115,5 +15512,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 295, rule__StringRule__LiteralAssignment_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 303, rule__StringRule__LiteralAssignment_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15126,5 +15523,5 @@
 
     // $ANTLR start "rule__StringRule__ColonAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4856:1: rule__StringRule__ColonAssignment_1 : ( RULE_COLON ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4983:1: rule__StringRule__ColonAssignment_1 : ( RULE_COLON ) ;
     public final void rule__StringRule__ColonAssignment_1() throws RecognitionException {
         int rule__StringRule__ColonAssignment_1_StartIndex = input.index();
@@ -15133,15 +15530,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 296) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4860:1: ( ( RULE_COLON ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4861:1: ( RULE_COLON )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4861:1: ( RULE_COLON )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4862:1: RULE_COLON
+            if ( state.backtracking>0 && alreadyParsedRule(input, 304) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4987:1: ( ( RULE_COLON ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4988:1: ( RULE_COLON )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4988:1: ( RULE_COLON )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4989:1: RULE_COLON
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringRuleAccess().getColonCOLONTerminalRuleCall_1_0()); 
             }
-            match(input,RULE_COLON,FOLLOW_RULE_COLON_in_rule__StringRule__ColonAssignment_19867); if (state.failed) return ;
+            match(input,RULE_COLON,FOLLOW_RULE_COLON_in_rule__StringRule__ColonAssignment_110129); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getStringRuleAccess().getColonCOLONTerminalRuleCall_1_0()); 
@@ -15159,5 +15556,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 296, rule__StringRule__ColonAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 304, rule__StringRule__ColonAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15170,5 +15567,5 @@
 
     // $ANTLR start "rule__GroupedSequence__DefinitionListAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4871:1: rule__GroupedSequence__DefinitionListAssignment_1 : ( ruleDefinitionList ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4998:1: rule__GroupedSequence__DefinitionListAssignment_1 : ( ruleDefinitionList ) ;
     public final void rule__GroupedSequence__DefinitionListAssignment_1() throws RecognitionException {
         int rule__GroupedSequence__DefinitionListAssignment_1_StartIndex = input.index();
@@ -15177,15 +15574,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 297) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4875:1: ( ( ruleDefinitionList ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4876:1: ( ruleDefinitionList )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4876:1: ( ruleDefinitionList )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4877:1: ruleDefinitionList
+            if ( state.backtracking>0 && alreadyParsedRule(input, 305) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5002:1: ( ( ruleDefinitionList ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5003:1: ( ruleDefinitionList )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5003:1: ( ruleDefinitionList )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5004:1: ruleDefinitionList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getGroupedSequenceAccess().getDefinitionListDefinitionListParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleDefinitionList_in_rule__GroupedSequence__DefinitionListAssignment_19898);
+            pushFollow(FOLLOW_ruleDefinitionList_in_rule__GroupedSequence__DefinitionListAssignment_110160);
             ruleDefinitionList();
 
@@ -15207,5 +15604,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 297, rule__GroupedSequence__DefinitionListAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 305, rule__GroupedSequence__DefinitionListAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15218,5 +15615,5 @@
 
     // $ANTLR start "rule__OptionalSequence__DefinitionListAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4886:1: rule__OptionalSequence__DefinitionListAssignment_1 : ( ruleDefinitionList ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5013:1: rule__OptionalSequence__DefinitionListAssignment_1 : ( ruleDefinitionList ) ;
     public final void rule__OptionalSequence__DefinitionListAssignment_1() throws RecognitionException {
         int rule__OptionalSequence__DefinitionListAssignment_1_StartIndex = input.index();
@@ -15225,15 +15622,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 298) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4890:1: ( ( ruleDefinitionList ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4891:1: ( ruleDefinitionList )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4891:1: ( ruleDefinitionList )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4892:1: ruleDefinitionList
+            if ( state.backtracking>0 && alreadyParsedRule(input, 306) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5017:1: ( ( ruleDefinitionList ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5018:1: ( ruleDefinitionList )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5018:1: ( ruleDefinitionList )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5019:1: ruleDefinitionList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOptionalSequenceAccess().getDefinitionListDefinitionListParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleDefinitionList_in_rule__OptionalSequence__DefinitionListAssignment_19929);
+            pushFollow(FOLLOW_ruleDefinitionList_in_rule__OptionalSequence__DefinitionListAssignment_110191);
             ruleDefinitionList();
 
@@ -15255,5 +15652,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 298, rule__OptionalSequence__DefinitionListAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 306, rule__OptionalSequence__DefinitionListAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15266,5 +15663,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__DefinitionsAssignment_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4901:1: rule__RepeatedSequence__DefinitionsAssignment_1 : ( ruleDefinitionList ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5028:1: rule__RepeatedSequence__DefinitionsAssignment_1 : ( ruleDefinitionList ) ;
     public final void rule__RepeatedSequence__DefinitionsAssignment_1() throws RecognitionException {
         int rule__RepeatedSequence__DefinitionsAssignment_1_StartIndex = input.index();
@@ -15273,15 +15670,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 299) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4905:1: ( ( ruleDefinitionList ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4906:1: ( ruleDefinitionList )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4906:1: ( ruleDefinitionList )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4907:1: ruleDefinitionList
+            if ( state.backtracking>0 && alreadyParsedRule(input, 307) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5032:1: ( ( ruleDefinitionList ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5033:1: ( ruleDefinitionList )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5033:1: ( ruleDefinitionList )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5034:1: ruleDefinitionList
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getDefinitionsDefinitionListParserRuleCall_1_0()); 
             }
-            pushFollow(FOLLOW_ruleDefinitionList_in_rule__RepeatedSequence__DefinitionsAssignment_19960);
+            pushFollow(FOLLOW_ruleDefinitionList_in_rule__RepeatedSequence__DefinitionsAssignment_110222);
             ruleDefinitionList();
 
@@ -15303,5 +15700,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 299, rule__RepeatedSequence__DefinitionsAssignment_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 307, rule__RepeatedSequence__DefinitionsAssignment_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15314,5 +15711,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__MorethanonceAssignment_3_0"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4916:1: rule__RepeatedSequence__MorethanonceAssignment_3_0 : ( ( '+' ) ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5043:1: rule__RepeatedSequence__MorethanonceAssignment_3_0 : ( ( '+' ) ) ;
     public final void rule__RepeatedSequence__MorethanonceAssignment_3_0() throws RecognitionException {
         int rule__RepeatedSequence__MorethanonceAssignment_3_0_StartIndex = input.index();
@@ -15321,21 +15718,21 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 300) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4920:1: ( ( ( '+' ) ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4921:1: ( ( '+' ) )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4921:1: ( ( '+' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4922:1: ( '+' )
+            if ( state.backtracking>0 && alreadyParsedRule(input, 308) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5047:1: ( ( ( '+' ) ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5048:1: ( ( '+' ) )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5048:1: ( ( '+' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5049:1: ( '+' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); 
             }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4923:1: ( '+' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4924:1: '+'
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5050:1: ( '+' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5051:1: '+'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); 
             }
-            match(input,21,FOLLOW_21_in_rule__RepeatedSequence__MorethanonceAssignment_3_09996); if (state.failed) return ;
+            match(input,21,FOLLOW_21_in_rule__RepeatedSequence__MorethanonceAssignment_3_010258); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); 
@@ -15359,5 +15756,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 300, rule__RepeatedSequence__MorethanonceAssignment_3_0_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 308, rule__RepeatedSequence__MorethanonceAssignment_3_0_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15370,5 +15767,5 @@
 
     // $ANTLR start "rule__RepeatedSequence__RangeAssignment_3_1"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4939:1: rule__RepeatedSequence__RangeAssignment_3_1 : ( ruleRepeatRange ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5066:1: rule__RepeatedSequence__RangeAssignment_3_1 : ( ruleRepeatRange ) ;
     public final void rule__RepeatedSequence__RangeAssignment_3_1() throws RecognitionException {
         int rule__RepeatedSequence__RangeAssignment_3_1_StartIndex = input.index();
@@ -15377,15 +15774,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 301) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4943:1: ( ( ruleRepeatRange ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4944:1: ( ruleRepeatRange )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4944:1: ( ruleRepeatRange )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4945:1: ruleRepeatRange
+            if ( state.backtracking>0 && alreadyParsedRule(input, 309) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5070:1: ( ( ruleRepeatRange ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5071:1: ( ruleRepeatRange )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5071:1: ( ruleRepeatRange )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5072:1: ruleRepeatRange
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatedSequenceAccess().getRangeRepeatRangeParserRuleCall_3_1_0()); 
             }
-            pushFollow(FOLLOW_ruleRepeatRange_in_rule__RepeatedSequence__RangeAssignment_3_110035);
+            pushFollow(FOLLOW_ruleRepeatRange_in_rule__RepeatedSequence__RangeAssignment_3_110297);
             ruleRepeatRange();
 
@@ -15407,5 +15804,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 301, rule__RepeatedSequence__RangeAssignment_3_1_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 309, rule__RepeatedSequence__RangeAssignment_3_1_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15418,5 +15815,5 @@
 
     // $ANTLR start "rule__RepeatRange__FromAssignment_2"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4954:1: rule__RepeatRange__FromAssignment_2 : ( RULE_INT ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5081:1: rule__RepeatRange__FromAssignment_2 : ( RULE_INT ) ;
     public final void rule__RepeatRange__FromAssignment_2() throws RecognitionException {
         int rule__RepeatRange__FromAssignment_2_StartIndex = input.index();
@@ -15425,15 +15822,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 302) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4958:1: ( ( RULE_INT ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4959:1: ( RULE_INT )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4959:1: ( RULE_INT )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4960:1: RULE_INT
+            if ( state.backtracking>0 && alreadyParsedRule(input, 310) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5085:1: ( ( RULE_INT ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5086:1: ( RULE_INT )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5086:1: ( RULE_INT )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5087:1: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getFromINTTerminalRuleCall_2_0()); 
             }
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__RepeatRange__FromAssignment_210066); if (state.failed) return ;
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__RepeatRange__FromAssignment_210328); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatRangeAccess().getFromINTTerminalRuleCall_2_0()); 
@@ -15451,5 +15848,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 302, rule__RepeatRange__FromAssignment_2_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 310, rule__RepeatRange__FromAssignment_2_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15462,5 +15859,5 @@
 
     // $ANTLR start "rule__RepeatRange__ToAssignment_4"
-    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4969:1: rule__RepeatRange__ToAssignment_4 : ( RULE_INT ) ;
+    // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5096:1: rule__RepeatRange__ToAssignment_4 : ( RULE_INT ) ;
     public final void rule__RepeatRange__ToAssignment_4() throws RecognitionException {
         int rule__RepeatRange__ToAssignment_4_StartIndex = input.index();
@@ -15469,15 +15866,15 @@
             
         try {
-            if ( state.backtracking>0 && alreadyParsedRule(input, 303) ) { return ; }
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4973:1: ( ( RULE_INT ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4974:1: ( RULE_INT )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4974:1: ( RULE_INT )
-            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:4975:1: RULE_INT
+            if ( state.backtracking>0 && alreadyParsedRule(input, 311) ) { return ; }
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5100:1: ( ( RULE_INT ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5101:1: ( RULE_INT )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5101:1: ( RULE_INT )
+            // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:5102:1: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepeatRangeAccess().getToINTTerminalRuleCall_4_0()); 
             }
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__RepeatRange__ToAssignment_410097); if (state.failed) return ;
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__RepeatRange__ToAssignment_410359); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getRepeatRangeAccess().getToINTTerminalRuleCall_4_0()); 
@@ -15495,5 +15892,5 @@
         }
         finally {
-            if ( state.backtracking>0 ) { memoize(input, 303, rule__RepeatRange__ToAssignment_4_StartIndex); }
+            if ( state.backtracking>0 ) { memoize(input, 311, rule__RepeatRange__ToAssignment_4_StartIndex); }
 
             	restoreStackSize(stackSize);
@@ -15504,16 +15901,16 @@
     // $ANTLR end "rule__RepeatRange__ToAssignment_4"
 
-    // $ANTLR start synpred28_InternalEbnf
-    public final void synpred28_InternalEbnf_fragment() throws RecognitionException {   
-        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1047:1: ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) )
-        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1047:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
+    // $ANTLR start synpred29_InternalEbnf
+    public final void synpred29_InternalEbnf_fragment() throws RecognitionException {   
+        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1081:1: ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) )
+        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1081:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
         {
-        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1047:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
-        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1048:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
+        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1081:1: ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? )
+        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1082:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
         {
         if ( state.backtracking==0 ) {
            before(grammarAccess.getRepeatedSequenceAccess().getMorethanonceAssignment_3_0()); 
         }
-        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1049:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
+        // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:1: ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )?
         int alt40=2;
         int LA40_0 = input.LA(1);
@@ -15524,7 +15921,7 @@
         switch (alt40) {
             case 1 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1049:2: rule__RepeatedSequence__MorethanonceAssignment_3_0
+                // ../de.ugoe.cs.swe.bnftools.ebnf.ui/src-gen/de/ugoe/cs/swe/bnftools/ui/contentassist/antlr/internal/InternalEbnf.g:1083:2: rule__RepeatedSequence__MorethanonceAssignment_3_0
                 {
-                pushFollow(FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_synpred28_InternalEbnf2274);
+                pushFollow(FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_synpred29_InternalEbnf2352);
                 rule__RepeatedSequence__MorethanonceAssignment_3_0();
 
@@ -15543,13 +15940,13 @@
         }
     }
-    // $ANTLR end synpred28_InternalEbnf
+    // $ANTLR end synpred29_InternalEbnf
 
     // Delegated rules
 
-    public final boolean synpred28_InternalEbnf() {
+    public final boolean synpred29_InternalEbnf() {
         state.backtracking++;
         int start = input.mark();
         try {
-            synpred28_InternalEbnf_fragment(); // can never throw exception
+            synpred29_InternalEbnf_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
@@ -15565,20 +15962,21 @@
     protected DFA15 dfa15 = new DFA15(this);
     static final String DFA15_eotS =
-        "\21\uffff";
+        "\22\uffff";
     static final String DFA15_eofS =
-        "\1\2\20\uffff";
+        "\1\2\21\uffff";
     static final String DFA15_minS =
-        "\1\4\1\uffff\16\0\1\uffff";
+        "\1\4\1\uffff\17\0\1\uffff";
     static final String DFA15_maxS =
-        "\1\42\1\uffff\16\0\1\uffff";
+        "\1\42\1\uffff\17\0\1\uffff";
     static final String DFA15_acceptS =
-        "\1\uffff\1\1\16\uffff\1\2";
+        "\1\uffff\1\1\17\uffff\1\2";
     static final String DFA15_specialS =
         "\2\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
-        "\1\15\1\uffff}>";
+        "\1\15\1\16\1\uffff}>";
     static final String[] DFA15_transitionS = {
-            "\1\5\1\13\1\3\1\14\1\uffff\1\4\3\uffff\1\15\1\16\1\17\1\11\1"+
-            "\6\1\7\1\10\1\uffff\1\1\1\uffff\1\12\12\uffff\1\20",
+            "\1\5\1\13\1\15\1\3\1\14\1\uffff\1\4\2\uffff\1\16\1\17\1\20\1"+
+            "\11\1\6\1\7\1\10\1\uffff\1\1\1\uffff\1\12\12\uffff\1\21",
             "",
+            "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -15628,5 +16026,5 @@
         }
         public String getDescription() {
-            return "1042:1: rule__RepeatedSequence__Alternatives_3 : ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) );";
+            return "1076:1: rule__RepeatedSequence__Alternatives_3 : ( ( ( rule__RepeatedSequence__MorethanonceAssignment_3_0 )? ) | ( ( rule__RepeatedSequence__RangeAssignment_3_1 )? ) );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
@@ -15641,7 +16039,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15656,7 +16054,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15671,7 +16069,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15686,7 +16084,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15701,7 +16099,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15716,7 +16114,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15731,7 +16129,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15746,7 +16144,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15761,7 +16159,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15776,7 +16174,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15791,7 +16189,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15806,7 +16204,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15821,7 +16219,7 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
@@ -15836,10 +16234,25 @@
                         input.rewind();
                         s = -1;
-                        if ( (synpred28_InternalEbnf()) ) {s = 1;}
-
-                        else if ( (true) ) {s = 16;}
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
 
                          
                         input.seek(index15_15);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 14 : 
+                        int LA15_16 = input.LA(1);
+
+                         
+                        int index15_16 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred29_InternalEbnf()) ) {s = 1;}
+
+                        else if ( (true) ) {s = 17;}
+
+                         
+                        input.seek(index15_16);
                         if ( s>=0 ) return s;
                         break;
@@ -15873,407 +16286,417 @@
     public static final BitSet FOLLOW_EOF_in_entryRuleSectionHeading398 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_rule__SectionHeading__Group__0_in_ruleSectionHeading424 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport451 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleImport458 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__0_in_ruleImport484 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRule_in_entryRuleRule511 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRule518 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group__0_in_ruleRule544 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleExtRule_in_entryRuleExtRule571 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleExtRule578 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__0_in_ruleExtRule604 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMergeRule_in_entryRuleMergeRule631 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleMergeRule638 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MergeRule__Alternatives_in_ruleMergeRule664 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator691 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleGlobalCombinator698 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__0_in_ruleGlobalCombinator724 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator751 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRuleCombinator758 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__0_in_ruleRuleCombinator784 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator811 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleHookCombinator818 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__0_in_ruleHookCombinator844 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList871 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleDefinitionList878 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group__0_in_ruleDefinitionList904 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition931 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSingleDefinition938 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition966 = new BitSet(new long[]{0x00000000000E0252L});
-    public static final BitSet FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition978 = new BitSet(new long[]{0x00000000000E0252L});
-    public static final BitSet FOLLOW_ruleTerm_in_entryRuleTerm1008 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTerm1015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Term__Alternatives_in_ruleTerm1041 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAtom_in_entryRuleAtom1068 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleAtom1075 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Atom__Alternatives_in_ruleAtom1101 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRuleReference_in_entryRuleRuleReference1128 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRuleReference1135 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleReference__RulerefAssignment_in_ruleRuleReference1161 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStringRule_in_entryRuleStringRule1188 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleStringRule1195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StringRule__Alternatives_in_ruleStringRule1221 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1248 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleGroupedSequence1255 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GroupedSequence__Group__0_in_ruleGroupedSequence1281 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1308 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleOptionalSequence1315 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OptionalSequence__Group__0_in_ruleOptionalSequence1341 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1368 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRepeatedSequence1375 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__0_in_ruleRepeatedSequence1401 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange1428 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRepeatRange1435 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__0_in_ruleRepeatRange1461 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1497 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1515 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1533 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1566 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1584 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DeltaEntry__RuleAssignment_0_in_rule__DeltaEntry__Alternatives1617 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DeltaEntry__SectionheaderAssignment_1_in_rule__DeltaEntry__Alternatives1635 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DeltaEntry__ExtRuleAssignment_2_in_rule__DeltaEntry__Alternatives1653 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MergeEntry__SectionheaderAssignment_0_in_rule__MergeEntry__Alternatives1686 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MergeEntry__MergeRuleAssignment_1_in_rule__MergeEntry__Alternatives1704 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__GrammarTypeAssignment_2_1_0_in_rule__Import__Alternatives_2_11737 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__GrammarTypeAssignment_2_1_1_in_rule__Import__Alternatives_2_11755 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__GrammarTypeAssignment_2_1_2_in_rule__Import__Alternatives_2_11773 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__ElementsAssignment_4_0_in_rule__ExtRule__Alternatives_41806 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_13_in_rule__ExtRule__Alternatives_41825 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_14_in_rule__ExtRule__Alternatives_41845 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_15_in_rule__ExtRule__Alternatives_41865 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_16_in_rule__ExtRule__Alternatives_41885 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_rule__ExtRule__Alternatives_41905 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_18_in_rule__ExtRule__Alternatives_41925 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_19_in_rule__ExtRule__Alternatives_41945 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_20_in_rule__ExtRule__Alternatives_41965 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_21_in_rule__ExtRule__Alternatives_41985 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGlobalCombinator_in_rule__MergeRule__Alternatives2019 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRuleCombinator_in_rule__MergeRule__Alternatives2036 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleHookCombinator_in_rule__MergeRule__Alternatives2053 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Term__TermAtomAssignment_0_in_rule__Term__Alternatives2085 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Term__TermGroupedSequenceAssignment_1_in_rule__Term__Alternatives2103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Term__TermOptionalSequenceAssignment_2_in_rule__Term__Alternatives2121 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Term__TermRepeatedSequenceAssignment_3_in_rule__Term__Alternatives2139 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Atom__AtomStringRuleAssignment_0_in_rule__Atom__Alternatives2172 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Atom__AtomRuleReferenceAssignment_1_in_rule__Atom__Alternatives2190 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StringRule__LiteralAssignment_0_in_rule__StringRule__Alternatives2223 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StringRule__ColonAssignment_1_in_rule__StringRule__Alternatives2241 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_rule__RepeatedSequence__Alternatives_32274 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__RangeAssignment_3_1_in_rule__RepeatedSequence__Alternatives_32293 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__0__Impl_in_rule__EtsiBnf__Group_0__02325 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__1_in_rule__EtsiBnf__Group_0__02328 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_22_in_rule__EtsiBnf__Group_0__0__Impl2356 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__1__Impl_in_rule__EtsiBnf__Group_0__12387 = new BitSet(new long[]{0x0000001000800000L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__2_in_rule__EtsiBnf__Group_0__12390 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__NameAssignment_0_1_in_rule__EtsiBnf__Group_0__1__Impl2417 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__2__Impl_in_rule__EtsiBnf__Group_0__22447 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__0_in_rule__EtsiBnf__Group_0__2__Impl2474 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__0__Impl_in_rule__EtsiBnf__Group_0_2__02510 = new BitSet(new long[]{0x0000001000800000L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__1_in_rule__EtsiBnf__Group_0_2__02513 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__TypeAssignment_0_2_0_in_rule__EtsiBnf__Group_0_2__0__Impl2540 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__1__Impl_in_rule__EtsiBnf__Group_0_2__12571 = new BitSet(new long[]{0x00000000010000B0L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__2_in_rule__EtsiBnf__Group_0_2__12574 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__EtsiBnf__Group_0_2__1__Impl2602 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__2__Impl_in_rule__EtsiBnf__Group_0_2__22633 = new BitSet(new long[]{0x00000000010000B0L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__3_in_rule__EtsiBnf__Group_0_2__22636 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__ImportSectionAssignment_0_2_2_in_rule__EtsiBnf__Group_0_2__2__Impl2663 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__3__Impl_in_rule__EtsiBnf__Group_0_2__32694 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2723 = new BitSet(new long[]{0x00000000010000B2L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2735 = new BitSet(new long[]{0x00000000010000B2L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__0__Impl_in_rule__EtsiBnf__Group_1__02776 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__1_in_rule__EtsiBnf__Group_1__02779 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__TypeAssignment_1_0_in_rule__EtsiBnf__Group_1__0__Impl2806 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__1__Impl_in_rule__EtsiBnf__Group_1__12836 = new BitSet(new long[]{0x00000000010000B0L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__2_in_rule__EtsiBnf__Group_1__12839 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__EtsiBnf__Group_1__1__Impl2867 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__2__Impl_in_rule__EtsiBnf__Group_1__22898 = new BitSet(new long[]{0x00000000010000B0L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__3_in_rule__EtsiBnf__Group_1__22901 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__ImportSectionAssignment_1_2_in_rule__EtsiBnf__Group_1__2__Impl2928 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__3__Impl_in_rule__EtsiBnf__Group_1__32959 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__DeltaEntryAssignment_1_3_in_rule__EtsiBnf__Group_1__3__Impl2986 = new BitSet(new long[]{0x00000000010000B2L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__0__Impl_in_rule__EtsiBnf__Group_2__03025 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__1_in_rule__EtsiBnf__Group_2__03028 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__TypeAssignment_2_0_in_rule__EtsiBnf__Group_2__0__Impl3055 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__1__Impl_in_rule__EtsiBnf__Group_2__13085 = new BitSet(new long[]{0x0000000341000020L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__2_in_rule__EtsiBnf__Group_2__13088 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__EtsiBnf__Group_2__1__Impl3116 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__2__Impl_in_rule__EtsiBnf__Group_2__23147 = new BitSet(new long[]{0x0000000341000020L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__3_in_rule__EtsiBnf__Group_2__23150 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__ImportSectionAssignment_2_2_in_rule__EtsiBnf__Group_2__2__Impl3177 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__3__Impl_in_rule__EtsiBnf__Group_2__33208 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EtsiBnf__MergeEntryAssignment_2_3_in_rule__EtsiBnf__Group_2__3__Impl3235 = new BitSet(new long[]{0x0000000340000022L});
-    public static final BitSet FOLLOW_rule__SectionHeading__Group__0__Impl_in_rule__SectionHeading__Group__03274 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_rule__SectionHeading__Group__1_in_rule__SectionHeading__Group__03277 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SectionHeading__Group__1__Impl_in_rule__SectionHeading__Group__13335 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SectionHeading__SectionHeaderAssignment_1_in_rule__SectionHeading__Group__1__Impl3362 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__03396 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__03399 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_24_in_rule__Import__Group__0__Impl3427 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__13458 = new BitSet(new long[]{0x0000000006800000L});
-    public static final BitSet FOLLOW_rule__Import__Group__2_in_rule__Import__Group__13461 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__ImportURIAssignment_1_in_rule__Import__Group__1__Impl3488 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__23518 = new BitSet(new long[]{0x0000000006800000L});
-    public static final BitSet FOLLOW_rule__Import__Group__3_in_rule__Import__Group__23521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_2__0_in_rule__Import__Group__2__Impl3548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__3__Impl_in_rule__Import__Group__33579 = new BitSet(new long[]{0x0000000006800000L});
-    public static final BitSet FOLLOW_rule__Import__Group__4_in_rule__Import__Group__33582 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_3__0_in_rule__Import__Group__3__Impl3609 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__4__Impl_in_rule__Import__Group__43640 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__Import__Group__4__Impl3668 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_2__0__Impl_in_rule__Import__Group_2__03709 = new BitSet(new long[]{0x0000038000000000L});
-    public static final BitSet FOLLOW_rule__Import__Group_2__1_in_rule__Import__Group_2__03712 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_25_in_rule__Import__Group_2__0__Impl3740 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_2__1__Impl_in_rule__Import__Group_2__13771 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Alternatives_2_1_in_rule__Import__Group_2__1__Impl3798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_3__0__Impl_in_rule__Import__Group_3__03832 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_rule__Import__Group_3__1_in_rule__Import__Group_3__03835 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_26_in_rule__Import__Group_3__0__Impl3863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_3__1__Impl_in_rule__Import__Group_3__13894 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__LabelAssignment_3_1_in_rule__Import__Group_3__1__Impl3921 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group__0__Impl_in_rule__Rule__Group__03955 = new BitSet(new long[]{0x00000000010000B0L});
-    public static final BitSet FOLLOW_rule__Rule__Group__1_in_rule__Rule__Group__03958 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group_0__0_in_rule__Rule__Group__0__Impl3985 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group__1__Impl_in_rule__Rule__Group__14016 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_rule__Rule__Group__2_in_rule__Rule__Group__14019 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__NameAssignment_1_in_rule__Rule__Group__1__Impl4046 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group__2__Impl_in_rule__Rule__Group__24076 = new BitSet(new long[]{0x00000000008E0250L});
-    public static final BitSet FOLLOW_rule__Rule__Group__3_in_rule__Rule__Group__24079 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_27_in_rule__Rule__Group__2__Impl4107 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group__3__Impl_in_rule__Rule__Group__34138 = new BitSet(new long[]{0x00000000008E0250L});
-    public static final BitSet FOLLOW_rule__Rule__Group__4_in_rule__Rule__Group__34141 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__DefinitionListAssignment_3_in_rule__Rule__Group__3__Impl4168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group__4__Impl_in_rule__Rule__Group__44199 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__Rule__Group__4__Impl4228 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group_0__0__Impl_in_rule__Rule__Group_0__04271 = new BitSet(new long[]{0x0000000010000010L});
-    public static final BitSet FOLLOW_rule__Rule__Group_0__1_in_rule__Rule__Group_0__04274 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__RulenumberAssignment_0_0_in_rule__Rule__Group_0__0__Impl4301 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group_0__1__Impl_in_rule__Rule__Group_0__14331 = new BitSet(new long[]{0x0000000010000010L});
-    public static final BitSet FOLLOW_rule__Rule__Group_0__2_in_rule__Rule__Group_0__14334 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__RulevariantAssignment_0_1_in_rule__Rule__Group_0__1__Impl4361 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Rule__Group_0__2__Impl_in_rule__Rule__Group_0__24392 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_28_in_rule__Rule__Group_0__2__Impl4420 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__0__Impl_in_rule__ExtRule__Group__04457 = new BitSet(new long[]{0x00000000010000B0L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__1_in_rule__ExtRule__Group__04460 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_0__0_in_rule__ExtRule__Group__0__Impl4487 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__1__Impl_in_rule__ExtRule__Group__14518 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__2_in_rule__ExtRule__Group__14521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__NameAssignment_1_in_rule__ExtRule__Group__1__Impl4548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__2__Impl_in_rule__ExtRule__Group__24578 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__3_in_rule__ExtRule__Group__24581 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_2__0_in_rule__ExtRule__Group__2__Impl4608 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__3__Impl_in_rule__ExtRule__Group__34638 = new BitSet(new long[]{0x0000000000BFE250L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__4_in_rule__ExtRule__Group__34641 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_29_in_rule__ExtRule__Group__3__Impl4669 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__4__Impl_in_rule__ExtRule__Group__44700 = new BitSet(new long[]{0x0000000000BFE250L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__5_in_rule__ExtRule__Group__44703 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Alternatives_4_in_rule__ExtRule__Group__4__Impl4730 = new BitSet(new long[]{0x00000000003FE252L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group__5__Impl_in_rule__ExtRule__Group__54761 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__ExtRule__Group__5__Impl4790 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_0__0__Impl_in_rule__ExtRule__Group_0__04835 = new BitSet(new long[]{0x0000000010000010L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_0__1_in_rule__ExtRule__Group_0__04838 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__RulenumberAssignment_0_0_in_rule__ExtRule__Group_0__0__Impl4865 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_0__1__Impl_in_rule__ExtRule__Group_0__14895 = new BitSet(new long[]{0x0000000010000010L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_0__2_in_rule__ExtRule__Group_0__14898 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__RulevariantAssignment_0_1_in_rule__ExtRule__Group_0__1__Impl4925 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_0__2__Impl_in_rule__ExtRule__Group_0__24956 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_28_in_rule__ExtRule__Group_0__2__Impl4984 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_2__0__Impl_in_rule__ExtRule__Group_2__05021 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_2__1_in_rule__ExtRule__Group_2__05024 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_rule__ExtRule__Group_2__0__Impl5052 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_2__1__Impl_in_rule__ExtRule__Group_2__15083 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_2__2_in_rule__ExtRule__Group_2__15086 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__RuleextAssignment_2_1_in_rule__ExtRule__Group_2__1__Impl5113 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExtRule__Group_2__2__Impl_in_rule__ExtRule__Group_2__25143 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_13_in_rule__ExtRule__Group_2__2__Impl5171 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__0__Impl_in_rule__GlobalCombinator__Group__05208 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__1_in_rule__GlobalCombinator__Group__05211 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__0_in_rule__GlobalCombinator__Group__0__Impl5238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__1__Impl_in_rule__GlobalCombinator__Group__15268 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__2_in_rule__GlobalCombinator__Group__15271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__LogicAssignment_1_in_rule__GlobalCombinator__Group__1__Impl5298 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__2__Impl_in_rule__GlobalCombinator__Group__25328 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__GlobalCombinator__Group__2__Impl5357 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__0__Impl_in_rule__GlobalCombinator__Group_0__05396 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__1_in_rule__GlobalCombinator__Group_0__05399 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_30_in_rule__GlobalCombinator__Group_0__0__Impl5427 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__1__Impl_in_rule__GlobalCombinator__Group_0__15458 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_31_in_rule__GlobalCombinator__Group_0__1__Impl5486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__0__Impl_in_rule__RuleCombinator__Group__05521 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__1_in_rule__RuleCombinator__Group__05524 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__0_in_rule__RuleCombinator__Group__0__Impl5551 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__1__Impl_in_rule__RuleCombinator__Group__15581 = new BitSet(new long[]{0x0000000000820000L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__2_in_rule__RuleCombinator__Group__15584 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__LogicAssignment_1_in_rule__RuleCombinator__Group__1__Impl5611 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__2__Impl_in_rule__RuleCombinator__Group__25641 = new BitSet(new long[]{0x0000000000820000L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__3_in_rule__RuleCombinator__Group__25644 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__0_in_rule__RuleCombinator__Group__2__Impl5671 = new BitSet(new long[]{0x0000000000020002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group__3__Impl_in_rule__RuleCombinator__Group__35702 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__RuleCombinator__Group__3__Impl5731 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__0__Impl_in_rule__RuleCombinator__Group_0__05772 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__1_in_rule__RuleCombinator__Group_0__05775 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_32_in_rule__RuleCombinator__Group_0__0__Impl5803 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__1__Impl_in_rule__RuleCombinator__Group_0__15834 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__2_in_rule__RuleCombinator__Group_0__15837 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_31_in_rule__RuleCombinator__Group_0__1__Impl5865 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__2__Impl_in_rule__RuleCombinator__Group_0__25896 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__NameAssignment_0_2_in_rule__RuleCombinator__Group_0__2__Impl5923 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__0__Impl_in_rule__RuleCombinator__Group_2__05959 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__1_in_rule__RuleCombinator__Group_2__05962 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_rule__RuleCombinator__Group_2__0__Impl5990 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__1__Impl_in_rule__RuleCombinator__Group_2__16021 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__2_in_rule__RuleCombinator__Group_2__16024 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__LABELAssignment_2_1_in_rule__RuleCombinator__Group_2__1__Impl6051 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__2__Impl_in_rule__RuleCombinator__Group_2__26081 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_13_in_rule__RuleCombinator__Group_2__2__Impl6109 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__0__Impl_in_rule__HookCombinator__Group__06146 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__1_in_rule__HookCombinator__Group__06149 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_33_in_rule__HookCombinator__Group__0__Impl6177 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__1__Impl_in_rule__HookCombinator__Group__16208 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__2_in_rule__HookCombinator__Group__16211 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_31_in_rule__HookCombinator__Group__1__Impl6239 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__2__Impl_in_rule__HookCombinator__Group__26270 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__3_in_rule__HookCombinator__Group__26273 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__NameAssignment_2_in_rule__HookCombinator__Group__2__Impl6300 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__3__Impl_in_rule__HookCombinator__Group__36330 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__4_in_rule__HookCombinator__Group__36333 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_rule__HookCombinator__Group__3__Impl6361 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__4__Impl_in_rule__HookCombinator__Group__46392 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__5_in_rule__HookCombinator__Group__46395 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__RuleextAssignment_4_in_rule__HookCombinator__Group__4__Impl6422 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__5__Impl_in_rule__HookCombinator__Group__56452 = new BitSet(new long[]{0x0000000000020100L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__6_in_rule__HookCombinator__Group__56455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_13_in_rule__HookCombinator__Group__5__Impl6483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__6__Impl_in_rule__HookCombinator__Group__66514 = new BitSet(new long[]{0x0000000000020100L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__7_in_rule__HookCombinator__Group__66517 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__LogicAssignment_6_in_rule__HookCombinator__Group__6__Impl6544 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__7__Impl_in_rule__HookCombinator__Group__76575 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__8_in_rule__HookCombinator__Group__76578 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6607 = new BitSet(new long[]{0x0000000000020102L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6619 = new BitSet(new long[]{0x0000000000020102L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group__8__Impl_in_rule__HookCombinator__Group__86652 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__HookCombinator__Group__8__Impl6681 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__0__Impl_in_rule__HookCombinator__Group_7__06732 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__1_in_rule__HookCombinator__Group_7__06735 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_rule__HookCombinator__Group_7__0__Impl6763 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__1__Impl_in_rule__HookCombinator__Group_7__16794 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__2_in_rule__HookCombinator__Group_7__16797 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__LABELAssignment_7_1_in_rule__HookCombinator__Group_7__1__Impl6824 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__2__Impl_in_rule__HookCombinator__Group_7__26854 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_13_in_rule__HookCombinator__Group_7__2__Impl6882 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group__0__Impl_in_rule__DefinitionList__Group__06919 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group__1_in_rule__DefinitionList__Group__06922 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_0_in_rule__DefinitionList__Group__0__Impl6949 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group__1__Impl_in_rule__DefinitionList__Group__16979 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__0_in_rule__DefinitionList__Group__1__Impl7006 = new BitSet(new long[]{0x0000000000010002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__0__Impl_in_rule__DefinitionList__Group_1__07041 = new BitSet(new long[]{0x00000000000E0250L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__1_in_rule__DefinitionList__Group_1__07044 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_16_in_rule__DefinitionList__Group_1__0__Impl7072 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__1__Impl_in_rule__DefinitionList__Group_1__17103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_1_1_in_rule__DefinitionList__Group_1__1__Impl7130 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GroupedSequence__Group__0__Impl_in_rule__GroupedSequence__Group__07164 = new BitSet(new long[]{0x00000000000E0250L});
-    public static final BitSet FOLLOW_rule__GroupedSequence__Group__1_in_rule__GroupedSequence__Group__07167 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_rule__GroupedSequence__Group__0__Impl7195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GroupedSequence__Group__1__Impl_in_rule__GroupedSequence__Group__17226 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_rule__GroupedSequence__Group__2_in_rule__GroupedSequence__Group__17229 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GroupedSequence__DefinitionListAssignment_1_in_rule__GroupedSequence__Group__1__Impl7256 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GroupedSequence__Group__2__Impl_in_rule__GroupedSequence__Group__27286 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_13_in_rule__GroupedSequence__Group__2__Impl7314 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OptionalSequence__Group__0__Impl_in_rule__OptionalSequence__Group__07351 = new BitSet(new long[]{0x00000000000E0250L});
-    public static final BitSet FOLLOW_rule__OptionalSequence__Group__1_in_rule__OptionalSequence__Group__07354 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_18_in_rule__OptionalSequence__Group__0__Impl7382 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OptionalSequence__Group__1__Impl_in_rule__OptionalSequence__Group__17413 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_rule__OptionalSequence__Group__2_in_rule__OptionalSequence__Group__17416 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OptionalSequence__DefinitionListAssignment_1_in_rule__OptionalSequence__Group__1__Impl7443 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OptionalSequence__Group__2__Impl_in_rule__OptionalSequence__Group__27473 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_14_in_rule__OptionalSequence__Group__2__Impl7501 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__0__Impl_in_rule__RepeatedSequence__Group__07538 = new BitSet(new long[]{0x00000000000E0250L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__1_in_rule__RepeatedSequence__Group__07541 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_19_in_rule__RepeatedSequence__Group__0__Impl7569 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__1__Impl_in_rule__RepeatedSequence__Group__17600 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__2_in_rule__RepeatedSequence__Group__17603 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__DefinitionsAssignment_1_in_rule__RepeatedSequence__Group__1__Impl7630 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__2__Impl_in_rule__RepeatedSequence__Group__27660 = new BitSet(new long[]{0x0000000400200000L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__3_in_rule__RepeatedSequence__Group__27663 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_15_in_rule__RepeatedSequence__Group__2__Impl7691 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__3__Impl_in_rule__RepeatedSequence__Group__37722 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__Alternatives_3_in_rule__RepeatedSequence__Group__3__Impl7749 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__0__Impl_in_rule__RepeatRange__Group__07787 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__1_in_rule__RepeatRange__Group__07790 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_34_in_rule__RepeatRange__Group__0__Impl7818 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__1__Impl_in_rule__RepeatRange__Group__17849 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__2_in_rule__RepeatRange__Group__17852 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_rule__RepeatRange__Group__1__Impl7880 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__2__Impl_in_rule__RepeatRange__Group__27911 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__3_in_rule__RepeatRange__Group__27914 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__FromAssignment_2_in_rule__RepeatRange__Group__2__Impl7941 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__3__Impl_in_rule__RepeatRange__Group__37971 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__4_in_rule__RepeatRange__Group__37974 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_35_in_rule__RepeatRange__Group__3__Impl8002 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__4__Impl_in_rule__RepeatRange__Group__48033 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__5_in_rule__RepeatRange__Group__48036 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__ToAssignment_4_in_rule__RepeatRange__Group__4__Impl8063 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatRange__Group__5__Impl_in_rule__RepeatRange__Group__58093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_13_in_rule__RepeatRange__Group__5__Impl8121 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__EtsiBnf__NameAssignment_0_18169 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_36_in_rule__EtsiBnf__TypeAssignment_0_2_08205 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_0_2_28244 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBnfEntry_in_rule__EtsiBnf__BnfEntryAssignment_0_2_38275 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_37_in_rule__EtsiBnf__TypeAssignment_1_08311 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_1_28350 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDeltaEntry_in_rule__EtsiBnf__DeltaEntryAssignment_1_38381 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_38_in_rule__EtsiBnf__TypeAssignment_2_08417 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_2_28456 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMergeEntry_in_rule__EtsiBnf__MergeEntryAssignment_2_38487 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImport_in_rule__ImportSection__ImportsAssignment8518 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSectionHeading_in_rule__BnfEntry__SectionheaderAssignment_08549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRule_in_rule__BnfEntry__RuleAssignment_18580 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRule_in_rule__DeltaEntry__RuleAssignment_08611 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSectionHeading_in_rule__DeltaEntry__SectionheaderAssignment_18642 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleExtRule_in_rule__DeltaEntry__ExtRuleAssignment_28673 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSectionHeading_in_rule__MergeEntry__SectionheaderAssignment_08704 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMergeRule_in_rule__MergeEntry__MergeRuleAssignment_18735 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_SECTIONHEADER_in_rule__SectionHeading__SectionHeaderAssignment_18766 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_18797 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_39_in_rule__Import__GrammarTypeAssignment_2_1_08833 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__Import__GrammarTypeAssignment_2_1_18877 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__Import__GrammarTypeAssignment_2_1_28921 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__Import__LabelAssignment_3_18960 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__Rule__RulenumberAssignment_0_08991 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__Rule__RulevariantAssignment_0_19022 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__Rule__NameAssignment_19053 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__Rule__DefinitionListAssignment_39084 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__ExtRule__RulenumberAssignment_0_09115 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ExtRule__RulevariantAssignment_0_19146 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ExtRule__NameAssignment_19177 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__ExtRule__RuleextAssignment_2_19208 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAtom_in_rule__ExtRule__ElementsAssignment_4_09239 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_LOGIC_in_rule__GlobalCombinator__LogicAssignment_19270 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__RuleCombinator__NameAssignment_0_29301 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_LOGIC_in_rule__RuleCombinator__LogicAssignment_19332 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__RuleCombinator__LABELAssignment_2_19363 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__HookCombinator__NameAssignment_29394 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__HookCombinator__RuleextAssignment_49425 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_LOGIC_in_rule__HookCombinator__LogicAssignment_69456 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__HookCombinator__LABELAssignment_7_19487 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_09518 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_1_19549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTerm_in_rule__SingleDefinition__TermsAssignment9580 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAtom_in_rule__Term__TermAtomAssignment_09611 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGroupedSequence_in_rule__Term__TermGroupedSequenceAssignment_19642 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleOptionalSequence_in_rule__Term__TermOptionalSequenceAssignment_29673 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRepeatedSequence_in_rule__Term__TermRepeatedSequenceAssignment_39704 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStringRule_in_rule__Atom__AtomStringRuleAssignment_09735 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRuleReference_in_rule__Atom__AtomRuleReferenceAssignment_19766 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__RuleReference__RulerefAssignment9801 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__StringRule__LiteralAssignment_09836 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_COLON_in_rule__StringRule__ColonAssignment_19867 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__GroupedSequence__DefinitionListAssignment_19898 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__OptionalSequence__DefinitionListAssignment_19929 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__RepeatedSequence__DefinitionsAssignment_19960 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_21_in_rule__RepeatedSequence__MorethanonceAssignment_3_09996 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRepeatRange_in_rule__RepeatedSequence__RangeAssignment_3_110035 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__RepeatRange__FromAssignment_210066 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__RepeatRange__ToAssignment_410097 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_synpred28_InternalEbnf2274 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleComment_in_entryRuleComment451 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleComment458 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Comment__Group__0_in_ruleComment484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport511 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleImport518 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__0_in_ruleImport544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRule_in_entryRuleRule571 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRule578 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group__0_in_ruleRule604 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleExtRule_in_entryRuleExtRule631 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleExtRule638 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__0_in_ruleExtRule664 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMergeRule_in_entryRuleMergeRule691 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMergeRule698 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MergeRule__Alternatives_in_ruleMergeRule724 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator751 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleGlobalCombinator758 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__0_in_ruleGlobalCombinator784 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator811 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRuleCombinator818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__0_in_ruleRuleCombinator844 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator871 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleHookCombinator878 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__0_in_ruleHookCombinator904 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList931 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleDefinitionList938 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group__0_in_ruleDefinitionList964 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition991 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSingleDefinition998 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition1026 = new BitSet(new long[]{0x00000000000E0492L});
+    public static final BitSet FOLLOW_rule__SingleDefinition__TermsAssignment_in_ruleSingleDefinition1038 = new BitSet(new long[]{0x00000000000E0492L});
+    public static final BitSet FOLLOW_ruleTerm_in_entryRuleTerm1068 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTerm1075 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Term__Alternatives_in_ruleTerm1101 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAtom_in_entryRuleAtom1128 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleAtom1135 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Atom__Alternatives_in_ruleAtom1161 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRuleReference_in_entryRuleRuleReference1188 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRuleReference1195 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleReference__RulerefAssignment_in_ruleRuleReference1221 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStringRule_in_entryRuleStringRule1248 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleStringRule1255 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StringRule__Alternatives_in_ruleStringRule1281 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence1308 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleGroupedSequence1315 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GroupedSequence__Group__0_in_ruleGroupedSequence1341 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence1368 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOptionalSequence1375 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OptionalSequence__Group__0_in_ruleOptionalSequence1401 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence1428 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRepeatedSequence1435 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__0_in_ruleRepeatedSequence1461 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange1488 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRepeatRange1495 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__0_in_ruleRepeatRange1521 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__0_in_rule__EtsiBnf__Alternatives1557 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__0_in_rule__EtsiBnf__Alternatives1575 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__0_in_rule__EtsiBnf__Alternatives1593 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BnfEntry__SectionheaderAssignment_0_in_rule__BnfEntry__Alternatives1626 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BnfEntry__RuleAssignment_1_in_rule__BnfEntry__Alternatives1644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BnfEntry__CommentAssignment_2_in_rule__BnfEntry__Alternatives1662 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DeltaEntry__RuleAssignment_0_in_rule__DeltaEntry__Alternatives1695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DeltaEntry__SectionheaderAssignment_1_in_rule__DeltaEntry__Alternatives1713 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DeltaEntry__ExtRuleAssignment_2_in_rule__DeltaEntry__Alternatives1731 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MergeEntry__SectionheaderAssignment_0_in_rule__MergeEntry__Alternatives1764 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MergeEntry__MergeRuleAssignment_1_in_rule__MergeEntry__Alternatives1782 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__GrammarTypeAssignment_2_1_0_in_rule__Import__Alternatives_2_11815 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__GrammarTypeAssignment_2_1_1_in_rule__Import__Alternatives_2_11833 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__GrammarTypeAssignment_2_1_2_in_rule__Import__Alternatives_2_11851 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__ElementsAssignment_4_0_in_rule__ExtRule__Alternatives_41884 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__ExtRule__Alternatives_41903 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_rule__ExtRule__Alternatives_41923 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_15_in_rule__ExtRule__Alternatives_41943 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_16_in_rule__ExtRule__Alternatives_41963 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__ExtRule__Alternatives_41983 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__ExtRule__Alternatives_42003 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__ExtRule__Alternatives_42023 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_20_in_rule__ExtRule__Alternatives_42043 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_rule__ExtRule__Alternatives_42063 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGlobalCombinator_in_rule__MergeRule__Alternatives2097 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRuleCombinator_in_rule__MergeRule__Alternatives2114 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleHookCombinator_in_rule__MergeRule__Alternatives2131 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Term__TermAtomAssignment_0_in_rule__Term__Alternatives2163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Term__TermGroupedSequenceAssignment_1_in_rule__Term__Alternatives2181 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Term__TermOptionalSequenceAssignment_2_in_rule__Term__Alternatives2199 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Term__TermRepeatedSequenceAssignment_3_in_rule__Term__Alternatives2217 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Atom__AtomStringRuleAssignment_0_in_rule__Atom__Alternatives2250 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Atom__AtomRuleReferenceAssignment_1_in_rule__Atom__Alternatives2268 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StringRule__LiteralAssignment_0_in_rule__StringRule__Alternatives2301 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StringRule__ColonAssignment_1_in_rule__StringRule__Alternatives2319 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_rule__RepeatedSequence__Alternatives_32352 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__RangeAssignment_3_1_in_rule__RepeatedSequence__Alternatives_32371 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__0__Impl_in_rule__EtsiBnf__Group_0__02403 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__1_in_rule__EtsiBnf__Group_0__02406 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_22_in_rule__EtsiBnf__Group_0__0__Impl2434 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__1__Impl_in_rule__EtsiBnf__Group_0__12465 = new BitSet(new long[]{0x0000001000800000L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__2_in_rule__EtsiBnf__Group_0__12468 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__NameAssignment_0_1_in_rule__EtsiBnf__Group_0__1__Impl2495 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0__2__Impl_in_rule__EtsiBnf__Group_0__22525 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__0_in_rule__EtsiBnf__Group_0__2__Impl2552 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__0__Impl_in_rule__EtsiBnf__Group_0_2__02588 = new BitSet(new long[]{0x0000001000800000L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__1_in_rule__EtsiBnf__Group_0_2__02591 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__TypeAssignment_0_2_0_in_rule__EtsiBnf__Group_0_2__0__Impl2618 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__1__Impl_in_rule__EtsiBnf__Group_0_2__12649 = new BitSet(new long[]{0x0000000001000170L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__2_in_rule__EtsiBnf__Group_0_2__12652 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__EtsiBnf__Group_0_2__1__Impl2680 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__2__Impl_in_rule__EtsiBnf__Group_0_2__22711 = new BitSet(new long[]{0x0000000001000170L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__3_in_rule__EtsiBnf__Group_0_2__22714 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__ImportSectionAssignment_0_2_2_in_rule__EtsiBnf__Group_0_2__2__Impl2741 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_0_2__3__Impl_in_rule__EtsiBnf__Group_0_2__32772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2801 = new BitSet(new long[]{0x0000000001000172L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__BnfEntryAssignment_0_2_3_in_rule__EtsiBnf__Group_0_2__3__Impl2813 = new BitSet(new long[]{0x0000000001000172L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__0__Impl_in_rule__EtsiBnf__Group_1__02854 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__1_in_rule__EtsiBnf__Group_1__02857 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__TypeAssignment_1_0_in_rule__EtsiBnf__Group_1__0__Impl2884 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__1__Impl_in_rule__EtsiBnf__Group_1__12914 = new BitSet(new long[]{0x0000000001000130L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__2_in_rule__EtsiBnf__Group_1__12917 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__EtsiBnf__Group_1__1__Impl2945 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__2__Impl_in_rule__EtsiBnf__Group_1__22976 = new BitSet(new long[]{0x0000000001000130L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__3_in_rule__EtsiBnf__Group_1__22979 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__ImportSectionAssignment_1_2_in_rule__EtsiBnf__Group_1__2__Impl3006 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_1__3__Impl_in_rule__EtsiBnf__Group_1__33037 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__DeltaEntryAssignment_1_3_in_rule__EtsiBnf__Group_1__3__Impl3064 = new BitSet(new long[]{0x0000000000000132L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__0__Impl_in_rule__EtsiBnf__Group_2__03103 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__1_in_rule__EtsiBnf__Group_2__03106 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__TypeAssignment_2_0_in_rule__EtsiBnf__Group_2__0__Impl3133 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__1__Impl_in_rule__EtsiBnf__Group_2__13163 = new BitSet(new long[]{0x0000000341000020L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__2_in_rule__EtsiBnf__Group_2__13166 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__EtsiBnf__Group_2__1__Impl3194 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__2__Impl_in_rule__EtsiBnf__Group_2__23225 = new BitSet(new long[]{0x0000000341000020L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__3_in_rule__EtsiBnf__Group_2__23228 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__ImportSectionAssignment_2_2_in_rule__EtsiBnf__Group_2__2__Impl3255 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__Group_2__3__Impl_in_rule__EtsiBnf__Group_2__33286 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EtsiBnf__MergeEntryAssignment_2_3_in_rule__EtsiBnf__Group_2__3__Impl3313 = new BitSet(new long[]{0x0000000340000022L});
+    public static final BitSet FOLLOW_rule__SectionHeading__Group__0__Impl_in_rule__SectionHeading__Group__03352 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__SectionHeading__Group__1_in_rule__SectionHeading__Group__03355 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SectionHeading__Group__1__Impl_in_rule__SectionHeading__Group__13413 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SectionHeading__SectionHeaderAssignment_1_in_rule__SectionHeading__Group__1__Impl3440 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Comment__Group__0__Impl_in_rule__Comment__Group__03474 = new BitSet(new long[]{0x0000000001000170L});
+    public static final BitSet FOLLOW_rule__Comment__Group__1_in_rule__Comment__Group__03477 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Comment__Group__1__Impl_in_rule__Comment__Group__13535 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Comment__ContentAssignment_1_in_rule__Comment__Group__1__Impl3562 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__03596 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__03599 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_24_in_rule__Import__Group__0__Impl3627 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__13658 = new BitSet(new long[]{0x0000000006800000L});
+    public static final BitSet FOLLOW_rule__Import__Group__2_in_rule__Import__Group__13661 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__ImportURIAssignment_1_in_rule__Import__Group__1__Impl3688 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__23718 = new BitSet(new long[]{0x0000000006800000L});
+    public static final BitSet FOLLOW_rule__Import__Group__3_in_rule__Import__Group__23721 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_2__0_in_rule__Import__Group__2__Impl3748 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__3__Impl_in_rule__Import__Group__33779 = new BitSet(new long[]{0x0000000006800000L});
+    public static final BitSet FOLLOW_rule__Import__Group__4_in_rule__Import__Group__33782 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_3__0_in_rule__Import__Group__3__Impl3809 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__4__Impl_in_rule__Import__Group__43840 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__Import__Group__4__Impl3868 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_2__0__Impl_in_rule__Import__Group_2__03909 = new BitSet(new long[]{0x0000038000000000L});
+    public static final BitSet FOLLOW_rule__Import__Group_2__1_in_rule__Import__Group_2__03912 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_rule__Import__Group_2__0__Impl3940 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_2__1__Impl_in_rule__Import__Group_2__13971 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Alternatives_2_1_in_rule__Import__Group_2__1__Impl3998 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_3__0__Impl_in_rule__Import__Group_3__04032 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__Import__Group_3__1_in_rule__Import__Group_3__04035 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_26_in_rule__Import__Group_3__0__Impl4063 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_3__1__Impl_in_rule__Import__Group_3__14094 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__LabelAssignment_3_1_in_rule__Import__Group_3__1__Impl4121 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group__0__Impl_in_rule__Rule__Group__04155 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_rule__Rule__Group__1_in_rule__Rule__Group__04158 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group_0__0_in_rule__Rule__Group__0__Impl4185 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group__1__Impl_in_rule__Rule__Group__14216 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_rule__Rule__Group__2_in_rule__Rule__Group__14219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__NameAssignment_1_in_rule__Rule__Group__1__Impl4246 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group__2__Impl_in_rule__Rule__Group__24276 = new BitSet(new long[]{0x00000000008E0490L});
+    public static final BitSet FOLLOW_rule__Rule__Group__3_in_rule__Rule__Group__24279 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_27_in_rule__Rule__Group__2__Impl4307 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group__3__Impl_in_rule__Rule__Group__34338 = new BitSet(new long[]{0x00000000008E0490L});
+    public static final BitSet FOLLOW_rule__Rule__Group__4_in_rule__Rule__Group__34341 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__DefinitionListAssignment_3_in_rule__Rule__Group__3__Impl4368 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group__4__Impl_in_rule__Rule__Group__44399 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__Rule__Group__4__Impl4428 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group_0__0__Impl_in_rule__Rule__Group_0__04471 = new BitSet(new long[]{0x0000000010000010L});
+    public static final BitSet FOLLOW_rule__Rule__Group_0__1_in_rule__Rule__Group_0__04474 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__RulenumberAssignment_0_0_in_rule__Rule__Group_0__0__Impl4501 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group_0__1__Impl_in_rule__Rule__Group_0__14531 = new BitSet(new long[]{0x0000000010000010L});
+    public static final BitSet FOLLOW_rule__Rule__Group_0__2_in_rule__Rule__Group_0__14534 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__RulevariantAssignment_0_1_in_rule__Rule__Group_0__1__Impl4561 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Rule__Group_0__2__Impl_in_rule__Rule__Group_0__24592 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_rule__Rule__Group_0__2__Impl4620 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__0__Impl_in_rule__ExtRule__Group__04657 = new BitSet(new long[]{0x0000000000000130L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__1_in_rule__ExtRule__Group__04660 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_0__0_in_rule__ExtRule__Group__0__Impl4687 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__1__Impl_in_rule__ExtRule__Group__14718 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__2_in_rule__ExtRule__Group__14721 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__NameAssignment_1_in_rule__ExtRule__Group__1__Impl4748 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__2__Impl_in_rule__ExtRule__Group__24778 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__3_in_rule__ExtRule__Group__24781 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_2__0_in_rule__ExtRule__Group__2__Impl4808 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__3__Impl_in_rule__ExtRule__Group__34838 = new BitSet(new long[]{0x0000000000BFE490L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__4_in_rule__ExtRule__Group__34841 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_29_in_rule__ExtRule__Group__3__Impl4869 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__4__Impl_in_rule__ExtRule__Group__44900 = new BitSet(new long[]{0x0000000000BFE490L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__5_in_rule__ExtRule__Group__44903 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Alternatives_4_in_rule__ExtRule__Group__4__Impl4930 = new BitSet(new long[]{0x00000000003FE492L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group__5__Impl_in_rule__ExtRule__Group__54961 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__ExtRule__Group__5__Impl4990 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_0__0__Impl_in_rule__ExtRule__Group_0__05035 = new BitSet(new long[]{0x0000000010000010L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_0__1_in_rule__ExtRule__Group_0__05038 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__RulenumberAssignment_0_0_in_rule__ExtRule__Group_0__0__Impl5065 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_0__1__Impl_in_rule__ExtRule__Group_0__15095 = new BitSet(new long[]{0x0000000010000010L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_0__2_in_rule__ExtRule__Group_0__15098 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__RulevariantAssignment_0_1_in_rule__ExtRule__Group_0__1__Impl5125 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_0__2__Impl_in_rule__ExtRule__Group_0__25156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_rule__ExtRule__Group_0__2__Impl5184 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_2__0__Impl_in_rule__ExtRule__Group_2__05221 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_2__1_in_rule__ExtRule__Group_2__05224 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__ExtRule__Group_2__0__Impl5252 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_2__1__Impl_in_rule__ExtRule__Group_2__15283 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_2__2_in_rule__ExtRule__Group_2__15286 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__RuleextAssignment_2_1_in_rule__ExtRule__Group_2__1__Impl5313 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExtRule__Group_2__2__Impl_in_rule__ExtRule__Group_2__25343 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__ExtRule__Group_2__2__Impl5371 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__0__Impl_in_rule__GlobalCombinator__Group__05408 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__1_in_rule__GlobalCombinator__Group__05411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__0_in_rule__GlobalCombinator__Group__0__Impl5438 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__1__Impl_in_rule__GlobalCombinator__Group__15468 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__2_in_rule__GlobalCombinator__Group__15471 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__LogicAssignment_1_in_rule__GlobalCombinator__Group__1__Impl5498 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group__2__Impl_in_rule__GlobalCombinator__Group__25528 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__GlobalCombinator__Group__2__Impl5557 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__0__Impl_in_rule__GlobalCombinator__Group_0__05596 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__1_in_rule__GlobalCombinator__Group_0__05599 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_30_in_rule__GlobalCombinator__Group_0__0__Impl5627 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GlobalCombinator__Group_0__1__Impl_in_rule__GlobalCombinator__Group_0__15658 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_31_in_rule__GlobalCombinator__Group_0__1__Impl5686 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__0__Impl_in_rule__RuleCombinator__Group__05721 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__1_in_rule__RuleCombinator__Group__05724 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__0_in_rule__RuleCombinator__Group__0__Impl5751 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__1__Impl_in_rule__RuleCombinator__Group__15781 = new BitSet(new long[]{0x0000000000820000L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__2_in_rule__RuleCombinator__Group__15784 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__LogicAssignment_1_in_rule__RuleCombinator__Group__1__Impl5811 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__2__Impl_in_rule__RuleCombinator__Group__25841 = new BitSet(new long[]{0x0000000000820000L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__3_in_rule__RuleCombinator__Group__25844 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__0_in_rule__RuleCombinator__Group__2__Impl5871 = new BitSet(new long[]{0x0000000000020002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group__3__Impl_in_rule__RuleCombinator__Group__35902 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__RuleCombinator__Group__3__Impl5931 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__0__Impl_in_rule__RuleCombinator__Group_0__05972 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__1_in_rule__RuleCombinator__Group_0__05975 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_32_in_rule__RuleCombinator__Group_0__0__Impl6003 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__1__Impl_in_rule__RuleCombinator__Group_0__16034 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__2_in_rule__RuleCombinator__Group_0__16037 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_31_in_rule__RuleCombinator__Group_0__1__Impl6065 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_0__2__Impl_in_rule__RuleCombinator__Group_0__26096 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__NameAssignment_0_2_in_rule__RuleCombinator__Group_0__2__Impl6123 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__0__Impl_in_rule__RuleCombinator__Group_2__06159 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__1_in_rule__RuleCombinator__Group_2__06162 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__RuleCombinator__Group_2__0__Impl6190 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__1__Impl_in_rule__RuleCombinator__Group_2__16221 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__2_in_rule__RuleCombinator__Group_2__16224 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__LABELAssignment_2_1_in_rule__RuleCombinator__Group_2__1__Impl6251 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RuleCombinator__Group_2__2__Impl_in_rule__RuleCombinator__Group_2__26281 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__RuleCombinator__Group_2__2__Impl6309 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__0__Impl_in_rule__HookCombinator__Group__06346 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__1_in_rule__HookCombinator__Group__06349 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_rule__HookCombinator__Group__0__Impl6377 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__1__Impl_in_rule__HookCombinator__Group__16408 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__2_in_rule__HookCombinator__Group__16411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_31_in_rule__HookCombinator__Group__1__Impl6439 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__2__Impl_in_rule__HookCombinator__Group__26470 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__3_in_rule__HookCombinator__Group__26473 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__NameAssignment_2_in_rule__HookCombinator__Group__2__Impl6500 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__3__Impl_in_rule__HookCombinator__Group__36530 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__4_in_rule__HookCombinator__Group__36533 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__HookCombinator__Group__3__Impl6561 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__4__Impl_in_rule__HookCombinator__Group__46592 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__5_in_rule__HookCombinator__Group__46595 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__RuleextAssignment_4_in_rule__HookCombinator__Group__4__Impl6622 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__5__Impl_in_rule__HookCombinator__Group__56652 = new BitSet(new long[]{0x0000000000020200L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__6_in_rule__HookCombinator__Group__56655 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__HookCombinator__Group__5__Impl6683 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__6__Impl_in_rule__HookCombinator__Group__66714 = new BitSet(new long[]{0x0000000000020200L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__7_in_rule__HookCombinator__Group__66717 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__LogicAssignment_6_in_rule__HookCombinator__Group__6__Impl6744 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__7__Impl_in_rule__HookCombinator__Group__76775 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__8_in_rule__HookCombinator__Group__76778 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6807 = new BitSet(new long[]{0x0000000000020202L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__0_in_rule__HookCombinator__Group__7__Impl6819 = new BitSet(new long[]{0x0000000000020202L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group__8__Impl_in_rule__HookCombinator__Group__86852 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__HookCombinator__Group__8__Impl6881 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__0__Impl_in_rule__HookCombinator__Group_7__06932 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__1_in_rule__HookCombinator__Group_7__06935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__HookCombinator__Group_7__0__Impl6963 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__1__Impl_in_rule__HookCombinator__Group_7__16994 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__2_in_rule__HookCombinator__Group_7__16997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__LABELAssignment_7_1_in_rule__HookCombinator__Group_7__1__Impl7024 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__HookCombinator__Group_7__2__Impl_in_rule__HookCombinator__Group_7__27054 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__HookCombinator__Group_7__2__Impl7082 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group__0__Impl_in_rule__DefinitionList__Group__07119 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group__1_in_rule__DefinitionList__Group__07122 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_0_in_rule__DefinitionList__Group__0__Impl7149 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group__1__Impl_in_rule__DefinitionList__Group__17179 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__0_in_rule__DefinitionList__Group__1__Impl7206 = new BitSet(new long[]{0x0000000000010002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__0__Impl_in_rule__DefinitionList__Group_1__07241 = new BitSet(new long[]{0x00000000000E0490L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__1_in_rule__DefinitionList__Group_1__07244 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_16_in_rule__DefinitionList__Group_1__0__Impl7272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__Group_1__1__Impl_in_rule__DefinitionList__Group_1__17303 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DefinitionList__SingleDefinitionAssignment_1_1_in_rule__DefinitionList__Group_1__1__Impl7330 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GroupedSequence__Group__0__Impl_in_rule__GroupedSequence__Group__07364 = new BitSet(new long[]{0x00000000000E0490L});
+    public static final BitSet FOLLOW_rule__GroupedSequence__Group__1_in_rule__GroupedSequence__Group__07367 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__GroupedSequence__Group__0__Impl7395 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GroupedSequence__Group__1__Impl_in_rule__GroupedSequence__Group__17426 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_rule__GroupedSequence__Group__2_in_rule__GroupedSequence__Group__17429 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GroupedSequence__DefinitionListAssignment_1_in_rule__GroupedSequence__Group__1__Impl7456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GroupedSequence__Group__2__Impl_in_rule__GroupedSequence__Group__27486 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__GroupedSequence__Group__2__Impl7514 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OptionalSequence__Group__0__Impl_in_rule__OptionalSequence__Group__07551 = new BitSet(new long[]{0x00000000000E0490L});
+    public static final BitSet FOLLOW_rule__OptionalSequence__Group__1_in_rule__OptionalSequence__Group__07554 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__OptionalSequence__Group__0__Impl7582 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OptionalSequence__Group__1__Impl_in_rule__OptionalSequence__Group__17613 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_rule__OptionalSequence__Group__2_in_rule__OptionalSequence__Group__17616 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OptionalSequence__DefinitionListAssignment_1_in_rule__OptionalSequence__Group__1__Impl7643 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OptionalSequence__Group__2__Impl_in_rule__OptionalSequence__Group__27673 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_rule__OptionalSequence__Group__2__Impl7701 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__0__Impl_in_rule__RepeatedSequence__Group__07738 = new BitSet(new long[]{0x00000000000E0490L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__1_in_rule__RepeatedSequence__Group__07741 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_19_in_rule__RepeatedSequence__Group__0__Impl7769 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__1__Impl_in_rule__RepeatedSequence__Group__17800 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__2_in_rule__RepeatedSequence__Group__17803 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__DefinitionsAssignment_1_in_rule__RepeatedSequence__Group__1__Impl7830 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__2__Impl_in_rule__RepeatedSequence__Group__27860 = new BitSet(new long[]{0x0000000400200000L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__3_in_rule__RepeatedSequence__Group__27863 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_15_in_rule__RepeatedSequence__Group__2__Impl7891 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Group__3__Impl_in_rule__RepeatedSequence__Group__37922 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__Alternatives_3_in_rule__RepeatedSequence__Group__3__Impl7949 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__0__Impl_in_rule__RepeatRange__Group__07987 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__1_in_rule__RepeatRange__Group__07990 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_rule__RepeatRange__Group__0__Impl8018 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__1__Impl_in_rule__RepeatRange__Group__18049 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__2_in_rule__RepeatRange__Group__18052 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_rule__RepeatRange__Group__1__Impl8080 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__2__Impl_in_rule__RepeatRange__Group__28111 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__3_in_rule__RepeatRange__Group__28114 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__FromAssignment_2_in_rule__RepeatRange__Group__2__Impl8141 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__3__Impl_in_rule__RepeatRange__Group__38171 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__4_in_rule__RepeatRange__Group__38174 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_rule__RepeatRange__Group__3__Impl8202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__4__Impl_in_rule__RepeatRange__Group__48233 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__5_in_rule__RepeatRange__Group__48236 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__ToAssignment_4_in_rule__RepeatRange__Group__4__Impl8263 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatRange__Group__5__Impl_in_rule__RepeatRange__Group__58293 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_13_in_rule__RepeatRange__Group__5__Impl8321 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__EtsiBnf__NameAssignment_0_18369 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_36_in_rule__EtsiBnf__TypeAssignment_0_2_08405 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_0_2_28444 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBnfEntry_in_rule__EtsiBnf__BnfEntryAssignment_0_2_38475 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_rule__EtsiBnf__TypeAssignment_1_08511 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_1_28550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDeltaEntry_in_rule__EtsiBnf__DeltaEntryAssignment_1_38581 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_38_in_rule__EtsiBnf__TypeAssignment_2_08617 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImportSection_in_rule__EtsiBnf__ImportSectionAssignment_2_28656 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMergeEntry_in_rule__EtsiBnf__MergeEntryAssignment_2_38687 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImport_in_rule__ImportSection__ImportsAssignment8718 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSectionHeading_in_rule__BnfEntry__SectionheaderAssignment_08749 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRule_in_rule__BnfEntry__RuleAssignment_18780 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleComment_in_rule__BnfEntry__CommentAssignment_28811 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRule_in_rule__DeltaEntry__RuleAssignment_08842 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSectionHeading_in_rule__DeltaEntry__SectionheaderAssignment_18873 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleExtRule_in_rule__DeltaEntry__ExtRuleAssignment_28904 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSectionHeading_in_rule__MergeEntry__SectionheaderAssignment_08935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMergeRule_in_rule__MergeEntry__MergeRuleAssignment_18966 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_SECTIONHEADER_in_rule__SectionHeading__SectionHeaderAssignment_18997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ML_COMMENT_in_rule__Comment__ContentAssignment_19028 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_19059 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_39_in_rule__Import__GrammarTypeAssignment_2_1_09095 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__Import__GrammarTypeAssignment_2_1_19139 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__Import__GrammarTypeAssignment_2_1_29183 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__Import__LabelAssignment_3_19222 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__Rule__RulenumberAssignment_0_09253 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__Rule__RulevariantAssignment_0_19284 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__Rule__NameAssignment_19315 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__Rule__DefinitionListAssignment_39346 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__ExtRule__RulenumberAssignment_0_09377 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ExtRule__RulevariantAssignment_0_19408 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ExtRule__NameAssignment_19439 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__ExtRule__RuleextAssignment_2_19470 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAtom_in_rule__ExtRule__ElementsAssignment_4_09501 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_LOGIC_in_rule__GlobalCombinator__LogicAssignment_19532 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__RuleCombinator__NameAssignment_0_29563 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_LOGIC_in_rule__RuleCombinator__LogicAssignment_19594 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__RuleCombinator__LABELAssignment_2_19625 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__HookCombinator__NameAssignment_29656 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__HookCombinator__RuleextAssignment_49687 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_LOGIC_in_rule__HookCombinator__LogicAssignment_69718 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__HookCombinator__LABELAssignment_7_19749 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_09780 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSingleDefinition_in_rule__DefinitionList__SingleDefinitionAssignment_1_19811 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTerm_in_rule__SingleDefinition__TermsAssignment9842 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAtom_in_rule__Term__TermAtomAssignment_09873 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGroupedSequence_in_rule__Term__TermGroupedSequenceAssignment_19904 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOptionalSequence_in_rule__Term__TermOptionalSequenceAssignment_29935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRepeatedSequence_in_rule__Term__TermRepeatedSequenceAssignment_39966 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStringRule_in_rule__Atom__AtomStringRuleAssignment_09997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRuleReference_in_rule__Atom__AtomRuleReferenceAssignment_110028 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__RuleReference__RulerefAssignment10063 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__StringRule__LiteralAssignment_010098 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_COLON_in_rule__StringRule__ColonAssignment_110129 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__GroupedSequence__DefinitionListAssignment_110160 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__OptionalSequence__DefinitionListAssignment_110191 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDefinitionList_in_rule__RepeatedSequence__DefinitionsAssignment_110222 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_rule__RepeatedSequence__MorethanonceAssignment_3_010258 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRepeatRange_in_rule__RepeatedSequence__RangeAssignment_3_110297 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__RepeatRange__FromAssignment_210328 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__RepeatRange__ToAssignment_410359 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RepeatedSequence__MorethanonceAssignment_3_0_in_synpred29_InternalEbnf2352 = new BitSet(new long[]{0x0000000000000002L});
 
 }
