Changeset 100 in default for v2/trunk/de.ugoe.cs.swe.bnftools.ebnf


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

+ generated resources

Location:
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf
Files:
2 added
19 edited

Legend:

Unmodified
Added
Removed
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/model/generated/Ebnf.ecore

    r95 r100  
    2222        containment="true"/> 
    2323    <eStructuralFeatures xsi:type="ecore:EReference" name="rule" eType="#//Rule" containment="true"/> 
     24    <eStructuralFeatures xsi:type="ecore:EReference" name="comment" eType="#//Comment" 
     25        containment="true"/> 
    2426  </eClassifiers> 
    2527  <eClassifiers xsi:type="ecore:EClass" name="DeltaEntry"> 
     
    3840  <eClassifiers xsi:type="ecore:EClass" name="SectionHeading"> 
    3941    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sectionHeader" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> 
     42  </eClassifiers> 
     43  <eClassifiers xsi:type="ecore:EClass" name="Comment"> 
     44    <eStructuralFeatures xsi:type="ecore:EAttribute" name="content" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> 
    4045  </eClassifiers> 
    4146  <eClassifiers xsi:type="ecore:EClass" name="Import"> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/model/generated/Ebnf.genmodel

    r95 r100  
    2222      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Ebnf.ecore#//BnfEntry/sectionheader"/> 
    2323      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Ebnf.ecore#//BnfEntry/rule"/> 
     24      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Ebnf.ecore#//BnfEntry/comment"/> 
    2425    </genClasses> 
    2526    <genClasses ecoreClass="Ebnf.ecore#//DeltaEntry"> 
     
    3435    <genClasses ecoreClass="Ebnf.ecore#//SectionHeading"> 
    3536      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Ebnf.ecore#//SectionHeading/sectionHeader"/> 
     37    </genClasses> 
     38    <genClasses ecoreClass="Ebnf.ecore#//Comment"> 
     39      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Ebnf.ecore#//Comment/content"/> 
    3640    </genClasses> 
    3741    <genClasses ecoreClass="Ebnf.ecore#//Import"> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/BnfEntry.java

    r88 r100  
    1515 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getSectionheader <em>Sectionheader</em>}</li> 
    1616 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getRule <em>Rule</em>}</li> 
     17 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getComment <em>Comment</em>}</li> 
    1718 * </ul> 
    1819 * </p> 
     
    7677  void setRule(Rule value); 
    7778 
     79  /** 
     80   * Returns the value of the '<em><b>Comment</b></em>' containment reference. 
     81   * <!-- begin-user-doc --> 
     82   * <p> 
     83   * If the meaning of the '<em>Comment</em>' containment reference isn't clear, 
     84   * there really should be more of a description here... 
     85   * </p> 
     86   * <!-- end-user-doc --> 
     87   * @return the value of the '<em>Comment</em>' containment reference. 
     88   * @see #setComment(Comment) 
     89   * @see de.ugoe.cs.swe.bnftools.ebnf.EbnfPackage#getBnfEntry_Comment() 
     90   * @model containment="true" 
     91   * @generated 
     92   */ 
     93  Comment getComment(); 
     94 
     95  /** 
     96   * Sets the value of the '{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getComment <em>Comment</em>}' containment reference. 
     97   * <!-- begin-user-doc --> 
     98   * <!-- end-user-doc --> 
     99   * @param value the new value of the '<em>Comment</em>' containment reference. 
     100   * @see #getComment() 
     101   * @generated 
     102   */ 
     103  void setComment(Comment value); 
     104 
    78105} // BnfEntry 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/EbnfFactory.java

    r95 r100  
    7878 
    7979  /** 
     80   * Returns a new object of class '<em>Comment</em>'. 
     81   * <!-- begin-user-doc --> 
     82   * <!-- end-user-doc --> 
     83   * @return a new object of class '<em>Comment</em>'. 
     84   * @generated 
     85   */ 
     86  Comment createComment(); 
     87 
     88  /** 
    8089   * Returns a new object of class '<em>Import</em>'. 
    8190   * <!-- begin-user-doc --> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/EbnfPackage.java

    r95 r100  
    187187 
    188188  /** 
     189   * The feature id for the '<em><b>Comment</b></em>' containment reference. 
     190   * <!-- begin-user-doc --> 
     191   * <!-- end-user-doc --> 
     192   * @generated 
     193   * @ordered 
     194   */ 
     195  int BNF_ENTRY__COMMENT = 2; 
     196 
     197  /** 
    189198   * The number of structural features of the '<em>Bnf Entry</em>' class. 
    190199   * <!-- begin-user-doc --> 
     
    193202   * @ordered 
    194203   */ 
    195   int BNF_ENTRY_FEATURE_COUNT = 2; 
     204  int BNF_ENTRY_FEATURE_COUNT = 3; 
    196205 
    197206  /** 
     
    307316 
    308317  /** 
     318   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.CommentImpl <em>Comment</em>}' class. 
     319   * <!-- begin-user-doc --> 
     320   * <!-- end-user-doc --> 
     321   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.CommentImpl 
     322   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getComment() 
     323   * @generated 
     324   */ 
     325  int COMMENT = 6; 
     326 
     327  /** 
     328   * The feature id for the '<em><b>Content</b></em>' attribute. 
     329   * <!-- begin-user-doc --> 
     330   * <!-- end-user-doc --> 
     331   * @generated 
     332   * @ordered 
     333   */ 
     334  int COMMENT__CONTENT = 0; 
     335 
     336  /** 
     337   * The number of structural features of the '<em>Comment</em>' class. 
     338   * <!-- begin-user-doc --> 
     339   * <!-- end-user-doc --> 
     340   * @generated 
     341   * @ordered 
     342   */ 
     343  int COMMENT_FEATURE_COUNT = 1; 
     344 
     345  /** 
    309346   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ImportImpl <em>Import</em>}' class. 
    310347   * <!-- begin-user-doc --> 
     
    314351   * @generated 
    315352   */ 
    316   int IMPORT = 6; 
     353  int IMPORT = 7; 
    317354 
    318355  /** 
     
    360397   * @generated 
    361398   */ 
    362   int RULE = 7; 
     399  int RULE = 8; 
    363400 
    364401  /** 
     
    415452   * @generated 
    416453   */ 
    417   int EXT_RULE = 8; 
     454  int EXT_RULE = 9; 
    418455 
    419456  /** 
     
    479516   * @generated 
    480517   */ 
    481   int MERGE_RULE = 9; 
     518  int MERGE_RULE = 10; 
    482519 
    483520  /** 
     
    507544   * @generated 
    508545   */ 
    509   int GLOBAL_COMBINATOR = 10; 
     546  int GLOBAL_COMBINATOR = 11; 
    510547 
    511548  /** 
     
    535572   * @generated 
    536573   */ 
    537   int RULE_COMBINATOR = 11; 
     574  int RULE_COMBINATOR = 12; 
    538575 
    539576  /** 
     
    581618   * @generated 
    582619   */ 
    583   int HOOK_COMBINATOR = 12; 
     620  int HOOK_COMBINATOR = 13; 
    584621 
    585622  /** 
     
    636673   * @generated 
    637674   */ 
    638   int DEFINITION_LIST = 13; 
     675  int DEFINITION_LIST = 14; 
    639676 
    640677  /** 
     
    664701   * @generated 
    665702   */ 
    666   int SINGLE_DEFINITION = 14; 
     703  int SINGLE_DEFINITION = 15; 
    667704 
    668705  /** 
     
    692729   * @generated 
    693730   */ 
    694   int TERM = 15; 
     731  int TERM = 16; 
    695732 
    696733  /** 
     
    747784   * @generated 
    748785   */ 
    749   int ATOM = 16; 
     786  int ATOM = 17; 
    750787 
    751788  /** 
     
    784821   * @generated 
    785822   */ 
    786   int RULE_REFERENCE = 17; 
     823  int RULE_REFERENCE = 18; 
    787824 
    788825  /** 
     
    812849   * @generated 
    813850   */ 
    814   int STRING_RULE = 18; 
     851  int STRING_RULE = 19; 
    815852 
    816853  /** 
     
    849886   * @generated 
    850887   */ 
    851   int GROUPED_SEQUENCE = 19; 
     888  int GROUPED_SEQUENCE = 20; 
    852889 
    853890  /** 
     
    877914   * @generated 
    878915   */ 
    879   int OPTIONAL_SEQUENCE = 20; 
     916  int OPTIONAL_SEQUENCE = 21; 
    880917 
    881918  /** 
     
    905942   * @generated 
    906943   */ 
    907   int REPEATED_SEQUENCE = 21; 
     944  int REPEATED_SEQUENCE = 22; 
    908945 
    909946  /** 
     
    951988   * @generated 
    952989   */ 
    953   int REPEAT_RANGE = 22; 
     990  int REPEAT_RANGE = 23; 
    954991 
    955992  /** 
     
    11111148 
    11121149  /** 
     1150   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getComment <em>Comment</em>}'. 
     1151   * <!-- begin-user-doc --> 
     1152   * <!-- end-user-doc --> 
     1153   * @return the meta object for the containment reference '<em>Comment</em>'. 
     1154   * @see de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getComment() 
     1155   * @see #getBnfEntry() 
     1156   * @generated 
     1157   */ 
     1158  EReference getBnfEntry_Comment(); 
     1159 
     1160  /** 
    11131161   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry <em>Delta Entry</em>}'. 
    11141162   * <!-- begin-user-doc --> 
     
    12051253   */ 
    12061254  EAttribute getSectionHeading_SectionHeader(); 
     1255 
     1256  /** 
     1257   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.Comment <em>Comment</em>}'. 
     1258   * <!-- begin-user-doc --> 
     1259   * <!-- end-user-doc --> 
     1260   * @return the meta object for class '<em>Comment</em>'. 
     1261   * @see de.ugoe.cs.swe.bnftools.ebnf.Comment 
     1262   * @generated 
     1263   */ 
     1264  EClass getComment(); 
     1265 
     1266  /** 
     1267   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.Comment#getContent <em>Content</em>}'. 
     1268   * <!-- begin-user-doc --> 
     1269   * <!-- end-user-doc --> 
     1270   * @return the meta object for the attribute '<em>Content</em>'. 
     1271   * @see de.ugoe.cs.swe.bnftools.ebnf.Comment#getContent() 
     1272   * @see #getComment() 
     1273   * @generated 
     1274   */ 
     1275  EAttribute getComment_Content(); 
    12071276 
    12081277  /** 
     
    18981967 
    18991968    /** 
     1969     * The meta object literal for the '<em><b>Comment</b></em>' containment reference feature. 
     1970     * <!-- begin-user-doc --> 
     1971     * <!-- end-user-doc --> 
     1972     * @generated 
     1973     */ 
     1974    EReference BNF_ENTRY__COMMENT = eINSTANCE.getBnfEntry_Comment(); 
     1975 
     1976    /** 
    19001977     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.DeltaEntryImpl <em>Delta Entry</em>}' class. 
    19011978     * <!-- begin-user-doc --> 
     
    19762053 
    19772054    /** 
     2055     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.CommentImpl <em>Comment</em>}' class. 
     2056     * <!-- begin-user-doc --> 
     2057     * <!-- end-user-doc --> 
     2058     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.CommentImpl 
     2059     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getComment() 
     2060     * @generated 
     2061     */ 
     2062    EClass COMMENT = eINSTANCE.getComment(); 
     2063 
     2064    /** 
     2065     * The meta object literal for the '<em><b>Content</b></em>' attribute feature. 
     2066     * <!-- begin-user-doc --> 
     2067     * <!-- end-user-doc --> 
     2068     * @generated 
     2069     */ 
     2070    EAttribute COMMENT__CONTENT = eINSTANCE.getComment_Content(); 
     2071 
     2072    /** 
    19782073     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ImportImpl <em>Import</em>}' class. 
    19792074     * <!-- begin-user-doc --> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/impl/BnfEntryImpl.java

    r88 r100  
    44 
    55import de.ugoe.cs.swe.bnftools.ebnf.BnfEntry; 
     6import de.ugoe.cs.swe.bnftools.ebnf.Comment; 
    67import de.ugoe.cs.swe.bnftools.ebnf.EbnfPackage; 
    78import de.ugoe.cs.swe.bnftools.ebnf.Rule; 
     
    2627 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.impl.BnfEntryImpl#getSectionheader <em>Sectionheader</em>}</li> 
    2728 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.impl.BnfEntryImpl#getRule <em>Rule</em>}</li> 
     29 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.impl.BnfEntryImpl#getComment <em>Comment</em>}</li> 
    2830 * </ul> 
    2931 * </p> 
     
    5456 
    5557  /** 
     58   * The cached value of the '{@link #getComment() <em>Comment</em>}' containment reference. 
     59   * <!-- begin-user-doc --> 
     60   * <!-- end-user-doc --> 
     61   * @see #getComment() 
     62   * @generated 
     63   * @ordered 
     64   */ 
     65  protected Comment comment; 
     66 
     67  /** 
    5668   * <!-- begin-user-doc --> 
    5769   * <!-- end-user-doc --> 
     
    175187   * @generated 
    176188   */ 
     189  public Comment getComment() 
     190  { 
     191    return comment; 
     192  } 
     193 
     194  /** 
     195   * <!-- begin-user-doc --> 
     196   * <!-- end-user-doc --> 
     197   * @generated 
     198   */ 
     199  public NotificationChain basicSetComment(Comment newComment, NotificationChain msgs) 
     200  { 
     201    Comment oldComment = comment; 
     202    comment = newComment; 
     203    if (eNotificationRequired()) 
     204    { 
     205      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EbnfPackage.BNF_ENTRY__COMMENT, oldComment, newComment); 
     206      if (msgs == null) msgs = notification; else msgs.add(notification); 
     207    } 
     208    return msgs; 
     209  } 
     210 
     211  /** 
     212   * <!-- begin-user-doc --> 
     213   * <!-- end-user-doc --> 
     214   * @generated 
     215   */ 
     216  public void setComment(Comment newComment) 
     217  { 
     218    if (newComment != comment) 
     219    { 
     220      NotificationChain msgs = null; 
     221      if (comment != null) 
     222        msgs = ((InternalEObject)comment).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EbnfPackage.BNF_ENTRY__COMMENT, null, msgs); 
     223      if (newComment != null) 
     224        msgs = ((InternalEObject)newComment).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EbnfPackage.BNF_ENTRY__COMMENT, null, msgs); 
     225      msgs = basicSetComment(newComment, msgs); 
     226      if (msgs != null) msgs.dispatch(); 
     227    } 
     228    else if (eNotificationRequired()) 
     229      eNotify(new ENotificationImpl(this, Notification.SET, EbnfPackage.BNF_ENTRY__COMMENT, newComment, newComment)); 
     230  } 
     231 
     232  /** 
     233   * <!-- begin-user-doc --> 
     234   * <!-- end-user-doc --> 
     235   * @generated 
     236   */ 
    177237  @Override 
    178238  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) 
     
    184244      case EbnfPackage.BNF_ENTRY__RULE: 
    185245        return basicSetRule(null, msgs); 
     246      case EbnfPackage.BNF_ENTRY__COMMENT: 
     247        return basicSetComment(null, msgs); 
    186248    } 
    187249    return super.eInverseRemove(otherEnd, featureID, msgs); 
     
    202264      case EbnfPackage.BNF_ENTRY__RULE: 
    203265        return getRule(); 
     266      case EbnfPackage.BNF_ENTRY__COMMENT: 
     267        return getComment(); 
    204268    } 
    205269    return super.eGet(featureID, resolve, coreType); 
     
    222286        setRule((Rule)newValue); 
    223287        return; 
     288      case EbnfPackage.BNF_ENTRY__COMMENT: 
     289        setComment((Comment)newValue); 
     290        return; 
    224291    } 
    225292    super.eSet(featureID, newValue); 
     
    242309        setRule((Rule)null); 
    243310        return; 
     311      case EbnfPackage.BNF_ENTRY__COMMENT: 
     312        setComment((Comment)null); 
     313        return; 
    244314    } 
    245315    super.eUnset(featureID); 
     
    260330      case EbnfPackage.BNF_ENTRY__RULE: 
    261331        return rule != null; 
     332      case EbnfPackage.BNF_ENTRY__COMMENT: 
     333        return comment != null; 
    262334    } 
    263335    return super.eIsSet(featureID); 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/impl/EbnfFactoryImpl.java

    r95 r100  
    7171      case EbnfPackage.MERGE_ENTRY: return createMergeEntry(); 
    7272      case EbnfPackage.SECTION_HEADING: return createSectionHeading(); 
     73      case EbnfPackage.COMMENT: return createComment(); 
    7374      case EbnfPackage.IMPORT: return createImport(); 
    7475      case EbnfPackage.RULE: return createRule(); 
     
    164165   * @generated 
    165166   */ 
     167  public Comment createComment() 
     168  { 
     169    CommentImpl comment = new CommentImpl(); 
     170    return comment; 
     171  } 
     172 
     173  /** 
     174   * <!-- begin-user-doc --> 
     175   * <!-- end-user-doc --> 
     176   * @generated 
     177   */ 
    166178  public Import createImport() 
    167179  { 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/impl/EbnfPackageImpl.java

    r95 r100  
    55import de.ugoe.cs.swe.bnftools.ebnf.Atom; 
    66import de.ugoe.cs.swe.bnftools.ebnf.BnfEntry; 
     7import de.ugoe.cs.swe.bnftools.ebnf.Comment; 
    78import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList; 
    89import de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry; 
     
    9192   * @generated 
    9293   */ 
     94  private EClass commentEClass = null; 
     95 
     96  /** 
     97   * <!-- begin-user-doc --> 
     98   * <!-- end-user-doc --> 
     99   * @generated 
     100   */ 
    93101  private EClass importEClass = null; 
    94102 
     
    393401   * @generated 
    394402   */ 
     403  public EReference getBnfEntry_Comment() 
     404  { 
     405    return (EReference)bnfEntryEClass.getEStructuralFeatures().get(2); 
     406  } 
     407 
     408  /** 
     409   * <!-- begin-user-doc --> 
     410   * <!-- end-user-doc --> 
     411   * @generated 
     412   */ 
    395413  public EClass getDeltaEntry() 
    396414  { 
     
    476494  { 
    477495    return (EAttribute)sectionHeadingEClass.getEStructuralFeatures().get(0); 
     496  } 
     497 
     498  /** 
     499   * <!-- begin-user-doc --> 
     500   * <!-- end-user-doc --> 
     501   * @generated 
     502   */ 
     503  public EClass getComment() 
     504  { 
     505    return commentEClass; 
     506  } 
     507 
     508  /** 
     509   * <!-- begin-user-doc --> 
     510   * <!-- end-user-doc --> 
     511   * @generated 
     512   */ 
     513  public EAttribute getComment_Content() 
     514  { 
     515    return (EAttribute)commentEClass.getEStructuralFeatures().get(0); 
    478516  } 
    479517 
     
    10521090    createEReference(bnfEntryEClass, BNF_ENTRY__SECTIONHEADER); 
    10531091    createEReference(bnfEntryEClass, BNF_ENTRY__RULE); 
     1092    createEReference(bnfEntryEClass, BNF_ENTRY__COMMENT); 
    10541093 
    10551094    deltaEntryEClass = createEClass(DELTA_ENTRY); 
     
    10641103    sectionHeadingEClass = createEClass(SECTION_HEADING); 
    10651104    createEAttribute(sectionHeadingEClass, SECTION_HEADING__SECTION_HEADER); 
     1105 
     1106    commentEClass = createEClass(COMMENT); 
     1107    createEAttribute(commentEClass, COMMENT__CONTENT); 
    10661108 
    10671109    importEClass = createEClass(IMPORT); 
     
    11841226    initEReference(getBnfEntry_Sectionheader(), this.getSectionHeading(), null, "sectionheader", null, 0, 1, BnfEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
    11851227    initEReference(getBnfEntry_Rule(), this.getRule(), null, "rule", null, 0, 1, BnfEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
     1228    initEReference(getBnfEntry_Comment(), this.getComment(), null, "comment", null, 0, 1, BnfEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
    11861229 
    11871230    initEClass(deltaEntryEClass, DeltaEntry.class, "DeltaEntry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 
     
    11961239    initEClass(sectionHeadingEClass, SectionHeading.class, "SectionHeading", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 
    11971240    initEAttribute(getSectionHeading_SectionHeader(), ecorePackage.getEString(), "sectionHeader", null, 0, 1, SectionHeading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
     1241 
     1242    initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 
     1243    initEAttribute(getComment_Content(), ecorePackage.getEString(), "content", null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
    11981244 
    11991245    initEClass(importEClass, Import.class, "Import", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/util/EbnfAdapterFactory.java

    r95 r100  
    106106      } 
    107107      @Override 
     108      public Adapter caseComment(Comment object) 
     109      { 
     110        return createCommentAdapter(); 
     111      } 
     112      @Override 
    108113      public Adapter caseImport(Import object) 
    109114      { 
     
    303308 
    304309  /** 
     310   * Creates a new adapter for an object of class '{@link de.ugoe.cs.swe.bnftools.ebnf.Comment <em>Comment</em>}'. 
     311   * <!-- begin-user-doc --> 
     312   * This default implementation returns null so that we can easily ignore cases; 
     313   * it's useful to ignore a case when inheritance will catch all the cases anyway. 
     314   * <!-- end-user-doc --> 
     315   * @return the new adapter. 
     316   * @see de.ugoe.cs.swe.bnftools.ebnf.Comment 
     317   * @generated 
     318   */ 
     319  public Adapter createCommentAdapter() 
     320  { 
     321    return null; 
     322  } 
     323 
     324  /** 
    305325   * Creates a new adapter for an object of class '{@link de.ugoe.cs.swe.bnftools.ebnf.Import <em>Import</em>}'. 
    306326   * <!-- begin-user-doc --> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/util/EbnfSwitch.java

    r95 r100  
    115115        return result; 
    116116      } 
     117      case EbnfPackage.COMMENT: 
     118      { 
     119        Comment comment = (Comment)theEObject; 
     120        T result = caseComment(comment); 
     121        if (result == null) result = defaultCase(theEObject); 
     122        return result; 
     123      } 
    117124      case EbnfPackage.IMPORT: 
    118125      { 
     
    338345 
    339346  /** 
     347   * Returns the result of interpreting the object as an instance of '<em>Comment</em>'. 
     348   * <!-- begin-user-doc --> 
     349   * This implementation returns null; 
     350   * returning a non-null result will terminate the switch. 
     351   * <!-- end-user-doc --> 
     352   * @param object the target of the switch. 
     353   * @return the result of interpreting the object as an instance of '<em>Comment</em>'. 
     354   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 
     355   * @generated 
     356   */ 
     357  public T caseComment(Comment object) 
     358  { 
     359    return null; 
     360  } 
     361 
     362  /** 
    340363   * Returns the result of interpreting the object as an instance of '<em>Import</em>'. 
    341364   * <!-- begin-user-doc --> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/EbnfParser.java

    r61 r100  
    1616        @Override 
    1717        protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { 
    18                 tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT"); 
     18                tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_SL_COMMENT"); 
    1919        } 
    2020         
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g

    r95 r100  
    371371 
    372372) 
     373) 
     374    |( 
     375( 
     376                {  
     377                newCompositeNode(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0());  
     378            } 
     379                lv_comment_2_0=ruleComment              { 
     380                if ($current==null) { 
     381                    $current = createModelElementForParent(grammarAccess.getBnfEntryRule()); 
     382                } 
     383                set( 
     384                        $current,  
     385                        "comment", 
     386                        lv_comment_2_0,  
     387                        "Comment"); 
     388                afterParserOrEnumRuleCall(); 
     389            } 
     390 
     391) 
    373392)) 
    374393; 
     
    551570                        lv_sectionHeader_1_0,  
    552571                        "SECTIONHEADER"); 
     572            } 
     573 
     574) 
     575)) 
     576; 
     577 
     578 
     579 
     580 
     581 
     582// Entry rule entryRuleComment 
     583entryRuleComment returns [EObject current=null]  
     584        : 
     585        { newCompositeNode(grammarAccess.getCommentRule()); } 
     586         iv_ruleComment=ruleComment  
     587         { $current=$iv_ruleComment.current; }  
     588         EOF  
     589; 
     590 
     591// Rule Comment 
     592ruleComment returns [EObject current=null]  
     593    @init { enterRule();  
     594    } 
     595    @after { leaveRule(); }: 
     596(( 
     597        {  
     598          /* */  
     599        } 
     600    { 
     601        $current = forceCreateModelElement( 
     602            grammarAccess.getCommentAccess().getCommentAction_0(), 
     603            $current); 
     604    } 
     605)( 
     606( 
     607                lv_content_1_0=RULE_ML_COMMENT 
     608                { 
     609                        newLeafNode(lv_content_1_0, grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0());  
     610                } 
     611                { 
     612                if ($current==null) { 
     613                    $current = createModelElement(grammarAccess.getCommentRule()); 
     614                } 
     615                setWithLastConsumed( 
     616                        $current,  
     617                        "content", 
     618                        lv_content_1_0,  
     619                        "ML_COMMENT"); 
    553620            } 
    554621 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.tokens

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

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

    r95 r100  
    2323public class InternalEbnfParser extends AbstractInternalAntlrParser { 
    2424    public static final String[] tokenNames = new String[] { 
    25         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_SECTIONHEADER", "RULE_STRING", "RULE_INT", "RULE_LOGIC", "RULE_COLON", "RULE_WS", "RULE_SL_COMMENT", "RULE_ML_COMMENT", "'grammar'", "'/bnf'", "';'", "'/delta'", "'/merge'", "'import'", "'/'", "'core'", "'package'", "'update'", "'label:'", "'.'", "'::='", "'('", "')'", "'<-'", "']'", "'}'", "'|'", "'['", "'{'", "'*'", "'+'", "'global'", "'combinator:'", "'rule'", "'hook'", "'#'", "','" 
     25        "<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'", "'/bnf'", "';'", "'/delta'", "'/merge'", "'import'", "'/'", "'core'", "'package'", "'update'", "'label:'", "'.'", "'::='", "'('", "')'", "'<-'", "']'", "'}'", "'|'", "'['", "'{'", "'*'", "'+'", "'global'", "'combinator:'", "'rule'", "'hook'", "'#'", "','" 
    2626    }; 
    2727    public static final int RULE_ID=4; 
     
    3939    public static final int T__21=21; 
    4040    public static final int T__20=20; 
    41     public static final int RULE_SL_COMMENT=11; 
     41    public static final int RULE_SL_COMMENT=12; 
    4242    public static final int EOF=-1; 
    43     public static final int RULE_ML_COMMENT=12; 
     43    public static final int RULE_ML_COMMENT=6; 
    4444    public static final int T__30=30; 
    4545    public static final int T__19=19; 
    46     public static final int RULE_COLON=9; 
     46    public static final int RULE_COLON=10; 
    4747    public static final int T__31=31; 
    48     public static final int RULE_STRING=6; 
     48    public static final int RULE_STRING=7; 
    4949    public static final int T__32=32; 
    5050    public static final int T__33=33; 
     
    5656    public static final int T__36=36; 
    5757    public static final int T__17=17; 
    58     public static final int RULE_LOGIC=8; 
     58    public static final int RULE_LOGIC=9; 
    5959    public static final int T__37=37; 
    6060    public static final int T__38=38; 
     
    6262    public static final int T__14=14; 
    6363    public static final int T__13=13; 
    64     public static final int RULE_INT=7; 
    65     public static final int RULE_WS=10; 
     64    public static final int RULE_INT=8; 
     65    public static final int RULE_WS=11; 
    6666 
    6767    // delegates 
     
    7474        public InternalEbnfParser(TokenStream input, RecognizerSharedState state) { 
    7575            super(input, state); 
    76             this.state.ruleMemo = new HashMap[99+1]; 
     76            this.state.ruleMemo = new HashMap[102+1]; 
    7777              
    7878              
     
    353353                        int LA3_0 = input.LA(1); 
    354354 
    355                         if ( ((LA3_0>=RULE_ID && LA3_0<=RULE_SECTIONHEADER)||LA3_0==RULE_INT) ) { 
     355                        if ( ((LA3_0>=RULE_ID && LA3_0<=RULE_ML_COMMENT)||LA3_0==RULE_INT) ) { 
    356356                            alt3=1; 
    357357                        } 
     
    902902 
    903903    // $ANTLR start "ruleBnfEntry" 
    904     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:332:1: ruleBnfEntry returns [EObject current=null] : ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) ) ; 
     904    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:332:1: ruleBnfEntry returns [EObject current=null] : ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) | ( (lv_comment_2_0= ruleComment ) ) ) ; 
    905905    public final EObject ruleBnfEntry() throws RecognitionException { 
    906906        EObject current = null; 
     
    910910        EObject lv_rule_1_0 = null; 
    911911 
     912        EObject lv_comment_2_0 = null; 
     913 
    912914 
    913915         enterRule();  
     
    915917        try { 
    916918            if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return current; } 
    917             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:335:28: ( ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) ) ) 
    918             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:336:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) ) 
    919             { 
    920             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:336:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) ) 
    921             int alt10=2; 
    922             int LA10_0 = input.LA(1); 
    923  
    924             if ( (LA10_0==RULE_SECTIONHEADER) ) { 
     919            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:335:28: ( ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) | ( (lv_comment_2_0= ruleComment ) ) ) ) 
     920            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:336:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) | ( (lv_comment_2_0= ruleComment ) ) ) 
     921            { 
     922            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:336:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) | ( (lv_comment_2_0= ruleComment ) ) ) 
     923            int alt10=3; 
     924            switch ( input.LA(1) ) { 
     925            case RULE_SECTIONHEADER: 
     926                { 
    925927                alt10=1; 
    926             } 
    927             else if ( (LA10_0==RULE_ID||LA10_0==RULE_INT) ) { 
     928                } 
     929                break; 
     930            case RULE_ID: 
     931            case RULE_INT: 
     932                { 
    928933                alt10=2; 
    929             } 
    930             else { 
     934                } 
     935                break; 
     936            case RULE_ML_COMMENT: 
     937                { 
     938                alt10=3; 
     939                } 
     940                break; 
     941            default: 
    931942                if (state.backtracking>0) {state.failed=true; return current;} 
    932943                NoViableAltException nvae = 
     
    935946                throw nvae; 
    936947            } 
     948 
    937949            switch (alt10) { 
    938950                case 1 : 
     
    10181030                    } 
    10191031                    break; 
     1032                case 3 : 
     1033                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:374:6: ( (lv_comment_2_0= ruleComment ) ) 
     1034                    { 
     1035                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:374:6: ( (lv_comment_2_0= ruleComment ) ) 
     1036                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:375:1: (lv_comment_2_0= ruleComment ) 
     1037                    { 
     1038                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:375:1: (lv_comment_2_0= ruleComment ) 
     1039                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:376:3: lv_comment_2_0= ruleComment 
     1040                    { 
     1041                    if ( state.backtracking==0 ) { 
     1042                        
     1043                                newCompositeNode(grammarAccess.getBnfEntryAccess().getCommentCommentParserRuleCall_2_0());  
     1044                             
     1045                    } 
     1046                    pushFollow(FOLLOW_ruleComment_in_ruleBnfEntry676); 
     1047                    lv_comment_2_0=ruleComment(); 
     1048 
     1049                    state._fsp--; 
     1050                    if (state.failed) return current; 
     1051                    if ( state.backtracking==0 ) { 
     1052 
     1053                                if (current==null) { 
     1054                                    current = createModelElementForParent(grammarAccess.getBnfEntryRule()); 
     1055                                } 
     1056                                        set( 
     1057                                                current,  
     1058                                                "comment", 
     1059                                        lv_comment_2_0,  
     1060                                        "Comment"); 
     1061                                afterParserOrEnumRuleCall(); 
     1062                             
     1063                    } 
     1064 
     1065                    } 
     1066 
     1067 
     1068                    } 
     1069 
     1070 
     1071                    } 
     1072                    break; 
    10201073 
    10211074            } 
     
    10421095 
    10431096    // $ANTLR start "entryRuleDeltaEntry" 
    1044     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:381:1: entryRuleDeltaEntry returns [EObject current=null] : iv_ruleDeltaEntry= ruleDeltaEntry EOF ; 
     1097    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:400:1: entryRuleDeltaEntry returns [EObject current=null] : iv_ruleDeltaEntry= ruleDeltaEntry EOF ; 
    10451098    public final EObject entryRuleDeltaEntry() throws RecognitionException { 
    10461099        EObject current = null; 
     
    10511104        try { 
    10521105            if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return current; } 
    1053             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:382:2: (iv_ruleDeltaEntry= ruleDeltaEntry EOF ) 
    1054             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:383:2: iv_ruleDeltaEntry= ruleDeltaEntry EOF 
     1106            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:401:2: (iv_ruleDeltaEntry= ruleDeltaEntry EOF ) 
     1107            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:402:2: iv_ruleDeltaEntry= ruleDeltaEntry EOF 
    10551108            { 
    10561109            if ( state.backtracking==0 ) { 
    10571110               newCompositeNode(grammarAccess.getDeltaEntryRule());  
    10581111            } 
    1059             pushFollow(FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry685); 
     1112            pushFollow(FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry712); 
    10601113            iv_ruleDeltaEntry=ruleDeltaEntry(); 
    10611114 
     
    10651118               current =iv_ruleDeltaEntry;  
    10661119            } 
    1067             match(input,EOF,FOLLOW_EOF_in_entryRuleDeltaEntry695); if (state.failed) return current; 
     1120            match(input,EOF,FOLLOW_EOF_in_entryRuleDeltaEntry722); if (state.failed) return current; 
    10681121 
    10691122            } 
     
    10841137 
    10851138    // $ANTLR start "ruleDeltaEntry" 
    1086     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:390:1: ruleDeltaEntry returns [EObject current=null] : ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) ; 
     1139    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:409:1: ruleDeltaEntry returns [EObject current=null] : ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) ; 
    10871140    public final EObject ruleDeltaEntry() throws RecognitionException { 
    10881141        EObject current = null; 
     
    10991152        try { 
    11001153            if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return current; } 
    1101             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:393:28: ( ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) ) 
    1102             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:394:1: ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) 
    1103             { 
    1104             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:394:1: ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) 
     1154            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:412:28: ( ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) ) 
     1155            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:413:1: ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) 
     1156            { 
     1157            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:413:1: ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) 
    11051158            int alt11=3; 
    11061159            switch ( input.LA(1) ) { 
     
    11181171                            int LA11_2 = input.LA(5); 
    11191172 
    1120                             if ( (LA11_2==25) ) { 
     1173                            if ( (LA11_2==26) ) { 
     1174                                alt11=3; 
     1175                            } 
     1176                            else if ( (LA11_2==25) ) { 
    11211177                                alt11=1; 
    1122                             } 
    1123                             else if ( (LA11_2==26) ) { 
    1124                                 alt11=3; 
    11251178                            } 
    11261179                            else { 
     
    11541207                        int LA11_2 = input.LA(4); 
    11551208 
    1156                         if ( (LA11_2==25) ) { 
     1209                        if ( (LA11_2==26) ) { 
     1210                            alt11=3; 
     1211                        } 
     1212                        else if ( (LA11_2==25) ) { 
    11571213                            alt11=1; 
    1158                         } 
    1159                         else if ( (LA11_2==26) ) { 
    1160                             alt11=3; 
    11611214                        } 
    11621215                        else { 
     
    11891242                int LA11_2 = input.LA(2); 
    11901243 
    1191                 if ( (LA11_2==25) ) { 
     1244                if ( (LA11_2==26) ) { 
     1245                    alt11=3; 
     1246                } 
     1247                else if ( (LA11_2==25) ) { 
    11921248                    alt11=1; 
    1193                 } 
    1194                 else if ( (LA11_2==26) ) { 
    1195                     alt11=3; 
    11961249                } 
    11971250                else { 
     
    12191272            switch (alt11) { 
    12201273                case 1 : 
    1221                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:394:2: ( (lv_rule_0_0= ruleRule ) ) 
    1222                     { 
    1223                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:394:2: ( (lv_rule_0_0= ruleRule ) ) 
    1224                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:395:1: (lv_rule_0_0= ruleRule ) 
    1225                     { 
    1226                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:395:1: (lv_rule_0_0= ruleRule ) 
    1227                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:396:3: lv_rule_0_0= ruleRule 
     1274                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:413:2: ( (lv_rule_0_0= ruleRule ) ) 
     1275                    { 
     1276                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:413:2: ( (lv_rule_0_0= ruleRule ) ) 
     1277                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:414:1: (lv_rule_0_0= ruleRule ) 
     1278                    { 
     1279                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:414:1: (lv_rule_0_0= ruleRule ) 
     1280                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:415:3: lv_rule_0_0= ruleRule 
    12281281                    { 
    12291282                    if ( state.backtracking==0 ) { 
     
    12321285                             
    12331286                    } 
    1234                     pushFollow(FOLLOW_ruleRule_in_ruleDeltaEntry741); 
     1287                    pushFollow(FOLLOW_ruleRule_in_ruleDeltaEntry768); 
    12351288                    lv_rule_0_0=ruleRule(); 
    12361289 
     
    12601313                    break; 
    12611314                case 2 : 
    1262                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:413:6: ( (lv_sectionheader_1_0= ruleSectionHeading ) ) 
    1263                     { 
    1264                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:413:6: ( (lv_sectionheader_1_0= ruleSectionHeading ) ) 
    1265                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:414:1: (lv_sectionheader_1_0= ruleSectionHeading ) 
    1266                     { 
    1267                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:414:1: (lv_sectionheader_1_0= ruleSectionHeading ) 
    1268                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:415:3: lv_sectionheader_1_0= ruleSectionHeading 
     1315                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:432:6: ( (lv_sectionheader_1_0= ruleSectionHeading ) ) 
     1316                    { 
     1317                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:432:6: ( (lv_sectionheader_1_0= ruleSectionHeading ) ) 
     1318                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:433:1: (lv_sectionheader_1_0= ruleSectionHeading ) 
     1319                    { 
     1320                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:433:1: (lv_sectionheader_1_0= ruleSectionHeading ) 
     1321                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:434:3: lv_sectionheader_1_0= ruleSectionHeading 
    12691322                    { 
    12701323                    if ( state.backtracking==0 ) { 
     
    12731326                             
    12741327                    } 
    1275                     pushFollow(FOLLOW_ruleSectionHeading_in_ruleDeltaEntry768); 
     1328                    pushFollow(FOLLOW_ruleSectionHeading_in_ruleDeltaEntry795); 
    12761329                    lv_sectionheader_1_0=ruleSectionHeading(); 
    12771330 
     
    13011354                    break; 
    13021355                case 3 : 
    1303                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:432:6: ( (lv_extRule_2_0= ruleExtRule ) ) 
    1304                     { 
    1305                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:432:6: ( (lv_extRule_2_0= ruleExtRule ) ) 
    1306                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:433:1: (lv_extRule_2_0= ruleExtRule ) 
    1307                     { 
    1308                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:433:1: (lv_extRule_2_0= ruleExtRule ) 
    1309                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:434:3: lv_extRule_2_0= ruleExtRule 
     1356                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:451:6: ( (lv_extRule_2_0= ruleExtRule ) ) 
     1357                    { 
     1358                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:451:6: ( (lv_extRule_2_0= ruleExtRule ) ) 
     1359                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:452:1: (lv_extRule_2_0= ruleExtRule ) 
     1360                    { 
     1361                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:452:1: (lv_extRule_2_0= ruleExtRule ) 
     1362                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:453:3: lv_extRule_2_0= ruleExtRule 
    13101363                    { 
    13111364                    if ( state.backtracking==0 ) { 
     
    13141367                             
    13151368                    } 
    1316                     pushFollow(FOLLOW_ruleExtRule_in_ruleDeltaEntry795); 
     1369                    pushFollow(FOLLOW_ruleExtRule_in_ruleDeltaEntry822); 
    13171370                    lv_extRule_2_0=ruleExtRule(); 
    13181371 
     
    13651418 
    13661419    // $ANTLR start "entryRuleMergeEntry" 
    1367     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:458:1: entryRuleMergeEntry returns [EObject current=null] : iv_ruleMergeEntry= ruleMergeEntry EOF ; 
     1420    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:477:1: entryRuleMergeEntry returns [EObject current=null] : iv_ruleMergeEntry= ruleMergeEntry EOF ; 
    13681421    public final EObject entryRuleMergeEntry() throws RecognitionException { 
    13691422        EObject current = null; 
     
    13741427        try { 
    13751428            if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return current; } 
    1376             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:459:2: (iv_ruleMergeEntry= ruleMergeEntry EOF ) 
    1377             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:460:2: iv_ruleMergeEntry= ruleMergeEntry EOF 
     1429            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:478:2: (iv_ruleMergeEntry= ruleMergeEntry EOF ) 
     1430            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:479:2: iv_ruleMergeEntry= ruleMergeEntry EOF 
    13781431            { 
    13791432            if ( state.backtracking==0 ) { 
    13801433               newCompositeNode(grammarAccess.getMergeEntryRule());  
    13811434            } 
    1382             pushFollow(FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry831); 
     1435            pushFollow(FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry858); 
    13831436            iv_ruleMergeEntry=ruleMergeEntry(); 
    13841437 
     
    13881441               current =iv_ruleMergeEntry;  
    13891442            } 
    1390             match(input,EOF,FOLLOW_EOF_in_entryRuleMergeEntry841); if (state.failed) return current; 
     1443            match(input,EOF,FOLLOW_EOF_in_entryRuleMergeEntry868); if (state.failed) return current; 
    13911444 
    13921445            } 
     
    14071460 
    14081461    // $ANTLR start "ruleMergeEntry" 
    1409     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:467:1: ruleMergeEntry returns [EObject current=null] : ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) ; 
     1462    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:486:1: ruleMergeEntry returns [EObject current=null] : ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) ; 
    14101463    public final EObject ruleMergeEntry() throws RecognitionException { 
    14111464        EObject current = null; 
     
    14201473        try { 
    14211474            if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return current; } 
    1422             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:470:28: ( ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) ) 
    1423             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:471:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) 
    1424             { 
    1425             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:471:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) 
     1475            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:489:28: ( ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) ) 
     1476            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:490:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) 
     1477            { 
     1478            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:490:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) 
    14261479            int alt12=2; 
    14271480            int LA12_0 = input.LA(1); 
     
    14421495            switch (alt12) { 
    14431496                case 1 : 
    1444                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:471:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
    1445                     { 
    1446                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:471:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
    1447                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:472:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
    1448                     { 
    1449                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:472:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
    1450                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:473:3: lv_sectionheader_0_0= ruleSectionHeading 
     1497                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:490:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
     1498                    { 
     1499                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:490:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
     1500                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:491:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
     1501                    { 
     1502                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:491:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
     1503                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:492:3: lv_sectionheader_0_0= ruleSectionHeading 
    14511504                    { 
    14521505                    if ( state.backtracking==0 ) { 
     
    14551508                             
    14561509                    } 
    1457                     pushFollow(FOLLOW_ruleSectionHeading_in_ruleMergeEntry887); 
     1510                    pushFollow(FOLLOW_ruleSectionHeading_in_ruleMergeEntry914); 
    14581511                    lv_sectionheader_0_0=ruleSectionHeading(); 
    14591512 
     
    14831536                    break; 
    14841537                case 2 : 
    1485                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:490:6: ( (lv_mergeRule_1_0= ruleMergeRule ) ) 
    1486                     { 
    1487                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:490:6: ( (lv_mergeRule_1_0= ruleMergeRule ) ) 
    1488                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:491:1: (lv_mergeRule_1_0= ruleMergeRule ) 
    1489                     { 
    1490                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:491:1: (lv_mergeRule_1_0= ruleMergeRule ) 
    1491                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:492:3: lv_mergeRule_1_0= ruleMergeRule 
     1538                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:509:6: ( (lv_mergeRule_1_0= ruleMergeRule ) ) 
     1539                    { 
     1540                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:509:6: ( (lv_mergeRule_1_0= ruleMergeRule ) ) 
     1541                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:510:1: (lv_mergeRule_1_0= ruleMergeRule ) 
     1542                    { 
     1543                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:510:1: (lv_mergeRule_1_0= ruleMergeRule ) 
     1544                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:511:3: lv_mergeRule_1_0= ruleMergeRule 
    14921545                    { 
    14931546                    if ( state.backtracking==0 ) { 
     
    14961549                             
    14971550                    } 
    1498                     pushFollow(FOLLOW_ruleMergeRule_in_ruleMergeEntry914); 
     1551                    pushFollow(FOLLOW_ruleMergeRule_in_ruleMergeEntry941); 
    14991552                    lv_mergeRule_1_0=ruleMergeRule(); 
    15001553 
     
    15471600 
    15481601    // $ANTLR start "entryRuleSectionHeading" 
    1549     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:516:1: entryRuleSectionHeading returns [EObject current=null] : iv_ruleSectionHeading= ruleSectionHeading EOF ; 
     1602    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:535:1: entryRuleSectionHeading returns [EObject current=null] : iv_ruleSectionHeading= ruleSectionHeading EOF ; 
    15501603    public final EObject entryRuleSectionHeading() throws RecognitionException { 
    15511604        EObject current = null; 
     
    15561609        try { 
    15571610            if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return current; } 
    1558             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:517:2: (iv_ruleSectionHeading= ruleSectionHeading EOF ) 
    1559             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:518:2: iv_ruleSectionHeading= ruleSectionHeading EOF 
     1611            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:536:2: (iv_ruleSectionHeading= ruleSectionHeading EOF ) 
     1612            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:537:2: iv_ruleSectionHeading= ruleSectionHeading EOF 
    15601613            { 
    15611614            if ( state.backtracking==0 ) { 
    15621615               newCompositeNode(grammarAccess.getSectionHeadingRule());  
    15631616            } 
    1564             pushFollow(FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading950); 
     1617            pushFollow(FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading977); 
    15651618            iv_ruleSectionHeading=ruleSectionHeading(); 
    15661619 
     
    15701623               current =iv_ruleSectionHeading;  
    15711624            } 
    1572             match(input,EOF,FOLLOW_EOF_in_entryRuleSectionHeading960); if (state.failed) return current; 
     1625            match(input,EOF,FOLLOW_EOF_in_entryRuleSectionHeading987); if (state.failed) return current; 
    15731626 
    15741627            } 
     
    15891642 
    15901643    // $ANTLR start "ruleSectionHeading" 
    1591     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:525:1: ruleSectionHeading returns [EObject current=null] : ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) ; 
     1644    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:544:1: ruleSectionHeading returns [EObject current=null] : ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) ; 
    15921645    public final EObject ruleSectionHeading() throws RecognitionException { 
    15931646        EObject current = null; 
     
    15991652        try { 
    16001653            if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return current; } 
    1601             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:528:28: ( ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) ) 
    1602             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:529:1: ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) 
    1603             { 
    1604             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:529:1: ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) 
    1605             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:529:2: () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) 
    1606             { 
    1607             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:529:2: () 
    1608             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:530:2:  
     1654            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:547:28: ( ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) ) 
     1655            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:548:1: ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) 
     1656            { 
     1657            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:548:1: ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) 
     1658            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:548:2: () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) 
     1659            { 
     1660            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:548:2: () 
     1661            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:549:2:  
    16091662            { 
    16101663            if ( state.backtracking==0 ) { 
     
    16231676            } 
    16241677 
    1625             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:538:2: ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) 
    1626             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:539:1: (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) 
    1627             { 
    1628             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:539:1: (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) 
    1629             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:540:3: lv_sectionHeader_1_0= RULE_SECTIONHEADER 
    1630             { 
    1631             lv_sectionHeader_1_0=(Token)match(input,RULE_SECTIONHEADER,FOLLOW_RULE_SECTIONHEADER_in_ruleSectionHeading1014); if (state.failed) return current; 
     1678            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:557:2: ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) 
     1679            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:558:1: (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) 
     1680            { 
     1681            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:558:1: (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) 
     1682            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:559:3: lv_sectionHeader_1_0= RULE_SECTIONHEADER 
     1683            { 
     1684            lv_sectionHeader_1_0=(Token)match(input,RULE_SECTIONHEADER,FOLLOW_RULE_SECTIONHEADER_in_ruleSectionHeading1041); if (state.failed) return current; 
    16321685            if ( state.backtracking==0 ) { 
    16331686 
     
    16761729 
    16771730 
    1678     // $ANTLR start "entryRuleImport" 
    1679     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:564:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ; 
    1680     public final EObject entryRuleImport() throws RecognitionException { 
     1731    // $ANTLR start "entryRuleComment" 
     1732    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:583:1: entryRuleComment returns [EObject current=null] : iv_ruleComment= ruleComment EOF ; 
     1733    public final EObject entryRuleComment() throws RecognitionException { 
    16811734        EObject current = null; 
    1682         int entryRuleImport_StartIndex = input.index(); 
    1683         EObject iv_ruleImport = null; 
     1735        int entryRuleComment_StartIndex = input.index(); 
     1736        EObject iv_ruleComment = null; 
    16841737 
    16851738 
    16861739        try { 
    16871740            if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return current; } 
    1688             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:565:2: (iv_ruleImport= ruleImport EOF ) 
    1689             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:566:2: iv_ruleImport= ruleImport EOF 
    1690             { 
    1691             if ( state.backtracking==0 ) { 
    1692                newCompositeNode(grammarAccess.getImportRule());  
    1693             } 
    1694             pushFollow(FOLLOW_ruleImport_in_entryRuleImport1055); 
    1695             iv_ruleImport=ruleImport(); 
     1741            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:584:2: (iv_ruleComment= ruleComment EOF ) 
     1742            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:585:2: iv_ruleComment= ruleComment EOF 
     1743            { 
     1744            if ( state.backtracking==0 ) { 
     1745               newCompositeNode(grammarAccess.getCommentRule());  
     1746            } 
     1747            pushFollow(FOLLOW_ruleComment_in_entryRuleComment1082); 
     1748            iv_ruleComment=ruleComment(); 
    16961749 
    16971750            state._fsp--; 
    16981751            if (state.failed) return current; 
    16991752            if ( state.backtracking==0 ) { 
    1700                current =iv_ruleImport;  
    1701             } 
    1702             match(input,EOF,FOLLOW_EOF_in_entryRuleImport1065); if (state.failed) return current; 
     1753               current =iv_ruleComment;  
     1754            } 
     1755            match(input,EOF,FOLLOW_EOF_in_entryRuleComment1092); if (state.failed) return current; 
    17031756 
    17041757            } 
     
    17111764            }  
    17121765        finally { 
    1713             if ( state.backtracking>0 ) { memoize(input, 13, entryRuleImport_StartIndex); } 
     1766            if ( state.backtracking>0 ) { memoize(input, 13, entryRuleComment_StartIndex); } 
     1767        } 
     1768        return current; 
     1769    } 
     1770    // $ANTLR end "entryRuleComment" 
     1771 
     1772 
     1773    // $ANTLR start "ruleComment" 
     1774    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:592:1: ruleComment returns [EObject current=null] : ( () ( (lv_content_1_0= RULE_ML_COMMENT ) ) ) ; 
     1775    public final EObject ruleComment() throws RecognitionException { 
     1776        EObject current = null; 
     1777        int ruleComment_StartIndex = input.index(); 
     1778        Token lv_content_1_0=null; 
     1779 
     1780         enterRule();  
     1781             
     1782        try { 
     1783            if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return current; } 
     1784            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:595:28: ( ( () ( (lv_content_1_0= RULE_ML_COMMENT ) ) ) ) 
     1785            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:596:1: ( () ( (lv_content_1_0= RULE_ML_COMMENT ) ) ) 
     1786            { 
     1787            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:596:1: ( () ( (lv_content_1_0= RULE_ML_COMMENT ) ) ) 
     1788            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:596:2: () ( (lv_content_1_0= RULE_ML_COMMENT ) ) 
     1789            { 
     1790            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:596:2: () 
     1791            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:597:2:  
     1792            { 
     1793            if ( state.backtracking==0 ) { 
     1794                
     1795                  /* */  
     1796                 
     1797            } 
     1798            if ( state.backtracking==0 ) { 
     1799 
     1800                      current = forceCreateModelElement( 
     1801                          grammarAccess.getCommentAccess().getCommentAction_0(), 
     1802                          current); 
     1803                   
     1804            } 
     1805 
     1806            } 
     1807 
     1808            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:605:2: ( (lv_content_1_0= RULE_ML_COMMENT ) ) 
     1809            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:606:1: (lv_content_1_0= RULE_ML_COMMENT ) 
     1810            { 
     1811            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:606:1: (lv_content_1_0= RULE_ML_COMMENT ) 
     1812            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:607:3: lv_content_1_0= RULE_ML_COMMENT 
     1813            { 
     1814            lv_content_1_0=(Token)match(input,RULE_ML_COMMENT,FOLLOW_RULE_ML_COMMENT_in_ruleComment1146); if (state.failed) return current; 
     1815            if ( state.backtracking==0 ) { 
     1816 
     1817                                newLeafNode(lv_content_1_0, grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0());  
     1818                         
     1819            } 
     1820            if ( state.backtracking==0 ) { 
     1821 
     1822                        if (current==null) { 
     1823                            current = createModelElement(grammarAccess.getCommentRule()); 
     1824                        } 
     1825                                setWithLastConsumed( 
     1826                                        current,  
     1827                                        "content", 
     1828                                lv_content_1_0,  
     1829                                "ML_COMMENT"); 
     1830                     
     1831            } 
     1832 
     1833            } 
     1834 
     1835 
     1836            } 
     1837 
     1838 
     1839            } 
     1840 
     1841 
     1842            } 
     1843 
     1844            if ( state.backtracking==0 ) { 
     1845               leaveRule();  
     1846            } 
     1847        } 
     1848          
     1849            catch (RecognitionException re) {  
     1850                recover(input,re);  
     1851                appendSkippedTokens(); 
     1852            }  
     1853        finally { 
     1854            if ( state.backtracking>0 ) { memoize(input, 14, ruleComment_StartIndex); } 
     1855        } 
     1856        return current; 
     1857    } 
     1858    // $ANTLR end "ruleComment" 
     1859 
     1860 
     1861    // $ANTLR start "entryRuleImport" 
     1862    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:631:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ; 
     1863    public final EObject entryRuleImport() throws RecognitionException { 
     1864        EObject current = null; 
     1865        int entryRuleImport_StartIndex = input.index(); 
     1866        EObject iv_ruleImport = null; 
     1867 
     1868 
     1869        try { 
     1870            if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return current; } 
     1871            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:632:2: (iv_ruleImport= ruleImport EOF ) 
     1872            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:633:2: iv_ruleImport= ruleImport EOF 
     1873            { 
     1874            if ( state.backtracking==0 ) { 
     1875               newCompositeNode(grammarAccess.getImportRule());  
     1876            } 
     1877            pushFollow(FOLLOW_ruleImport_in_entryRuleImport1187); 
     1878            iv_ruleImport=ruleImport(); 
     1879 
     1880            state._fsp--; 
     1881            if (state.failed) return current; 
     1882            if ( state.backtracking==0 ) { 
     1883               current =iv_ruleImport;  
     1884            } 
     1885            match(input,EOF,FOLLOW_EOF_in_entryRuleImport1197); if (state.failed) return current; 
     1886 
     1887            } 
     1888 
     1889        } 
     1890          
     1891            catch (RecognitionException re) {  
     1892                recover(input,re);  
     1893                appendSkippedTokens(); 
     1894            }  
     1895        finally { 
     1896            if ( state.backtracking>0 ) { memoize(input, 15, entryRuleImport_StartIndex); } 
    17141897        } 
    17151898        return current; 
     
    17191902 
    17201903    // $ANTLR start "ruleImport" 
    1721     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:573:1: ruleImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) ; 
     1904    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:640:1: ruleImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) ; 
    17221905    public final EObject ruleImport() throws RecognitionException { 
    17231906        EObject current = null; 
     
    17361919             
    17371920        try { 
    1738             if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return current; } 
    1739             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:576:28: ( (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) ) 
    1740             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:577:1: (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) 
    1741             { 
    1742             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:577:1: (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) 
    1743             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:577:3: otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' 
    1744             { 
    1745             otherlv_0=(Token)match(input,18,FOLLOW_18_in_ruleImport1102); if (state.failed) return current; 
     1921            if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return current; } 
     1922            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:643:28: ( (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) ) 
     1923            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:644:1: (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) 
     1924            { 
     1925            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:644:1: (otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' ) 
     1926            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:644:3: otherlv_0= 'import' ( (lv_importURI_1_0= RULE_STRING ) ) (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? otherlv_8= ';' 
     1927            { 
     1928            otherlv_0=(Token)match(input,18,FOLLOW_18_in_ruleImport1234); if (state.failed) return current; 
    17461929            if ( state.backtracking==0 ) { 
    17471930 
     
    17491932                   
    17501933            } 
    1751             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:581:1: ( (lv_importURI_1_0= RULE_STRING ) ) 
    1752             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:582:1: (lv_importURI_1_0= RULE_STRING ) 
    1753             { 
    1754             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:582:1: (lv_importURI_1_0= RULE_STRING ) 
    1755             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:583:3: lv_importURI_1_0= RULE_STRING 
    1756             { 
    1757             lv_importURI_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleImport1119); if (state.failed) return current; 
     1934            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:648:1: ( (lv_importURI_1_0= RULE_STRING ) ) 
     1935            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:649:1: (lv_importURI_1_0= RULE_STRING ) 
     1936            { 
     1937            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:649:1: (lv_importURI_1_0= RULE_STRING ) 
     1938            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:650:3: lv_importURI_1_0= RULE_STRING 
     1939            { 
     1940            lv_importURI_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleImport1251); if (state.failed) return current; 
    17581941            if ( state.backtracking==0 ) { 
    17591942 
     
    17791962            } 
    17801963 
    1781             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:599:2: (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? 
     1964            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:666:2: (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? 
    17821965            int alt14=2; 
    17831966            int LA14_0 = input.LA(1); 
     
    17881971            switch (alt14) { 
    17891972                case 1 : 
    1790                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:599:4: otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) 
    1791                     { 
    1792                     otherlv_2=(Token)match(input,19,FOLLOW_19_in_ruleImport1137); if (state.failed) return current; 
     1973                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:666:4: otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) 
     1974                    { 
     1975                    otherlv_2=(Token)match(input,19,FOLLOW_19_in_ruleImport1269); if (state.failed) return current; 
    17931976                    if ( state.backtracking==0 ) { 
    17941977 
     
    17961979                           
    17971980                    } 
    1798                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:603:1: ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) 
     1981                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:670:1: ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) 
    17991982                    int alt13=3; 
    18001983                    switch ( input.LA(1) ) { 
     
    18242007                    switch (alt13) { 
    18252008                        case 1 : 
    1826                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:603:2: ( (lv_grammarType_3_0= 'core' ) ) 
     2009                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:670:2: ( (lv_grammarType_3_0= 'core' ) ) 
    18272010                            { 
    1828                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:603:2: ( (lv_grammarType_3_0= 'core' ) ) 
    1829                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:604:1: (lv_grammarType_3_0= 'core' ) 
     2011                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:670:2: ( (lv_grammarType_3_0= 'core' ) ) 
     2012                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:671:1: (lv_grammarType_3_0= 'core' ) 
    18302013                            { 
    1831                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:604:1: (lv_grammarType_3_0= 'core' ) 
    1832                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:605:3: lv_grammarType_3_0= 'core' 
     2014                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:671:1: (lv_grammarType_3_0= 'core' ) 
     2015                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:672:3: lv_grammarType_3_0= 'core' 
    18332016                            { 
    1834                             lv_grammarType_3_0=(Token)match(input,20,FOLLOW_20_in_ruleImport1156); if (state.failed) return current; 
     2017                            lv_grammarType_3_0=(Token)match(input,20,FOLLOW_20_in_ruleImport1288); if (state.failed) return current; 
    18352018                            if ( state.backtracking==0 ) { 
    18362019 
     
    18562039                            break; 
    18572040                        case 2 : 
    1858                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:619:6: ( (lv_grammarType_4_0= 'package' ) ) 
     2041                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:686:6: ( (lv_grammarType_4_0= 'package' ) ) 
    18592042                            { 
    1860                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:619:6: ( (lv_grammarType_4_0= 'package' ) ) 
    1861                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:620:1: (lv_grammarType_4_0= 'package' ) 
     2043                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:686:6: ( (lv_grammarType_4_0= 'package' ) ) 
     2044                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687:1: (lv_grammarType_4_0= 'package' ) 
    18622045                            { 
    1863                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:620:1: (lv_grammarType_4_0= 'package' ) 
    1864                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:621:3: lv_grammarType_4_0= 'package' 
     2046                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687:1: (lv_grammarType_4_0= 'package' ) 
     2047                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:688:3: lv_grammarType_4_0= 'package' 
    18652048                            { 
    1866                             lv_grammarType_4_0=(Token)match(input,21,FOLLOW_21_in_ruleImport1193); if (state.failed) return current; 
     2049                            lv_grammarType_4_0=(Token)match(input,21,FOLLOW_21_in_ruleImport1325); if (state.failed) return current; 
    18672050                            if ( state.backtracking==0 ) { 
    18682051 
     
    18882071                            break; 
    18892072                        case 3 : 
    1890                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:635:6: ( (lv_grammarType_5_0= 'update' ) ) 
     2073                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:702:6: ( (lv_grammarType_5_0= 'update' ) ) 
    18912074                            { 
    1892                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:635:6: ( (lv_grammarType_5_0= 'update' ) ) 
    1893                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:636:1: (lv_grammarType_5_0= 'update' ) 
     2075                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:702:6: ( (lv_grammarType_5_0= 'update' ) ) 
     2076                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:703:1: (lv_grammarType_5_0= 'update' ) 
    18942077                            { 
    1895                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:636:1: (lv_grammarType_5_0= 'update' ) 
    1896                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:637:3: lv_grammarType_5_0= 'update' 
     2078                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:703:1: (lv_grammarType_5_0= 'update' ) 
     2079                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:704:3: lv_grammarType_5_0= 'update' 
    18972080                            { 
    1898                             lv_grammarType_5_0=(Token)match(input,22,FOLLOW_22_in_ruleImport1230); if (state.failed) return current; 
     2081                            lv_grammarType_5_0=(Token)match(input,22,FOLLOW_22_in_ruleImport1362); if (state.failed) return current; 
    18992082                            if ( state.backtracking==0 ) { 
    19002083 
     
    19282111            } 
    19292112 
    1930             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:650:5: (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? 
     2113            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:717:5: (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? 
    19312114            int alt15=2; 
    19322115            int LA15_0 = input.LA(1); 
     
    19372120            switch (alt15) { 
    19382121                case 1 : 
    1939                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:650:7: otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) 
    1940                     { 
    1941                     otherlv_6=(Token)match(input,23,FOLLOW_23_in_ruleImport1259); if (state.failed) return current; 
     2122                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:717:7: otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) 
     2123                    { 
     2124                    otherlv_6=(Token)match(input,23,FOLLOW_23_in_ruleImport1391); if (state.failed) return current; 
    19422125                    if ( state.backtracking==0 ) { 
    19432126 
     
    19452128                           
    19462129                    } 
    1947                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:654:1: ( (lv_label_7_0= RULE_ID ) ) 
    1948                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:655:1: (lv_label_7_0= RULE_ID ) 
    1949                     { 
    1950                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:655:1: (lv_label_7_0= RULE_ID ) 
    1951                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:656:3: lv_label_7_0= RULE_ID 
    1952                     { 
    1953                     lv_label_7_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleImport1276); if (state.failed) return current; 
     2130                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:721:1: ( (lv_label_7_0= RULE_ID ) ) 
     2131                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:722:1: (lv_label_7_0= RULE_ID ) 
     2132                    { 
     2133                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:722:1: (lv_label_7_0= RULE_ID ) 
     2134                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:723:3: lv_label_7_0= RULE_ID 
     2135                    { 
     2136                    lv_label_7_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleImport1408); if (state.failed) return current; 
    19542137                    if ( state.backtracking==0 ) { 
    19552138 
     
    19812164            } 
    19822165 
    1983             otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleImport1295); if (state.failed) return current; 
     2166            otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleImport1427); if (state.failed) return current; 
    19842167            if ( state.backtracking==0 ) { 
    19852168 
     
    20032186            }  
    20042187        finally { 
    2005             if ( state.backtracking>0 ) { memoize(input, 14, ruleImport_StartIndex); } 
     2188            if ( state.backtracking>0 ) { memoize(input, 16, ruleImport_StartIndex); } 
    20062189        } 
    20072190        return current; 
     
    20112194 
    20122195    // $ANTLR start "entryRuleRule" 
    2013     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:684:1: entryRuleRule returns [EObject current=null] : iv_ruleRule= ruleRule EOF ; 
     2196    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:751:1: entryRuleRule returns [EObject current=null] : iv_ruleRule= ruleRule EOF ; 
    20142197    public final EObject entryRuleRule() throws RecognitionException { 
    20152198        EObject current = null; 
     
    20192202 
    20202203        try { 
    2021             if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return current; } 
    2022             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:685:2: (iv_ruleRule= ruleRule EOF ) 
    2023             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:686:2: iv_ruleRule= ruleRule EOF 
     2204            if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return current; } 
     2205            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:752:2: (iv_ruleRule= ruleRule EOF ) 
     2206            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:753:2: iv_ruleRule= ruleRule EOF 
    20242207            { 
    20252208            if ( state.backtracking==0 ) { 
    20262209               newCompositeNode(grammarAccess.getRuleRule());  
    20272210            } 
    2028             pushFollow(FOLLOW_ruleRule_in_entryRuleRule1331); 
     2211            pushFollow(FOLLOW_ruleRule_in_entryRuleRule1463); 
    20292212            iv_ruleRule=ruleRule(); 
    20302213 
     
    20342217               current =iv_ruleRule;  
    20352218            } 
    2036             match(input,EOF,FOLLOW_EOF_in_entryRuleRule1341); if (state.failed) return current; 
     2219            match(input,EOF,FOLLOW_EOF_in_entryRuleRule1473); if (state.failed) return current; 
    20372220 
    20382221            } 
     
    20452228            }  
    20462229        finally { 
    2047             if ( state.backtracking>0 ) { memoize(input, 15, entryRuleRule_StartIndex); } 
     2230            if ( state.backtracking>0 ) { memoize(input, 17, entryRuleRule_StartIndex); } 
    20482231        } 
    20492232        return current; 
     
    20532236 
    20542237    // $ANTLR start "ruleRule" 
    2055     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:693:1: ruleRule returns [EObject current=null] : ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) ; 
     2238    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:760:1: ruleRule returns [EObject current=null] : ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) ; 
    20562239    public final EObject ruleRule() throws RecognitionException { 
    20572240        EObject current = null; 
     
    20692252             
    20702253        try { 
    2071             if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return current; } 
    2072             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:696:28: ( ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) ) 
    2073             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:697:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) 
    2074             { 
    2075             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:697:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) 
    2076             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:697:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? 
    2077             { 
    2078             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:697:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? 
     2254            if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return current; } 
     2255            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:763:28: ( ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) ) 
     2256            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:764:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) 
     2257            { 
     2258            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:764:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? ) 
     2259            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:764:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '::=' ( (lv_definitionList_5_0= ruleDefinitionList ) )? (otherlv_6= ';' )? 
     2260            { 
     2261            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:764:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? 
    20792262            int alt17=2; 
    20802263            int LA17_0 = input.LA(1); 
     
    20852268            switch (alt17) { 
    20862269                case 1 : 
    2087                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:697:3: ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' 
    2088                     { 
    2089                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:697:3: ( (lv_rulenumber_0_0= RULE_INT ) ) 
    2090                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:698:1: (lv_rulenumber_0_0= RULE_INT ) 
    2091                     { 
    2092                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:698:1: (lv_rulenumber_0_0= RULE_INT ) 
    2093                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:699:3: lv_rulenumber_0_0= RULE_INT 
    2094                     { 
    2095                     lv_rulenumber_0_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRule1384); if (state.failed) return current; 
     2270                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:764:3: ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' 
     2271                    { 
     2272                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:764:3: ( (lv_rulenumber_0_0= RULE_INT ) ) 
     2273                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:765:1: (lv_rulenumber_0_0= RULE_INT ) 
     2274                    { 
     2275                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:765:1: (lv_rulenumber_0_0= RULE_INT ) 
     2276                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:766:3: lv_rulenumber_0_0= RULE_INT 
     2277                    { 
     2278                    lv_rulenumber_0_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRule1516); if (state.failed) return current; 
    20962279                    if ( state.backtracking==0 ) { 
    20972280 
     
    21172300                    } 
    21182301 
    2119                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:715:2: ( (lv_rulevariant_1_0= RULE_ID ) )? 
     2302                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:782:2: ( (lv_rulevariant_1_0= RULE_ID ) )? 
    21202303                    int alt16=2; 
    21212304                    int LA16_0 = input.LA(1); 
     
    21262309                    switch (alt16) { 
    21272310                        case 1 : 
    2128                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:716:1: (lv_rulevariant_1_0= RULE_ID ) 
     2311                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:783:1: (lv_rulevariant_1_0= RULE_ID ) 
    21292312                            { 
    2130                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:716:1: (lv_rulevariant_1_0= RULE_ID ) 
    2131                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:717:3: lv_rulevariant_1_0= RULE_ID 
     2313                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:783:1: (lv_rulevariant_1_0= RULE_ID ) 
     2314                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:784:3: lv_rulevariant_1_0= RULE_ID 
    21322315                            { 
    2133                             lv_rulevariant_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRule1406); if (state.failed) return current; 
     2316                            lv_rulevariant_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRule1538); if (state.failed) return current; 
    21342317                            if ( state.backtracking==0 ) { 
    21352318 
     
    21582341                    } 
    21592342 
    2160                     otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleRule1424); if (state.failed) return current; 
     2343                    otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleRule1556); if (state.failed) return current; 
    21612344                    if ( state.backtracking==0 ) { 
    21622345 
     
    21702353            } 
    21712354 
    2172             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:737:3: ( (lv_name_3_0= RULE_ID ) ) 
    2173             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:738:1: (lv_name_3_0= RULE_ID ) 
    2174             { 
    2175             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:738:1: (lv_name_3_0= RULE_ID ) 
    2176             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:739:3: lv_name_3_0= RULE_ID 
    2177             { 
    2178             lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRule1443); if (state.failed) return current; 
     2355            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:804:3: ( (lv_name_3_0= RULE_ID ) ) 
     2356            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:805:1: (lv_name_3_0= RULE_ID ) 
     2357            { 
     2358            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:805:1: (lv_name_3_0= RULE_ID ) 
     2359            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:806:3: lv_name_3_0= RULE_ID 
     2360            { 
     2361            lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRule1575); if (state.failed) return current; 
    21792362            if ( state.backtracking==0 ) { 
    21802363 
     
    22002383            } 
    22012384 
    2202             otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleRule1460); if (state.failed) return current; 
     2385            otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleRule1592); if (state.failed) return current; 
    22032386            if ( state.backtracking==0 ) { 
    22042387 
     
    22062389                   
    22072390            } 
    2208             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:759:1: ( (lv_definitionList_5_0= ruleDefinitionList ) )? 
     2391            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:826:1: ( (lv_definitionList_5_0= ruleDefinitionList ) )? 
    22092392            int alt18=2; 
    22102393            int LA18_0 = input.LA(1); 
     
    22292412            switch (alt18) { 
    22302413                case 1 : 
    2231                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:760:1: (lv_definitionList_5_0= ruleDefinitionList ) 
    2232                     { 
    2233                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:760:1: (lv_definitionList_5_0= ruleDefinitionList ) 
    2234                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:761:3: lv_definitionList_5_0= ruleDefinitionList 
     2414                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:827:1: (lv_definitionList_5_0= ruleDefinitionList ) 
     2415                    { 
     2416                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:827:1: (lv_definitionList_5_0= ruleDefinitionList ) 
     2417                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:828:3: lv_definitionList_5_0= ruleDefinitionList 
    22352418                    { 
    22362419                    if ( state.backtracking==0 ) { 
     
    22392422                             
    22402423                    } 
    2241                     pushFollow(FOLLOW_ruleDefinitionList_in_ruleRule1481); 
     2424                    pushFollow(FOLLOW_ruleDefinitionList_in_ruleRule1613); 
    22422425                    lv_definitionList_5_0=ruleDefinitionList(); 
    22432426 
     
    22662449            } 
    22672450 
    2268             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:777:3: (otherlv_6= ';' )? 
     2451            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:844:3: (otherlv_6= ';' )? 
    22692452            int alt19=2; 
    22702453            int LA19_0 = input.LA(1); 
     
    22752458            switch (alt19) { 
    22762459                case 1 : 
    2277                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:777:5: otherlv_6= ';' 
    2278                     { 
    2279                     otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleRule1495); if (state.failed) return current; 
     2460                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:844:5: otherlv_6= ';' 
     2461                    { 
     2462                    otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleRule1627); if (state.failed) return current; 
    22802463                    if ( state.backtracking==0 ) { 
    22812464 
     
    23052488            }  
    23062489        finally { 
    2307             if ( state.backtracking>0 ) { memoize(input, 16, ruleRule_StartIndex); } 
     2490            if ( state.backtracking>0 ) { memoize(input, 18, ruleRule_StartIndex); } 
    23082491        } 
    23092492        return current; 
     
    23132496 
    23142497    // $ANTLR start "entryRuleExtRule" 
    2315     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:789:1: entryRuleExtRule returns [EObject current=null] : iv_ruleExtRule= ruleExtRule EOF ; 
     2498    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:856:1: entryRuleExtRule returns [EObject current=null] : iv_ruleExtRule= ruleExtRule EOF ; 
    23162499    public final EObject entryRuleExtRule() throws RecognitionException { 
    23172500        EObject current = null; 
     
    23212504 
    23222505        try { 
    2323             if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return current; } 
    2324             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:790:2: (iv_ruleExtRule= ruleExtRule EOF ) 
    2325             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:791:2: iv_ruleExtRule= ruleExtRule EOF 
     2506            if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return current; } 
     2507            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:857:2: (iv_ruleExtRule= ruleExtRule EOF ) 
     2508            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:858:2: iv_ruleExtRule= ruleExtRule EOF 
    23262509            { 
    23272510            if ( state.backtracking==0 ) { 
    23282511               newCompositeNode(grammarAccess.getExtRuleRule());  
    23292512            } 
    2330             pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule1533); 
     2513            pushFollow(FOLLOW_ruleExtRule_in_entryRuleExtRule1665); 
    23312514            iv_ruleExtRule=ruleExtRule(); 
    23322515 
     
    23362519               current =iv_ruleExtRule;  
    23372520            } 
    2338             match(input,EOF,FOLLOW_EOF_in_entryRuleExtRule1543); if (state.failed) return current; 
     2521            match(input,EOF,FOLLOW_EOF_in_entryRuleExtRule1675); if (state.failed) return current; 
    23392522 
    23402523            } 
     
    23472530            }  
    23482531        finally { 
    2349             if ( state.backtracking>0 ) { memoize(input, 17, entryRuleExtRule_StartIndex); } 
     2532            if ( state.backtracking>0 ) { memoize(input, 19, entryRuleExtRule_StartIndex); } 
    23502533        } 
    23512534        return current; 
     
    23552538 
    23562539    // $ANTLR start "ruleExtRule" 
    2357     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:798:1: ruleExtRule returns [EObject current=null] : ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) ; 
     2540    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:865:1: ruleExtRule returns [EObject current=null] : ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) ; 
    23582541    public final EObject ruleExtRule() throws RecognitionException { 
    23592542        EObject current = null; 
     
    23832566             
    23842567        try { 
    2385             if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return current; } 
    2386             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:801:28: ( ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) ) 
    2387             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:802:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) 
    2388             { 
    2389             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:802:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) 
    2390             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:802:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? 
    2391             { 
    2392             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:802:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? 
     2568            if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return current; } 
     2569            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:868:28: ( ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) ) 
     2570            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:869:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) 
     2571            { 
     2572            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:869:1: ( ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? ) 
     2573            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:869:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) otherlv_7= '<-' ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* (otherlv_18= ';' )? 
     2574            { 
     2575            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:869:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? 
    23932576            int alt21=2; 
    23942577            int LA21_0 = input.LA(1); 
     
    23992582            switch (alt21) { 
    24002583                case 1 : 
    2401                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:802:3: ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' 
    2402                     { 
    2403                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:802:3: ( (lv_rulenumber_0_0= RULE_INT ) ) 
    2404                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:803:1: (lv_rulenumber_0_0= RULE_INT ) 
    2405                     { 
    2406                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:803:1: (lv_rulenumber_0_0= RULE_INT ) 
    2407                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:804:3: lv_rulenumber_0_0= RULE_INT 
    2408                     { 
    2409                     lv_rulenumber_0_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleExtRule1586); if (state.failed) return current; 
     2584                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:869:3: ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' 
     2585                    { 
     2586                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:869:3: ( (lv_rulenumber_0_0= RULE_INT ) ) 
     2587                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:870:1: (lv_rulenumber_0_0= RULE_INT ) 
     2588                    { 
     2589                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:870:1: (lv_rulenumber_0_0= RULE_INT ) 
     2590                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:871:3: lv_rulenumber_0_0= RULE_INT 
     2591                    { 
     2592                    lv_rulenumber_0_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleExtRule1718); if (state.failed) return current; 
    24102593                    if ( state.backtracking==0 ) { 
    24112594 
     
    24312614                    } 
    24322615 
    2433                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:820:2: ( (lv_rulevariant_1_0= RULE_ID ) )? 
     2616                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:887:2: ( (lv_rulevariant_1_0= RULE_ID ) )? 
    24342617                    int alt20=2; 
    24352618                    int LA20_0 = input.LA(1); 
     
    24402623                    switch (alt20) { 
    24412624                        case 1 : 
    2442                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:821:1: (lv_rulevariant_1_0= RULE_ID ) 
     2625                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:888:1: (lv_rulevariant_1_0= RULE_ID ) 
    24432626                            { 
    2444                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:821:1: (lv_rulevariant_1_0= RULE_ID ) 
    2445                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:822:3: lv_rulevariant_1_0= RULE_ID 
     2627                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:888:1: (lv_rulevariant_1_0= RULE_ID ) 
     2628                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:889:3: lv_rulevariant_1_0= RULE_ID 
    24462629                            { 
    2447                             lv_rulevariant_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExtRule1608); if (state.failed) return current; 
     2630                            lv_rulevariant_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExtRule1740); if (state.failed) return current; 
    24482631                            if ( state.backtracking==0 ) { 
    24492632 
     
    24722655                    } 
    24732656 
    2474                     otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleExtRule1626); if (state.failed) return current; 
     2657                    otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleExtRule1758); if (state.failed) return current; 
    24752658                    if ( state.backtracking==0 ) { 
    24762659 
     
    24842667            } 
    24852668 
    2486             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:842:3: ( (lv_name_3_0= RULE_ID ) ) 
    2487             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:843:1: (lv_name_3_0= RULE_ID ) 
    2488             { 
    2489             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:843:1: (lv_name_3_0= RULE_ID ) 
    2490             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:844:3: lv_name_3_0= RULE_ID 
    2491             { 
    2492             lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExtRule1645); if (state.failed) return current; 
     2669            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:909:3: ( (lv_name_3_0= RULE_ID ) ) 
     2670            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:910:1: (lv_name_3_0= RULE_ID ) 
     2671            { 
     2672            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:910:1: (lv_name_3_0= RULE_ID ) 
     2673            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:911:3: lv_name_3_0= RULE_ID 
     2674            { 
     2675            lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExtRule1777); if (state.failed) return current; 
    24932676            if ( state.backtracking==0 ) { 
    24942677 
     
    25142697            } 
    25152698 
    2516             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:860:2: (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) 
    2517             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:860:4: otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' 
    2518             { 
    2519             otherlv_4=(Token)match(input,26,FOLLOW_26_in_ruleExtRule1663); if (state.failed) return current; 
     2699            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:927:2: (otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' ) 
     2700            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:927:4: otherlv_4= '(' ( (lv_ruleext_5_0= RULE_INT ) ) otherlv_6= ')' 
     2701            { 
     2702            otherlv_4=(Token)match(input,26,FOLLOW_26_in_ruleExtRule1795); if (state.failed) return current; 
    25202703            if ( state.backtracking==0 ) { 
    25212704 
     
    25232706                   
    25242707            } 
    2525             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:864:1: ( (lv_ruleext_5_0= RULE_INT ) ) 
    2526             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:865:1: (lv_ruleext_5_0= RULE_INT ) 
    2527             { 
    2528             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:865:1: (lv_ruleext_5_0= RULE_INT ) 
    2529             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:866:3: lv_ruleext_5_0= RULE_INT 
    2530             { 
    2531             lv_ruleext_5_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleExtRule1680); if (state.failed) return current; 
     2708            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:931:1: ( (lv_ruleext_5_0= RULE_INT ) ) 
     2709            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:932:1: (lv_ruleext_5_0= RULE_INT ) 
     2710            { 
     2711            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:932:1: (lv_ruleext_5_0= RULE_INT ) 
     2712            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:933:3: lv_ruleext_5_0= RULE_INT 
     2713            { 
     2714            lv_ruleext_5_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleExtRule1812); if (state.failed) return current; 
    25322715            if ( state.backtracking==0 ) { 
    25332716 
     
    25532736            } 
    25542737 
    2555             otherlv_6=(Token)match(input,27,FOLLOW_27_in_ruleExtRule1697); if (state.failed) return current; 
     2738            otherlv_6=(Token)match(input,27,FOLLOW_27_in_ruleExtRule1829); if (state.failed) return current; 
    25562739            if ( state.backtracking==0 ) { 
    25572740 
     
    25622745            } 
    25632746 
    2564             otherlv_7=(Token)match(input,28,FOLLOW_28_in_ruleExtRule1710); if (state.failed) return current; 
     2747            otherlv_7=(Token)match(input,28,FOLLOW_28_in_ruleExtRule1842); if (state.failed) return current; 
    25652748            if ( state.backtracking==0 ) { 
    25662749 
     
    25682751                   
    25692752            } 
    2570             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:890:1: ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* 
     2753            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:957:1: ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )* 
    25712754            loop22: 
    25722755            do { 
     
    25752758                switch (alt22) { 
    25762759                case 1 : 
    2577                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:890:2: ( (lv_elements_8_0= ruleAtom ) ) 
     2760                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:957:2: ( (lv_elements_8_0= ruleAtom ) ) 
    25782761                    { 
    2579                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:890:2: ( (lv_elements_8_0= ruleAtom ) ) 
    2580                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:891:1: (lv_elements_8_0= ruleAtom ) 
     2762                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:957:2: ( (lv_elements_8_0= ruleAtom ) ) 
     2763                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:958:1: (lv_elements_8_0= ruleAtom ) 
    25812764                    { 
    2582                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:891:1: (lv_elements_8_0= ruleAtom ) 
    2583                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:892:3: lv_elements_8_0= ruleAtom 
     2765                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:958:1: (lv_elements_8_0= ruleAtom ) 
     2766                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:959:3: lv_elements_8_0= ruleAtom 
    25842767                    { 
    25852768                    if ( state.backtracking==0 ) { 
     
    25882771                             
    25892772                    } 
    2590                     pushFollow(FOLLOW_ruleAtom_in_ruleExtRule1732); 
     2773                    pushFollow(FOLLOW_ruleAtom_in_ruleExtRule1864); 
    25912774                    lv_elements_8_0=ruleAtom(); 
    25922775 
     
    26162799                    break; 
    26172800                case 2 : 
    2618                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:909:7: otherlv_9= ')' 
     2801                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:976:7: otherlv_9= ')' 
    26192802                    { 
    2620                     otherlv_9=(Token)match(input,27,FOLLOW_27_in_ruleExtRule1750); if (state.failed) return current; 
     2803                    otherlv_9=(Token)match(input,27,FOLLOW_27_in_ruleExtRule1882); if (state.failed) return current; 
    26212804                    if ( state.backtracking==0 ) { 
    26222805 
     
    26282811                    break; 
    26292812                case 3 : 
    2630                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:914:7: otherlv_10= ']' 
     2813                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:981:7: otherlv_10= ']' 
    26312814                    { 
    2632                     otherlv_10=(Token)match(input,29,FOLLOW_29_in_ruleExtRule1768); if (state.failed) return current; 
     2815                    otherlv_10=(Token)match(input,29,FOLLOW_29_in_ruleExtRule1900); if (state.failed) return current; 
    26332816                    if ( state.backtracking==0 ) { 
    26342817 
     
    26402823                    break; 
    26412824                case 4 : 
    2642                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:919:7: otherlv_11= '}' 
     2825                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:986:7: otherlv_11= '}' 
    26432826                    { 
    2644                     otherlv_11=(Token)match(input,30,FOLLOW_30_in_ruleExtRule1786); if (state.failed) return current; 
     2827                    otherlv_11=(Token)match(input,30,FOLLOW_30_in_ruleExtRule1918); if (state.failed) return current; 
    26452828                    if ( state.backtracking==0 ) { 
    26462829 
     
    26522835                    break; 
    26532836                case 5 : 
    2654                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:924:7: otherlv_12= '|' 
     2837                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:991:7: otherlv_12= '|' 
    26552838                    { 
    2656                     otherlv_12=(Token)match(input,31,FOLLOW_31_in_ruleExtRule1804); if (state.failed) return current; 
     2839                    otherlv_12=(Token)match(input,31,FOLLOW_31_in_ruleExtRule1936); if (state.failed) return current; 
    26572840                    if ( state.backtracking==0 ) { 
    26582841 
     
    26642847                    break; 
    26652848                case 6 : 
    2666                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:929:7: otherlv_13= '(' 
     2849                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:996:7: otherlv_13= '(' 
    26672850                    { 
    2668                     otherlv_13=(Token)match(input,26,FOLLOW_26_in_ruleExtRule1822); if (state.failed) return current; 
     2851                    otherlv_13=(Token)match(input,26,FOLLOW_26_in_ruleExtRule1954); if (state.failed) return current; 
    26692852                    if ( state.backtracking==0 ) { 
    26702853 
     
    26762859                    break; 
    26772860                case 7 : 
    2678                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:934:7: otherlv_14= '[' 
     2861                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1001:7: otherlv_14= '[' 
    26792862                    { 
    2680                     otherlv_14=(Token)match(input,32,FOLLOW_32_in_ruleExtRule1840); if (state.failed) return current; 
     2863                    otherlv_14=(Token)match(input,32,FOLLOW_32_in_ruleExtRule1972); if (state.failed) return current; 
    26812864                    if ( state.backtracking==0 ) { 
    26822865 
     
    26882871                    break; 
    26892872                case 8 : 
    2690                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:939:7: otherlv_15= '{' 
     2873                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1006:7: otherlv_15= '{' 
    26912874                    { 
    2692                     otherlv_15=(Token)match(input,33,FOLLOW_33_in_ruleExtRule1858); if (state.failed) return current; 
     2875                    otherlv_15=(Token)match(input,33,FOLLOW_33_in_ruleExtRule1990); if (state.failed) return current; 
    26932876                    if ( state.backtracking==0 ) { 
    26942877 
     
    27002883                    break; 
    27012884                case 9 : 
    2702                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:944:7: otherlv_16= '*' 
     2885                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1011:7: otherlv_16= '*' 
    27032886                    { 
    2704                     otherlv_16=(Token)match(input,34,FOLLOW_34_in_ruleExtRule1876); if (state.failed) return current; 
     2887                    otherlv_16=(Token)match(input,34,FOLLOW_34_in_ruleExtRule2008); if (state.failed) return current; 
    27052888                    if ( state.backtracking==0 ) { 
    27062889 
     
    27122895                    break; 
    27132896                case 10 : 
    2714                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:949:7: otherlv_17= '+' 
     2897                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1016:7: otherlv_17= '+' 
    27152898                    { 
    2716                     otherlv_17=(Token)match(input,35,FOLLOW_35_in_ruleExtRule1894); if (state.failed) return current; 
     2899                    otherlv_17=(Token)match(input,35,FOLLOW_35_in_ruleExtRule2026); if (state.failed) return current; 
    27172900                    if ( state.backtracking==0 ) { 
    27182901 
     
    27292912            } while (true); 
    27302913 
    2731             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:953:3: (otherlv_18= ';' )? 
     2914            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1020:3: (otherlv_18= ';' )? 
    27322915            int alt23=2; 
    27332916            int LA23_0 = input.LA(1); 
     
    27382921            switch (alt23) { 
    27392922                case 1 : 
    2740                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:953:5: otherlv_18= ';' 
    2741                     { 
    2742                     otherlv_18=(Token)match(input,15,FOLLOW_15_in_ruleExtRule1909); if (state.failed) return current; 
     2923                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1020:5: otherlv_18= ';' 
     2924                    { 
     2925                    otherlv_18=(Token)match(input,15,FOLLOW_15_in_ruleExtRule2041); if (state.failed) return current; 
    27432926                    if ( state.backtracking==0 ) { 
    27442927 
     
    27682951            }  
    27692952        finally { 
    2770             if ( state.backtracking>0 ) { memoize(input, 18, ruleExtRule_StartIndex); } 
     2953            if ( state.backtracking>0 ) { memoize(input, 20, ruleExtRule_StartIndex); } 
    27712954        } 
    27722955        return current; 
     
    27762959 
    27772960    // $ANTLR start "entryRuleMergeRule" 
    2778     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:965:1: entryRuleMergeRule returns [EObject current=null] : iv_ruleMergeRule= ruleMergeRule EOF ; 
     2961    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1032:1: entryRuleMergeRule returns [EObject current=null] : iv_ruleMergeRule= ruleMergeRule EOF ; 
    27792962    public final EObject entryRuleMergeRule() throws RecognitionException { 
    27802963        EObject current = null; 
     
    27842967 
    27852968        try { 
    2786             if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return current; } 
    2787             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:966:2: (iv_ruleMergeRule= ruleMergeRule EOF ) 
    2788             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:967:2: iv_ruleMergeRule= ruleMergeRule EOF 
     2969            if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return current; } 
     2970            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1033:2: (iv_ruleMergeRule= ruleMergeRule EOF ) 
     2971            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1034:2: iv_ruleMergeRule= ruleMergeRule EOF 
    27892972            { 
    27902973            if ( state.backtracking==0 ) { 
    27912974               newCompositeNode(grammarAccess.getMergeRuleRule());  
    27922975            } 
    2793             pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule1947); 
     2976            pushFollow(FOLLOW_ruleMergeRule_in_entryRuleMergeRule2079); 
    27942977            iv_ruleMergeRule=ruleMergeRule(); 
    27952978 
     
    27992982               current =iv_ruleMergeRule;  
    28002983            } 
    2801             match(input,EOF,FOLLOW_EOF_in_entryRuleMergeRule1957); if (state.failed) return current; 
     2984            match(input,EOF,FOLLOW_EOF_in_entryRuleMergeRule2089); if (state.failed) return current; 
    28022985 
    28032986            } 
     
    28102993            }  
    28112994        finally { 
    2812             if ( state.backtracking>0 ) { memoize(input, 19, entryRuleMergeRule_StartIndex); } 
     2995            if ( state.backtracking>0 ) { memoize(input, 21, entryRuleMergeRule_StartIndex); } 
    28132996        } 
    28142997        return current; 
     
    28183001 
    28193002    // $ANTLR start "ruleMergeRule" 
    2820     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:974:1: ruleMergeRule returns [EObject current=null] : (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) ; 
     3003    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1041:1: ruleMergeRule returns [EObject current=null] : (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) ; 
    28213004    public final EObject ruleMergeRule() throws RecognitionException { 
    28223005        EObject current = null; 
     
    28323015             
    28333016        try { 
    2834             if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return current; } 
    2835             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:977:28: ( (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) ) 
    2836             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:978:1: (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) 
    2837             { 
    2838             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:978:1: (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) 
     3017            if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return current; } 
     3018            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1044:28: ( (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) ) 
     3019            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1045:1: (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) 
     3020            { 
     3021            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1045:1: (this_GlobalCombinator_0= ruleGlobalCombinator | this_RuleCombinator_1= ruleRuleCombinator | this_HookCombinator_2= ruleHookCombinator ) 
    28393022            int alt24=3; 
    28403023            switch ( input.LA(1) ) { 
     
    28643047            switch (alt24) { 
    28653048                case 1 : 
    2866                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:979:2: this_GlobalCombinator_0= ruleGlobalCombinator 
     3049                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1046:2: this_GlobalCombinator_0= ruleGlobalCombinator 
    28673050                    { 
    28683051                    if ( state.backtracking==0 ) { 
     
    28763059                           
    28773060                    } 
    2878                     pushFollow(FOLLOW_ruleGlobalCombinator_in_ruleMergeRule2007); 
     3061                    pushFollow(FOLLOW_ruleGlobalCombinator_in_ruleMergeRule2139); 
    28793062                    this_GlobalCombinator_0=ruleGlobalCombinator(); 
    28803063 
     
    28913074                    break; 
    28923075                case 2 : 
    2893                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:992:2: this_RuleCombinator_1= ruleRuleCombinator 
     3076                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1059:2: this_RuleCombinator_1= ruleRuleCombinator 
    28943077                    { 
    28953078                    if ( state.backtracking==0 ) { 
     
    29033086                           
    29043087                    } 
    2905                     pushFollow(FOLLOW_ruleRuleCombinator_in_ruleMergeRule2037); 
     3088                    pushFollow(FOLLOW_ruleRuleCombinator_in_ruleMergeRule2169); 
    29063089                    this_RuleCombinator_1=ruleRuleCombinator(); 
    29073090 
     
    29183101                    break; 
    29193102                case 3 : 
    2920                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1005:2: this_HookCombinator_2= ruleHookCombinator 
     3103                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1072:2: this_HookCombinator_2= ruleHookCombinator 
    29213104                    { 
    29223105                    if ( state.backtracking==0 ) { 
     
    29303113                           
    29313114                    } 
    2932                     pushFollow(FOLLOW_ruleHookCombinator_in_ruleMergeRule2067); 
     3115                    pushFollow(FOLLOW_ruleHookCombinator_in_ruleMergeRule2199); 
    29333116                    this_HookCombinator_2=ruleHookCombinator(); 
    29343117 
     
    29603143            }  
    29613144        finally { 
    2962             if ( state.backtracking>0 ) { memoize(input, 20, ruleMergeRule_StartIndex); } 
     3145            if ( state.backtracking>0 ) { memoize(input, 22, ruleMergeRule_StartIndex); } 
    29633146        } 
    29643147        return current; 
     
    29683151 
    29693152    // $ANTLR start "entryRuleGlobalCombinator" 
    2970     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1024:1: entryRuleGlobalCombinator returns [EObject current=null] : iv_ruleGlobalCombinator= ruleGlobalCombinator EOF ; 
     3153    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1091:1: entryRuleGlobalCombinator returns [EObject current=null] : iv_ruleGlobalCombinator= ruleGlobalCombinator EOF ; 
    29713154    public final EObject entryRuleGlobalCombinator() throws RecognitionException { 
    29723155        EObject current = null; 
     
    29763159 
    29773160        try { 
    2978             if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return current; } 
    2979             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1025:2: (iv_ruleGlobalCombinator= ruleGlobalCombinator EOF ) 
    2980             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1026:2: iv_ruleGlobalCombinator= ruleGlobalCombinator EOF 
     3161            if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return current; } 
     3162            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1092:2: (iv_ruleGlobalCombinator= ruleGlobalCombinator EOF ) 
     3163            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1093:2: iv_ruleGlobalCombinator= ruleGlobalCombinator EOF 
    29813164            { 
    29823165            if ( state.backtracking==0 ) { 
    29833166               newCompositeNode(grammarAccess.getGlobalCombinatorRule());  
    29843167            } 
    2985             pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator2102); 
     3168            pushFollow(FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator2234); 
    29863169            iv_ruleGlobalCombinator=ruleGlobalCombinator(); 
    29873170 
     
    29913174               current =iv_ruleGlobalCombinator;  
    29923175            } 
    2993             match(input,EOF,FOLLOW_EOF_in_entryRuleGlobalCombinator2112); if (state.failed) return current; 
     3176            match(input,EOF,FOLLOW_EOF_in_entryRuleGlobalCombinator2244); if (state.failed) return current; 
    29943177 
    29953178            } 
     
    30023185            }  
    30033186        finally { 
    3004             if ( state.backtracking>0 ) { memoize(input, 21, entryRuleGlobalCombinator_StartIndex); } 
     3187            if ( state.backtracking>0 ) { memoize(input, 23, entryRuleGlobalCombinator_StartIndex); } 
    30053188        } 
    30063189        return current; 
     
    30103193 
    30113194    // $ANTLR start "ruleGlobalCombinator" 
    3012     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1033:1: ruleGlobalCombinator returns [EObject current=null] : ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) ; 
     3195    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1100:1: ruleGlobalCombinator returns [EObject current=null] : ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) ; 
    30133196    public final EObject ruleGlobalCombinator() throws RecognitionException { 
    30143197        EObject current = null; 
     
    30223205             
    30233206        try { 
    3024             if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return current; } 
    3025             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1036:28: ( ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) ) 
    3026             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1037:1: ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) 
    3027             { 
    3028             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1037:1: ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) 
    3029             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1037:2: (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? 
    3030             { 
    3031             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1037:2: (otherlv_0= 'global' otherlv_1= 'combinator:' ) 
    3032             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1037:4: otherlv_0= 'global' otherlv_1= 'combinator:' 
    3033             { 
    3034             otherlv_0=(Token)match(input,36,FOLLOW_36_in_ruleGlobalCombinator2150); if (state.failed) return current; 
     3207            if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return current; } 
     3208            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1103:28: ( ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) ) 
     3209            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1104:1: ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) 
     3210            { 
     3211            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1104:1: ( (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? ) 
     3212            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1104:2: (otherlv_0= 'global' otherlv_1= 'combinator:' ) ( (lv_logic_2_0= RULE_LOGIC ) ) (otherlv_3= ';' )? 
     3213            { 
     3214            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1104:2: (otherlv_0= 'global' otherlv_1= 'combinator:' ) 
     3215            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1104:4: otherlv_0= 'global' otherlv_1= 'combinator:' 
     3216            { 
     3217            otherlv_0=(Token)match(input,36,FOLLOW_36_in_ruleGlobalCombinator2282); if (state.failed) return current; 
    30353218            if ( state.backtracking==0 ) { 
    30363219 
     
    30383221                   
    30393222            } 
    3040             otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleGlobalCombinator2162); if (state.failed) return current; 
     3223            otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleGlobalCombinator2294); if (state.failed) return current; 
    30413224            if ( state.backtracking==0 ) { 
    30423225 
     
    30473230            } 
    30483231 
    3049             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1045:2: ( (lv_logic_2_0= RULE_LOGIC ) ) 
    3050             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1046:1: (lv_logic_2_0= RULE_LOGIC ) 
    3051             { 
    3052             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1046:1: (lv_logic_2_0= RULE_LOGIC ) 
    3053             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1047:3: lv_logic_2_0= RULE_LOGIC 
    3054             { 
    3055             lv_logic_2_0=(Token)match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_ruleGlobalCombinator2180); if (state.failed) return current; 
     3232            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1112:2: ( (lv_logic_2_0= RULE_LOGIC ) ) 
     3233            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1113:1: (lv_logic_2_0= RULE_LOGIC ) 
     3234            { 
     3235            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1113:1: (lv_logic_2_0= RULE_LOGIC ) 
     3236            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1114:3: lv_logic_2_0= RULE_LOGIC 
     3237            { 
     3238            lv_logic_2_0=(Token)match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_ruleGlobalCombinator2312); if (state.failed) return current; 
    30563239            if ( state.backtracking==0 ) { 
    30573240 
     
    30773260            } 
    30783261 
    3079             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1063:2: (otherlv_3= ';' )? 
     3262            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1130:2: (otherlv_3= ';' )? 
    30803263            int alt25=2; 
    30813264            int LA25_0 = input.LA(1); 
     
    30863269            switch (alt25) { 
    30873270                case 1 : 
    3088                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1063:4: otherlv_3= ';' 
    3089                     { 
    3090                     otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleGlobalCombinator2198); if (state.failed) return current; 
     3271                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1130:4: otherlv_3= ';' 
     3272                    { 
     3273                    otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleGlobalCombinator2330); if (state.failed) return current; 
    30913274                    if ( state.backtracking==0 ) { 
    30923275 
     
    31163299            }  
    31173300        finally { 
    3118             if ( state.backtracking>0 ) { memoize(input, 22, ruleGlobalCombinator_StartIndex); } 
     3301            if ( state.backtracking>0 ) { memoize(input, 24, ruleGlobalCombinator_StartIndex); } 
    31193302        } 
    31203303        return current; 
     
    31243307 
    31253308    // $ANTLR start "entryRuleRuleCombinator" 
    3126     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1075:1: entryRuleRuleCombinator returns [EObject current=null] : iv_ruleRuleCombinator= ruleRuleCombinator EOF ; 
     3309    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1142:1: entryRuleRuleCombinator returns [EObject current=null] : iv_ruleRuleCombinator= ruleRuleCombinator EOF ; 
    31273310    public final EObject entryRuleRuleCombinator() throws RecognitionException { 
    31283311        EObject current = null; 
     
    31323315 
    31333316        try { 
    3134             if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return current; } 
    3135             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1076:2: (iv_ruleRuleCombinator= ruleRuleCombinator EOF ) 
    3136             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1077:2: iv_ruleRuleCombinator= ruleRuleCombinator EOF 
     3317            if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return current; } 
     3318            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1143:2: (iv_ruleRuleCombinator= ruleRuleCombinator EOF ) 
     3319            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1144:2: iv_ruleRuleCombinator= ruleRuleCombinator EOF 
    31373320            { 
    31383321            if ( state.backtracking==0 ) { 
    31393322               newCompositeNode(grammarAccess.getRuleCombinatorRule());  
    31403323            } 
    3141             pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator2236); 
     3324            pushFollow(FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator2368); 
    31423325            iv_ruleRuleCombinator=ruleRuleCombinator(); 
    31433326 
     
    31473330               current =iv_ruleRuleCombinator;  
    31483331            } 
    3149             match(input,EOF,FOLLOW_EOF_in_entryRuleRuleCombinator2246); if (state.failed) return current; 
     3332            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleCombinator2378); if (state.failed) return current; 
    31503333 
    31513334            } 
     
    31583341            }  
    31593342        finally { 
    3160             if ( state.backtracking>0 ) { memoize(input, 23, entryRuleRuleCombinator_StartIndex); } 
     3343            if ( state.backtracking>0 ) { memoize(input, 25, entryRuleRuleCombinator_StartIndex); } 
    31613344        } 
    31623345        return current; 
     
    31663349 
    31673350    // $ANTLR start "ruleRuleCombinator" 
    3168     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1084:1: ruleRuleCombinator returns [EObject current=null] : ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) ; 
     3351    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1151:1: ruleRuleCombinator returns [EObject current=null] : ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) ; 
    31693352    public final EObject ruleRuleCombinator() throws RecognitionException { 
    31703353        EObject current = null; 
     
    31823365             
    31833366        try { 
    3184             if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return current; } 
    3185             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1087:28: ( ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) ) 
    3186             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1088:1: ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) 
    3187             { 
    3188             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1088:1: ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) 
    3189             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1088:2: (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? 
    3190             { 
    3191             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1088:2: (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) 
    3192             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1088:4: otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) 
    3193             { 
    3194             otherlv_0=(Token)match(input,38,FOLLOW_38_in_ruleRuleCombinator2284); if (state.failed) return current; 
     3367            if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return current; } 
     3368            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1154:28: ( ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) ) 
     3369            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1155:1: ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) 
     3370            { 
     3371            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1155:1: ( (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? ) 
     3372            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1155:2: (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) ( (lv_logic_3_0= RULE_LOGIC ) ) (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* (otherlv_7= ';' )? 
     3373            { 
     3374            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1155:2: (otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) ) 
     3375            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1155:4: otherlv_0= 'rule' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) 
     3376            { 
     3377            otherlv_0=(Token)match(input,38,FOLLOW_38_in_ruleRuleCombinator2416); if (state.failed) return current; 
    31953378            if ( state.backtracking==0 ) { 
    31963379 
     
    31983381                   
    31993382            } 
    3200             otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleRuleCombinator2296); if (state.failed) return current; 
     3383            otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleRuleCombinator2428); if (state.failed) return current; 
    32013384            if ( state.backtracking==0 ) { 
    32023385 
     
    32043387                   
    32053388            } 
    3206             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1096:1: ( (lv_name_2_0= RULE_ID ) ) 
    3207             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1097:1: (lv_name_2_0= RULE_ID ) 
    3208             { 
    3209             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1097:1: (lv_name_2_0= RULE_ID ) 
    3210             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1098:3: lv_name_2_0= RULE_ID 
    3211             { 
    3212             lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRuleCombinator2313); if (state.failed) return current; 
     3389            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1163:1: ( (lv_name_2_0= RULE_ID ) ) 
     3390            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1164:1: (lv_name_2_0= RULE_ID ) 
     3391            { 
     3392            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1164:1: (lv_name_2_0= RULE_ID ) 
     3393            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1165:3: lv_name_2_0= RULE_ID 
     3394            { 
     3395            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRuleCombinator2445); if (state.failed) return current; 
    32133396            if ( state.backtracking==0 ) { 
    32143397 
     
    32373420            } 
    32383421 
    3239             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1114:3: ( (lv_logic_3_0= RULE_LOGIC ) ) 
    3240             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1115:1: (lv_logic_3_0= RULE_LOGIC ) 
    3241             { 
    3242             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1115:1: (lv_logic_3_0= RULE_LOGIC ) 
    3243             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1116:3: lv_logic_3_0= RULE_LOGIC 
    3244             { 
    3245             lv_logic_3_0=(Token)match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_ruleRuleCombinator2336); if (state.failed) return current; 
     3422            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1181:3: ( (lv_logic_3_0= RULE_LOGIC ) ) 
     3423            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1182:1: (lv_logic_3_0= RULE_LOGIC ) 
     3424            { 
     3425            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1182:1: (lv_logic_3_0= RULE_LOGIC ) 
     3426            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1183:3: lv_logic_3_0= RULE_LOGIC 
     3427            { 
     3428            lv_logic_3_0=(Token)match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_ruleRuleCombinator2468); if (state.failed) return current; 
    32463429            if ( state.backtracking==0 ) { 
    32473430 
     
    32673450            } 
    32683451 
    3269             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1132:2: (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* 
     3452            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1199:2: (otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' )* 
    32703453            loop26: 
    32713454            do { 
     
    32803463                switch (alt26) { 
    32813464                case 1 : 
    3282                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1132:4: otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' 
     3465                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1199:4: otherlv_4= '(' ( (lv_LABEL_5_0= RULE_STRING ) ) otherlv_6= ')' 
    32833466                    { 
    3284                     otherlv_4=(Token)match(input,26,FOLLOW_26_in_ruleRuleCombinator2354); if (state.failed) return current; 
     3467                    otherlv_4=(Token)match(input,26,FOLLOW_26_in_ruleRuleCombinator2486); if (state.failed) return current; 
    32853468                    if ( state.backtracking==0 ) { 
    32863469 
     
    32883471                           
    32893472                    } 
    3290                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1136:1: ( (lv_LABEL_5_0= RULE_STRING ) ) 
    3291                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1137:1: (lv_LABEL_5_0= RULE_STRING ) 
     3473                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1203:1: ( (lv_LABEL_5_0= RULE_STRING ) ) 
     3474                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1204:1: (lv_LABEL_5_0= RULE_STRING ) 
    32923475                    { 
    3293                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1137:1: (lv_LABEL_5_0= RULE_STRING ) 
    3294                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1138:3: lv_LABEL_5_0= RULE_STRING 
     3476                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1204:1: (lv_LABEL_5_0= RULE_STRING ) 
     3477                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1205:3: lv_LABEL_5_0= RULE_STRING 
    32953478                    { 
    3296                     lv_LABEL_5_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleRuleCombinator2371); if (state.failed) return current; 
     3479                    lv_LABEL_5_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleRuleCombinator2503); if (state.failed) return current; 
    32973480                    if ( state.backtracking==0 ) { 
    32983481 
     
    33183501                    } 
    33193502 
    3320                     otherlv_6=(Token)match(input,27,FOLLOW_27_in_ruleRuleCombinator2388); if (state.failed) return current; 
     3503                    otherlv_6=(Token)match(input,27,FOLLOW_27_in_ruleRuleCombinator2520); if (state.failed) return current; 
    33213504                    if ( state.backtracking==0 ) { 
    33223505 
     
    33333516            } while (true); 
    33343517 
    3335             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1158:3: (otherlv_7= ';' )? 
     3518            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1225:3: (otherlv_7= ';' )? 
    33363519            int alt27=2; 
    33373520            int LA27_0 = input.LA(1); 
     
    33423525            switch (alt27) { 
    33433526                case 1 : 
    3344                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1158:5: otherlv_7= ';' 
    3345                     { 
    3346                     otherlv_7=(Token)match(input,15,FOLLOW_15_in_ruleRuleCombinator2403); if (state.failed) return current; 
     3527                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1225:5: otherlv_7= ';' 
     3528                    { 
     3529                    otherlv_7=(Token)match(input,15,FOLLOW_15_in_ruleRuleCombinator2535); if (state.failed) return current; 
    33473530                    if ( state.backtracking==0 ) { 
    33483531 
     
    33723555            }  
    33733556        finally { 
    3374             if ( state.backtracking>0 ) { memoize(input, 24, ruleRuleCombinator_StartIndex); } 
     3557            if ( state.backtracking>0 ) { memoize(input, 26, ruleRuleCombinator_StartIndex); } 
    33753558        } 
    33763559        return current; 
     
    33803563 
    33813564    // $ANTLR start "entryRuleHookCombinator" 
    3382     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1170:1: entryRuleHookCombinator returns [EObject current=null] : iv_ruleHookCombinator= ruleHookCombinator EOF ; 
     3565    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1237:1: entryRuleHookCombinator returns [EObject current=null] : iv_ruleHookCombinator= ruleHookCombinator EOF ; 
    33833566    public final EObject entryRuleHookCombinator() throws RecognitionException { 
    33843567        EObject current = null; 
     
    33883571 
    33893572        try { 
    3390             if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return current; } 
    3391             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1171:2: (iv_ruleHookCombinator= ruleHookCombinator EOF ) 
    3392             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1172:2: iv_ruleHookCombinator= ruleHookCombinator EOF 
     3573            if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return current; } 
     3574            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1238:2: (iv_ruleHookCombinator= ruleHookCombinator EOF ) 
     3575            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1239:2: iv_ruleHookCombinator= ruleHookCombinator EOF 
    33933576            { 
    33943577            if ( state.backtracking==0 ) { 
    33953578               newCompositeNode(grammarAccess.getHookCombinatorRule());  
    33963579            } 
    3397             pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator2441); 
     3580            pushFollow(FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator2573); 
    33983581            iv_ruleHookCombinator=ruleHookCombinator(); 
    33993582 
     
    34033586               current =iv_ruleHookCombinator;  
    34043587            } 
    3405             match(input,EOF,FOLLOW_EOF_in_entryRuleHookCombinator2451); if (state.failed) return current; 
     3588            match(input,EOF,FOLLOW_EOF_in_entryRuleHookCombinator2583); if (state.failed) return current; 
    34063589 
    34073590            } 
     
    34143597            }  
    34153598        finally { 
    3416             if ( state.backtracking>0 ) { memoize(input, 25, entryRuleHookCombinator_StartIndex); } 
     3599            if ( state.backtracking>0 ) { memoize(input, 27, entryRuleHookCombinator_StartIndex); } 
    34173600        } 
    34183601        return current; 
     
    34223605 
    34233606    // $ANTLR start "ruleHookCombinator" 
    3424     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1179:1: ruleHookCombinator returns [EObject current=null] : (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) ; 
     3607    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1246:1: ruleHookCombinator returns [EObject current=null] : (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) ; 
    34253608    public final EObject ruleHookCombinator() throws RecognitionException { 
    34263609        EObject current = null; 
     
    34413624             
    34423625        try { 
    3443             if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return current; } 
    3444             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1182:28: ( (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) ) 
    3445             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1183:1: (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) 
    3446             { 
    3447             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1183:1: (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) 
    3448             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1183:3: otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? 
    3449             { 
    3450             otherlv_0=(Token)match(input,39,FOLLOW_39_in_ruleHookCombinator2488); if (state.failed) return current; 
     3626            if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return current; } 
     3627            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1249:28: ( (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) ) 
     3628            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1250:1: (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) 
     3629            { 
     3630            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1250:1: (otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? ) 
     3631            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1250:3: otherlv_0= 'hook' otherlv_1= 'combinator:' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_ruleext_4_0= RULE_INT ) ) otherlv_5= ')' ( (lv_logic_6_0= RULE_LOGIC ) )? (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ (otherlv_10= ';' )? 
     3632            { 
     3633            otherlv_0=(Token)match(input,39,FOLLOW_39_in_ruleHookCombinator2620); if (state.failed) return current; 
    34513634            if ( state.backtracking==0 ) { 
    34523635 
     
    34543637                   
    34553638            } 
    3456             otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleHookCombinator2500); if (state.failed) return current; 
     3639            otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleHookCombinator2632); if (state.failed) return current; 
    34573640            if ( state.backtracking==0 ) { 
    34583641 
     
    34603643                   
    34613644            } 
    3462             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1191:1: ( (lv_name_2_0= RULE_ID ) ) 
    3463             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1192:1: (lv_name_2_0= RULE_ID ) 
    3464             { 
    3465             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1192:1: (lv_name_2_0= RULE_ID ) 
    3466             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1193:3: lv_name_2_0= RULE_ID 
    3467             { 
    3468             lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleHookCombinator2517); if (state.failed) return current; 
     3645            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1258:1: ( (lv_name_2_0= RULE_ID ) ) 
     3646            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1259:1: (lv_name_2_0= RULE_ID ) 
     3647            { 
     3648            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1259:1: (lv_name_2_0= RULE_ID ) 
     3649            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1260:3: lv_name_2_0= RULE_ID 
     3650            { 
     3651            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleHookCombinator2649); if (state.failed) return current; 
    34693652            if ( state.backtracking==0 ) { 
    34703653 
     
    34903673            } 
    34913674 
    3492             otherlv_3=(Token)match(input,26,FOLLOW_26_in_ruleHookCombinator2534); if (state.failed) return current; 
     3675            otherlv_3=(Token)match(input,26,FOLLOW_26_in_ruleHookCombinator2666); if (state.failed) return current; 
    34933676            if ( state.backtracking==0 ) { 
    34943677 
     
    34963679                   
    34973680            } 
    3498             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1213:1: ( (lv_ruleext_4_0= RULE_INT ) ) 
    3499             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1214:1: (lv_ruleext_4_0= RULE_INT ) 
    3500             { 
    3501             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1214:1: (lv_ruleext_4_0= RULE_INT ) 
    3502             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1215:3: lv_ruleext_4_0= RULE_INT 
    3503             { 
    3504             lv_ruleext_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleHookCombinator2551); if (state.failed) return current; 
     3681            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1280:1: ( (lv_ruleext_4_0= RULE_INT ) ) 
     3682            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1281:1: (lv_ruleext_4_0= RULE_INT ) 
     3683            { 
     3684            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1281:1: (lv_ruleext_4_0= RULE_INT ) 
     3685            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1282:3: lv_ruleext_4_0= RULE_INT 
     3686            { 
     3687            lv_ruleext_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleHookCombinator2683); if (state.failed) return current; 
    35053688            if ( state.backtracking==0 ) { 
    35063689 
     
    35263709            } 
    35273710 
    3528             otherlv_5=(Token)match(input,27,FOLLOW_27_in_ruleHookCombinator2568); if (state.failed) return current; 
     3711            otherlv_5=(Token)match(input,27,FOLLOW_27_in_ruleHookCombinator2700); if (state.failed) return current; 
    35293712            if ( state.backtracking==0 ) { 
    35303713 
     
    35323715                   
    35333716            } 
    3534             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1235:1: ( (lv_logic_6_0= RULE_LOGIC ) )? 
     3717            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1302:1: ( (lv_logic_6_0= RULE_LOGIC ) )? 
    35353718            int alt28=2; 
    35363719            int LA28_0 = input.LA(1); 
     
    35413724            switch (alt28) { 
    35423725                case 1 : 
    3543                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1236:1: (lv_logic_6_0= RULE_LOGIC ) 
    3544                     { 
    3545                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1236:1: (lv_logic_6_0= RULE_LOGIC ) 
    3546                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1237:3: lv_logic_6_0= RULE_LOGIC 
    3547                     { 
    3548                     lv_logic_6_0=(Token)match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_ruleHookCombinator2585); if (state.failed) return current; 
     3726                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1303:1: (lv_logic_6_0= RULE_LOGIC ) 
     3727                    { 
     3728                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1303:1: (lv_logic_6_0= RULE_LOGIC ) 
     3729                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1304:3: lv_logic_6_0= RULE_LOGIC 
     3730                    { 
     3731                    lv_logic_6_0=(Token)match(input,RULE_LOGIC,FOLLOW_RULE_LOGIC_in_ruleHookCombinator2717); if (state.failed) return current; 
    35493732                    if ( state.backtracking==0 ) { 
    35503733 
     
    35733756            } 
    35743757 
    3575             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1253:3: (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ 
     3758            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1320:3: (otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' )+ 
    35763759            int cnt29=0; 
    35773760            loop29: 
     
    35873770                switch (alt29) { 
    35883771                case 1 : 
    3589                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1253:5: otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' 
     3772                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1320:5: otherlv_7= '(' ( (lv_LABEL_8_0= RULE_STRING ) ) otherlv_9= ')' 
    35903773                    { 
    3591                     otherlv_7=(Token)match(input,26,FOLLOW_26_in_ruleHookCombinator2604); if (state.failed) return current; 
     3774                    otherlv_7=(Token)match(input,26,FOLLOW_26_in_ruleHookCombinator2736); if (state.failed) return current; 
    35923775                    if ( state.backtracking==0 ) { 
    35933776 
     
    35953778                           
    35963779                    } 
    3597                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1257:1: ( (lv_LABEL_8_0= RULE_STRING ) ) 
    3598                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1258:1: (lv_LABEL_8_0= RULE_STRING ) 
     3780                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1324:1: ( (lv_LABEL_8_0= RULE_STRING ) ) 
     3781                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1325:1: (lv_LABEL_8_0= RULE_STRING ) 
    35993782                    { 
    3600                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1258:1: (lv_LABEL_8_0= RULE_STRING ) 
    3601                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1259:3: lv_LABEL_8_0= RULE_STRING 
     3783                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1325:1: (lv_LABEL_8_0= RULE_STRING ) 
     3784                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1326:3: lv_LABEL_8_0= RULE_STRING 
    36023785                    { 
    3603                     lv_LABEL_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleHookCombinator2621); if (state.failed) return current; 
     3786                    lv_LABEL_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleHookCombinator2753); if (state.failed) return current; 
    36043787                    if ( state.backtracking==0 ) { 
    36053788 
     
    36253808                    } 
    36263809 
    3627                     otherlv_9=(Token)match(input,27,FOLLOW_27_in_ruleHookCombinator2638); if (state.failed) return current; 
     3810                    otherlv_9=(Token)match(input,27,FOLLOW_27_in_ruleHookCombinator2770); if (state.failed) return current; 
    36283811                    if ( state.backtracking==0 ) { 
    36293812 
     
    36453828            } while (true); 
    36463829 
    3647             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1279:3: (otherlv_10= ';' )? 
     3830            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1346:3: (otherlv_10= ';' )? 
    36483831            int alt30=2; 
    36493832            int LA30_0 = input.LA(1); 
     
    36543837            switch (alt30) { 
    36553838                case 1 : 
    3656                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1279:5: otherlv_10= ';' 
    3657                     { 
    3658                     otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleHookCombinator2653); if (state.failed) return current; 
     3839                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1346:5: otherlv_10= ';' 
     3840                    { 
     3841                    otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleHookCombinator2785); if (state.failed) return current; 
    36593842                    if ( state.backtracking==0 ) { 
    36603843 
     
    36843867            }  
    36853868        finally { 
    3686             if ( state.backtracking>0 ) { memoize(input, 26, ruleHookCombinator_StartIndex); } 
     3869            if ( state.backtracking>0 ) { memoize(input, 28, ruleHookCombinator_StartIndex); } 
    36873870        } 
    36883871        return current; 
     
    36923875 
    36933876    // $ANTLR start "entryRuleDefinitionList" 
    3694     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1291:1: entryRuleDefinitionList returns [EObject current=null] : iv_ruleDefinitionList= ruleDefinitionList EOF ; 
     3877    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1358:1: entryRuleDefinitionList returns [EObject current=null] : iv_ruleDefinitionList= ruleDefinitionList EOF ; 
    36953878    public final EObject entryRuleDefinitionList() throws RecognitionException { 
    36963879        EObject current = null; 
     
    37003883 
    37013884        try { 
    3702             if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return current; } 
    3703             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1292:2: (iv_ruleDefinitionList= ruleDefinitionList EOF ) 
    3704             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1293:2: iv_ruleDefinitionList= ruleDefinitionList EOF 
     3885            if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return current; } 
     3886            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1359:2: (iv_ruleDefinitionList= ruleDefinitionList EOF ) 
     3887            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1360:2: iv_ruleDefinitionList= ruleDefinitionList EOF 
    37053888            { 
    37063889            if ( state.backtracking==0 ) { 
    37073890               newCompositeNode(grammarAccess.getDefinitionListRule());  
    37083891            } 
    3709             pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList2691); 
     3892            pushFollow(FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList2823); 
    37103893            iv_ruleDefinitionList=ruleDefinitionList(); 
    37113894 
     
    37153898               current =iv_ruleDefinitionList;  
    37163899            } 
    3717             match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitionList2701); if (state.failed) return current; 
     3900            match(input,EOF,FOLLOW_EOF_in_entryRuleDefinitionList2833); if (state.failed) return current; 
    37183901 
    37193902            } 
     
    37263909            }  
    37273910        finally { 
    3728             if ( state.backtracking>0 ) { memoize(input, 27, entryRuleDefinitionList_StartIndex); } 
     3911            if ( state.backtracking>0 ) { memoize(input, 29, entryRuleDefinitionList_StartIndex); } 
    37293912        } 
    37303913        return current; 
     
    37343917 
    37353918    // $ANTLR start "ruleDefinitionList" 
    3736     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1300:1: ruleDefinitionList returns [EObject current=null] : ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) ; 
     3919    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1367:1: ruleDefinitionList returns [EObject current=null] : ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) ; 
    37373920    public final EObject ruleDefinitionList() throws RecognitionException { 
    37383921        EObject current = null; 
     
    37473930             
    37483931        try { 
    3749             if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return current; } 
    3750             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1303:28: ( ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) ) 
    3751             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1304:1: ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) 
    3752             { 
    3753             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1304:1: ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) 
    3754             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1304:2: ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* 
    3755             { 
    3756             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1304:2: ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) 
    3757             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1305:1: (lv_singleDefinition_0_0= ruleSingleDefinition ) 
    3758             { 
    3759             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1305:1: (lv_singleDefinition_0_0= ruleSingleDefinition ) 
    3760             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1306:3: lv_singleDefinition_0_0= ruleSingleDefinition 
     3932            if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return current; } 
     3933            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1370:28: ( ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) ) 
     3934            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1371:1: ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) 
     3935            { 
     3936            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1371:1: ( ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* ) 
     3937            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1371:2: ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* 
     3938            { 
     3939            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1371:2: ( (lv_singleDefinition_0_0= ruleSingleDefinition ) ) 
     3940            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1372:1: (lv_singleDefinition_0_0= ruleSingleDefinition ) 
     3941            { 
     3942            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1372:1: (lv_singleDefinition_0_0= ruleSingleDefinition ) 
     3943            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1373:3: lv_singleDefinition_0_0= ruleSingleDefinition 
    37613944            { 
    37623945            if ( state.backtracking==0 ) { 
     
    37653948                     
    37663949            } 
    3767             pushFollow(FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2747); 
     3950            pushFollow(FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2879); 
    37683951            lv_singleDefinition_0_0=ruleSingleDefinition(); 
    37693952 
     
    37893972            } 
    37903973 
    3791             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1322:2: (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* 
     3974            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1389:2: (otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) )* 
    37923975            loop31: 
    37933976            do { 
     
    38023985                switch (alt31) { 
    38033986                case 1 : 
    3804                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1322:4: otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) 
     3987                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1389:4: otherlv_1= '|' ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) 
    38053988                    { 
    3806                     otherlv_1=(Token)match(input,31,FOLLOW_31_in_ruleDefinitionList2760); if (state.failed) return current; 
     3989                    otherlv_1=(Token)match(input,31,FOLLOW_31_in_ruleDefinitionList2892); if (state.failed) return current; 
    38073990                    if ( state.backtracking==0 ) { 
    38083991 
     
    38103993                           
    38113994                    } 
    3812                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1326:1: ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) 
    3813                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1327:1: (lv_singleDefinition_2_0= ruleSingleDefinition ) 
     3995                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1393:1: ( (lv_singleDefinition_2_0= ruleSingleDefinition ) ) 
     3996                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1394:1: (lv_singleDefinition_2_0= ruleSingleDefinition ) 
    38143997                    { 
    3815                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1327:1: (lv_singleDefinition_2_0= ruleSingleDefinition ) 
    3816                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1328:3: lv_singleDefinition_2_0= ruleSingleDefinition 
     3998                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1394:1: (lv_singleDefinition_2_0= ruleSingleDefinition ) 
     3999                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1395:3: lv_singleDefinition_2_0= ruleSingleDefinition 
    38174000                    { 
    38184001                    if ( state.backtracking==0 ) { 
     
    38214004                             
    38224005                    } 
    3823                     pushFollow(FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2781); 
     4006                    pushFollow(FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2913); 
    38244007                    lv_singleDefinition_2_0=ruleSingleDefinition(); 
    38254008 
     
    38704053            }  
    38714054        finally { 
    3872             if ( state.backtracking>0 ) { memoize(input, 28, ruleDefinitionList_StartIndex); } 
     4055            if ( state.backtracking>0 ) { memoize(input, 30, ruleDefinitionList_StartIndex); } 
    38734056        } 
    38744057        return current; 
     
    38784061 
    38794062    // $ANTLR start "entryRuleSingleDefinition" 
    3880     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1352:1: entryRuleSingleDefinition returns [EObject current=null] : iv_ruleSingleDefinition= ruleSingleDefinition EOF ; 
     4063    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1419:1: entryRuleSingleDefinition returns [EObject current=null] : iv_ruleSingleDefinition= ruleSingleDefinition EOF ; 
    38814064    public final EObject entryRuleSingleDefinition() throws RecognitionException { 
    38824065        EObject current = null; 
     
    38864069 
    38874070        try { 
    3888             if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return current; } 
    3889             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1353:2: (iv_ruleSingleDefinition= ruleSingleDefinition EOF ) 
    3890             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1354:2: iv_ruleSingleDefinition= ruleSingleDefinition EOF 
     4071            if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return current; } 
     4072            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1420:2: (iv_ruleSingleDefinition= ruleSingleDefinition EOF ) 
     4073            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1421:2: iv_ruleSingleDefinition= ruleSingleDefinition EOF 
    38914074            { 
    38924075            if ( state.backtracking==0 ) { 
    38934076               newCompositeNode(grammarAccess.getSingleDefinitionRule());  
    38944077            } 
    3895             pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition2819); 
     4078            pushFollow(FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition2951); 
    38964079            iv_ruleSingleDefinition=ruleSingleDefinition(); 
    38974080 
     
    39014084               current =iv_ruleSingleDefinition;  
    39024085            } 
    3903             match(input,EOF,FOLLOW_EOF_in_entryRuleSingleDefinition2829); if (state.failed) return current; 
     4086            match(input,EOF,FOLLOW_EOF_in_entryRuleSingleDefinition2961); if (state.failed) return current; 
    39044087 
    39054088            } 
     
    39124095            }  
    39134096        finally { 
    3914             if ( state.backtracking>0 ) { memoize(input, 29, entryRuleSingleDefinition_StartIndex); } 
     4097            if ( state.backtracking>0 ) { memoize(input, 31, entryRuleSingleDefinition_StartIndex); } 
    39154098        } 
    39164099        return current; 
     
    39204103 
    39214104    // $ANTLR start "ruleSingleDefinition" 
    3922     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1361:1: ruleSingleDefinition returns [EObject current=null] : ( (lv_terms_0_0= ruleTerm ) )+ ; 
     4105    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1428:1: ruleSingleDefinition returns [EObject current=null] : ( (lv_terms_0_0= ruleTerm ) )+ ; 
    39234106    public final EObject ruleSingleDefinition() throws RecognitionException { 
    39244107        EObject current = null; 
     
    39304113             
    39314114        try { 
    3932             if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return current; } 
    3933             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1364:28: ( ( (lv_terms_0_0= ruleTerm ) )+ ) 
    3934             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1365:1: ( (lv_terms_0_0= ruleTerm ) )+ 
    3935             { 
    3936             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1365:1: ( (lv_terms_0_0= ruleTerm ) )+ 
     4115            if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return current; } 
     4116            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1431:28: ( ( (lv_terms_0_0= ruleTerm ) )+ ) 
     4117            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1432:1: ( (lv_terms_0_0= ruleTerm ) )+ 
     4118            { 
     4119            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1432:1: ( (lv_terms_0_0= ruleTerm ) )+ 
    39374120            int cnt32=0; 
    39384121            loop32: 
     
    39664149                switch (alt32) { 
    39674150                case 1 : 
    3968                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1366:1: (lv_terms_0_0= ruleTerm ) 
     4151                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1433:1: (lv_terms_0_0= ruleTerm ) 
    39694152                    { 
    3970                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1366:1: (lv_terms_0_0= ruleTerm ) 
    3971                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1367:3: lv_terms_0_0= ruleTerm 
     4153                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1433:1: (lv_terms_0_0= ruleTerm ) 
     4154                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1434:3: lv_terms_0_0= ruleTerm 
    39724155                    { 
    39734156                    if ( state.backtracking==0 ) { 
     
    39764159                             
    39774160                    } 
    3978                     pushFollow(FOLLOW_ruleTerm_in_ruleSingleDefinition2874); 
     4161                    pushFollow(FOLLOW_ruleTerm_in_ruleSingleDefinition3006); 
    39794162                    lv_terms_0_0=ruleTerm(); 
    39804163 
     
    40244207            }  
    40254208        finally { 
    4026             if ( state.backtracking>0 ) { memoize(input, 30, ruleSingleDefinition_StartIndex); } 
     4209            if ( state.backtracking>0 ) { memoize(input, 32, ruleSingleDefinition_StartIndex); } 
    40274210        } 
    40284211        return current; 
     
    40324215 
    40334216    // $ANTLR start "entryRuleTerm" 
    4034     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1391:1: entryRuleTerm returns [EObject current=null] : iv_ruleTerm= ruleTerm EOF ; 
     4217    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1458:1: entryRuleTerm returns [EObject current=null] : iv_ruleTerm= ruleTerm EOF ; 
    40354218    public final EObject entryRuleTerm() throws RecognitionException { 
    40364219        EObject current = null; 
     
    40404223 
    40414224        try { 
    4042             if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return current; } 
    4043             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1392:2: (iv_ruleTerm= ruleTerm EOF ) 
    4044             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1393:2: iv_ruleTerm= ruleTerm EOF 
     4225            if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return current; } 
     4226            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1459:2: (iv_ruleTerm= ruleTerm EOF ) 
     4227            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1460:2: iv_ruleTerm= ruleTerm EOF 
    40454228            { 
    40464229            if ( state.backtracking==0 ) { 
    40474230               newCompositeNode(grammarAccess.getTermRule());  
    40484231            } 
    4049             pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm2910); 
     4232            pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm3042); 
    40504233            iv_ruleTerm=ruleTerm(); 
    40514234 
     
    40554238               current =iv_ruleTerm;  
    40564239            } 
    4057             match(input,EOF,FOLLOW_EOF_in_entryRuleTerm2920); if (state.failed) return current; 
     4240            match(input,EOF,FOLLOW_EOF_in_entryRuleTerm3052); if (state.failed) return current; 
    40584241 
    40594242            } 
     
    40664249            }  
    40674250        finally { 
    4068             if ( state.backtracking>0 ) { memoize(input, 31, entryRuleTerm_StartIndex); } 
     4251            if ( state.backtracking>0 ) { memoize(input, 33, entryRuleTerm_StartIndex); } 
    40694252        } 
    40704253        return current; 
     
    40744257 
    40754258    // $ANTLR start "ruleTerm" 
    4076     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1400:1: ruleTerm returns [EObject current=null] : ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) ; 
     4259    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1467:1: ruleTerm returns [EObject current=null] : ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) ; 
    40774260    public final EObject ruleTerm() throws RecognitionException { 
    40784261        EObject current = null; 
     
    40904273             
    40914274        try { 
    4092             if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return current; } 
    4093             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1403:28: ( ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) ) 
    4094             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1404:1: ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) 
    4095             { 
    4096             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1404:1: ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) 
     4275            if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return current; } 
     4276            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1470:28: ( ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) ) 
     4277            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1471:1: ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) 
     4278            { 
     4279            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1471:1: ( ( (lv_termAtom_0_0= ruleAtom ) ) | ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) | ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) | ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) ) 
    40974280            int alt33=4; 
    40984281            switch ( input.LA(1) ) { 
     
    41294312            switch (alt33) { 
    41304313                case 1 : 
    4131                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1404:2: ( (lv_termAtom_0_0= ruleAtom ) ) 
    4132                     { 
    4133                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1404:2: ( (lv_termAtom_0_0= ruleAtom ) ) 
    4134                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1405:1: (lv_termAtom_0_0= ruleAtom ) 
    4135                     { 
    4136                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1405:1: (lv_termAtom_0_0= ruleAtom ) 
    4137                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1406:3: lv_termAtom_0_0= ruleAtom 
     4314                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1471:2: ( (lv_termAtom_0_0= ruleAtom ) ) 
     4315                    { 
     4316                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1471:2: ( (lv_termAtom_0_0= ruleAtom ) ) 
     4317                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1472:1: (lv_termAtom_0_0= ruleAtom ) 
     4318                    { 
     4319                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1472:1: (lv_termAtom_0_0= ruleAtom ) 
     4320                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1473:3: lv_termAtom_0_0= ruleAtom 
    41384321                    { 
    41394322                    if ( state.backtracking==0 ) { 
     
    41424325                             
    41434326                    } 
    4144                     pushFollow(FOLLOW_ruleAtom_in_ruleTerm2966); 
     4327                    pushFollow(FOLLOW_ruleAtom_in_ruleTerm3098); 
    41454328                    lv_termAtom_0_0=ruleAtom(); 
    41464329 
     
    41704353                    break; 
    41714354                case 2 : 
    4172                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1423:6: ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) 
    4173                     { 
    4174                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1423:6: ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) 
    4175                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1424:1: (lv_termGroupedSequence_1_0= ruleGroupedSequence ) 
    4176                     { 
    4177                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1424:1: (lv_termGroupedSequence_1_0= ruleGroupedSequence ) 
    4178                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1425:3: lv_termGroupedSequence_1_0= ruleGroupedSequence 
     4355                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1490:6: ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) 
     4356                    { 
     4357                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1490:6: ( (lv_termGroupedSequence_1_0= ruleGroupedSequence ) ) 
     4358                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1491:1: (lv_termGroupedSequence_1_0= ruleGroupedSequence ) 
     4359                    { 
     4360                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1491:1: (lv_termGroupedSequence_1_0= ruleGroupedSequence ) 
     4361                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1492:3: lv_termGroupedSequence_1_0= ruleGroupedSequence 
    41794362                    { 
    41804363                    if ( state.backtracking==0 ) { 
     
    41834366                             
    41844367                    } 
    4185                     pushFollow(FOLLOW_ruleGroupedSequence_in_ruleTerm2993); 
     4368                    pushFollow(FOLLOW_ruleGroupedSequence_in_ruleTerm3125); 
    41864369                    lv_termGroupedSequence_1_0=ruleGroupedSequence(); 
    41874370 
     
    42114394                    break; 
    42124395                case 3 : 
    4213                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1442:6: ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) 
    4214                     { 
    4215                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1442:6: ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) 
    4216                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1443:1: (lv_termOptionalSequence_2_0= ruleOptionalSequence ) 
    4217                     { 
    4218                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1443:1: (lv_termOptionalSequence_2_0= ruleOptionalSequence ) 
    4219                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1444:3: lv_termOptionalSequence_2_0= ruleOptionalSequence 
     4396                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1509:6: ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) 
     4397                    { 
     4398                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1509:6: ( (lv_termOptionalSequence_2_0= ruleOptionalSequence ) ) 
     4399                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1510:1: (lv_termOptionalSequence_2_0= ruleOptionalSequence ) 
     4400                    { 
     4401                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1510:1: (lv_termOptionalSequence_2_0= ruleOptionalSequence ) 
     4402                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1511:3: lv_termOptionalSequence_2_0= ruleOptionalSequence 
    42204403                    { 
    42214404                    if ( state.backtracking==0 ) { 
     
    42244407                             
    42254408                    } 
    4226                     pushFollow(FOLLOW_ruleOptionalSequence_in_ruleTerm3020); 
     4409                    pushFollow(FOLLOW_ruleOptionalSequence_in_ruleTerm3152); 
    42274410                    lv_termOptionalSequence_2_0=ruleOptionalSequence(); 
    42284411 
     
    42524435                    break; 
    42534436                case 4 : 
    4254                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1461:6: ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) 
    4255                     { 
    4256                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1461:6: ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) 
    4257                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1462:1: (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) 
    4258                     { 
    4259                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1462:1: (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) 
    4260                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1463:3: lv_termRepeatedSequence_3_0= ruleRepeatedSequence 
     4437                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1528:6: ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) 
     4438                    { 
     4439                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1528:6: ( (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) ) 
     4440                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1529:1: (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) 
     4441                    { 
     4442                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1529:1: (lv_termRepeatedSequence_3_0= ruleRepeatedSequence ) 
     4443                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1530:3: lv_termRepeatedSequence_3_0= ruleRepeatedSequence 
    42614444                    { 
    42624445                    if ( state.backtracking==0 ) { 
     
    42654448                             
    42664449                    } 
    4267                     pushFollow(FOLLOW_ruleRepeatedSequence_in_ruleTerm3047); 
     4450                    pushFollow(FOLLOW_ruleRepeatedSequence_in_ruleTerm3179); 
    42684451                    lv_termRepeatedSequence_3_0=ruleRepeatedSequence(); 
    42694452 
     
    43084491            }  
    43094492        finally { 
    4310             if ( state.backtracking>0 ) { memoize(input, 32, ruleTerm_StartIndex); } 
     4493            if ( state.backtracking>0 ) { memoize(input, 34, ruleTerm_StartIndex); } 
    43114494        } 
    43124495        return current; 
     
    43164499 
    43174500    // $ANTLR start "entryRuleAtom" 
    4318     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1487:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ; 
     4501    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1554:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ; 
    43194502    public final EObject entryRuleAtom() throws RecognitionException { 
    43204503        EObject current = null; 
     
    43244507 
    43254508        try { 
    4326             if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return current; } 
    4327             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1488:2: (iv_ruleAtom= ruleAtom EOF ) 
    4328             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1489:2: iv_ruleAtom= ruleAtom EOF 
     4509            if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return current; } 
     4510            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1555:2: (iv_ruleAtom= ruleAtom EOF ) 
     4511            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1556:2: iv_ruleAtom= ruleAtom EOF 
    43294512            { 
    43304513            if ( state.backtracking==0 ) { 
    43314514               newCompositeNode(grammarAccess.getAtomRule());  
    43324515            } 
    4333             pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom3083); 
     4516            pushFollow(FOLLOW_ruleAtom_in_entryRuleAtom3215); 
    43344517            iv_ruleAtom=ruleAtom(); 
    43354518 
     
    43394522               current =iv_ruleAtom;  
    43404523            } 
    4341             match(input,EOF,FOLLOW_EOF_in_entryRuleAtom3093); if (state.failed) return current; 
     4524            match(input,EOF,FOLLOW_EOF_in_entryRuleAtom3225); if (state.failed) return current; 
    43424525 
    43434526            } 
     
    43504533            }  
    43514534        finally { 
    4352             if ( state.backtracking>0 ) { memoize(input, 33, entryRuleAtom_StartIndex); } 
     4535            if ( state.backtracking>0 ) { memoize(input, 35, entryRuleAtom_StartIndex); } 
    43534536        } 
    43544537        return current; 
     
    43584541 
    43594542    // $ANTLR start "ruleAtom" 
    4360     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1496:1: ruleAtom returns [EObject current=null] : ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) ; 
     4543    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1563:1: ruleAtom returns [EObject current=null] : ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) ; 
    43614544    public final EObject ruleAtom() throws RecognitionException { 
    43624545        EObject current = null; 
     
    43704553             
    43714554        try { 
    4372             if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return current; } 
    4373             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1499:28: ( ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) ) 
    4374             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1500:1: ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) 
    4375             { 
    4376             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1500:1: ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) 
     4555            if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return current; } 
     4556            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1566:28: ( ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) ) 
     4557            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1567:1: ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) 
     4558            { 
     4559            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1567:1: ( ( (lv_atomStringRule_0_0= ruleStringRule ) ) | ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) ) 
    43774560            int alt34=2; 
    43784561            int LA34_0 = input.LA(1); 
     
    43934576            switch (alt34) { 
    43944577                case 1 : 
    4395                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1500:2: ( (lv_atomStringRule_0_0= ruleStringRule ) ) 
    4396                     { 
    4397                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1500:2: ( (lv_atomStringRule_0_0= ruleStringRule ) ) 
    4398                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1501:1: (lv_atomStringRule_0_0= ruleStringRule ) 
    4399                     { 
    4400                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1501:1: (lv_atomStringRule_0_0= ruleStringRule ) 
    4401                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1502:3: lv_atomStringRule_0_0= ruleStringRule 
     4578                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1567:2: ( (lv_atomStringRule_0_0= ruleStringRule ) ) 
     4579                    { 
     4580                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1567:2: ( (lv_atomStringRule_0_0= ruleStringRule ) ) 
     4581                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1568:1: (lv_atomStringRule_0_0= ruleStringRule ) 
     4582                    { 
     4583                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1568:1: (lv_atomStringRule_0_0= ruleStringRule ) 
     4584                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1569:3: lv_atomStringRule_0_0= ruleStringRule 
    44024585                    { 
    44034586                    if ( state.backtracking==0 ) { 
     
    44064589                             
    44074590                    } 
    4408                     pushFollow(FOLLOW_ruleStringRule_in_ruleAtom3139); 
     4591                    pushFollow(FOLLOW_ruleStringRule_in_ruleAtom3271); 
    44094592                    lv_atomStringRule_0_0=ruleStringRule(); 
    44104593 
     
    44344617                    break; 
    44354618                case 2 : 
    4436                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1519:6: ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) 
    4437                     { 
    4438                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1519:6: ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) 
    4439                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1520:1: (lv_atomRuleReference_1_0= ruleRuleReference ) 
    4440                     { 
    4441                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1520:1: (lv_atomRuleReference_1_0= ruleRuleReference ) 
    4442                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1521:3: lv_atomRuleReference_1_0= ruleRuleReference 
     4619                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1586:6: ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) 
     4620                    { 
     4621                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1586:6: ( (lv_atomRuleReference_1_0= ruleRuleReference ) ) 
     4622                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1587:1: (lv_atomRuleReference_1_0= ruleRuleReference ) 
     4623                    { 
     4624                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1587:1: (lv_atomRuleReference_1_0= ruleRuleReference ) 
     4625                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1588:3: lv_atomRuleReference_1_0= ruleRuleReference 
    44434626                    { 
    44444627                    if ( state.backtracking==0 ) { 
     
    44474630                             
    44484631                    } 
    4449                     pushFollow(FOLLOW_ruleRuleReference_in_ruleAtom3166); 
     4632                    pushFollow(FOLLOW_ruleRuleReference_in_ruleAtom3298); 
    44504633                    lv_atomRuleReference_1_0=ruleRuleReference(); 
    44514634 
     
    44904673            }  
    44914674        finally { 
    4492             if ( state.backtracking>0 ) { memoize(input, 34, ruleAtom_StartIndex); } 
     4675            if ( state.backtracking>0 ) { memoize(input, 36, ruleAtom_StartIndex); } 
    44934676        } 
    44944677        return current; 
     
    44984681 
    44994682    // $ANTLR start "entryRuleRuleReference" 
    4500     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1545:1: entryRuleRuleReference returns [EObject current=null] : iv_ruleRuleReference= ruleRuleReference EOF ; 
     4683    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1612:1: entryRuleRuleReference returns [EObject current=null] : iv_ruleRuleReference= ruleRuleReference EOF ; 
    45014684    public final EObject entryRuleRuleReference() throws RecognitionException { 
    45024685        EObject current = null; 
     
    45064689 
    45074690        try { 
    4508             if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return current; } 
    4509             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1546:2: (iv_ruleRuleReference= ruleRuleReference EOF ) 
    4510             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1547:2: iv_ruleRuleReference= ruleRuleReference EOF 
     4691            if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return current; } 
     4692            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1613:2: (iv_ruleRuleReference= ruleRuleReference EOF ) 
     4693            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1614:2: iv_ruleRuleReference= ruleRuleReference EOF 
    45114694            { 
    45124695            if ( state.backtracking==0 ) { 
    45134696               newCompositeNode(grammarAccess.getRuleReferenceRule());  
    45144697            } 
    4515             pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference3202); 
     4698            pushFollow(FOLLOW_ruleRuleReference_in_entryRuleRuleReference3334); 
    45164699            iv_ruleRuleReference=ruleRuleReference(); 
    45174700 
     
    45214704               current =iv_ruleRuleReference;  
    45224705            } 
    4523             match(input,EOF,FOLLOW_EOF_in_entryRuleRuleReference3212); if (state.failed) return current; 
     4706            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleReference3344); if (state.failed) return current; 
    45244707 
    45254708            } 
     
    45324715            }  
    45334716        finally { 
    4534             if ( state.backtracking>0 ) { memoize(input, 35, entryRuleRuleReference_StartIndex); } 
     4717            if ( state.backtracking>0 ) { memoize(input, 37, entryRuleRuleReference_StartIndex); } 
    45354718        } 
    45364719        return current; 
     
    45404723 
    45414724    // $ANTLR start "ruleRuleReference" 
    4542     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1554:1: ruleRuleReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ; 
     4725    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1621:1: ruleRuleReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ; 
    45434726    public final EObject ruleRuleReference() throws RecognitionException { 
    45444727        EObject current = null; 
     
    45494732             
    45504733        try { 
    4551             if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return current; } 
    4552             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1557:28: ( ( (otherlv_0= RULE_ID ) ) ) 
    4553             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1558:1: ( (otherlv_0= RULE_ID ) ) 
    4554             { 
    4555             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1558:1: ( (otherlv_0= RULE_ID ) ) 
    4556             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1559:1: (otherlv_0= RULE_ID ) 
    4557             { 
    4558             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1559:1: (otherlv_0= RULE_ID ) 
    4559             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1560:3: otherlv_0= RULE_ID 
     4734            if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return current; } 
     4735            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1624:28: ( ( (otherlv_0= RULE_ID ) ) ) 
     4736            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1625:1: ( (otherlv_0= RULE_ID ) ) 
     4737            { 
     4738            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1625:1: ( (otherlv_0= RULE_ID ) ) 
     4739            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1626:1: (otherlv_0= RULE_ID ) 
     4740            { 
     4741            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1626:1: (otherlv_0= RULE_ID ) 
     4742            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1627:3: otherlv_0= RULE_ID 
    45604743            { 
    45614744            if ( state.backtracking==0 ) { 
     
    45714754                       
    45724755            } 
    4573             otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRuleReference3260); if (state.failed) return current; 
     4756            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRuleReference3392); if (state.failed) return current; 
    45744757            if ( state.backtracking==0 ) { 
    45754758 
     
    45964779            }  
    45974780        finally { 
    4598             if ( state.backtracking>0 ) { memoize(input, 36, ruleRuleReference_StartIndex); } 
     4781            if ( state.backtracking>0 ) { memoize(input, 38, ruleRuleReference_StartIndex); } 
    45994782        } 
    46004783        return current; 
     
    46044787 
    46054788    // $ANTLR start "entryRuleStringRule" 
    4606     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1582:1: entryRuleStringRule returns [EObject current=null] : iv_ruleStringRule= ruleStringRule EOF ; 
     4789    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1649:1: entryRuleStringRule returns [EObject current=null] : iv_ruleStringRule= ruleStringRule EOF ; 
    46074790    public final EObject entryRuleStringRule() throws RecognitionException { 
    46084791        EObject current = null; 
     
    46124795 
    46134796        try { 
    4614             if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return current; } 
    4615             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1583:2: (iv_ruleStringRule= ruleStringRule EOF ) 
    4616             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1584:2: iv_ruleStringRule= ruleStringRule EOF 
     4797            if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return current; } 
     4798            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1650:2: (iv_ruleStringRule= ruleStringRule EOF ) 
     4799            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1651:2: iv_ruleStringRule= ruleStringRule EOF 
    46174800            { 
    46184801            if ( state.backtracking==0 ) { 
    46194802               newCompositeNode(grammarAccess.getStringRuleRule());  
    46204803            } 
    4621             pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule3295); 
     4804            pushFollow(FOLLOW_ruleStringRule_in_entryRuleStringRule3427); 
    46224805            iv_ruleStringRule=ruleStringRule(); 
    46234806 
     
    46274810               current =iv_ruleStringRule;  
    46284811            } 
    4629             match(input,EOF,FOLLOW_EOF_in_entryRuleStringRule3305); if (state.failed) return current; 
     4812            match(input,EOF,FOLLOW_EOF_in_entryRuleStringRule3437); if (state.failed) return current; 
    46304813 
    46314814            } 
     
    46384821            }  
    46394822        finally { 
    4640             if ( state.backtracking>0 ) { memoize(input, 37, entryRuleStringRule_StartIndex); } 
     4823            if ( state.backtracking>0 ) { memoize(input, 39, entryRuleStringRule_StartIndex); } 
    46414824        } 
    46424825        return current; 
     
    46464829 
    46474830    // $ANTLR start "ruleStringRule" 
    4648     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1591:1: ruleStringRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) ; 
     4831    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1658:1: ruleStringRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) ; 
    46494832    public final EObject ruleStringRule() throws RecognitionException { 
    46504833        EObject current = null; 
     
    46564839             
    46574840        try { 
    4658             if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return current; } 
    4659             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1594:28: ( ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) ) 
    4660             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1595:1: ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) 
    4661             { 
    4662             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1595:1: ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) 
     4841            if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return current; } 
     4842            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1661:28: ( ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) ) 
     4843            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1662:1: ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) 
     4844            { 
     4845            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1662:1: ( ( (lv_literal_0_0= RULE_STRING ) ) | ( (lv_colon_1_0= RULE_COLON ) ) ) 
    46634846            int alt35=2; 
    46644847            int LA35_0 = input.LA(1); 
     
    46794862            switch (alt35) { 
    46804863                case 1 : 
    4681                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1595:2: ( (lv_literal_0_0= RULE_STRING ) ) 
    4682                     { 
    4683                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1595:2: ( (lv_literal_0_0= RULE_STRING ) ) 
    4684                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1596:1: (lv_literal_0_0= RULE_STRING ) 
    4685                     { 
    4686                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1596:1: (lv_literal_0_0= RULE_STRING ) 
    4687                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1597:3: lv_literal_0_0= RULE_STRING 
    4688                     { 
    4689                     lv_literal_0_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleStringRule3347); if (state.failed) return current; 
     4864                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1662:2: ( (lv_literal_0_0= RULE_STRING ) ) 
     4865                    { 
     4866                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1662:2: ( (lv_literal_0_0= RULE_STRING ) ) 
     4867                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1663:1: (lv_literal_0_0= RULE_STRING ) 
     4868                    { 
     4869                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1663:1: (lv_literal_0_0= RULE_STRING ) 
     4870                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1664:3: lv_literal_0_0= RULE_STRING 
     4871                    { 
     4872                    lv_literal_0_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleStringRule3479); if (state.failed) return current; 
    46904873                    if ( state.backtracking==0 ) { 
    46914874 
     
    47154898                    break; 
    47164899                case 2 : 
    4717                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1614:6: ( (lv_colon_1_0= RULE_COLON ) ) 
    4718                     { 
    4719                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1614:6: ( (lv_colon_1_0= RULE_COLON ) ) 
    4720                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1615:1: (lv_colon_1_0= RULE_COLON ) 
    4721                     { 
    4722                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1615:1: (lv_colon_1_0= RULE_COLON ) 
    4723                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1616:3: lv_colon_1_0= RULE_COLON 
    4724                     { 
    4725                     lv_colon_1_0=(Token)match(input,RULE_COLON,FOLLOW_RULE_COLON_in_ruleStringRule3375); if (state.failed) return current; 
     4900                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1681:6: ( (lv_colon_1_0= RULE_COLON ) ) 
     4901                    { 
     4902                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1681:6: ( (lv_colon_1_0= RULE_COLON ) ) 
     4903                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1682:1: (lv_colon_1_0= RULE_COLON ) 
     4904                    { 
     4905                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1682:1: (lv_colon_1_0= RULE_COLON ) 
     4906                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1683:3: lv_colon_1_0= RULE_COLON 
     4907                    { 
     4908                    lv_colon_1_0=(Token)match(input,RULE_COLON,FOLLOW_RULE_COLON_in_ruleStringRule3507); if (state.failed) return current; 
    47264909                    if ( state.backtracking==0 ) { 
    47274910 
     
    47664949            }  
    47674950        finally { 
    4768             if ( state.backtracking>0 ) { memoize(input, 38, ruleStringRule_StartIndex); } 
     4951            if ( state.backtracking>0 ) { memoize(input, 40, ruleStringRule_StartIndex); } 
    47694952        } 
    47704953        return current; 
     
    47744957 
    47754958    // $ANTLR start "entryRuleGroupedSequence" 
    4776     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1640:1: entryRuleGroupedSequence returns [EObject current=null] : iv_ruleGroupedSequence= ruleGroupedSequence EOF ; 
     4959    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1707:1: entryRuleGroupedSequence returns [EObject current=null] : iv_ruleGroupedSequence= ruleGroupedSequence EOF ; 
    47774960    public final EObject entryRuleGroupedSequence() throws RecognitionException { 
    47784961        EObject current = null; 
     
    47824965 
    47834966        try { 
    4784             if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return current; } 
    4785             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1641:2: (iv_ruleGroupedSequence= ruleGroupedSequence EOF ) 
    4786             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1642:2: iv_ruleGroupedSequence= ruleGroupedSequence EOF 
     4967            if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return current; } 
     4968            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1708:2: (iv_ruleGroupedSequence= ruleGroupedSequence EOF ) 
     4969            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1709:2: iv_ruleGroupedSequence= ruleGroupedSequence EOF 
    47874970            { 
    47884971            if ( state.backtracking==0 ) { 
    47894972               newCompositeNode(grammarAccess.getGroupedSequenceRule());  
    47904973            } 
    4791             pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence3416); 
     4974            pushFollow(FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence3548); 
    47924975            iv_ruleGroupedSequence=ruleGroupedSequence(); 
    47934976 
     
    47974980               current =iv_ruleGroupedSequence;  
    47984981            } 
    4799             match(input,EOF,FOLLOW_EOF_in_entryRuleGroupedSequence3426); if (state.failed) return current; 
     4982            match(input,EOF,FOLLOW_EOF_in_entryRuleGroupedSequence3558); if (state.failed) return current; 
    48004983 
    48014984            } 
     
    48084991            }  
    48094992        finally { 
    4810             if ( state.backtracking>0 ) { memoize(input, 39, entryRuleGroupedSequence_StartIndex); } 
     4993            if ( state.backtracking>0 ) { memoize(input, 41, entryRuleGroupedSequence_StartIndex); } 
    48114994        } 
    48124995        return current; 
     
    48164999 
    48175000    // $ANTLR start "ruleGroupedSequence" 
    4818     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1649:1: ruleGroupedSequence returns [EObject current=null] : (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) ; 
     5001    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1716:1: ruleGroupedSequence returns [EObject current=null] : (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) ; 
    48195002    public final EObject ruleGroupedSequence() throws RecognitionException { 
    48205003        EObject current = null; 
     
    48285011             
    48295012        try { 
    4830             if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return current; } 
    4831             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1652:28: ( (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) ) 
    4832             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1653:1: (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) 
    4833             { 
    4834             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1653:1: (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) 
    4835             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1653:3: otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' 
    4836             { 
    4837             otherlv_0=(Token)match(input,26,FOLLOW_26_in_ruleGroupedSequence3463); if (state.failed) return current; 
     5013            if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return current; } 
     5014            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1719:28: ( (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) ) 
     5015            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1720:1: (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) 
     5016            { 
     5017            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1720:1: (otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' ) 
     5018            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1720:3: otherlv_0= '(' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ')' 
     5019            { 
     5020            otherlv_0=(Token)match(input,26,FOLLOW_26_in_ruleGroupedSequence3595); if (state.failed) return current; 
    48385021            if ( state.backtracking==0 ) { 
    48395022 
     
    48415024                   
    48425025            } 
    4843             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1657:1: ( (lv_definitionList_1_0= ruleDefinitionList ) ) 
    4844             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1658:1: (lv_definitionList_1_0= ruleDefinitionList ) 
    4845             { 
    4846             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1658:1: (lv_definitionList_1_0= ruleDefinitionList ) 
    4847             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1659:3: lv_definitionList_1_0= ruleDefinitionList 
     5026            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1724:1: ( (lv_definitionList_1_0= ruleDefinitionList ) ) 
     5027            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1725:1: (lv_definitionList_1_0= ruleDefinitionList ) 
     5028            { 
     5029            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1725:1: (lv_definitionList_1_0= ruleDefinitionList ) 
     5030            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1726:3: lv_definitionList_1_0= ruleDefinitionList 
    48485031            { 
    48495032            if ( state.backtracking==0 ) { 
     
    48525035                     
    48535036            } 
    4854             pushFollow(FOLLOW_ruleDefinitionList_in_ruleGroupedSequence3484); 
     5037            pushFollow(FOLLOW_ruleDefinitionList_in_ruleGroupedSequence3616); 
    48555038            lv_definitionList_1_0=ruleDefinitionList(); 
    48565039 
     
    48765059            } 
    48775060 
    4878             otherlv_2=(Token)match(input,27,FOLLOW_27_in_ruleGroupedSequence3496); if (state.failed) return current; 
     5061            otherlv_2=(Token)match(input,27,FOLLOW_27_in_ruleGroupedSequence3628); if (state.failed) return current; 
    48795062            if ( state.backtracking==0 ) { 
    48805063 
     
    48985081            }  
    48995082        finally { 
    4900             if ( state.backtracking>0 ) { memoize(input, 40, ruleGroupedSequence_StartIndex); } 
     5083            if ( state.backtracking>0 ) { memoize(input, 42, ruleGroupedSequence_StartIndex); } 
    49015084        } 
    49025085        return current; 
     
    49065089 
    49075090    // $ANTLR start "entryRuleOptionalSequence" 
    4908     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1687:1: entryRuleOptionalSequence returns [EObject current=null] : iv_ruleOptionalSequence= ruleOptionalSequence EOF ; 
     5091    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1754:1: entryRuleOptionalSequence returns [EObject current=null] : iv_ruleOptionalSequence= ruleOptionalSequence EOF ; 
    49095092    public final EObject entryRuleOptionalSequence() throws RecognitionException { 
    49105093        EObject current = null; 
     
    49145097 
    49155098        try { 
    4916             if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return current; } 
    4917             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1688:2: (iv_ruleOptionalSequence= ruleOptionalSequence EOF ) 
    4918             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1689:2: iv_ruleOptionalSequence= ruleOptionalSequence EOF 
     5099            if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return current; } 
     5100            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1755:2: (iv_ruleOptionalSequence= ruleOptionalSequence EOF ) 
     5101            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1756:2: iv_ruleOptionalSequence= ruleOptionalSequence EOF 
    49195102            { 
    49205103            if ( state.backtracking==0 ) { 
    49215104               newCompositeNode(grammarAccess.getOptionalSequenceRule());  
    49225105            } 
    4923             pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence3532); 
     5106            pushFollow(FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence3664); 
    49245107            iv_ruleOptionalSequence=ruleOptionalSequence(); 
    49255108 
     
    49295112               current =iv_ruleOptionalSequence;  
    49305113            } 
    4931             match(input,EOF,FOLLOW_EOF_in_entryRuleOptionalSequence3542); if (state.failed) return current; 
     5114            match(input,EOF,FOLLOW_EOF_in_entryRuleOptionalSequence3674); if (state.failed) return current; 
    49325115 
    49335116            } 
     
    49405123            }  
    49415124        finally { 
    4942             if ( state.backtracking>0 ) { memoize(input, 41, entryRuleOptionalSequence_StartIndex); } 
     5125            if ( state.backtracking>0 ) { memoize(input, 43, entryRuleOptionalSequence_StartIndex); } 
    49435126        } 
    49445127        return current; 
     
    49485131 
    49495132    // $ANTLR start "ruleOptionalSequence" 
    4950     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1696:1: ruleOptionalSequence returns [EObject current=null] : (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) ; 
     5133    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1763:1: ruleOptionalSequence returns [EObject current=null] : (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) ; 
    49515134    public final EObject ruleOptionalSequence() throws RecognitionException { 
    49525135        EObject current = null; 
     
    49605143             
    49615144        try { 
    4962             if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return current; } 
    4963             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1699:28: ( (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) ) 
    4964             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1700:1: (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) 
    4965             { 
    4966             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1700:1: (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) 
    4967             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1700:3: otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' 
    4968             { 
    4969             otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleOptionalSequence3579); if (state.failed) return current; 
     5145            if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return current; } 
     5146            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1766:28: ( (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) ) 
     5147            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1767:1: (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) 
     5148            { 
     5149            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1767:1: (otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' ) 
     5150            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1767:3: otherlv_0= '[' ( (lv_definitionList_1_0= ruleDefinitionList ) ) otherlv_2= ']' 
     5151            { 
     5152            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleOptionalSequence3711); if (state.failed) return current; 
    49705153            if ( state.backtracking==0 ) { 
    49715154 
     
    49735156                   
    49745157            } 
    4975             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1704:1: ( (lv_definitionList_1_0= ruleDefinitionList ) ) 
    4976             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1705:1: (lv_definitionList_1_0= ruleDefinitionList ) 
    4977             { 
    4978             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1705:1: (lv_definitionList_1_0= ruleDefinitionList ) 
    4979             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1706:3: lv_definitionList_1_0= ruleDefinitionList 
     5158            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1771:1: ( (lv_definitionList_1_0= ruleDefinitionList ) ) 
     5159            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1772:1: (lv_definitionList_1_0= ruleDefinitionList ) 
     5160            { 
     5161            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1772:1: (lv_definitionList_1_0= ruleDefinitionList ) 
     5162            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:3: lv_definitionList_1_0= ruleDefinitionList 
    49805163            { 
    49815164            if ( state.backtracking==0 ) { 
     
    49845167                     
    49855168            } 
    4986             pushFollow(FOLLOW_ruleDefinitionList_in_ruleOptionalSequence3600); 
     5169            pushFollow(FOLLOW_ruleDefinitionList_in_ruleOptionalSequence3732); 
    49875170            lv_definitionList_1_0=ruleDefinitionList(); 
    49885171 
     
    50085191            } 
    50095192 
    5010             otherlv_2=(Token)match(input,29,FOLLOW_29_in_ruleOptionalSequence3612); if (state.failed) return current; 
     5193            otherlv_2=(Token)match(input,29,FOLLOW_29_in_ruleOptionalSequence3744); if (state.failed) return current; 
    50115194            if ( state.backtracking==0 ) { 
    50125195 
     
    50305213            }  
    50315214        finally { 
    5032             if ( state.backtracking>0 ) { memoize(input, 42, ruleOptionalSequence_StartIndex); } 
     5215            if ( state.backtracking>0 ) { memoize(input, 44, ruleOptionalSequence_StartIndex); } 
    50335216        } 
    50345217        return current; 
     
    50385221 
    50395222    // $ANTLR start "entryRuleRepeatedSequence" 
    5040     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1734:1: entryRuleRepeatedSequence returns [EObject current=null] : iv_ruleRepeatedSequence= ruleRepeatedSequence EOF ; 
     5223    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1801:1: entryRuleRepeatedSequence returns [EObject current=null] : iv_ruleRepeatedSequence= ruleRepeatedSequence EOF ; 
    50415224    public final EObject entryRuleRepeatedSequence() throws RecognitionException { 
    50425225        EObject current = null; 
     
    50465229 
    50475230        try { 
    5048             if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return current; } 
    5049             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1735:2: (iv_ruleRepeatedSequence= ruleRepeatedSequence EOF ) 
    5050             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1736:2: iv_ruleRepeatedSequence= ruleRepeatedSequence EOF 
     5231            if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return current; } 
     5232            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1802:2: (iv_ruleRepeatedSequence= ruleRepeatedSequence EOF ) 
     5233            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1803:2: iv_ruleRepeatedSequence= ruleRepeatedSequence EOF 
    50515234            { 
    50525235            if ( state.backtracking==0 ) { 
    50535236               newCompositeNode(grammarAccess.getRepeatedSequenceRule());  
    50545237            } 
    5055             pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence3648); 
     5238            pushFollow(FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence3780); 
    50565239            iv_ruleRepeatedSequence=ruleRepeatedSequence(); 
    50575240 
     
    50615244               current =iv_ruleRepeatedSequence;  
    50625245            } 
    5063             match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatedSequence3658); if (state.failed) return current; 
     5246            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatedSequence3790); if (state.failed) return current; 
    50645247 
    50655248            } 
     
    50725255            }  
    50735256        finally { 
    5074             if ( state.backtracking>0 ) { memoize(input, 43, entryRuleRepeatedSequence_StartIndex); } 
     5257            if ( state.backtracking>0 ) { memoize(input, 45, entryRuleRepeatedSequence_StartIndex); } 
    50755258        } 
    50765259        return current; 
     
    50805263 
    50815264    // $ANTLR start "ruleRepeatedSequence" 
    5082     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1743:1: ruleRepeatedSequence returns [EObject current=null] : (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) ; 
     5265    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1810:1: ruleRepeatedSequence returns [EObject current=null] : (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) ; 
    50835266    public final EObject ruleRepeatedSequence() throws RecognitionException { 
    50845267        EObject current = null; 
     
    50955278             
    50965279        try { 
    5097             if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return current; } 
    5098             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1746:28: ( (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) ) 
    5099             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1747:1: (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) 
    5100             { 
    5101             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1747:1: (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) 
    5102             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1747:3: otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) 
    5103             { 
    5104             otherlv_0=(Token)match(input,33,FOLLOW_33_in_ruleRepeatedSequence3695); if (state.failed) return current; 
     5280            if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return current; } 
     5281            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1813:28: ( (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) ) 
     5282            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1814:1: (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) 
     5283            { 
     5284            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1814:1: (otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) ) 
     5285            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1814:3: otherlv_0= '{' ( (lv_definitions_1_0= ruleDefinitionList ) ) otherlv_2= '}' ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) 
     5286            { 
     5287            otherlv_0=(Token)match(input,33,FOLLOW_33_in_ruleRepeatedSequence3827); if (state.failed) return current; 
    51055288            if ( state.backtracking==0 ) { 
    51065289 
     
    51085291                   
    51095292            } 
    5110             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1751:1: ( (lv_definitions_1_0= ruleDefinitionList ) ) 
    5111             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1752:1: (lv_definitions_1_0= ruleDefinitionList ) 
    5112             { 
    5113             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1752:1: (lv_definitions_1_0= ruleDefinitionList ) 
    5114             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1753:3: lv_definitions_1_0= ruleDefinitionList 
     5293            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1818:1: ( (lv_definitions_1_0= ruleDefinitionList ) ) 
     5294            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1819:1: (lv_definitions_1_0= ruleDefinitionList ) 
     5295            { 
     5296            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1819:1: (lv_definitions_1_0= ruleDefinitionList ) 
     5297            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1820:3: lv_definitions_1_0= ruleDefinitionList 
    51155298            { 
    51165299            if ( state.backtracking==0 ) { 
     
    51195302                     
    51205303            } 
    5121             pushFollow(FOLLOW_ruleDefinitionList_in_ruleRepeatedSequence3716); 
     5304            pushFollow(FOLLOW_ruleDefinitionList_in_ruleRepeatedSequence3848); 
    51225305            lv_definitions_1_0=ruleDefinitionList(); 
    51235306 
     
    51435326            } 
    51445327 
    5145             otherlv_2=(Token)match(input,30,FOLLOW_30_in_ruleRepeatedSequence3728); if (state.failed) return current; 
     5328            otherlv_2=(Token)match(input,30,FOLLOW_30_in_ruleRepeatedSequence3860); if (state.failed) return current; 
    51465329            if ( state.backtracking==0 ) { 
    51475330 
     
    51495332                   
    51505333            } 
    5151             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:1: ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) 
     5334            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1840:1: ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? ) 
    51525335            int alt38=2; 
    51535336            alt38 = dfa38.predict(input); 
    51545337            switch (alt38) { 
    51555338                case 1 : 
    5156                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:2: ( (lv_morethanonce_3_0= '+' ) )? 
    5157                     { 
    5158                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:2: ( (lv_morethanonce_3_0= '+' ) )? 
     5339                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1840:2: ( (lv_morethanonce_3_0= '+' ) )? 
     5340                    { 
     5341                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1840:2: ( (lv_morethanonce_3_0= '+' ) )? 
    51595342                    int alt36=2; 
    51605343                    int LA36_0 = input.LA(1); 
     
    51655348                    switch (alt36) { 
    51665349                        case 1 : 
    5167                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1774:1: (lv_morethanonce_3_0= '+' ) 
     5350                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1841:1: (lv_morethanonce_3_0= '+' ) 
    51685351                            { 
    5169                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1774:1: (lv_morethanonce_3_0= '+' ) 
    5170                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:3: lv_morethanonce_3_0= '+' 
     5352                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1841:1: (lv_morethanonce_3_0= '+' ) 
     5353                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1842:3: lv_morethanonce_3_0= '+' 
    51715354                            { 
    5172                             lv_morethanonce_3_0=(Token)match(input,35,FOLLOW_35_in_ruleRepeatedSequence3747); if (state.failed) return current; 
     5355                            lv_morethanonce_3_0=(Token)match(input,35,FOLLOW_35_in_ruleRepeatedSequence3879); if (state.failed) return current; 
    51735356                            if ( state.backtracking==0 ) { 
    51745357 
     
    51975380                    break; 
    51985381                case 2 : 
    5199                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:6: ( (lv_range_4_0= ruleRepeatRange ) )? 
    5200                     { 
    5201                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:6: ( (lv_range_4_0= ruleRepeatRange ) )? 
     5382                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1856:6: ( (lv_range_4_0= ruleRepeatRange ) )? 
     5383                    { 
     5384                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1856:6: ( (lv_range_4_0= ruleRepeatRange ) )? 
    52025385                    int alt37=2; 
    52035386                    int LA37_0 = input.LA(1); 
     
    52085391                    switch (alt37) { 
    52095392                        case 1 : 
    5210                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1790:1: (lv_range_4_0= ruleRepeatRange ) 
     5393                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1857:1: (lv_range_4_0= ruleRepeatRange ) 
    52115394                            { 
    5212                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1790:1: (lv_range_4_0= ruleRepeatRange ) 
    5213                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1791:3: lv_range_4_0= ruleRepeatRange 
     5395                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1857:1: (lv_range_4_0= ruleRepeatRange ) 
     5396                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1858:3: lv_range_4_0= ruleRepeatRange 
    52145397                            { 
    52155398                            if ( state.backtracking==0 ) { 
     
    52185401                                     
    52195402                            } 
    5220                             pushFollow(FOLLOW_ruleRepeatRange_in_ruleRepeatedSequence3788); 
     5403                            pushFollow(FOLLOW_ruleRepeatRange_in_ruleRepeatedSequence3920); 
    52215404                            lv_range_4_0=ruleRepeatRange(); 
    52225405 
     
    52675450            }  
    52685451        finally { 
    5269             if ( state.backtracking>0 ) { memoize(input, 44, ruleRepeatedSequence_StartIndex); } 
     5452            if ( state.backtracking>0 ) { memoize(input, 46, ruleRepeatedSequence_StartIndex); } 
    52705453        } 
    52715454        return current; 
     
    52755458 
    52765459    // $ANTLR start "entryRuleRepeatRange" 
    5277     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1815:1: entryRuleRepeatRange returns [EObject current=null] : iv_ruleRepeatRange= ruleRepeatRange EOF ; 
     5460    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1882:1: entryRuleRepeatRange returns [EObject current=null] : iv_ruleRepeatRange= ruleRepeatRange EOF ; 
    52785461    public final EObject entryRuleRepeatRange() throws RecognitionException { 
    52795462        EObject current = null; 
     
    52835466 
    52845467        try { 
    5285             if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return current; } 
    5286             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1816:2: (iv_ruleRepeatRange= ruleRepeatRange EOF ) 
    5287             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1817:2: iv_ruleRepeatRange= ruleRepeatRange EOF 
     5468            if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return current; } 
     5469            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1883:2: (iv_ruleRepeatRange= ruleRepeatRange EOF ) 
     5470            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1884:2: iv_ruleRepeatRange= ruleRepeatRange EOF 
    52885471            { 
    52895472            if ( state.backtracking==0 ) { 
    52905473               newCompositeNode(grammarAccess.getRepeatRangeRule());  
    52915474            } 
    5292             pushFollow(FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange3826); 
     5475            pushFollow(FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange3958); 
    52935476            iv_ruleRepeatRange=ruleRepeatRange(); 
    52945477 
     
    52985481               current =iv_ruleRepeatRange;  
    52995482            } 
    5300             match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatRange3836); if (state.failed) return current; 
     5483            match(input,EOF,FOLLOW_EOF_in_entryRuleRepeatRange3968); if (state.failed) return current; 
    53015484 
    53025485            } 
     
    53095492            }  
    53105493        finally { 
    5311             if ( state.backtracking>0 ) { memoize(input, 45, entryRuleRepeatRange_StartIndex); } 
     5494            if ( state.backtracking>0 ) { memoize(input, 47, entryRuleRepeatRange_StartIndex); } 
    53125495        } 
    53135496        return current; 
     
    53175500 
    53185501    // $ANTLR start "ruleRepeatRange" 
    5319     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1824:1: ruleRepeatRange returns [EObject current=null] : (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) ; 
     5502    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:1: ruleRepeatRange returns [EObject current=null] : (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) ; 
    53205503    public final EObject ruleRepeatRange() throws RecognitionException { 
    53215504        EObject current = null; 
     
    53315514             
    53325515        try { 
    5333             if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return current; } 
    5334             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1827:28: ( (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) ) 
    5335             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1828:1: (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) 
    5336             { 
    5337             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1828:1: (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) 
    5338             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1828:3: otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' 
    5339             { 
    5340             otherlv_0=(Token)match(input,40,FOLLOW_40_in_ruleRepeatRange3873); if (state.failed) return current; 
     5516            if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return current; } 
     5517            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1894:28: ( (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) ) 
     5518            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:1: (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) 
     5519            { 
     5520            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:1: (otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' ) 
     5521            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:3: otherlv_0= '#' otherlv_1= '(' ( (lv_from_2_0= RULE_INT ) ) otherlv_3= ',' ( (lv_to_4_0= RULE_INT ) ) otherlv_5= ')' 
     5522            { 
     5523            otherlv_0=(Token)match(input,40,FOLLOW_40_in_ruleRepeatRange4005); if (state.failed) return current; 
    53415524            if ( state.backtracking==0 ) { 
    53425525 
     
    53445527                   
    53455528            } 
    5346             otherlv_1=(Token)match(input,26,FOLLOW_26_in_ruleRepeatRange3885); if (state.failed) return current; 
     5529            otherlv_1=(Token)match(input,26,FOLLOW_26_in_ruleRepeatRange4017); if (state.failed) return current; 
    53475530            if ( state.backtracking==0 ) { 
    53485531 
     
    53505533                   
    53515534            } 
    5352             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1836:1: ( (lv_from_2_0= RULE_INT ) ) 
    5353             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1837:1: (lv_from_2_0= RULE_INT ) 
    5354             { 
    5355             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1837:1: (lv_from_2_0= RULE_INT ) 
    5356             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1838:3: lv_from_2_0= RULE_INT 
    5357             { 
    5358             lv_from_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRepeatRange3902); if (state.failed) return current; 
     5535            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:1: ( (lv_from_2_0= RULE_INT ) ) 
     5536            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1904:1: (lv_from_2_0= RULE_INT ) 
     5537            { 
     5538            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1904:1: (lv_from_2_0= RULE_INT ) 
     5539            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1905:3: lv_from_2_0= RULE_INT 
     5540            { 
     5541            lv_from_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRepeatRange4034); if (state.failed) return current; 
    53595542            if ( state.backtracking==0 ) { 
    53605543 
     
    53805563            } 
    53815564 
    5382             otherlv_3=(Token)match(input,41,FOLLOW_41_in_ruleRepeatRange3919); if (state.failed) return current; 
     5565            otherlv_3=(Token)match(input,41,FOLLOW_41_in_ruleRepeatRange4051); if (state.failed) return current; 
    53835566            if ( state.backtracking==0 ) { 
    53845567 
     
    53865569                   
    53875570            } 
    5388             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1858:1: ( (lv_to_4_0= RULE_INT ) ) 
    5389             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1859:1: (lv_to_4_0= RULE_INT ) 
    5390             { 
    5391             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1859:1: (lv_to_4_0= RULE_INT ) 
    5392             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1860:3: lv_to_4_0= RULE_INT 
    5393             { 
    5394             lv_to_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRepeatRange3936); if (state.failed) return current; 
     5571            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1925:1: ( (lv_to_4_0= RULE_INT ) ) 
     5572            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1926:1: (lv_to_4_0= RULE_INT ) 
     5573            { 
     5574            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1926:1: (lv_to_4_0= RULE_INT ) 
     5575            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1927:3: lv_to_4_0= RULE_INT 
     5576            { 
     5577            lv_to_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRepeatRange4068); if (state.failed) return current; 
    53955578            if ( state.backtracking==0 ) { 
    53965579 
     
    54165599            } 
    54175600 
    5418             otherlv_5=(Token)match(input,27,FOLLOW_27_in_ruleRepeatRange3953); if (state.failed) return current; 
     5601            otherlv_5=(Token)match(input,27,FOLLOW_27_in_ruleRepeatRange4085); if (state.failed) return current; 
    54195602            if ( state.backtracking==0 ) { 
    54205603 
     
    54385621            }  
    54395622        finally { 
    5440             if ( state.backtracking>0 ) { memoize(input, 46, ruleRepeatRange_StartIndex); } 
     5623            if ( state.backtracking>0 ) { memoize(input, 48, ruleRepeatRange_StartIndex); } 
    54415624        } 
    54425625        return current; 
     
    54445627    // $ANTLR end "ruleRepeatRange" 
    54455628 
    5446     // $ANTLR start synpred52_InternalEbnf 
    5447     public final void synpred52_InternalEbnf_fragment() throws RecognitionException {    
     5629    // $ANTLR start synpred53_InternalEbnf 
     5630    public final void synpred53_InternalEbnf_fragment() throws RecognitionException {    
    54485631        Token lv_morethanonce_3_0=null; 
    54495632 
    5450         // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:2: ( ( (lv_morethanonce_3_0= '+' ) )? ) 
    5451         // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:2: ( (lv_morethanonce_3_0= '+' ) )? 
     5633        // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1840:2: ( ( (lv_morethanonce_3_0= '+' ) )? ) 
     5634        // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1840:2: ( (lv_morethanonce_3_0= '+' ) )? 
    54525635        { 
    5453         // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:2: ( (lv_morethanonce_3_0= '+' ) )? 
     5636        // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1840:2: ( (lv_morethanonce_3_0= '+' ) )? 
    54545637        int alt47=2; 
    54555638        int LA47_0 = input.LA(1); 
     
    54605643        switch (alt47) { 
    54615644            case 1 : 
    5462                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1774:1: (lv_morethanonce_3_0= '+' ) 
     5645                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1841:1: (lv_morethanonce_3_0= '+' ) 
    54635646                { 
    5464                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1774:1: (lv_morethanonce_3_0= '+' ) 
    5465                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:3: lv_morethanonce_3_0= '+' 
     5647                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1841:1: (lv_morethanonce_3_0= '+' ) 
     5648                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1842:3: lv_morethanonce_3_0= '+' 
    54665649                { 
    5467                 lv_morethanonce_3_0=(Token)match(input,35,FOLLOW_35_in_synpred52_InternalEbnf3747); if (state.failed) return ; 
     5650                lv_morethanonce_3_0=(Token)match(input,35,FOLLOW_35_in_synpred53_InternalEbnf3879); if (state.failed) return ; 
    54685651 
    54695652                } 
     
    54785661        } 
    54795662    } 
    5480     // $ANTLR end synpred52_InternalEbnf 
     5663    // $ANTLR end synpred53_InternalEbnf 
    54815664 
    54825665    // Delegated rules 
    54835666 
    5484     public final boolean synpred52_InternalEbnf() { 
     5667    public final boolean synpred53_InternalEbnf() { 
    54855668        state.backtracking++; 
    54865669        int start = input.mark(); 
    54875670        try { 
    5488             synpred52_InternalEbnf_fragment(); // can never throw exception 
     5671            synpred53_InternalEbnf_fragment(); // can never throw exception 
    54895672        } catch (RecognitionException re) { 
    54905673            System.err.println("impossible: "+re); 
     
    55145697        "\17\uffff}>"; 
    55155698    static final String[] DFA22_transitionS = { 
    5516             "\1\2\1\1\1\3\1\1\1\uffff\1\3\5\uffff\1\1\12\uffff\1\10\1\4\1"+ 
    5517             "\uffff\1\5\1\6\1\7\1\11\1\12\1\13\1\14", 
     5699            "\1\2\1\1\1\uffff\1\3\1\1\1\uffff\1\3\4\uffff\1\1\12\uffff\1"+ 
     5700            "\10\1\4\1\uffff\1\5\1\6\1\7\1\11\1\12\1\13\1\14", 
    55185701            "", 
    5519             "\4\3\1\uffff\1\3\5\uffff\1\3\11\uffff\1\1\1\15\1\3\1\uffff"+ 
    5520             "\7\3", 
     5702            "\2\3\1\uffff\2\3\1\uffff\1\3\4\uffff\1\3\11\uffff\1\1\1\15"+ 
     5703            "\1\3\1\uffff\7\3", 
    55215704            "", 
    55225705            "", 
     
    55295712            "", 
    55305713            "", 
    5531             "\3\3\1\16\1\uffff\1\3\5\uffff\1\3\12\uffff\2\3\1\uffff\7\3", 
     5714            "\2\3\1\uffff\1\3\1\16\1\uffff\1\3\4\uffff\1\3\12\uffff\2\3"+ 
     5715            "\1\uffff\7\3", 
    55325716            "\1\3\23\uffff\1\3\2\uffff\1\1" 
    55335717    }; 
     
    55635747        } 
    55645748        public String getDescription() { 
    5565             return "()* loopback of 890:1: ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )*"; 
     5749            return "()* loopback of 957:1: ( ( (lv_elements_8_0= ruleAtom ) ) | otherlv_9= ')' | otherlv_10= ']' | otherlv_11= '}' | otherlv_12= '|' | otherlv_13= '(' | otherlv_14= '[' | otherlv_15= '{' | otherlv_16= '*' | otherlv_17= '+' )*"; 
    55665750        } 
    55675751    } 
    55685752    static final String DFA38_eotS = 
    5569         "\21\uffff"; 
     5753        "\22\uffff"; 
    55705754    static final String DFA38_eofS = 
    5571         "\1\4\20\uffff"; 
     5755        "\1\4\21\uffff"; 
    55725756    static final String DFA38_minS = 
    5573         "\1\4\1\uffff\16\0\1\uffff"; 
     5757        "\1\4\1\uffff\17\0\1\uffff"; 
    55745758    static final String DFA38_maxS = 
    5575         "\1\50\1\uffff\16\0\1\uffff"; 
     5759        "\1\50\1\uffff\17\0\1\uffff"; 
    55765760    static final String DFA38_acceptS = 
    5577         "\1\uffff\1\1\16\uffff\1\2"; 
     5761        "\1\uffff\1\1\17\uffff\1\2"; 
    55785762    static final String DFA38_specialS = 
    55795763        "\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"+ 
    5580         "\1\15\1\uffff}>"; 
     5764        "\1\15\1\16\1\uffff}>"; 
    55815765    static final String[] DFA38_transitionS = { 
    5582             "\1\7\1\5\1\13\1\6\1\uffff\1\14\5\uffff\1\3\12\uffff\1\15\1\10"+ 
    5583             "\1\uffff\1\11\1\12\1\2\1\16\1\17\1\uffff\1\1\4\uffff\1\20", 
     5766            "\1\7\1\5\1\10\1\14\1\6\1\uffff\1\15\4\uffff\1\3\12\uffff\1\16"+ 
     5767            "\1\11\1\uffff\1\12\1\13\1\2\1\17\1\20\1\uffff\1\1\4\uffff\1"+ 
     5768            "\21", 
    55845769            "", 
     5770            "\1\uffff", 
    55855771            "\1\uffff", 
    55865772            "\1\uffff", 
     
    56305816        } 
    56315817        public String getDescription() { 
    5632             return "1773:1: ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? )"; 
     5818            return "1840:1: ( ( (lv_morethanonce_3_0= '+' ) )? | ( (lv_range_4_0= ruleRepeatRange ) )? )"; 
    56335819        } 
    56345820        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 
     
    56435829                        input.rewind(); 
    56445830                        s = -1; 
    5645                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5646  
    5647                         else if ( (true) ) {s = 16;} 
     5831                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5832 
     5833                        else if ( (true) ) {s = 17;} 
    56485834 
    56495835                          
     
    56585844                        input.rewind(); 
    56595845                        s = -1; 
    5660                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5661  
    5662                         else if ( (true) ) {s = 16;} 
     5846                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5847 
     5848                        else if ( (true) ) {s = 17;} 
    56635849 
    56645850                          
     
    56735859                        input.rewind(); 
    56745860                        s = -1; 
    5675                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5676  
    5677                         else if ( (true) ) {s = 16;} 
     5861                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5862 
     5863                        else if ( (true) ) {s = 17;} 
    56785864 
    56795865                          
     
    56885874                        input.rewind(); 
    56895875                        s = -1; 
    5690                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5691  
    5692                         else if ( (true) ) {s = 16;} 
     5876                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5877 
     5878                        else if ( (true) ) {s = 17;} 
    56935879 
    56945880                          
     
    57035889                        input.rewind(); 
    57045890                        s = -1; 
    5705                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5706  
    5707                         else if ( (true) ) {s = 16;} 
     5891                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5892 
     5893                        else if ( (true) ) {s = 17;} 
    57085894 
    57095895                          
     
    57185904                        input.rewind(); 
    57195905                        s = -1; 
    5720                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5721  
    5722                         else if ( (true) ) {s = 16;} 
     5906                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5907 
     5908                        else if ( (true) ) {s = 17;} 
    57235909 
    57245910                          
     
    57335919                        input.rewind(); 
    57345920                        s = -1; 
    5735                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5736  
    5737                         else if ( (true) ) {s = 16;} 
     5921                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5922 
     5923                        else if ( (true) ) {s = 17;} 
    57385924 
    57395925                          
     
    57485934                        input.rewind(); 
    57495935                        s = -1; 
    5750                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5751  
    5752                         else if ( (true) ) {s = 16;} 
     5936                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5937 
     5938                        else if ( (true) ) {s = 17;} 
    57535939 
    57545940                          
     
    57635949                        input.rewind(); 
    57645950                        s = -1; 
    5765                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5766  
    5767                         else if ( (true) ) {s = 16;} 
     5951                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5952 
     5953                        else if ( (true) ) {s = 17;} 
    57685954 
    57695955                          
     
    57785964                        input.rewind(); 
    57795965                        s = -1; 
    5780                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5781  
    5782                         else if ( (true) ) {s = 16;} 
     5966                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5967 
     5968                        else if ( (true) ) {s = 17;} 
    57835969 
    57845970                          
     
    57935979                        input.rewind(); 
    57945980                        s = -1; 
    5795                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5796  
    5797                         else if ( (true) ) {s = 16;} 
     5981                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5982 
     5983                        else if ( (true) ) {s = 17;} 
    57985984 
    57995985                          
     
    58085994                        input.rewind(); 
    58095995                        s = -1; 
    5810                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5811  
    5812                         else if ( (true) ) {s = 16;} 
     5996                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     5997 
     5998                        else if ( (true) ) {s = 17;} 
    58135999 
    58146000                          
     
    58236009                        input.rewind(); 
    58246010                        s = -1; 
    5825                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5826  
    5827                         else if ( (true) ) {s = 16;} 
     6011                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     6012 
     6013                        else if ( (true) ) {s = 17;} 
    58286014 
    58296015                          
     
    58386024                        input.rewind(); 
    58396025                        s = -1; 
    5840                         if ( (synpred52_InternalEbnf()) ) {s = 1;} 
    5841  
    5842                         else if ( (true) ) {s = 16;} 
     6026                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     6027 
     6028                        else if ( (true) ) {s = 17;} 
    58436029 
    58446030                          
    58456031                        input.seek(index38_15); 
     6032                        if ( s>=0 ) return s; 
     6033                        break; 
     6034                    case 14 :  
     6035                        int LA38_16 = input.LA(1); 
     6036 
     6037                          
     6038                        int index38_16 = input.index(); 
     6039                        input.rewind(); 
     6040                        s = -1; 
     6041                        if ( (synpred53_InternalEbnf()) ) {s = 1;} 
     6042 
     6043                        else if ( (true) ) {s = 17;} 
     6044 
     6045                          
     6046                        input.seek(index38_16); 
    58466047                        if ( s>=0 ) return s; 
    58476048                        break; 
     
    58616062    public static final BitSet FOLLOW_RULE_ID_in_ruleEtsiBnf153 = new BitSet(new long[]{0x000000000000C000L}); 
    58626063    public static final BitSet FOLLOW_14_in_ruleEtsiBnf177 = new BitSet(new long[]{0x0000000000008000L}); 
    5863     public static final BitSet FOLLOW_15_in_ruleEtsiBnf203 = new BitSet(new long[]{0x00000000000400B0L}); 
    5864     public static final BitSet FOLLOW_ruleImportSection_in_ruleEtsiBnf224 = new BitSet(new long[]{0x00000000000400B0L}); 
    5865     public static final BitSet FOLLOW_ruleBnfEntry_in_ruleEtsiBnf246 = new BitSet(new long[]{0x00000000000400B2L}); 
     6064    public static final BitSet FOLLOW_15_in_ruleEtsiBnf203 = new BitSet(new long[]{0x0000000000040170L}); 
     6065    public static final BitSet FOLLOW_ruleImportSection_in_ruleEtsiBnf224 = new BitSet(new long[]{0x0000000000040170L}); 
     6066    public static final BitSet FOLLOW_ruleBnfEntry_in_ruleEtsiBnf246 = new BitSet(new long[]{0x0000000000040172L}); 
    58666067    public static final BitSet FOLLOW_16_in_ruleEtsiBnf274 = new BitSet(new long[]{0x0000000000008000L}); 
    5867     public static final BitSet FOLLOW_15_in_ruleEtsiBnf299 = new BitSet(new long[]{0x00000000000400B2L}); 
    5868     public static final BitSet FOLLOW_ruleImportSection_in_ruleEtsiBnf320 = new BitSet(new long[]{0x00000000000400B2L}); 
    5869     public static final BitSet FOLLOW_ruleDeltaEntry_in_ruleEtsiBnf342 = new BitSet(new long[]{0x00000000000400B2L}); 
     6068    public static final BitSet FOLLOW_15_in_ruleEtsiBnf299 = new BitSet(new long[]{0x0000000000040132L}); 
     6069    public static final BitSet FOLLOW_ruleImportSection_in_ruleEtsiBnf320 = new BitSet(new long[]{0x0000000000000132L}); 
     6070    public static final BitSet FOLLOW_ruleDeltaEntry_in_ruleEtsiBnf342 = new BitSet(new long[]{0x0000000000000132L}); 
    58706071    public static final BitSet FOLLOW_17_in_ruleEtsiBnf369 = new BitSet(new long[]{0x0000000000008000L}); 
    58716072    public static final BitSet FOLLOW_15_in_ruleEtsiBnf394 = new BitSet(new long[]{0x000000D000040022L}); 
     
    58796080    public static final BitSet FOLLOW_ruleSectionHeading_in_ruleBnfEntry622 = new BitSet(new long[]{0x0000000000000002L}); 
    58806081    public static final BitSet FOLLOW_ruleRule_in_ruleBnfEntry649 = new BitSet(new long[]{0x0000000000000002L}); 
    5881     public static final BitSet FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry685 = new BitSet(new long[]{0x0000000000000000L}); 
    5882     public static final BitSet FOLLOW_EOF_in_entryRuleDeltaEntry695 = new BitSet(new long[]{0x0000000000000002L}); 
    5883     public static final BitSet FOLLOW_ruleRule_in_ruleDeltaEntry741 = new BitSet(new long[]{0x0000000000000002L}); 
    5884     public static final BitSet FOLLOW_ruleSectionHeading_in_ruleDeltaEntry768 = new BitSet(new long[]{0x0000000000000002L}); 
    5885     public static final BitSet FOLLOW_ruleExtRule_in_ruleDeltaEntry795 = new BitSet(new long[]{0x0000000000000002L}); 
    5886     public static final BitSet FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry831 = new BitSet(new long[]{0x0000000000000000L}); 
    5887     public static final BitSet FOLLOW_EOF_in_entryRuleMergeEntry841 = new BitSet(new long[]{0x0000000000000002L}); 
    5888     public static final BitSet FOLLOW_ruleSectionHeading_in_ruleMergeEntry887 = new BitSet(new long[]{0x0000000000000002L}); 
    5889     public static final BitSet FOLLOW_ruleMergeRule_in_ruleMergeEntry914 = new BitSet(new long[]{0x0000000000000002L}); 
    5890     public static final BitSet FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading950 = new BitSet(new long[]{0x0000000000000000L}); 
    5891     public static final BitSet FOLLOW_EOF_in_entryRuleSectionHeading960 = new BitSet(new long[]{0x0000000000000002L}); 
    5892     public static final BitSet FOLLOW_RULE_SECTIONHEADER_in_ruleSectionHeading1014 = new BitSet(new long[]{0x0000000000000002L}); 
    5893     public static final BitSet FOLLOW_ruleImport_in_entryRuleImport1055 = new BitSet(new long[]{0x0000000000000000L}); 
    5894     public static final BitSet FOLLOW_EOF_in_entryRuleImport1065 = new BitSet(new long[]{0x0000000000000002L}); 
    5895     public static final BitSet FOLLOW_18_in_ruleImport1102 = new BitSet(new long[]{0x0000000000000040L}); 
    5896     public static final BitSet FOLLOW_RULE_STRING_in_ruleImport1119 = new BitSet(new long[]{0x0000000000888000L}); 
    5897     public static final BitSet FOLLOW_19_in_ruleImport1137 = new BitSet(new long[]{0x0000000000700000L}); 
    5898     public static final BitSet FOLLOW_20_in_ruleImport1156 = new BitSet(new long[]{0x0000000000808000L}); 
    5899     public static final BitSet FOLLOW_21_in_ruleImport1193 = new BitSet(new long[]{0x0000000000808000L}); 
    5900     public static final BitSet FOLLOW_22_in_ruleImport1230 = new BitSet(new long[]{0x0000000000808000L}); 
    5901     public static final BitSet FOLLOW_23_in_ruleImport1259 = new BitSet(new long[]{0x0000000000000010L}); 
    5902     public static final BitSet FOLLOW_RULE_ID_in_ruleImport1276 = new BitSet(new long[]{0x0000000000008000L}); 
    5903     public static final BitSet FOLLOW_15_in_ruleImport1295 = new BitSet(new long[]{0x0000000000000002L}); 
    5904     public static final BitSet FOLLOW_ruleRule_in_entryRuleRule1331 = new BitSet(new long[]{0x0000000000000000L}); 
    5905     public static final BitSet FOLLOW_EOF_in_entryRuleRule1341 = new BitSet(new long[]{0x0000000000000002L}); 
    5906     public static final BitSet FOLLOW_RULE_INT_in_ruleRule1384 = new BitSet(new long[]{0x0000000001000010L}); 
    5907     public static final BitSet FOLLOW_RULE_ID_in_ruleRule1406 = new BitSet(new long[]{0x0000000001000000L}); 
    5908     public static final BitSet FOLLOW_24_in_ruleRule1424 = new BitSet(new long[]{0x0000000000000010L}); 
    5909     public static final BitSet FOLLOW_RULE_ID_in_ruleRule1443 = new BitSet(new long[]{0x0000000002000000L}); 
    5910     public static final BitSet FOLLOW_25_in_ruleRule1460 = new BitSet(new long[]{0x0000000304008252L}); 
    5911     public static final BitSet FOLLOW_ruleDefinitionList_in_ruleRule1481 = new BitSet(new long[]{0x0000000000008002L}); 
    5912     public static final BitSet FOLLOW_15_in_ruleRule1495 = new BitSet(new long[]{0x0000000000000002L}); 
    5913     public static final BitSet FOLLOW_ruleExtRule_in_entryRuleExtRule1533 = new BitSet(new long[]{0x0000000000000000L}); 
    5914     public static final BitSet FOLLOW_EOF_in_entryRuleExtRule1543 = new BitSet(new long[]{0x0000000000000002L}); 
    5915     public static final BitSet FOLLOW_RULE_INT_in_ruleExtRule1586 = new BitSet(new long[]{0x0000000001000010L}); 
    5916     public static final BitSet FOLLOW_RULE_ID_in_ruleExtRule1608 = new BitSet(new long[]{0x0000000001000000L}); 
    5917     public static final BitSet FOLLOW_24_in_ruleExtRule1626 = new BitSet(new long[]{0x0000000000000010L}); 
    5918     public static final BitSet FOLLOW_RULE_ID_in_ruleExtRule1645 = new BitSet(new long[]{0x0000000004000000L}); 
    5919     public static final BitSet FOLLOW_26_in_ruleExtRule1663 = new BitSet(new long[]{0x0000000000000080L}); 
    5920     public static final BitSet FOLLOW_RULE_INT_in_ruleExtRule1680 = new BitSet(new long[]{0x0000000008000000L}); 
    5921     public static final BitSet FOLLOW_27_in_ruleExtRule1697 = new BitSet(new long[]{0x0000000010000000L}); 
    5922     public static final BitSet FOLLOW_28_in_ruleExtRule1710 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5923     public static final BitSet FOLLOW_ruleAtom_in_ruleExtRule1732 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5924     public static final BitSet FOLLOW_27_in_ruleExtRule1750 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5925     public static final BitSet FOLLOW_29_in_ruleExtRule1768 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5926     public static final BitSet FOLLOW_30_in_ruleExtRule1786 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5927     public static final BitSet FOLLOW_31_in_ruleExtRule1804 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5928     public static final BitSet FOLLOW_26_in_ruleExtRule1822 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5929     public static final BitSet FOLLOW_32_in_ruleExtRule1840 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5930     public static final BitSet FOLLOW_33_in_ruleExtRule1858 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5931     public static final BitSet FOLLOW_34_in_ruleExtRule1876 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5932     public static final BitSet FOLLOW_35_in_ruleExtRule1894 = new BitSet(new long[]{0x0000000FEC008252L}); 
    5933     public static final BitSet FOLLOW_15_in_ruleExtRule1909 = new BitSet(new long[]{0x0000000000000002L}); 
    5934     public static final BitSet FOLLOW_ruleMergeRule_in_entryRuleMergeRule1947 = new BitSet(new long[]{0x0000000000000000L}); 
    5935     public static final BitSet FOLLOW_EOF_in_entryRuleMergeRule1957 = new BitSet(new long[]{0x0000000000000002L}); 
    5936     public static final BitSet FOLLOW_ruleGlobalCombinator_in_ruleMergeRule2007 = new BitSet(new long[]{0x0000000000000002L}); 
    5937     public static final BitSet FOLLOW_ruleRuleCombinator_in_ruleMergeRule2037 = new BitSet(new long[]{0x0000000000000002L}); 
    5938     public static final BitSet FOLLOW_ruleHookCombinator_in_ruleMergeRule2067 = new BitSet(new long[]{0x0000000000000002L}); 
    5939     public static final BitSet FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator2102 = new BitSet(new long[]{0x0000000000000000L}); 
    5940     public static final BitSet FOLLOW_EOF_in_entryRuleGlobalCombinator2112 = new BitSet(new long[]{0x0000000000000002L}); 
    5941     public static final BitSet FOLLOW_36_in_ruleGlobalCombinator2150 = new BitSet(new long[]{0x0000002000000000L}); 
    5942     public static final BitSet FOLLOW_37_in_ruleGlobalCombinator2162 = new BitSet(new long[]{0x0000000000000100L}); 
    5943     public static final BitSet FOLLOW_RULE_LOGIC_in_ruleGlobalCombinator2180 = new BitSet(new long[]{0x0000000000008002L}); 
    5944     public static final BitSet FOLLOW_15_in_ruleGlobalCombinator2198 = new BitSet(new long[]{0x0000000000000002L}); 
    5945     public static final BitSet FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator2236 = new BitSet(new long[]{0x0000000000000000L}); 
    5946     public static final BitSet FOLLOW_EOF_in_entryRuleRuleCombinator2246 = new BitSet(new long[]{0x0000000000000002L}); 
    5947     public static final BitSet FOLLOW_38_in_ruleRuleCombinator2284 = new BitSet(new long[]{0x0000002000000000L}); 
    5948     public static final BitSet FOLLOW_37_in_ruleRuleCombinator2296 = new BitSet(new long[]{0x0000000000000010L}); 
    5949     public static final BitSet FOLLOW_RULE_ID_in_ruleRuleCombinator2313 = new BitSet(new long[]{0x0000000000000100L}); 
    5950     public static final BitSet FOLLOW_RULE_LOGIC_in_ruleRuleCombinator2336 = new BitSet(new long[]{0x0000000004008002L}); 
    5951     public static final BitSet FOLLOW_26_in_ruleRuleCombinator2354 = new BitSet(new long[]{0x0000000000000040L}); 
    5952     public static final BitSet FOLLOW_RULE_STRING_in_ruleRuleCombinator2371 = new BitSet(new long[]{0x0000000008000000L}); 
    5953     public static final BitSet FOLLOW_27_in_ruleRuleCombinator2388 = new BitSet(new long[]{0x0000000004008002L}); 
    5954     public static final BitSet FOLLOW_15_in_ruleRuleCombinator2403 = new BitSet(new long[]{0x0000000000000002L}); 
    5955     public static final BitSet FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator2441 = new BitSet(new long[]{0x0000000000000000L}); 
    5956     public static final BitSet FOLLOW_EOF_in_entryRuleHookCombinator2451 = new BitSet(new long[]{0x0000000000000002L}); 
    5957     public static final BitSet FOLLOW_39_in_ruleHookCombinator2488 = new BitSet(new long[]{0x0000002000000000L}); 
    5958     public static final BitSet FOLLOW_37_in_ruleHookCombinator2500 = new BitSet(new long[]{0x0000000000000010L}); 
    5959     public static final BitSet FOLLOW_RULE_ID_in_ruleHookCombinator2517 = new BitSet(new long[]{0x0000000004000000L}); 
    5960     public static final BitSet FOLLOW_26_in_ruleHookCombinator2534 = new BitSet(new long[]{0x0000000000000080L}); 
    5961     public static final BitSet FOLLOW_RULE_INT_in_ruleHookCombinator2551 = new BitSet(new long[]{0x0000000008000000L}); 
    5962     public static final BitSet FOLLOW_27_in_ruleHookCombinator2568 = new BitSet(new long[]{0x0000000004000100L}); 
    5963     public static final BitSet FOLLOW_RULE_LOGIC_in_ruleHookCombinator2585 = new BitSet(new long[]{0x0000000004000000L}); 
    5964     public static final BitSet FOLLOW_26_in_ruleHookCombinator2604 = new BitSet(new long[]{0x0000000000000040L}); 
    5965     public static final BitSet FOLLOW_RULE_STRING_in_ruleHookCombinator2621 = new BitSet(new long[]{0x0000000008000000L}); 
    5966     public static final BitSet FOLLOW_27_in_ruleHookCombinator2638 = new BitSet(new long[]{0x0000000004008002L}); 
    5967     public static final BitSet FOLLOW_15_in_ruleHookCombinator2653 = new BitSet(new long[]{0x0000000000000002L}); 
    5968     public static final BitSet FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList2691 = new BitSet(new long[]{0x0000000000000000L}); 
    5969     public static final BitSet FOLLOW_EOF_in_entryRuleDefinitionList2701 = new BitSet(new long[]{0x0000000000000002L}); 
    5970     public static final BitSet FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2747 = new BitSet(new long[]{0x0000000080000002L}); 
    5971     public static final BitSet FOLLOW_31_in_ruleDefinitionList2760 = new BitSet(new long[]{0x0000000304000250L}); 
    5972     public static final BitSet FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2781 = new BitSet(new long[]{0x0000000080000002L}); 
    5973     public static final BitSet FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition2819 = new BitSet(new long[]{0x0000000000000000L}); 
    5974     public static final BitSet FOLLOW_EOF_in_entryRuleSingleDefinition2829 = new BitSet(new long[]{0x0000000000000002L}); 
    5975     public static final BitSet FOLLOW_ruleTerm_in_ruleSingleDefinition2874 = new BitSet(new long[]{0x0000000304000252L}); 
    5976     public static final BitSet FOLLOW_ruleTerm_in_entryRuleTerm2910 = new BitSet(new long[]{0x0000000000000000L}); 
    5977     public static final BitSet FOLLOW_EOF_in_entryRuleTerm2920 = new BitSet(new long[]{0x0000000000000002L}); 
    5978     public static final BitSet FOLLOW_ruleAtom_in_ruleTerm2966 = new BitSet(new long[]{0x0000000000000002L}); 
    5979     public static final BitSet FOLLOW_ruleGroupedSequence_in_ruleTerm2993 = new BitSet(new long[]{0x0000000000000002L}); 
    5980     public static final BitSet FOLLOW_ruleOptionalSequence_in_ruleTerm3020 = new BitSet(new long[]{0x0000000000000002L}); 
    5981     public static final BitSet FOLLOW_ruleRepeatedSequence_in_ruleTerm3047 = new BitSet(new long[]{0x0000000000000002L}); 
    5982     public static final BitSet FOLLOW_ruleAtom_in_entryRuleAtom3083 = new BitSet(new long[]{0x0000000000000000L}); 
    5983     public static final BitSet FOLLOW_EOF_in_entryRuleAtom3093 = new BitSet(new long[]{0x0000000000000002L}); 
    5984     public static final BitSet FOLLOW_ruleStringRule_in_ruleAtom3139 = new BitSet(new long[]{0x0000000000000002L}); 
    5985     public static final BitSet FOLLOW_ruleRuleReference_in_ruleAtom3166 = new BitSet(new long[]{0x0000000000000002L}); 
    5986     public static final BitSet FOLLOW_ruleRuleReference_in_entryRuleRuleReference3202 = new BitSet(new long[]{0x0000000000000000L}); 
    5987     public static final BitSet FOLLOW_EOF_in_entryRuleRuleReference3212 = new BitSet(new long[]{0x0000000000000002L}); 
    5988     public static final BitSet FOLLOW_RULE_ID_in_ruleRuleReference3260 = new BitSet(new long[]{0x0000000000000002L}); 
    5989     public static final BitSet FOLLOW_ruleStringRule_in_entryRuleStringRule3295 = new BitSet(new long[]{0x0000000000000000L}); 
    5990     public static final BitSet FOLLOW_EOF_in_entryRuleStringRule3305 = new BitSet(new long[]{0x0000000000000002L}); 
    5991     public static final BitSet FOLLOW_RULE_STRING_in_ruleStringRule3347 = new BitSet(new long[]{0x0000000000000002L}); 
    5992     public static final BitSet FOLLOW_RULE_COLON_in_ruleStringRule3375 = new BitSet(new long[]{0x0000000000000002L}); 
    5993     public static final BitSet FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence3416 = new BitSet(new long[]{0x0000000000000000L}); 
    5994     public static final BitSet FOLLOW_EOF_in_entryRuleGroupedSequence3426 = new BitSet(new long[]{0x0000000000000002L}); 
    5995     public static final BitSet FOLLOW_26_in_ruleGroupedSequence3463 = new BitSet(new long[]{0x0000000304000250L}); 
    5996     public static final BitSet FOLLOW_ruleDefinitionList_in_ruleGroupedSequence3484 = new BitSet(new long[]{0x0000000008000000L}); 
    5997     public static final BitSet FOLLOW_27_in_ruleGroupedSequence3496 = new BitSet(new long[]{0x0000000000000002L}); 
    5998     public static final BitSet FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence3532 = new BitSet(new long[]{0x0000000000000000L}); 
    5999     public static final BitSet FOLLOW_EOF_in_entryRuleOptionalSequence3542 = new BitSet(new long[]{0x0000000000000002L}); 
    6000     public static final BitSet FOLLOW_32_in_ruleOptionalSequence3579 = new BitSet(new long[]{0x0000000304000250L}); 
    6001     public static final BitSet FOLLOW_ruleDefinitionList_in_ruleOptionalSequence3600 = new BitSet(new long[]{0x0000000020000000L}); 
    6002     public static final BitSet FOLLOW_29_in_ruleOptionalSequence3612 = new BitSet(new long[]{0x0000000000000002L}); 
    6003     public static final BitSet FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence3648 = new BitSet(new long[]{0x0000000000000000L}); 
    6004     public static final BitSet FOLLOW_EOF_in_entryRuleRepeatedSequence3658 = new BitSet(new long[]{0x0000000000000002L}); 
    6005     public static final BitSet FOLLOW_33_in_ruleRepeatedSequence3695 = new BitSet(new long[]{0x0000000304000250L}); 
    6006     public static final BitSet FOLLOW_ruleDefinitionList_in_ruleRepeatedSequence3716 = new BitSet(new long[]{0x0000000040000000L}); 
    6007     public static final BitSet FOLLOW_30_in_ruleRepeatedSequence3728 = new BitSet(new long[]{0x0000010800000002L}); 
    6008     public static final BitSet FOLLOW_35_in_ruleRepeatedSequence3747 = new BitSet(new long[]{0x0000000000000002L}); 
    6009     public static final BitSet FOLLOW_ruleRepeatRange_in_ruleRepeatedSequence3788 = new BitSet(new long[]{0x0000000000000002L}); 
    6010     public static final BitSet FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange3826 = new BitSet(new long[]{0x0000000000000000L}); 
    6011     public static final BitSet FOLLOW_EOF_in_entryRuleRepeatRange3836 = new BitSet(new long[]{0x0000000000000002L}); 
    6012     public static final BitSet FOLLOW_40_in_ruleRepeatRange3873 = new BitSet(new long[]{0x0000000004000000L}); 
    6013     public static final BitSet FOLLOW_26_in_ruleRepeatRange3885 = new BitSet(new long[]{0x0000000000000080L}); 
    6014     public static final BitSet FOLLOW_RULE_INT_in_ruleRepeatRange3902 = new BitSet(new long[]{0x0000020000000000L}); 
    6015     public static final BitSet FOLLOW_41_in_ruleRepeatRange3919 = new BitSet(new long[]{0x0000000000000080L}); 
    6016     public static final BitSet FOLLOW_RULE_INT_in_ruleRepeatRange3936 = new BitSet(new long[]{0x0000000008000000L}); 
    6017     public static final BitSet FOLLOW_27_in_ruleRepeatRange3953 = new BitSet(new long[]{0x0000000000000002L}); 
    6018     public static final BitSet FOLLOW_35_in_synpred52_InternalEbnf3747 = new BitSet(new long[]{0x0000000000000002L}); 
     6082    public static final BitSet FOLLOW_ruleComment_in_ruleBnfEntry676 = new BitSet(new long[]{0x0000000000000002L}); 
     6083    public static final BitSet FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry712 = new BitSet(new long[]{0x0000000000000000L}); 
     6084    public static final BitSet FOLLOW_EOF_in_entryRuleDeltaEntry722 = new BitSet(new long[]{0x0000000000000002L}); 
     6085    public static final BitSet FOLLOW_ruleRule_in_ruleDeltaEntry768 = new BitSet(new long[]{0x0000000000000002L}); 
     6086    public static final BitSet FOLLOW_ruleSectionHeading_in_ruleDeltaEntry795 = new BitSet(new long[]{0x0000000000000002L}); 
     6087    public static final BitSet FOLLOW_ruleExtRule_in_ruleDeltaEntry822 = new BitSet(new long[]{0x0000000000000002L}); 
     6088    public static final BitSet FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry858 = new BitSet(new long[]{0x0000000000000000L}); 
     6089    public static final BitSet FOLLOW_EOF_in_entryRuleMergeEntry868 = new BitSet(new long[]{0x0000000000000002L}); 
     6090    public static final BitSet FOLLOW_ruleSectionHeading_in_ruleMergeEntry914 = new BitSet(new long[]{0x0000000000000002L}); 
     6091    public static final BitSet FOLLOW_ruleMergeRule_in_ruleMergeEntry941 = new BitSet(new long[]{0x0000000000000002L}); 
     6092    public static final BitSet FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading977 = new BitSet(new long[]{0x0000000000000000L}); 
     6093    public static final BitSet FOLLOW_EOF_in_entryRuleSectionHeading987 = new BitSet(new long[]{0x0000000000000002L}); 
     6094    public static final BitSet FOLLOW_RULE_SECTIONHEADER_in_ruleSectionHeading1041 = new BitSet(new long[]{0x0000000000000002L}); 
     6095    public static final BitSet FOLLOW_ruleComment_in_entryRuleComment1082 = new BitSet(new long[]{0x0000000000000000L}); 
     6096    public static final BitSet FOLLOW_EOF_in_entryRuleComment1092 = new BitSet(new long[]{0x0000000000000002L}); 
     6097    public static final BitSet FOLLOW_RULE_ML_COMMENT_in_ruleComment1146 = new BitSet(new long[]{0x0000000000000002L}); 
     6098    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport1187 = new BitSet(new long[]{0x0000000000000000L}); 
     6099    public static final BitSet FOLLOW_EOF_in_entryRuleImport1197 = new BitSet(new long[]{0x0000000000000002L}); 
     6100    public static final BitSet FOLLOW_18_in_ruleImport1234 = new BitSet(new long[]{0x0000000000000080L}); 
     6101    public static final BitSet FOLLOW_RULE_STRING_in_ruleImport1251 = new BitSet(new long[]{0x0000000000888000L}); 
     6102    public static final BitSet FOLLOW_19_in_ruleImport1269 = new BitSet(new long[]{0x0000000000700000L}); 
     6103    public static final BitSet FOLLOW_20_in_ruleImport1288 = new BitSet(new long[]{0x0000000000808000L}); 
     6104    public static final BitSet FOLLOW_21_in_ruleImport1325 = new BitSet(new long[]{0x0000000000808000L}); 
     6105    public static final BitSet FOLLOW_22_in_ruleImport1362 = new BitSet(new long[]{0x0000000000808000L}); 
     6106    public static final BitSet FOLLOW_23_in_ruleImport1391 = new BitSet(new long[]{0x0000000000000010L}); 
     6107    public static final BitSet FOLLOW_RULE_ID_in_ruleImport1408 = new BitSet(new long[]{0x0000000000008000L}); 
     6108    public static final BitSet FOLLOW_15_in_ruleImport1427 = new BitSet(new long[]{0x0000000000000002L}); 
     6109    public static final BitSet FOLLOW_ruleRule_in_entryRuleRule1463 = new BitSet(new long[]{0x0000000000000000L}); 
     6110    public static final BitSet FOLLOW_EOF_in_entryRuleRule1473 = new BitSet(new long[]{0x0000000000000002L}); 
     6111    public static final BitSet FOLLOW_RULE_INT_in_ruleRule1516 = new BitSet(new long[]{0x0000000001000010L}); 
     6112    public static final BitSet FOLLOW_RULE_ID_in_ruleRule1538 = new BitSet(new long[]{0x0000000001000000L}); 
     6113    public static final BitSet FOLLOW_24_in_ruleRule1556 = new BitSet(new long[]{0x0000000000000010L}); 
     6114    public static final BitSet FOLLOW_RULE_ID_in_ruleRule1575 = new BitSet(new long[]{0x0000000002000000L}); 
     6115    public static final BitSet FOLLOW_25_in_ruleRule1592 = new BitSet(new long[]{0x0000000304008492L}); 
     6116    public static final BitSet FOLLOW_ruleDefinitionList_in_ruleRule1613 = new BitSet(new long[]{0x0000000000008002L}); 
     6117    public static final BitSet FOLLOW_15_in_ruleRule1627 = new BitSet(new long[]{0x0000000000000002L}); 
     6118    public static final BitSet FOLLOW_ruleExtRule_in_entryRuleExtRule1665 = new BitSet(new long[]{0x0000000000000000L}); 
     6119    public static final BitSet FOLLOW_EOF_in_entryRuleExtRule1675 = new BitSet(new long[]{0x0000000000000002L}); 
     6120    public static final BitSet FOLLOW_RULE_INT_in_ruleExtRule1718 = new BitSet(new long[]{0x0000000001000010L}); 
     6121    public static final BitSet FOLLOW_RULE_ID_in_ruleExtRule1740 = new BitSet(new long[]{0x0000000001000000L}); 
     6122    public static final BitSet FOLLOW_24_in_ruleExtRule1758 = new BitSet(new long[]{0x0000000000000010L}); 
     6123    public static final BitSet FOLLOW_RULE_ID_in_ruleExtRule1777 = new BitSet(new long[]{0x0000000004000000L}); 
     6124    public static final BitSet FOLLOW_26_in_ruleExtRule1795 = new BitSet(new long[]{0x0000000000000100L}); 
     6125    public static final BitSet FOLLOW_RULE_INT_in_ruleExtRule1812 = new BitSet(new long[]{0x0000000008000000L}); 
     6126    public static final BitSet FOLLOW_27_in_ruleExtRule1829 = new BitSet(new long[]{0x0000000010000000L}); 
     6127    public static final BitSet FOLLOW_28_in_ruleExtRule1842 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6128    public static final BitSet FOLLOW_ruleAtom_in_ruleExtRule1864 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6129    public static final BitSet FOLLOW_27_in_ruleExtRule1882 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6130    public static final BitSet FOLLOW_29_in_ruleExtRule1900 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6131    public static final BitSet FOLLOW_30_in_ruleExtRule1918 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6132    public static final BitSet FOLLOW_31_in_ruleExtRule1936 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6133    public static final BitSet FOLLOW_26_in_ruleExtRule1954 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6134    public static final BitSet FOLLOW_32_in_ruleExtRule1972 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6135    public static final BitSet FOLLOW_33_in_ruleExtRule1990 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6136    public static final BitSet FOLLOW_34_in_ruleExtRule2008 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6137    public static final BitSet FOLLOW_35_in_ruleExtRule2026 = new BitSet(new long[]{0x0000000FEC008492L}); 
     6138    public static final BitSet FOLLOW_15_in_ruleExtRule2041 = new BitSet(new long[]{0x0000000000000002L}); 
     6139    public static final BitSet FOLLOW_ruleMergeRule_in_entryRuleMergeRule2079 = new BitSet(new long[]{0x0000000000000000L}); 
     6140    public static final BitSet FOLLOW_EOF_in_entryRuleMergeRule2089 = new BitSet(new long[]{0x0000000000000002L}); 
     6141    public static final BitSet FOLLOW_ruleGlobalCombinator_in_ruleMergeRule2139 = new BitSet(new long[]{0x0000000000000002L}); 
     6142    public static final BitSet FOLLOW_ruleRuleCombinator_in_ruleMergeRule2169 = new BitSet(new long[]{0x0000000000000002L}); 
     6143    public static final BitSet FOLLOW_ruleHookCombinator_in_ruleMergeRule2199 = new BitSet(new long[]{0x0000000000000002L}); 
     6144    public static final BitSet FOLLOW_ruleGlobalCombinator_in_entryRuleGlobalCombinator2234 = new BitSet(new long[]{0x0000000000000000L}); 
     6145    public static final BitSet FOLLOW_EOF_in_entryRuleGlobalCombinator2244 = new BitSet(new long[]{0x0000000000000002L}); 
     6146    public static final BitSet FOLLOW_36_in_ruleGlobalCombinator2282 = new BitSet(new long[]{0x0000002000000000L}); 
     6147    public static final BitSet FOLLOW_37_in_ruleGlobalCombinator2294 = new BitSet(new long[]{0x0000000000000200L}); 
     6148    public static final BitSet FOLLOW_RULE_LOGIC_in_ruleGlobalCombinator2312 = new BitSet(new long[]{0x0000000000008002L}); 
     6149    public static final BitSet FOLLOW_15_in_ruleGlobalCombinator2330 = new BitSet(new long[]{0x0000000000000002L}); 
     6150    public static final BitSet FOLLOW_ruleRuleCombinator_in_entryRuleRuleCombinator2368 = new BitSet(new long[]{0x0000000000000000L}); 
     6151    public static final BitSet FOLLOW_EOF_in_entryRuleRuleCombinator2378 = new BitSet(new long[]{0x0000000000000002L}); 
     6152    public static final BitSet FOLLOW_38_in_ruleRuleCombinator2416 = new BitSet(new long[]{0x0000002000000000L}); 
     6153    public static final BitSet FOLLOW_37_in_ruleRuleCombinator2428 = new BitSet(new long[]{0x0000000000000010L}); 
     6154    public static final BitSet FOLLOW_RULE_ID_in_ruleRuleCombinator2445 = new BitSet(new long[]{0x0000000000000200L}); 
     6155    public static final BitSet FOLLOW_RULE_LOGIC_in_ruleRuleCombinator2468 = new BitSet(new long[]{0x0000000004008002L}); 
     6156    public static final BitSet FOLLOW_26_in_ruleRuleCombinator2486 = new BitSet(new long[]{0x0000000000000080L}); 
     6157    public static final BitSet FOLLOW_RULE_STRING_in_ruleRuleCombinator2503 = new BitSet(new long[]{0x0000000008000000L}); 
     6158    public static final BitSet FOLLOW_27_in_ruleRuleCombinator2520 = new BitSet(new long[]{0x0000000004008002L}); 
     6159    public static final BitSet FOLLOW_15_in_ruleRuleCombinator2535 = new BitSet(new long[]{0x0000000000000002L}); 
     6160    public static final BitSet FOLLOW_ruleHookCombinator_in_entryRuleHookCombinator2573 = new BitSet(new long[]{0x0000000000000000L}); 
     6161    public static final BitSet FOLLOW_EOF_in_entryRuleHookCombinator2583 = new BitSet(new long[]{0x0000000000000002L}); 
     6162    public static final BitSet FOLLOW_39_in_ruleHookCombinator2620 = new BitSet(new long[]{0x0000002000000000L}); 
     6163    public static final BitSet FOLLOW_37_in_ruleHookCombinator2632 = new BitSet(new long[]{0x0000000000000010L}); 
     6164    public static final BitSet FOLLOW_RULE_ID_in_ruleHookCombinator2649 = new BitSet(new long[]{0x0000000004000000L}); 
     6165    public static final BitSet FOLLOW_26_in_ruleHookCombinator2666 = new BitSet(new long[]{0x0000000000000100L}); 
     6166    public static final BitSet FOLLOW_RULE_INT_in_ruleHookCombinator2683 = new BitSet(new long[]{0x0000000008000000L}); 
     6167    public static final BitSet FOLLOW_27_in_ruleHookCombinator2700 = new BitSet(new long[]{0x0000000004000200L}); 
     6168    public static final BitSet FOLLOW_RULE_LOGIC_in_ruleHookCombinator2717 = new BitSet(new long[]{0x0000000004000000L}); 
     6169    public static final BitSet FOLLOW_26_in_ruleHookCombinator2736 = new BitSet(new long[]{0x0000000000000080L}); 
     6170    public static final BitSet FOLLOW_RULE_STRING_in_ruleHookCombinator2753 = new BitSet(new long[]{0x0000000008000000L}); 
     6171    public static final BitSet FOLLOW_27_in_ruleHookCombinator2770 = new BitSet(new long[]{0x0000000004008002L}); 
     6172    public static final BitSet FOLLOW_15_in_ruleHookCombinator2785 = new BitSet(new long[]{0x0000000000000002L}); 
     6173    public static final BitSet FOLLOW_ruleDefinitionList_in_entryRuleDefinitionList2823 = new BitSet(new long[]{0x0000000000000000L}); 
     6174    public static final BitSet FOLLOW_EOF_in_entryRuleDefinitionList2833 = new BitSet(new long[]{0x0000000000000002L}); 
     6175    public static final BitSet FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2879 = new BitSet(new long[]{0x0000000080000002L}); 
     6176    public static final BitSet FOLLOW_31_in_ruleDefinitionList2892 = new BitSet(new long[]{0x0000000304000490L}); 
     6177    public static final BitSet FOLLOW_ruleSingleDefinition_in_ruleDefinitionList2913 = new BitSet(new long[]{0x0000000080000002L}); 
     6178    public static final BitSet FOLLOW_ruleSingleDefinition_in_entryRuleSingleDefinition2951 = new BitSet(new long[]{0x0000000000000000L}); 
     6179    public static final BitSet FOLLOW_EOF_in_entryRuleSingleDefinition2961 = new BitSet(new long[]{0x0000000000000002L}); 
     6180    public static final BitSet FOLLOW_ruleTerm_in_ruleSingleDefinition3006 = new BitSet(new long[]{0x0000000304000492L}); 
     6181    public static final BitSet FOLLOW_ruleTerm_in_entryRuleTerm3042 = new BitSet(new long[]{0x0000000000000000L}); 
     6182    public static final BitSet FOLLOW_EOF_in_entryRuleTerm3052 = new BitSet(new long[]{0x0000000000000002L}); 
     6183    public static final BitSet FOLLOW_ruleAtom_in_ruleTerm3098 = new BitSet(new long[]{0x0000000000000002L}); 
     6184    public static final BitSet FOLLOW_ruleGroupedSequence_in_ruleTerm3125 = new BitSet(new long[]{0x0000000000000002L}); 
     6185    public static final BitSet FOLLOW_ruleOptionalSequence_in_ruleTerm3152 = new BitSet(new long[]{0x0000000000000002L}); 
     6186    public static final BitSet FOLLOW_ruleRepeatedSequence_in_ruleTerm3179 = new BitSet(new long[]{0x0000000000000002L}); 
     6187    public static final BitSet FOLLOW_ruleAtom_in_entryRuleAtom3215 = new BitSet(new long[]{0x0000000000000000L}); 
     6188    public static final BitSet FOLLOW_EOF_in_entryRuleAtom3225 = new BitSet(new long[]{0x0000000000000002L}); 
     6189    public static final BitSet FOLLOW_ruleStringRule_in_ruleAtom3271 = new BitSet(new long[]{0x0000000000000002L}); 
     6190    public static final BitSet FOLLOW_ruleRuleReference_in_ruleAtom3298 = new BitSet(new long[]{0x0000000000000002L}); 
     6191    public static final BitSet FOLLOW_ruleRuleReference_in_entryRuleRuleReference3334 = new BitSet(new long[]{0x0000000000000000L}); 
     6192    public static final BitSet FOLLOW_EOF_in_entryRuleRuleReference3344 = new BitSet(new long[]{0x0000000000000002L}); 
     6193    public static final BitSet FOLLOW_RULE_ID_in_ruleRuleReference3392 = new BitSet(new long[]{0x0000000000000002L}); 
     6194    public static final BitSet FOLLOW_ruleStringRule_in_entryRuleStringRule3427 = new BitSet(new long[]{0x0000000000000000L}); 
     6195    public static final BitSet FOLLOW_EOF_in_entryRuleStringRule3437 = new BitSet(new long[]{0x0000000000000002L}); 
     6196    public static final BitSet FOLLOW_RULE_STRING_in_ruleStringRule3479 = new BitSet(new long[]{0x0000000000000002L}); 
     6197    public static final BitSet FOLLOW_RULE_COLON_in_ruleStringRule3507 = new BitSet(new long[]{0x0000000000000002L}); 
     6198    public static final BitSet FOLLOW_ruleGroupedSequence_in_entryRuleGroupedSequence3548 = new BitSet(new long[]{0x0000000000000000L}); 
     6199    public static final BitSet FOLLOW_EOF_in_entryRuleGroupedSequence3558 = new BitSet(new long[]{0x0000000000000002L}); 
     6200    public static final BitSet FOLLOW_26_in_ruleGroupedSequence3595 = new BitSet(new long[]{0x0000000304000490L}); 
     6201    public static final BitSet FOLLOW_ruleDefinitionList_in_ruleGroupedSequence3616 = new BitSet(new long[]{0x0000000008000000L}); 
     6202    public static final BitSet FOLLOW_27_in_ruleGroupedSequence3628 = new BitSet(new long[]{0x0000000000000002L}); 
     6203    public static final BitSet FOLLOW_ruleOptionalSequence_in_entryRuleOptionalSequence3664 = new BitSet(new long[]{0x0000000000000000L}); 
     6204    public static final BitSet FOLLOW_EOF_in_entryRuleOptionalSequence3674 = new BitSet(new long[]{0x0000000000000002L}); 
     6205    public static final BitSet FOLLOW_32_in_ruleOptionalSequence3711 = new BitSet(new long[]{0x0000000304000490L}); 
     6206    public static final BitSet FOLLOW_ruleDefinitionList_in_ruleOptionalSequence3732 = new BitSet(new long[]{0x0000000020000000L}); 
     6207    public static final BitSet FOLLOW_29_in_ruleOptionalSequence3744 = new BitSet(new long[]{0x0000000000000002L}); 
     6208    public static final BitSet FOLLOW_ruleRepeatedSequence_in_entryRuleRepeatedSequence3780 = new BitSet(new long[]{0x0000000000000000L}); 
     6209    public static final BitSet FOLLOW_EOF_in_entryRuleRepeatedSequence3790 = new BitSet(new long[]{0x0000000000000002L}); 
     6210    public static final BitSet FOLLOW_33_in_ruleRepeatedSequence3827 = new BitSet(new long[]{0x0000000304000490L}); 
     6211    public static final BitSet FOLLOW_ruleDefinitionList_in_ruleRepeatedSequence3848 = new BitSet(new long[]{0x0000000040000000L}); 
     6212    public static final BitSet FOLLOW_30_in_ruleRepeatedSequence3860 = new BitSet(new long[]{0x0000010800000002L}); 
     6213    public static final BitSet FOLLOW_35_in_ruleRepeatedSequence3879 = new BitSet(new long[]{0x0000000000000002L}); 
     6214    public static final BitSet FOLLOW_ruleRepeatRange_in_ruleRepeatedSequence3920 = new BitSet(new long[]{0x0000000000000002L}); 
     6215    public static final BitSet FOLLOW_ruleRepeatRange_in_entryRuleRepeatRange3958 = new BitSet(new long[]{0x0000000000000000L}); 
     6216    public static final BitSet FOLLOW_EOF_in_entryRuleRepeatRange3968 = new BitSet(new long[]{0x0000000000000002L}); 
     6217    public static final BitSet FOLLOW_40_in_ruleRepeatRange4005 = new BitSet(new long[]{0x0000000004000000L}); 
     6218    public static final BitSet FOLLOW_26_in_ruleRepeatRange4017 = new BitSet(new long[]{0x0000000000000100L}); 
     6219    public static final BitSet FOLLOW_RULE_INT_in_ruleRepeatRange4034 = new BitSet(new long[]{0x0000020000000000L}); 
     6220    public static final BitSet FOLLOW_41_in_ruleRepeatRange4051 = new BitSet(new long[]{0x0000000000000100L}); 
     6221    public static final BitSet FOLLOW_RULE_INT_in_ruleRepeatRange4068 = new BitSet(new long[]{0x0000000008000000L}); 
     6222    public static final BitSet FOLLOW_27_in_ruleRepeatRange4085 = new BitSet(new long[]{0x0000000000000002L}); 
     6223    public static final BitSet FOLLOW_35_in_synpred53_InternalEbnf3879 = new BitSet(new long[]{0x0000000000000002L}); 
    60196224 
    60206225} 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/serializer/EbnfSemanticSequencer.java

    r95 r100  
    55import de.ugoe.cs.swe.bnftools.ebnf.Atom; 
    66import de.ugoe.cs.swe.bnftools.ebnf.BnfEntry; 
     7import de.ugoe.cs.swe.bnftools.ebnf.Comment; 
    78import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList; 
    89import de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry; 
     
    5960                                } 
    6061                                else break; 
     62                        case EbnfPackage.COMMENT: 
     63                                if(context == grammarAccess.getCommentRule()) { 
     64                                        sequence_Comment(context, (Comment) semanticObject);  
     65                                        return;  
     66                                } 
     67                                else break; 
    6168                        case EbnfPackage.DEFINITION_LIST: 
    6269                                if(context == grammarAccess.getDefinitionListRule()) { 
     
    197204        /** 
    198205         * Constraint: 
    199          *     (sectionheader=SectionHeading | rule=Rule) 
     206         *     (sectionheader=SectionHeading | rule=Rule | comment=Comment) 
    200207         */ 
    201208        protected void sequence_BnfEntry(EObject context, BnfEntry semanticObject) { 
    202209                genericSequencer.createSequence(context, semanticObject); 
     210        } 
     211         
     212         
     213        /** 
     214         * Constraint: 
     215         *     content=ML_COMMENT 
     216         */ 
     217        protected void sequence_Comment(EObject context, Comment semanticObject) { 
     218                if(errorAcceptor != null) { 
     219                        if(transientValues.isValueTransient(semanticObject, EbnfPackage.Literals.COMMENT__CONTENT) == ValueTransient.YES) 
     220                                errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, EbnfPackage.Literals.COMMENT__CONTENT)); 
     221                } 
     222                INodesForEObjectProvider nodes = createNodeProvider(semanticObject); 
     223                SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); 
     224                feeder.accept(grammarAccess.getCommentAccess().getContentML_COMMENTTerminalRuleCall_1_0(), semanticObject.getContent()); 
     225                feeder.finish(); 
    203226        } 
    204227         
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/serializer/EbnfSyntacticSequencer.java

    r95 r100  
    7676         * Syntax: 
    7777         *     ( 
     78             ']' |  
     79             '(' |  
     80             '|' |  
    7881             '}' |  
    7982             '*' |  
    80              ']' |  
    81              '|' |  
    82              '(' |  
     83             '+' |  
    8384             '{' |  
    84              '+' |  
    8585             ')' |  
    8686             '[' 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/services/EbnfGrammarAccess.java

    r95 r100  
    172172                private final Assignment cRuleAssignment_1 = (Assignment)cAlternatives.eContents().get(1); 
    173173                private final RuleCall cRuleRuleParserRuleCall_1_0 = (RuleCall)cRuleAssignment_1.eContents().get(0); 
     174                private final Assignment cCommentAssignment_2 = (Assignment)cAlternatives.eContents().get(2); 
     175                private final RuleCall cCommentCommentParserRuleCall_2_0 = (RuleCall)cCommentAssignment_2.eContents().get(0); 
    174176                 
    175177                //BnfEntry: 
    176                 //      sectionheader=SectionHeading | rule=Rule; 
    177                 public ParserRule getRule() { return rule; } 
    178  
    179                 //sectionheader=SectionHeading | rule=Rule 
     178                //      sectionheader=SectionHeading | rule=Rule | comment=Comment; 
     179                public ParserRule getRule() { return rule; } 
     180 
     181                //sectionheader=SectionHeading | rule=Rule | comment=Comment 
    180182                public Alternatives getAlternatives() { return cAlternatives; } 
    181183 
     
    191193                //Rule 
    192194                public RuleCall getRuleRuleParserRuleCall_1_0() { return cRuleRuleParserRuleCall_1_0; } 
     195 
     196                //comment=Comment 
     197                public Assignment getCommentAssignment_2() { return cCommentAssignment_2; } 
     198 
     199                //Comment 
     200                public RuleCall getCommentCommentParserRuleCall_2_0() { return cCommentCommentParserRuleCall_2_0; } 
    193201        } 
    194202 
     
    279287                //SECTIONHEADER 
    280288                public RuleCall getSectionHeaderSECTIONHEADERTerminalRuleCall_1_0() { return cSectionHeaderSECTIONHEADERTerminalRuleCall_1_0; } 
     289        } 
     290 
     291        public class CommentElements extends AbstractParserRuleElementFinder { 
     292                private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Comment"); 
     293                private final Group cGroup = (Group)rule.eContents().get(1); 
     294                private final Action cCommentAction_0 = (Action)cGroup.eContents().get(0); 
     295                private final Assignment cContentAssignment_1 = (Assignment)cGroup.eContents().get(1); 
     296                private final RuleCall cContentML_COMMENTTerminalRuleCall_1_0 = (RuleCall)cContentAssignment_1.eContents().get(0); 
     297                 
     298                //Comment: 
     299                //      {Comment} content=ML_COMMENT; 
     300                public ParserRule getRule() { return rule; } 
     301 
     302                //{Comment} content=ML_COMMENT 
     303                public Group getGroup() { return cGroup; } 
     304 
     305                //{Comment} 
     306                public Action getCommentAction_0() { return cCommentAction_0; } 
     307 
     308                //content=ML_COMMENT 
     309                public Assignment getContentAssignment_1() { return cContentAssignment_1; } 
     310 
     311                //ML_COMMENT 
     312                public RuleCall getContentML_COMMENTTerminalRuleCall_1_0() { return cContentML_COMMENTTerminalRuleCall_1_0; } 
    281313        } 
    282314 
     
    10771109        private MergeEntryElements pMergeEntry; 
    10781110        private SectionHeadingElements pSectionHeading; 
     1111        private CommentElements pComment; 
    10791112        private ImportElements pImport; 
    10801113        private RuleElements pRule; 
     
    11601193 
    11611194        //BnfEntry: 
    1162         //      sectionheader=SectionHeading | rule=Rule; 
     1195        //      sectionheader=SectionHeading | rule=Rule | comment=Comment; 
    11631196        public BnfEntryElements getBnfEntryAccess() { 
    11641197                return (pBnfEntry != null) ? pBnfEntry : (pBnfEntry = new BnfEntryElements()); 
     
    11971230        public ParserRule getSectionHeadingRule() { 
    11981231                return getSectionHeadingAccess().getRule(); 
     1232        } 
     1233 
     1234        //Comment: 
     1235        //      {Comment} content=ML_COMMENT; 
     1236        public CommentElements getCommentAccess() { 
     1237                return (pComment != null) ? pComment : (pComment = new CommentElements()); 
     1238        } 
     1239         
     1240        public ParserRule getCommentRule() { 
     1241                return getCommentAccess().getRule(); 
    11991242        } 
    12001243 
Note: See TracChangeset for help on using the changeset viewer.