Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnfLexer.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnfLexer.java	(revision 88)
+++ v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnfLexer.java	(revision 95)
@@ -13,41 +13,43 @@
 @SuppressWarnings("all")
 public class InternalEbnfLexer extends Lexer {
-    public static final int RULE_STRING=6;
+    public static final int T__40=40;
+    public static final int RULE_ID=4;
+    public static final int RULE_SECTIONHEADER=5;
+    public static final int T__41=41;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__27=27;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int T__21=21;
+    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 T__19=19;
-    public static final int RULE_SECTIONHEADER=5;
-    public static final int T__15=15;
-    public static final int T__37=37;
-    public static final int T__16=16;
-    public static final int T__38=38;
-    public static final int T__17=17;
-    public static final int T__39=39;
-    public static final int T__18=18;
-    public static final int T__33=33;
-    public static final int T__34=34;
-    public static final int T__13=13;
-    public static final int T__35=35;
-    public static final int T__14=14;
-    public static final int T__36=36;
-    public static final int EOF=-1;
     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 T__32=32;
-    public static final int RULE_ID=4;
+    public static final int RULE_STRING=6;
+    public static final int T__16=16;
+    public static final int T__33=33;
+    public static final int T__15=15;
+    public static final int T__34=34;
+    public static final int T__18=18;
+    public static final int T__35=35;
+    public static final int T__17=17;
+    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 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_COLON=9;
-    public static final int RULE_LOGIC=8;
-    public static final int T__26=26;
-    public static final int T__27=27;
-    public static final int T__28=28;
-    public static final int RULE_INT=7;
-    public static final int T__29=29;
-    public static final int T__22=22;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__23=23;
-    public static final int T__24=24;
-    public static final int T__25=25;
-    public static final int T__20=20;
-    public static final int T__21=21;
 
     // delegates
@@ -619,4 +621,44 @@
     // $ANTLR end "T__39"
 
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:38:7: ( '#' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:38:9: '#'
+            {
+            match('#'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "T__41"
+    public final void mT__41() throws RecognitionException {
+        try {
+            int _type = T__41;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:39:7: ( ',' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:39:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__41"
+
     // $ANTLR start "RULE_ID"
     public final void mRULE_ID() throws RecognitionException {
@@ -624,6 +666,6 @@
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1887:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1887: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') ) {
@@ -636,5 +678,5 @@
                 throw mse;}
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1887:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
             loop1:
             do {
@@ -685,8 +727,8 @@
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:10: ( ( '0' .. '9' )+ )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:12: ( '0' .. '9' )+
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:12: ( '0' .. '9' )+
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1889:10: ( ( '0' .. '9' )+ )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1889:12: ( '0' .. '9' )+
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1889:12: ( '0' .. '9' )+
             int cnt2=0;
             loop2:
@@ -702,5 +744,5 @@
                 switch (alt2) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:13: '0' .. '9'
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1889:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
@@ -734,8 +776,8 @@
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:9: ( ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:9: ( ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+
             int cnt4=0;
             loop4:
@@ -764,5 +806,5 @@
                 switch (alt4) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:12: ' '
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:12: ' '
             	    {
             	    match(' '); 
@@ -771,5 +813,5 @@
             	    break;
             	case 2 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:16: '\\t'
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:16: '\\t'
             	    {
             	    match('\t'); 
@@ -778,7 +820,7 @@
             	    break;
             	case 3 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:21: ( '\\r' )? '\\n'
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:21: ( '\\r' )? '\\n'
             	    {
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:21: ( '\\r' )?
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:21: ( '\\r' )?
             	    int alt3=2;
             	    int LA3_0 = input.LA(1);
@@ -789,5 +831,5 @@
             	    switch (alt3) {
             	        case 1 :
-            	            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:21: '\\r'
+            	            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:21: '\\r'
             	            {
             	            match('\r'); 
@@ -828,6 +870,6 @@
             int _type = RULE_COLON;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1779:12: ( '\"' '\"' '\"' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1779:14: '\"' '\"' '\"'
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1893:12: ( '\"' '\"' '\"' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1893:14: '\"' '\"' '\"'
             {
             match('\"'); 
@@ -850,8 +892,8 @@
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' )
             int alt7=2;
             int LA7_0 = input.LA(1);
@@ -871,8 +913,8 @@
             switch (alt7) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:16: '\"' (~ ( '\"' ) )* '\"'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:16: '\"' (~ ( '\"' ) )* '\"'
                     {
                     match('\"'); 
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:20: (~ ( '\"' ) )*
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:20: (~ ( '\"' ) )*
                     loop5:
                     do {
@@ -887,5 +929,5 @@
                         switch (alt5) {
                     	case 1 :
-                    	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:20: ~ ( '\"' )
+                    	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:20: ~ ( '\"' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) {
@@ -912,8 +954,8 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:32: '\\'' (~ ( '\\'' ) )* '\\''
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:32: '\\'' (~ ( '\\'' ) )* '\\''
                     {
                     match('\''); 
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:37: (~ ( '\\'' ) )*
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:37: (~ ( '\\'' ) )*
                     loop6:
                     do {
@@ -928,5 +970,5 @@
                         switch (alt6) {
                     	case 1 :
-                    	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:37: ~ ( '\\'' )
+                    	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:37: ~ ( '\\'' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) {
@@ -971,6 +1013,6 @@
             int _type = RULE_SECTIONHEADER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:20: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:22: ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n'
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:20: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897: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') ) {
@@ -983,5 +1025,5 @@
                 throw mse;}
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:42: ( '.' | '0' .. '9' )+
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:42: ( '.' | '0' .. '9' )+
             int cnt8=0;
             loop8:
@@ -1030,5 +1072,5 @@
                 throw mse;}
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:69: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:69: (~ ( ( '\\n' | '\\r' ) ) )*
             loop9:
             do {
@@ -1043,5 +1085,5 @@
                 switch (alt9) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:69: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897: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') ) {
@@ -1063,5 +1105,5 @@
             } while (true);
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:85: ( '\\r' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:85: ( '\\r' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
@@ -1072,5 +1114,5 @@
             switch (alt10) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:85: '\\r'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:85: '\\r'
                     {
                     match('\r'); 
@@ -1098,10 +1140,10 @@
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop11:
             do {
@@ -1116,5 +1158,5 @@
                 switch (alt11) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899: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') ) {
@@ -1136,5 +1178,5 @@
             } while (true);
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:40: ( ( '\\r' )? '\\n' )?
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:40: ( ( '\\r' )? '\\n' )?
             int alt13=2;
             int LA13_0 = input.LA(1);
@@ -1145,7 +1187,7 @@
             switch (alt13) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:41: ( '\\r' )? '\\n'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:41: ( '\\r' )? '\\n'
                     {
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:41: ( '\\r' )?
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:41: ( '\\r' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
@@ -1156,5 +1198,5 @@
                     switch (alt12) {
                         case 1 :
-                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:41: '\\r'
+                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:41: '\\r'
                             {
                             match('\r'); 
@@ -1188,10 +1230,10 @@
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1901:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1901:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:24: ( options {greedy=false; } : . )*
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1901:24: ( options {greedy=false; } : . )*
             loop14:
             do {
@@ -1218,5 +1260,5 @@
                 switch (alt14) {
             	case 1 :
-            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:52: .
+            	    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1901:52: .
             	    {
             	    matchAny(); 
@@ -1248,13 +1290,13 @@
             int _type = RULE_LOGIC;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:12: ( ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) )
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )
-            {
-            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:12: ( ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) )
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )
+            {
+            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )
             int alt15=6;
             alt15 = dfa15.predict(input);
             switch (alt15) {
                 case 1 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:15: '/and'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:15: '/and'
                     {
                     match("/and"); 
@@ -1264,5 +1306,5 @@
                     break;
                 case 2 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:22: '/or'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:22: '/or'
                     {
                     match("/or"); 
@@ -1272,5 +1314,5 @@
                     break;
                 case 3 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:28: '/andr'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:28: '/andr'
                     {
                     match("/andr"); 
@@ -1280,5 +1322,5 @@
                     break;
                 case 4 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:36: '/orr'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:36: '/orr'
                     {
                     match("/orr"); 
@@ -1288,5 +1330,5 @@
                     break;
                 case 5 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:43: '/any'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:43: '/any'
                     {
                     match("/any"); 
@@ -1296,5 +1338,5 @@
                     break;
                 case 6 :
-                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:50: '/together'
+                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:50: '/together'
                     {
                     match("/together"); 
@@ -1318,6 +1360,6 @@
 
     public void mTokens() throws RecognitionException {
-        // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC )
-        int alt16=36;
+        // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC )
+        int alt16=38;
         alt16 = dfa16.predict(input);
         switch (alt16) {
@@ -1512,5 +1554,19 @@
                 break;
             case 28 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:172: RULE_ID
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:172: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 29 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:178: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 30 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:184: RULE_ID
                 {
                 mRULE_ID(); 
@@ -1518,6 +1574,6 @@
                 }
                 break;
-            case 29 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:180: RULE_INT
+            case 31 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:192: RULE_INT
                 {
                 mRULE_INT(); 
@@ -1525,6 +1581,6 @@
                 }
                 break;
-            case 30 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:189: RULE_WS
+            case 32 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:201: RULE_WS
                 {
                 mRULE_WS(); 
@@ -1532,6 +1588,6 @@
                 }
                 break;
-            case 31 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:197: RULE_COLON
+            case 33 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:209: RULE_COLON
                 {
                 mRULE_COLON(); 
@@ -1539,6 +1595,6 @@
                 }
                 break;
-            case 32 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:208: RULE_STRING
+            case 34 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:220: RULE_STRING
                 {
                 mRULE_STRING(); 
@@ -1546,6 +1602,6 @@
                 }
                 break;
-            case 33 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:220: RULE_SECTIONHEADER
+            case 35 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:232: RULE_SECTIONHEADER
                 {
                 mRULE_SECTIONHEADER(); 
@@ -1553,6 +1609,6 @@
                 }
                 break;
-            case 34 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:239: RULE_SL_COMMENT
+            case 36 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:251: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
@@ -1560,6 +1616,6 @@
                 }
                 break;
-            case 35 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:255: RULE_ML_COMMENT
+            case 37 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:267: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
@@ -1567,6 +1623,6 @@
                 }
                 break;
-            case 36 :
-                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:271: RULE_LOGIC
+            case 38 :
+                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:283: RULE_LOGIC
                 {
                 mRULE_LOGIC(); 
@@ -1640,88 +1696,89 @@
         }
         public String getDescription() {
-            return "1789:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )";
+            return "1903:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )";
         }
     }
     static final String DFA16_eotS =
-        "\1\uffff\1\34\1\47\1\uffff\5\34\14\uffff\3\34\5\uffff\3\34\10\uffff"+
-        "\7\34\1\33\12\34\1\uffff\3\34\1\110\4\34\1\115\1\116\3\34\1\uffff"+
-        "\4\34\2\uffff\1\34\1\127\1\130\2\34\1\133\1\uffff\1\134\2\uffff"+
-        "\1\34\1\136\2\uffff\1\34\1\uffff\2\34\1\uffff";
+        "\1\uffff\1\36\1\51\1\uffff\5\36\14\uffff\2\36\2\uffff\1\36\5\uffff"+
+        "\3\36\10\uffff\7\36\1\35\12\36\1\uffff\3\36\1\112\4\36\1\117\1\120"+
+        "\3\36\1\uffff\4\36\2\uffff\1\36\1\131\1\132\2\36\1\135\1\uffff\1"+
+        "\136\2\uffff\1\36\1\140\2\uffff\1\36\1\uffff\2\36\1\uffff";
     static final String DFA16_eofS =
-        "\142\uffff";
+        "\144\uffff";
     static final String DFA16_minS =
-        "\1\11\1\56\1\52\1\uffff\5\56\14\uffff\3\56\2\uffff\1\0\2\uffff\1"+
-        "\141\1\157\1\11\10\uffff\1\160\1\155\1\143\1\144\1\142\1\154\1\157"+
-        "\1\42\1\155\1\142\1\157\1\145\1\142\1\153\1\141\2\145\1\153\1\uffff"+
-        "\1\155\1\141\1\162\1\60\1\151\1\141\1\164\1\154\2\60\1\141\1\154"+
-        "\1\164\1\uffff\1\156\1\147\1\145\1\72\2\uffff\1\162\2\60\1\141\1"+
-        "\145\1\60\1\uffff\1\60\2\uffff\1\164\1\60\2\uffff\1\157\1\uffff"+
-        "\1\162\1\72\1\uffff";
+        "\1\11\1\56\1\52\1\uffff\5\56\14\uffff\2\56\2\uffff\1\56\2\uffff"+
+        "\1\0\2\uffff\1\141\1\157\1\11\10\uffff\1\160\1\155\1\143\1\144\1"+
+        "\142\1\154\1\157\1\42\1\155\1\142\1\157\1\145\1\142\1\153\1\141"+
+        "\2\145\1\153\1\uffff\1\155\1\141\1\162\1\60\1\151\1\141\1\164\1"+
+        "\154\2\60\1\141\1\154\1\164\1\uffff\1\156\1\147\1\145\1\72\2\uffff"+
+        "\1\162\2\60\1\141\1\145\1\60\1\uffff\1\60\2\uffff\1\164\1\60\2\uffff"+
+        "\1\157\1\uffff\1\162\1\72\1\uffff";
     static final String DFA16_maxS =
         "\1\175\1\162\1\164\1\uffff\1\155\1\157\1\141\1\160\1\141\14\uffff"+
-        "\1\165\1\157\1\71\2\uffff\1\uffff\2\uffff\1\141\1\157\1\71\10\uffff"+
-        "\1\160\1\162\1\143\1\144\1\142\1\154\1\157\1\42\1\155\1\142\1\157"+
-        "\1\145\1\142\1\153\1\141\2\145\1\153\1\uffff\1\155\1\141\1\162\1"+
-        "\172\1\151\1\141\1\164\1\154\2\172\1\141\1\154\1\164\1\uffff\1\156"+
-        "\1\147\1\145\1\72\2\uffff\1\162\2\172\1\141\1\145\1\172\1\uffff"+
-        "\1\172\2\uffff\1\164\1\172\2\uffff\1\157\1\uffff\1\162\1\72\1\uffff";
+        "\1\165\1\157\2\uffff\1\71\2\uffff\1\uffff\2\uffff\1\141\1\157\1"+
+        "\71\10\uffff\1\160\1\162\1\143\1\144\1\142\1\154\1\157\1\42\1\155"+
+        "\1\142\1\157\1\145\1\142\1\153\1\141\2\145\1\153\1\uffff\1\155\1"+
+        "\141\1\162\1\172\1\151\1\141\1\164\1\154\2\172\1\141\1\154\1\164"+
+        "\1\uffff\1\156\1\147\1\145\1\72\2\uffff\1\162\2\172\1\141\1\145"+
+        "\1\172\1\uffff\1\172\2\uffff\1\164\1\172\2\uffff\1\157\1\uffff\1"+
+        "\162\1\72\1\uffff";
     static final String DFA16_acceptS =
         "\3\uffff\1\3\5\uffff\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+
-        "\1\25\1\26\1\27\3\uffff\1\35\1\36\1\uffff\1\40\1\34\3\uffff\1\41"+
-        "\1\2\1\4\1\5\1\42\1\43\1\44\1\7\22\uffff\1\37\15\uffff\1\10\4\uffff"+
-        "\1\32\1\33\6\uffff\1\13\1\uffff\1\30\1\6\2\uffff\1\12\1\1\1\uffff"+
-        "\1\11\2\uffff\1\31";
+        "\1\25\1\26\1\27\2\uffff\1\34\1\35\1\uffff\1\37\1\40\1\uffff\1\42"+
+        "\1\36\3\uffff\1\43\1\2\1\4\1\5\1\44\1\45\1\46\1\7\22\uffff\1\41"+
+        "\15\uffff\1\10\4\uffff\1\32\1\33\6\uffff\1\13\1\uffff\1\30\1\6\2"+
+        "\uffff\1\12\1\1\1\uffff\1\11\2\uffff\1\31";
     static final String DFA16_specialS =
-        "\32\uffff\1\0\107\uffff}>";
+        "\34\uffff\1\0\107\uffff}>";
     static final String[] DFA16_transitionS = {
-            "\2\31\2\uffff\1\31\22\uffff\1\31\1\uffff\1\32\4\uffff\1\33\1"+
-            "\13\1\14\1\23\1\24\2\uffff\1\11\1\2\12\30\1\12\1\3\1\15\4\uffff"+
-            "\32\27\1\21\1\uffff\1\16\1\uffff\1\34\1\uffff\2\27\1\5\3\27"+
-            "\1\1\1\26\1\4\2\27\1\10\3\27\1\6\1\27\1\25\2\27\1\7\5\27\1\22"+
-            "\1\20\1\17",
-            "\1\40\1\uffff\12\37\62\uffff\1\36\5\uffff\1\35",
-            "\1\45\4\uffff\1\44\61\uffff\1\46\1\41\1\uffff\1\42\10\uffff"+
-            "\1\43\1\uffff\1\46\4\uffff\1\46",
-            "",
-            "\1\40\1\uffff\12\37\63\uffff\1\50",
-            "\1\40\1\uffff\12\37\65\uffff\1\51",
-            "\1\40\1\uffff\12\37\47\uffff\1\52",
-            "\1\40\1\uffff\12\37\66\uffff\1\53",
-            "\1\40\1\uffff\12\37\47\uffff\1\54",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\40\1\uffff\12\37\73\uffff\1\55",
-            "\1\40\1\uffff\12\37\65\uffff\1\56",
-            "\1\40\1\uffff\12\37",
-            "",
-            "",
-            "\42\33\1\57\uffdd\33",
-            "",
-            "",
-            "\1\60",
-            "\1\61",
-            "\1\40\26\uffff\1\40\15\uffff\1\40\1\uffff\12\37",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
+            "\2\33\2\uffff\1\33\22\uffff\1\33\1\uffff\1\34\1\27\3\uffff\1"+
+            "\35\1\13\1\14\1\23\1\24\1\30\1\uffff\1\11\1\2\12\32\1\12\1\3"+
+            "\1\15\4\uffff\32\31\1\21\1\uffff\1\16\1\uffff\1\36\1\uffff\2"+
+            "\31\1\5\3\31\1\1\1\26\1\4\2\31\1\10\3\31\1\6\1\31\1\25\2\31"+
+            "\1\7\5\31\1\22\1\20\1\17",
+            "\1\42\1\uffff\12\41\62\uffff\1\40\5\uffff\1\37",
+            "\1\47\4\uffff\1\46\61\uffff\1\50\1\43\1\uffff\1\44\10\uffff"+
+            "\1\45\1\uffff\1\50\4\uffff\1\50",
+            "",
+            "\1\42\1\uffff\12\41\63\uffff\1\52",
+            "\1\42\1\uffff\12\41\65\uffff\1\53",
+            "\1\42\1\uffff\12\41\47\uffff\1\54",
+            "\1\42\1\uffff\12\41\66\uffff\1\55",
+            "\1\42\1\uffff\12\41\47\uffff\1\56",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\42\1\uffff\12\41\73\uffff\1\57",
+            "\1\42\1\uffff\12\41\65\uffff\1\60",
+            "",
+            "",
+            "\1\42\1\uffff\12\41",
+            "",
+            "",
+            "\42\35\1\61\uffdd\35",
             "",
             "",
             "\1\62",
-            "\1\64\4\uffff\1\63",
-            "\1\65",
-            "\1\66",
+            "\1\63",
+            "\1\42\26\uffff\1\42\15\uffff\1\42\1\uffff\12\41",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\64",
+            "\1\66\4\uffff\1\65",
             "\1\67",
             "\1\70",
@@ -1738,43 +1795,45 @@
             "\1\103",
             "\1\104",
-            "",
             "\1\105",
             "\1\106",
+            "",
             "\1\107",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\110",
             "\1\111",
-            "\1\112",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             "\1\113",
             "\1\114",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "\1\117",
-            "\1\120",
+            "\1\115",
+            "\1\116",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             "\1\121",
-            "",
             "\1\122",
             "\1\123",
+            "",
             "\1\124",
             "\1\125",
-            "",
-            "",
             "\1\126",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "\1\131",
-            "\1\132",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
-            "",
-            "",
-            "\1\135",
-            "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34",
+            "\1\127",
+            "",
+            "",
+            "\1\130",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "\1\133",
+            "\1\134",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
             "",
             "",
             "\1\137",
-            "",
-            "\1\140",
+            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36",
+            "",
+            "",
             "\1\141",
+            "",
+            "\1\142",
+            "\1\143",
             ""
     };
@@ -1810,5 +1869,5 @@
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC );";
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
@@ -1817,10 +1876,10 @@
             switch ( s ) {
                     case 0 : 
-                        int LA16_26 = input.LA(1);
+                        int LA16_28 = input.LA(1);
 
                         s = -1;
-                        if ( (LA16_26=='\"') ) {s = 47;}
-
-                        else if ( ((LA16_26>='\u0000' && LA16_26<='!')||(LA16_26>='#' && LA16_26<='\uFFFF')) ) {s = 27;}
+                        if ( (LA16_28=='\"') ) {s = 49;}
+
+                        else if ( ((LA16_28>='\u0000' && LA16_28<='!')||(LA16_28>='#' && LA16_28<='\uFFFF')) ) {s = 29;}
 
                         if ( s>=0 ) return s;
