Changeset 95 in default


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

+ generated resources

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

Legend:

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

    r88 r95  
    117117        eType="#//DefinitionList" containment="true"/> 
    118118    <eStructuralFeatures xsi:type="ecore:EAttribute" name="morethanonce" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> 
     119    <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//RepeatRange" 
     120        containment="true"/> 
     121  </eClassifiers> 
     122  <eClassifiers xsi:type="ecore:EClass" name="RepeatRange"> 
     123    <eStructuralFeatures xsi:type="ecore:EAttribute" name="from" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> 
     124    <eStructuralFeatures xsi:type="ecore:EAttribute" name="to" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> 
    119125  </eClassifiers> 
    120126</ecore:EPackage> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/model/generated/Ebnf.genmodel

    r88 r95  
    9898      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Ebnf.ecore#//RepeatedSequence/definitions"/> 
    9999      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Ebnf.ecore#//RepeatedSequence/morethanonce"/> 
     100      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Ebnf.ecore#//RepeatedSequence/range"/> 
     101    </genClasses> 
     102    <genClasses ecoreClass="Ebnf.ecore#//RepeatRange"> 
     103      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Ebnf.ecore#//RepeatRange/from"/> 
     104      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Ebnf.ecore#//RepeatRange/to"/> 
    100105    </genClasses> 
    101106  </genPackages> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/EbnfFactory.java

    r88 r95  
    222222 
    223223  /** 
     224   * Returns a new object of class '<em>Repeat Range</em>'. 
     225   * <!-- begin-user-doc --> 
     226   * <!-- end-user-doc --> 
     227   * @return a new object of class '<em>Repeat Range</em>'. 
     228   * @generated 
     229   */ 
     230  RepeatRange createRepeatRange(); 
     231 
     232  /** 
    224233   * Returns the package supported by this factory. 
    225234   * <!-- begin-user-doc --> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/EbnfPackage.java

    r88 r95  
    926926 
    927927  /** 
     928   * The feature id for the '<em><b>Range</b></em>' containment reference. 
     929   * <!-- begin-user-doc --> 
     930   * <!-- end-user-doc --> 
     931   * @generated 
     932   * @ordered 
     933   */ 
     934  int REPEATED_SEQUENCE__RANGE = 2; 
     935 
     936  /** 
    928937   * The number of structural features of the '<em>Repeated Sequence</em>' class. 
    929938   * <!-- begin-user-doc --> 
     
    932941   * @ordered 
    933942   */ 
    934   int REPEATED_SEQUENCE_FEATURE_COUNT = 2; 
     943  int REPEATED_SEQUENCE_FEATURE_COUNT = 3; 
     944 
     945  /** 
     946   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatRangeImpl <em>Repeat Range</em>}' class. 
     947   * <!-- begin-user-doc --> 
     948   * <!-- end-user-doc --> 
     949   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatRangeImpl 
     950   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRepeatRange() 
     951   * @generated 
     952   */ 
     953  int REPEAT_RANGE = 22; 
     954 
     955  /** 
     956   * The feature id for the '<em><b>From</b></em>' attribute. 
     957   * <!-- begin-user-doc --> 
     958   * <!-- end-user-doc --> 
     959   * @generated 
     960   * @ordered 
     961   */ 
     962  int REPEAT_RANGE__FROM = 0; 
     963 
     964  /** 
     965   * The feature id for the '<em><b>To</b></em>' attribute. 
     966   * <!-- begin-user-doc --> 
     967   * <!-- end-user-doc --> 
     968   * @generated 
     969   * @ordered 
     970   */ 
     971  int REPEAT_RANGE__TO = 1; 
     972 
     973  /** 
     974   * The number of structural features of the '<em>Repeat Range</em>' class. 
     975   * <!-- begin-user-doc --> 
     976   * <!-- end-user-doc --> 
     977   * @generated 
     978   * @ordered 
     979   */ 
     980  int REPEAT_RANGE_FEATURE_COUNT = 2; 
    935981 
    936982 
     
    16821728   */ 
    16831729  EAttribute getRepeatedSequence_Morethanonce(); 
     1730 
     1731  /** 
     1732   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#getRange <em>Range</em>}'. 
     1733   * <!-- begin-user-doc --> 
     1734   * <!-- end-user-doc --> 
     1735   * @return the meta object for the containment reference '<em>Range</em>'. 
     1736   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#getRange() 
     1737   * @see #getRepeatedSequence() 
     1738   * @generated 
     1739   */ 
     1740  EReference getRepeatedSequence_Range(); 
     1741 
     1742  /** 
     1743   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatRange <em>Repeat Range</em>}'. 
     1744   * <!-- begin-user-doc --> 
     1745   * <!-- end-user-doc --> 
     1746   * @return the meta object for class '<em>Repeat Range</em>'. 
     1747   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatRange 
     1748   * @generated 
     1749   */ 
     1750  EClass getRepeatRange(); 
     1751 
     1752  /** 
     1753   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatRange#getFrom <em>From</em>}'. 
     1754   * <!-- begin-user-doc --> 
     1755   * <!-- end-user-doc --> 
     1756   * @return the meta object for the attribute '<em>From</em>'. 
     1757   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatRange#getFrom() 
     1758   * @see #getRepeatRange() 
     1759   * @generated 
     1760   */ 
     1761  EAttribute getRepeatRange_From(); 
     1762 
     1763  /** 
     1764   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatRange#getTo <em>To</em>}'. 
     1765   * <!-- begin-user-doc --> 
     1766   * <!-- end-user-doc --> 
     1767   * @return the meta object for the attribute '<em>To</em>'. 
     1768   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatRange#getTo() 
     1769   * @see #getRepeatRange() 
     1770   * @generated 
     1771   */ 
     1772  EAttribute getRepeatRange_To(); 
    16841773 
    16851774  /** 
     
    23102399    EAttribute REPEATED_SEQUENCE__MORETHANONCE = eINSTANCE.getRepeatedSequence_Morethanonce(); 
    23112400 
     2401    /** 
     2402     * The meta object literal for the '<em><b>Range</b></em>' containment reference feature. 
     2403     * <!-- begin-user-doc --> 
     2404     * <!-- end-user-doc --> 
     2405     * @generated 
     2406     */ 
     2407    EReference REPEATED_SEQUENCE__RANGE = eINSTANCE.getRepeatedSequence_Range(); 
     2408 
     2409    /** 
     2410     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatRangeImpl <em>Repeat Range</em>}' class. 
     2411     * <!-- begin-user-doc --> 
     2412     * <!-- end-user-doc --> 
     2413     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatRangeImpl 
     2414     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRepeatRange() 
     2415     * @generated 
     2416     */ 
     2417    EClass REPEAT_RANGE = eINSTANCE.getRepeatRange(); 
     2418 
     2419    /** 
     2420     * The meta object literal for the '<em><b>From</b></em>' attribute feature. 
     2421     * <!-- begin-user-doc --> 
     2422     * <!-- end-user-doc --> 
     2423     * @generated 
     2424     */ 
     2425    EAttribute REPEAT_RANGE__FROM = eINSTANCE.getRepeatRange_From(); 
     2426 
     2427    /** 
     2428     * The meta object literal for the '<em><b>To</b></em>' attribute feature. 
     2429     * <!-- begin-user-doc --> 
     2430     * <!-- end-user-doc --> 
     2431     * @generated 
     2432     */ 
     2433    EAttribute REPEAT_RANGE__TO = eINSTANCE.getRepeatRange_To(); 
     2434 
    23122435  } 
    23132436 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/RepeatedSequence.java

    r88 r95  
    1717 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#getDefinitions <em>Definitions</em>}</li> 
    1818 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#isMorethanonce <em>Morethanonce</em>}</li> 
     19 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#getRange <em>Range</em>}</li> 
    1920 * </ul> 
    2021 * </p> 
     
    6869  void setMorethanonce(boolean value); 
    6970 
     71  /** 
     72   * Returns the value of the '<em><b>Range</b></em>' containment reference. 
     73   * <!-- begin-user-doc --> 
     74   * <p> 
     75   * If the meaning of the '<em>Range</em>' containment reference isn't clear, 
     76   * there really should be more of a description here... 
     77   * </p> 
     78   * <!-- end-user-doc --> 
     79   * @return the value of the '<em>Range</em>' containment reference. 
     80   * @see #setRange(RepeatRange) 
     81   * @see de.ugoe.cs.swe.bnftools.ebnf.EbnfPackage#getRepeatedSequence_Range() 
     82   * @model containment="true" 
     83   * @generated 
     84   */ 
     85  RepeatRange getRange(); 
     86 
     87  /** 
     88   * Sets the value of the '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#getRange <em>Range</em>}' containment reference. 
     89   * <!-- begin-user-doc --> 
     90   * <!-- end-user-doc --> 
     91   * @param value the new value of the '<em>Range</em>' containment reference. 
     92   * @see #getRange() 
     93   * @generated 
     94   */ 
     95  void setRange(RepeatRange value); 
     96 
    7097} // RepeatedSequence 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/impl/EbnfFactoryImpl.java

    r88 r95  
    8787      case EbnfPackage.OPTIONAL_SEQUENCE: return createOptionalSequence(); 
    8888      case EbnfPackage.REPEATED_SEQUENCE: return createRepeatedSequence(); 
     89      case EbnfPackage.REPEAT_RANGE: return createRepeatRange(); 
    8990      default: 
    9091        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); 
     
    339340   * @generated 
    340341   */ 
     342  public RepeatRange createRepeatRange() 
     343  { 
     344    RepeatRangeImpl repeatRange = new RepeatRangeImpl(); 
     345    return repeatRange; 
     346  } 
     347 
     348  /** 
     349   * <!-- begin-user-doc --> 
     350   * <!-- end-user-doc --> 
     351   * @generated 
     352   */ 
    341353  public EbnfPackage getEbnfPackage() 
    342354  { 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/impl/EbnfPackageImpl.java

    r88 r95  
    1919import de.ugoe.cs.swe.bnftools.ebnf.MergeRule; 
    2020import de.ugoe.cs.swe.bnftools.ebnf.OptionalSequence; 
     21import de.ugoe.cs.swe.bnftools.ebnf.RepeatRange; 
    2122import de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence; 
    2223import de.ugoe.cs.swe.bnftools.ebnf.Rule; 
     
    198199 
    199200  /** 
     201   * <!-- begin-user-doc --> 
     202   * <!-- end-user-doc --> 
     203   * @generated 
     204   */ 
     205  private EClass repeatRangeEClass = null; 
     206 
     207  /** 
    200208   * Creates an instance of the model <b>Package</b>, registered with 
    201209   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package 
     
    958966  { 
    959967    return (EAttribute)repeatedSequenceEClass.getEStructuralFeatures().get(1); 
     968  } 
     969 
     970  /** 
     971   * <!-- begin-user-doc --> 
     972   * <!-- end-user-doc --> 
     973   * @generated 
     974   */ 
     975  public EReference getRepeatedSequence_Range() 
     976  { 
     977    return (EReference)repeatedSequenceEClass.getEStructuralFeatures().get(2); 
     978  } 
     979 
     980  /** 
     981   * <!-- begin-user-doc --> 
     982   * <!-- end-user-doc --> 
     983   * @generated 
     984   */ 
     985  public EClass getRepeatRange() 
     986  { 
     987    return repeatRangeEClass; 
     988  } 
     989 
     990  /** 
     991   * <!-- begin-user-doc --> 
     992   * <!-- end-user-doc --> 
     993   * @generated 
     994   */ 
     995  public EAttribute getRepeatRange_From() 
     996  { 
     997    return (EAttribute)repeatRangeEClass.getEStructuralFeatures().get(0); 
     998  } 
     999 
     1000  /** 
     1001   * <!-- begin-user-doc --> 
     1002   * <!-- end-user-doc --> 
     1003   * @generated 
     1004   */ 
     1005  public EAttribute getRepeatRange_To() 
     1006  { 
     1007    return (EAttribute)repeatRangeEClass.getEStructuralFeatures().get(1); 
    9601008  } 
    9611009 
     
    10811129    createEReference(repeatedSequenceEClass, REPEATED_SEQUENCE__DEFINITIONS); 
    10821130    createEAttribute(repeatedSequenceEClass, REPEATED_SEQUENCE__MORETHANONCE); 
     1131    createEReference(repeatedSequenceEClass, REPEATED_SEQUENCE__RANGE); 
     1132 
     1133    repeatRangeEClass = createEClass(REPEAT_RANGE); 
     1134    createEAttribute(repeatRangeEClass, REPEAT_RANGE__FROM); 
     1135    createEAttribute(repeatRangeEClass, REPEAT_RANGE__TO); 
    10831136  } 
    10841137 
     
    12081261    initEReference(getRepeatedSequence_Definitions(), this.getDefinitionList(), null, "definitions", null, 0, -1, RepeatedSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
    12091262    initEAttribute(getRepeatedSequence_Morethanonce(), ecorePackage.getEBoolean(), "morethanonce", null, 0, 1, RepeatedSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
     1263    initEReference(getRepeatedSequence_Range(), this.getRepeatRange(), null, "range", null, 0, 1, RepeatedSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
     1264 
     1265    initEClass(repeatRangeEClass, RepeatRange.class, "RepeatRange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 
     1266    initEAttribute(getRepeatRange_From(), ecorePackage.getEInt(), "from", null, 0, 1, RepeatRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
     1267    initEAttribute(getRepeatRange_To(), ecorePackage.getEInt(), "to", null, 0, 1, RepeatRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 
    12101268 
    12111269    // Create resource 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/impl/RepeatedSequenceImpl.java

    r88 r95  
    55import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList; 
    66import de.ugoe.cs.swe.bnftools.ebnf.EbnfPackage; 
     7import de.ugoe.cs.swe.bnftools.ebnf.RepeatRange; 
    78import de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence; 
    89 
     
    3233 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatedSequenceImpl#getDefinitions <em>Definitions</em>}</li> 
    3334 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatedSequenceImpl#isMorethanonce <em>Morethanonce</em>}</li> 
     35 *   <li>{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatedSequenceImpl#getRange <em>Range</em>}</li> 
    3436 * </ul> 
    3537 * </p> 
     
    7072 
    7173  /** 
     74   * The cached value of the '{@link #getRange() <em>Range</em>}' containment reference. 
     75   * <!-- begin-user-doc --> 
     76   * <!-- end-user-doc --> 
     77   * @see #getRange() 
     78   * @generated 
     79   * @ordered 
     80   */ 
     81  protected RepeatRange range; 
     82 
     83  /** 
    7284   * <!-- begin-user-doc --> 
    7385   * <!-- end-user-doc --> 
     
    132144   * @generated 
    133145   */ 
     146  public RepeatRange getRange() 
     147  { 
     148    return range; 
     149  } 
     150 
     151  /** 
     152   * <!-- begin-user-doc --> 
     153   * <!-- end-user-doc --> 
     154   * @generated 
     155   */ 
     156  public NotificationChain basicSetRange(RepeatRange newRange, NotificationChain msgs) 
     157  { 
     158    RepeatRange oldRange = range; 
     159    range = newRange; 
     160    if (eNotificationRequired()) 
     161    { 
     162      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EbnfPackage.REPEATED_SEQUENCE__RANGE, oldRange, newRange); 
     163      if (msgs == null) msgs = notification; else msgs.add(notification); 
     164    } 
     165    return msgs; 
     166  } 
     167 
     168  /** 
     169   * <!-- begin-user-doc --> 
     170   * <!-- end-user-doc --> 
     171   * @generated 
     172   */ 
     173  public void setRange(RepeatRange newRange) 
     174  { 
     175    if (newRange != range) 
     176    { 
     177      NotificationChain msgs = null; 
     178      if (range != null) 
     179        msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EbnfPackage.REPEATED_SEQUENCE__RANGE, null, msgs); 
     180      if (newRange != null) 
     181        msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EbnfPackage.REPEATED_SEQUENCE__RANGE, null, msgs); 
     182      msgs = basicSetRange(newRange, msgs); 
     183      if (msgs != null) msgs.dispatch(); 
     184    } 
     185    else if (eNotificationRequired()) 
     186      eNotify(new ENotificationImpl(this, Notification.SET, EbnfPackage.REPEATED_SEQUENCE__RANGE, newRange, newRange)); 
     187  } 
     188 
     189  /** 
     190   * <!-- begin-user-doc --> 
     191   * <!-- end-user-doc --> 
     192   * @generated 
     193   */ 
    134194  @Override 
    135195  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) 
     
    139199      case EbnfPackage.REPEATED_SEQUENCE__DEFINITIONS: 
    140200        return ((InternalEList<?>)getDefinitions()).basicRemove(otherEnd, msgs); 
     201      case EbnfPackage.REPEATED_SEQUENCE__RANGE: 
     202        return basicSetRange(null, msgs); 
    141203    } 
    142204    return super.eInverseRemove(otherEnd, featureID, msgs); 
     
    157219      case EbnfPackage.REPEATED_SEQUENCE__MORETHANONCE: 
    158220        return isMorethanonce(); 
     221      case EbnfPackage.REPEATED_SEQUENCE__RANGE: 
     222        return getRange(); 
    159223    } 
    160224    return super.eGet(featureID, resolve, coreType); 
     
    179243        setMorethanonce((Boolean)newValue); 
    180244        return; 
     245      case EbnfPackage.REPEATED_SEQUENCE__RANGE: 
     246        setRange((RepeatRange)newValue); 
     247        return; 
    181248    } 
    182249    super.eSet(featureID, newValue); 
     
    198265      case EbnfPackage.REPEATED_SEQUENCE__MORETHANONCE: 
    199266        setMorethanonce(MORETHANONCE_EDEFAULT); 
     267        return; 
     268      case EbnfPackage.REPEATED_SEQUENCE__RANGE: 
     269        setRange((RepeatRange)null); 
    200270        return; 
    201271    } 
     
    217287      case EbnfPackage.REPEATED_SEQUENCE__MORETHANONCE: 
    218288        return morethanonce != MORETHANONCE_EDEFAULT; 
     289      case EbnfPackage.REPEATED_SEQUENCE__RANGE: 
     290        return range != null; 
    219291    } 
    220292    return super.eIsSet(featureID); 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/util/EbnfAdapterFactory.java

    r88 r95  
    186186      } 
    187187      @Override 
     188      public Adapter caseRepeatRange(RepeatRange object) 
     189      { 
     190        return createRepeatRangeAdapter(); 
     191      } 
     192      @Override 
    188193      public Adapter defaultCase(EObject object) 
    189194      { 
     
    538543 
    539544  /** 
     545   * Creates a new adapter for an object of class '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatRange <em>Repeat Range</em>}'. 
     546   * <!-- begin-user-doc --> 
     547   * This default implementation returns null so that we can easily ignore cases; 
     548   * it's useful to ignore a case when inheritance will catch all the cases anyway. 
     549   * <!-- end-user-doc --> 
     550   * @return the new adapter. 
     551   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatRange 
     552   * @generated 
     553   */ 
     554  public Adapter createRepeatRangeAdapter() 
     555  { 
     556    return null; 
     557  } 
     558 
     559  /** 
    540560   * Creates a new adapter for the default case. 
    541561   * <!-- begin-user-doc --> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/ebnf/util/EbnfSwitch.java

    r88 r95  
    230230        return result; 
    231231      } 
     232      case EbnfPackage.REPEAT_RANGE: 
     233      { 
     234        RepeatRange repeatRange = (RepeatRange)theEObject; 
     235        T result = caseRepeatRange(repeatRange); 
     236        if (result == null) result = defaultCase(theEObject); 
     237        return result; 
     238      } 
    232239      default: return defaultCase(theEObject); 
    233240    } 
     
    587594 
    588595  /** 
     596   * Returns the result of interpreting the object as an instance of '<em>Repeat Range</em>'. 
     597   * <!-- begin-user-doc --> 
     598   * This implementation returns null; 
     599   * returning a non-null result will terminate the switch. 
     600   * <!-- end-user-doc --> 
     601   * @param object the target of the switch. 
     602   * @return the result of interpreting the object as an instance of '<em>Repeat Range</em>'. 
     603   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 
     604   * @generated 
     605   */ 
     606  public T caseRepeatRange(RepeatRange object) 
     607  { 
     608    return null; 
     609  } 
     610 
     611  /** 
    589612   * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. 
    590613   * <!-- begin-user-doc --> 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g

    r61 r95  
    66options { 
    77        superClass=AbstractInternalAntlrParser; 
     8        backtrack=true; 
     9         memoize=true; 
    810         
    911} 
     
    3537@parser::members { 
    3638 
     39/* 
     40  This grammar contains a lot of empty actions to work around a bug in ANTLR. 
     41  Otherwise the ANTLR tool will create synpreds that cannot be compiled in some rare cases. 
     42*/ 
     43  
    3744        private EbnfGrammarAccess grammarAccess; 
    3845         
     
    521528    @after { leaveRule(); }: 
    522529(( 
     530        {  
     531          /* */  
     532        } 
    523533    { 
    524534        $current = forceCreateModelElement( 
     
    967977    @after { leaveRule(); }: 
    968978( 
     979        {  
     980          /* */  
     981        } 
    969982    {  
    970983        newCompositeNode(grammarAccess.getMergeRuleAccess().getGlobalCombinatorParserRuleCall_0());  
     
    977990 
    978991    | 
     992        {  
     993          /* */  
     994        } 
    979995    {  
    980996        newCompositeNode(grammarAccess.getMergeRuleAccess().getRuleCombinatorParserRuleCall_1());  
     
    9871003 
    9881004    | 
     1005        {  
     1006          /* */  
     1007        } 
    9891008    {  
    9901009        newCompositeNode(grammarAccess.getMergeRuleAccess().getHookCombinatorParserRuleCall_2());  
     
    15391558( 
    15401559( 
     1560                {  
     1561                  /* */  
     1562                } 
    15411563                { 
    15421564                        if ($current==null) { 
     
    17491771        newLeafNode(otherlv_2, grammarAccess.getRepeatedSequenceAccess().getRightCurlyBracketKeyword_2()); 
    17501772    } 
    1751 ( 
     1773(( 
    17521774( 
    17531775                lv_morethanonce_3_0=    '+'  
    17541776    { 
    1755         newLeafNode(lv_morethanonce_3_0, grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0()); 
     1777        newLeafNode(lv_morethanonce_3_0, grammarAccess.getRepeatedSequenceAccess().getMorethanoncePlusSignKeyword_3_0_0()); 
    17561778    } 
    17571779  
     
    17641786 
    17651787) 
    1766 )?) 
     1788)? 
     1789    |( 
     1790( 
     1791                {  
     1792                newCompositeNode(grammarAccess.getRepeatedSequenceAccess().getRangeRepeatRangeParserRuleCall_3_1_0());  
     1793            } 
     1794                lv_range_4_0=ruleRepeatRange            { 
     1795                if ($current==null) { 
     1796                    $current = createModelElementForParent(grammarAccess.getRepeatedSequenceRule()); 
     1797                } 
     1798                set( 
     1799                        $current,  
     1800                        "range", 
     1801                        lv_range_4_0,  
     1802                        "RepeatRange"); 
     1803                afterParserOrEnumRuleCall(); 
     1804            } 
     1805 
     1806) 
     1807)?)) 
     1808; 
     1809 
     1810 
     1811 
     1812 
     1813 
     1814// Entry rule entryRuleRepeatRange 
     1815entryRuleRepeatRange returns [EObject current=null]  
     1816        : 
     1817        { newCompositeNode(grammarAccess.getRepeatRangeRule()); } 
     1818         iv_ruleRepeatRange=ruleRepeatRange  
     1819         { $current=$iv_ruleRepeatRange.current; }  
     1820         EOF  
     1821; 
     1822 
     1823// Rule RepeatRange 
     1824ruleRepeatRange returns [EObject current=null]  
     1825    @init { enterRule();  
     1826    } 
     1827    @after { leaveRule(); }: 
     1828(       otherlv_0='#'  
     1829    { 
     1830        newLeafNode(otherlv_0, grammarAccess.getRepeatRangeAccess().getNumberSignKeyword_0()); 
     1831    } 
     1832        otherlv_1='('  
     1833    { 
     1834        newLeafNode(otherlv_1, grammarAccess.getRepeatRangeAccess().getLeftParenthesisKeyword_1()); 
     1835    } 
     1836( 
     1837( 
     1838                lv_from_2_0=RULE_INT 
     1839                { 
     1840                        newLeafNode(lv_from_2_0, grammarAccess.getRepeatRangeAccess().getFromINTTerminalRuleCall_2_0());  
     1841                } 
     1842                { 
     1843                if ($current==null) { 
     1844                    $current = createModelElement(grammarAccess.getRepeatRangeRule()); 
     1845                } 
     1846                setWithLastConsumed( 
     1847                        $current,  
     1848                        "from", 
     1849                        lv_from_2_0,  
     1850                        "INT"); 
     1851            } 
     1852 
     1853) 
     1854)       otherlv_3=','  
     1855    { 
     1856        newLeafNode(otherlv_3, grammarAccess.getRepeatRangeAccess().getCommaKeyword_3()); 
     1857    } 
     1858( 
     1859( 
     1860                lv_to_4_0=RULE_INT 
     1861                { 
     1862                        newLeafNode(lv_to_4_0, grammarAccess.getRepeatRangeAccess().getToINTTerminalRuleCall_4_0());  
     1863                } 
     1864                { 
     1865                if ($current==null) { 
     1866                    $current = createModelElement(grammarAccess.getRepeatRangeRule()); 
     1867                } 
     1868                setWithLastConsumed( 
     1869                        $current,  
     1870                        "to", 
     1871                        lv_to_4_0,  
     1872                        "INT"); 
     1873            } 
     1874 
     1875) 
     1876)       otherlv_5=')'  
     1877    { 
     1878        newLeafNode(otherlv_5, grammarAccess.getRepeatRangeAccess().getRightParenthesisKeyword_5()); 
     1879    } 
     1880) 
    17671881; 
    17681882 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.tokens

    r88 r95  
     1RULE_ID=4 
     2T__40=40 
     3RULE_SECTIONHEADER=5 
     4T__41=41 
     5T__29=29 
     6T__28=28 
     7T__27=27 
     8T__26=26 
     9T__25=25 
     10T__24=24 
     11T__23=23 
     12T__22=22 
     13T__21=21 
     14T__20=20 
     15RULE_SL_COMMENT=11 
     16RULE_ML_COMMENT=12 
     17T__30=30 
     18T__19=19 
     19RULE_COLON=9 
     20T__31=31 
    121RULE_STRING=6 
    2 RULE_SL_COMMENT=11 
    3 T__19=19 
    4 RULE_SECTIONHEADER=5 
     22T__32=32 
     23T__33=33 
     24T__16=16 
     25T__34=34 
    526T__15=15 
     27T__35=35 
     28T__18=18 
     29T__36=36 
     30T__17=17 
     31RULE_LOGIC=8 
    632T__37=37 
    7 T__16=16 
    833T__38=38 
    9 T__17=17 
    1034T__39=39 
    11 T__18=18 
    12 T__33=33 
    13 T__34=34 
     35T__14=14 
    1436T__13=13 
    15 T__35=35 
    16 T__14=14 
    17 T__36=36 
    18 T__30=30 
    19 T__31=31 
    20 T__32=32 
    21 RULE_ID=4 
     37RULE_INT=7 
    2238RULE_WS=10 
    23 RULE_COLON=9 
    24 RULE_LOGIC=8 
    25 T__26=26 
    26 T__27=27 
    27 T__28=28 
    28 RULE_INT=7 
    29 T__29=29 
    30 T__22=22 
    31 RULE_ML_COMMENT=12 
    32 T__23=23 
    33 T__24=24 
    34 T__25=25 
    35 T__20=20 
    36 T__21=21 
     39'update'=22 
     40'|'=31 
     41'#'=40 
     42'::='=25 
     43'/'=19 
     44';'=15 
     45'grammar'=13 
     46'global'=36 
     47'core'=20 
     48'+'=35 
     49'.'=24 
     50')'=27 
     51'import'=18 
     52'hook'=39 
     53'<-'=28 
     54'}'=30 
     55'rule'=38 
     56'/delta'=16 
    3757'/merge'=17 
    38 'import'=18 
    39 'grammar'=13 
    40 '+'=35 
    41 ')'=27 
     58'/bnf'=14 
     59'{'=33 
     60'package'=21 
     61'label:'=23 
     62'combinator:'=37 
     63'('=26 
     64'['=32 
     65'*'=34 
     66','=41 
    4267']'=29 
    43 '|'=31 
    44 'label:'=23 
    45 '['=32 
    46 'core'=20 
    47 'global'=36 
    48 '<-'=28 
    49 '.'=24 
    50 'update'=22 
    51 '/bnf'=14 
    52 '*'=34 
    53 'package'=21 
    54 '('=26 
    55 'hook'=39 
    56 '/delta'=16 
    57 'rule'=38 
    58 '::='=25 
    59 '}'=30 
    60 ';'=15 
    61 '{'=33 
    62 '/'=19 
    63 'combinator:'=37 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnfLexer.java

    r88 r95  
    1313@SuppressWarnings("all") 
    1414public class InternalEbnfLexer extends Lexer { 
    15     public static final int RULE_STRING=6; 
     15    public static final int T__40=40; 
     16    public static final int RULE_ID=4; 
     17    public static final int RULE_SECTIONHEADER=5; 
     18    public static final int T__41=41; 
     19    public static final int T__29=29; 
     20    public static final int T__28=28; 
     21    public static final int T__27=27; 
     22    public static final int T__26=26; 
     23    public static final int T__25=25; 
     24    public static final int T__24=24; 
     25    public static final int T__23=23; 
     26    public static final int T__22=22; 
     27    public static final int T__21=21; 
     28    public static final int T__20=20; 
     29    public static final int EOF=-1; 
    1630    public static final int RULE_SL_COMMENT=11; 
     31    public static final int RULE_ML_COMMENT=12; 
    1732    public static final int T__19=19; 
    18     public static final int RULE_SECTIONHEADER=5; 
    19     public static final int T__15=15; 
    20     public static final int T__37=37; 
    21     public static final int T__16=16; 
    22     public static final int T__38=38; 
    23     public static final int T__17=17; 
    24     public static final int T__39=39; 
    25     public static final int T__18=18; 
    26     public static final int T__33=33; 
    27     public static final int T__34=34; 
    28     public static final int T__13=13; 
    29     public static final int T__35=35; 
    30     public static final int T__14=14; 
    31     public static final int T__36=36; 
    32     public static final int EOF=-1; 
    3333    public static final int T__30=30; 
    3434    public static final int T__31=31; 
     35    public static final int RULE_COLON=9; 
    3536    public static final int T__32=32; 
    36     public static final int RULE_ID=4; 
     37    public static final int RULE_STRING=6; 
     38    public static final int T__16=16; 
     39    public static final int T__33=33; 
     40    public static final int T__15=15; 
     41    public static final int T__34=34; 
     42    public static final int T__18=18; 
     43    public static final int T__35=35; 
     44    public static final int T__17=17; 
     45    public static final int T__36=36; 
     46    public static final int T__37=37; 
     47    public static final int RULE_LOGIC=8; 
     48    public static final int T__38=38; 
     49    public static final int T__14=14; 
     50    public static final int T__39=39; 
     51    public static final int T__13=13; 
     52    public static final int RULE_INT=7; 
    3753    public static final int RULE_WS=10; 
    38     public static final int RULE_COLON=9; 
    39     public static final int RULE_LOGIC=8; 
    40     public static final int T__26=26; 
    41     public static final int T__27=27; 
    42     public static final int T__28=28; 
    43     public static final int RULE_INT=7; 
    44     public static final int T__29=29; 
    45     public static final int T__22=22; 
    46     public static final int RULE_ML_COMMENT=12; 
    47     public static final int T__23=23; 
    48     public static final int T__24=24; 
    49     public static final int T__25=25; 
    50     public static final int T__20=20; 
    51     public static final int T__21=21; 
    5254 
    5355    // delegates 
     
    619621    // $ANTLR end "T__39" 
    620622 
     623    // $ANTLR start "T__40" 
     624    public final void mT__40() throws RecognitionException { 
     625        try { 
     626            int _type = T__40; 
     627            int _channel = DEFAULT_TOKEN_CHANNEL; 
     628            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:38:7: ( '#' ) 
     629            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:38:9: '#' 
     630            { 
     631            match('#');  
     632 
     633            } 
     634 
     635            state.type = _type; 
     636            state.channel = _channel; 
     637        } 
     638        finally { 
     639        } 
     640    } 
     641    // $ANTLR end "T__40" 
     642 
     643    // $ANTLR start "T__41" 
     644    public final void mT__41() throws RecognitionException { 
     645        try { 
     646            int _type = T__41; 
     647            int _channel = DEFAULT_TOKEN_CHANNEL; 
     648            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:39:7: ( ',' ) 
     649            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:39:9: ',' 
     650            { 
     651            match(',');  
     652 
     653            } 
     654 
     655            state.type = _type; 
     656            state.channel = _channel; 
     657        } 
     658        finally { 
     659        } 
     660    } 
     661    // $ANTLR end "T__41" 
     662 
    621663    // $ANTLR start "RULE_ID" 
    622664    public final void mRULE_ID() throws RecognitionException { 
     
    624666            int _type = RULE_ID; 
    625667            int _channel = DEFAULT_TOKEN_CHANNEL; 
    626             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) 
    627             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* 
     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' | '_' )* 
    628670            { 
    629671            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 
     
    636678                throw mse;} 
    637679 
    638             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1773: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:1887:35: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* 
    639681            loop1: 
    640682            do { 
     
    685727            int _type = RULE_INT; 
    686728            int _channel = DEFAULT_TOKEN_CHANNEL; 
    687             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:10: ( ( '0' .. '9' )+ ) 
    688             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:12: ( '0' .. '9' )+ 
    689             { 
    690             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:12: ( '0' .. '9' )+ 
     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' )+ 
    691733            int cnt2=0; 
    692734            loop2: 
     
    702744                switch (alt2) { 
    703745                case 1 : 
    704                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1775:13: '0' .. '9' 
     746                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1889:13: '0' .. '9' 
    705747                    { 
    706748                    matchRange('0','9');  
     
    734776            int _type = RULE_WS; 
    735777            int _channel = DEFAULT_TOKEN_CHANNEL; 
    736             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:9: ( ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ ) 
    737             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ 
    738             { 
    739             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:11: ( ' ' | '\\t' | ( '\\r' )? '\\n' )+ 
     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' )+ 
    740782            int cnt4=0; 
    741783            loop4: 
     
    764806                switch (alt4) { 
    765807                case 1 : 
    766                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:12: ' ' 
     808                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:12: ' ' 
    767809                    { 
    768810                    match(' ');  
     
    771813                    break; 
    772814                case 2 : 
    773                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:16: '\\t' 
     815                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:16: '\\t' 
    774816                    { 
    775817                    match('\t');  
     
    778820                    break; 
    779821                case 3 : 
    780                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:21: ( '\\r' )? '\\n' 
     822                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:21: ( '\\r' )? '\\n' 
    781823                    { 
    782                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:21: ( '\\r' )? 
     824                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:21: ( '\\r' )? 
    783825                    int alt3=2; 
    784826                    int LA3_0 = input.LA(1); 
     
    789831                    switch (alt3) { 
    790832                        case 1 : 
    791                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1777:21: '\\r' 
     833                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1891:21: '\\r' 
    792834                            { 
    793835                            match('\r');  
     
    828870            int _type = RULE_COLON; 
    829871            int _channel = DEFAULT_TOKEN_CHANNEL; 
    830             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1779:12: ( '\"' '\"' '\"' ) 
    831             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1779:14: '\"' '\"' '\"' 
     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: '\"' '\"' '\"' 
    832874            { 
    833875            match('\"');  
     
    850892            int _type = RULE_STRING; 
    851893            int _channel = DEFAULT_TOKEN_CHANNEL; 
    852             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:13: ( ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) ) 
    853             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
    854             { 
    855             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:15: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
     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: ( '\"' (~ ( '\"' ) )* '\"' | '\\'' (~ ( '\\'' ) )* '\\'' ) 
    856898            int alt7=2; 
    857899            int LA7_0 = input.LA(1); 
     
    871913            switch (alt7) { 
    872914                case 1 : 
    873                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:16: '\"' (~ ( '\"' ) )* '\"' 
     915                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:16: '\"' (~ ( '\"' ) )* '\"' 
    874916                    { 
    875917                    match('\"');  
    876                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:20: (~ ( '\"' ) )* 
     918                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:20: (~ ( '\"' ) )* 
    877919                    loop5: 
    878920                    do { 
     
    887929                        switch (alt5) { 
    888930                        case 1 : 
    889                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:20: ~ ( '\"' ) 
     931                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:20: ~ ( '\"' ) 
    890932                            { 
    891933                            if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) { 
     
    912954                    break; 
    913955                case 2 : 
    914                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:32: '\\'' (~ ( '\\'' ) )* '\\'' 
     956                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:32: '\\'' (~ ( '\\'' ) )* '\\'' 
    915957                    { 
    916958                    match('\'');  
    917                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:37: (~ ( '\\'' ) )* 
     959                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:37: (~ ( '\\'' ) )* 
    918960                    loop6: 
    919961                    do { 
     
    928970                        switch (alt6) { 
    929971                        case 1 : 
    930                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1781:37: ~ ( '\\'' ) 
     972                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1895:37: ~ ( '\\'' ) 
    931973                            { 
    932974                            if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) { 
     
    9711013            int _type = RULE_SECTIONHEADER; 
    9721014            int _channel = DEFAULT_TOKEN_CHANNEL; 
    973             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:20: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' ) 
    974             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:22: ( 'a' .. 'z' | 'A' .. 'Z' ) ( '.' | '0' .. '9' )+ ( ' ' | '\\t' ) (~ ( ( '\\n' | '\\r' ) ) )* ( '\\r' )? '\\n' 
     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' 
    9751017            { 
    9761018            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) { 
     
    9831025                throw mse;} 
    9841026 
    985             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:42: ( '.' | '0' .. '9' )+ 
     1027            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:42: ( '.' | '0' .. '9' )+ 
    9861028            int cnt8=0; 
    9871029            loop8: 
     
    10301072                throw mse;} 
    10311073 
    1032             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:69: (~ ( ( '\\n' | '\\r' ) ) )* 
     1074            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:69: (~ ( ( '\\n' | '\\r' ) ) )* 
    10331075            loop9: 
    10341076            do { 
     
    10431085                switch (alt9) { 
    10441086                case 1 : 
    1045                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:69: ~ ( ( '\\n' | '\\r' ) ) 
     1087                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:69: ~ ( ( '\\n' | '\\r' ) ) 
    10461088                    { 
    10471089                    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 
     
    10631105            } while (true); 
    10641106 
    1065             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:85: ( '\\r' )? 
     1107            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:85: ( '\\r' )? 
    10661108            int alt10=2; 
    10671109            int LA10_0 = input.LA(1); 
     
    10721114            switch (alt10) { 
    10731115                case 1 : 
    1074                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1783:85: '\\r' 
     1116                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1897:85: '\\r' 
    10751117                    { 
    10761118                    match('\r');  
     
    10981140            int _type = RULE_SL_COMMENT; 
    10991141            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1100             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 
    1101             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 
     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' )? 
    11021144            { 
    11031145            match("//");  
    11041146 
    1105             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:24: (~ ( ( '\\n' | '\\r' ) ) )* 
     1147            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:24: (~ ( ( '\\n' | '\\r' ) ) )* 
    11061148            loop11: 
    11071149            do { 
     
    11161158                switch (alt11) { 
    11171159                case 1 : 
    1118                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:24: ~ ( ( '\\n' | '\\r' ) ) 
     1160                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:24: ~ ( ( '\\n' | '\\r' ) ) 
    11191161                    { 
    11201162                    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 
     
    11361178            } while (true); 
    11371179 
    1138             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:40: ( ( '\\r' )? '\\n' )? 
     1180            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:40: ( ( '\\r' )? '\\n' )? 
    11391181            int alt13=2; 
    11401182            int LA13_0 = input.LA(1); 
     
    11451187            switch (alt13) { 
    11461188                case 1 : 
    1147                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:41: ( '\\r' )? '\\n' 
     1189                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:41: ( '\\r' )? '\\n' 
    11481190                    { 
    1149                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:41: ( '\\r' )? 
     1191                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:41: ( '\\r' )? 
    11501192                    int alt12=2; 
    11511193                    int LA12_0 = input.LA(1); 
     
    11561198                    switch (alt12) { 
    11571199                        case 1 : 
    1158                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1785:41: '\\r' 
     1200                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1899:41: '\\r' 
    11591201                            { 
    11601202                            match('\r');  
     
    11881230            int _type = RULE_ML_COMMENT; 
    11891231            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1190             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 
    1191             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:19: '/*' ( options {greedy=false; } : . )* '*/' 
     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; } : . )* '*/' 
    11921234            { 
    11931235            match("/*");  
    11941236 
    1195             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:24: ( options {greedy=false; } : . )* 
     1237            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1901:24: ( options {greedy=false; } : . )* 
    11961238            loop14: 
    11971239            do { 
     
    12181260                switch (alt14) { 
    12191261                case 1 : 
    1220                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1787:52: . 
     1262                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1901:52: . 
    12211263                    { 
    12221264                    matchAny();  
     
    12481290            int _type = RULE_LOGIC; 
    12491291            int _channel = DEFAULT_TOKEN_CHANNEL; 
    1250             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:12: ( ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) ) 
    1251             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) 
    1252             { 
    1253             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' ) 
     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' ) 
    12541296            int alt15=6; 
    12551297            alt15 = dfa15.predict(input); 
    12561298            switch (alt15) { 
    12571299                case 1 : 
    1258                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:15: '/and' 
     1300                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:15: '/and' 
    12591301                    { 
    12601302                    match("/and");  
     
    12641306                    break; 
    12651307                case 2 : 
    1266                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:22: '/or' 
     1308                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:22: '/or' 
    12671309                    { 
    12681310                    match("/or");  
     
    12721314                    break; 
    12731315                case 3 : 
    1274                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:28: '/andr' 
     1316                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:28: '/andr' 
    12751317                    { 
    12761318                    match("/andr");  
     
    12801322                    break; 
    12811323                case 4 : 
    1282                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:36: '/orr' 
     1324                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:36: '/orr' 
    12831325                    { 
    12841326                    match("/orr");  
     
    12881330                    break; 
    12891331                case 5 : 
    1290                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:43: '/any' 
     1332                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:43: '/any' 
    12911333                    { 
    12921334                    match("/any");  
     
    12961338                    break; 
    12971339                case 6 : 
    1298                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1789:50: '/together' 
     1340                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1903:50: '/together' 
    12991341                    { 
    13001342                    match("/together");  
     
    13181360 
    13191361    public void mTokens() throws RecognitionException { 
    1320         // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC ) 
    1321         int alt16=36; 
     1362        // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC ) 
     1363        int alt16=38; 
    13221364        alt16 = dfa16.predict(input); 
    13231365        switch (alt16) { 
     
    15121554                break; 
    15131555            case 28 : 
    1514                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:172: RULE_ID 
     1556                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:172: T__40 
     1557                { 
     1558                mT__40();  
     1559 
     1560                } 
     1561                break; 
     1562            case 29 : 
     1563                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:178: T__41 
     1564                { 
     1565                mT__41();  
     1566 
     1567                } 
     1568                break; 
     1569            case 30 : 
     1570                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:184: RULE_ID 
    15151571                { 
    15161572                mRULE_ID();  
     
    15181574                } 
    15191575                break; 
    1520             case 29 : 
    1521                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:180: RULE_INT 
     1576            case 31 : 
     1577                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:192: RULE_INT 
    15221578                { 
    15231579                mRULE_INT();  
     
    15251581                } 
    15261582                break; 
    1527             case 30 : 
    1528                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:189: RULE_WS 
     1583            case 32 : 
     1584                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:201: RULE_WS 
    15291585                { 
    15301586                mRULE_WS();  
     
    15321588                } 
    15331589                break; 
    1534             case 31 : 
    1535                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:197: RULE_COLON 
     1590            case 33 : 
     1591                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:209: RULE_COLON 
    15361592                { 
    15371593                mRULE_COLON();  
     
    15391595                } 
    15401596                break; 
    1541             case 32 : 
    1542                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:208: RULE_STRING 
     1597            case 34 : 
     1598                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:220: RULE_STRING 
    15431599                { 
    15441600                mRULE_STRING();  
     
    15461602                } 
    15471603                break; 
    1548             case 33 : 
    1549                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:220: RULE_SECTIONHEADER 
     1604            case 35 : 
     1605                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:232: RULE_SECTIONHEADER 
    15501606                { 
    15511607                mRULE_SECTIONHEADER();  
     
    15531609                } 
    15541610                break; 
    1555             case 34 : 
    1556                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:239: RULE_SL_COMMENT 
     1611            case 36 : 
     1612                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:251: RULE_SL_COMMENT 
    15571613                { 
    15581614                mRULE_SL_COMMENT();  
     
    15601616                } 
    15611617                break; 
    1562             case 35 : 
    1563                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:255: RULE_ML_COMMENT 
     1618            case 37 : 
     1619                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:267: RULE_ML_COMMENT 
    15641620                { 
    15651621                mRULE_ML_COMMENT();  
     
    15671623                } 
    15681624                break; 
    1569             case 36 : 
    1570                 // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:271: RULE_LOGIC 
     1625            case 38 : 
     1626                // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:1:283: RULE_LOGIC 
    15711627                { 
    15721628                mRULE_LOGIC();  
     
    16401696        } 
    16411697        public String getDescription() { 
    1642             return "1789:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )"; 
     1698            return "1903:14: ( '/and' | '/or' | '/andr' | '/orr' | '/any' | '/together' )"; 
    16431699        } 
    16441700    } 
    16451701    static final String DFA16_eotS = 
    1646         "\1\uffff\1\34\1\47\1\uffff\5\34\14\uffff\3\34\5\uffff\3\34\10\uffff"+ 
    1647         "\7\34\1\33\12\34\1\uffff\3\34\1\110\4\34\1\115\1\116\3\34\1\uffff"+ 
    1648         "\4\34\2\uffff\1\34\1\127\1\130\2\34\1\133\1\uffff\1\134\2\uffff"+ 
    1649         "\1\34\1\136\2\uffff\1\34\1\uffff\2\34\1\uffff"; 
     1702        "\1\uffff\1\36\1\51\1\uffff\5\36\14\uffff\2\36\2\uffff\1\36\5\uffff"+ 
     1703        "\3\36\10\uffff\7\36\1\35\12\36\1\uffff\3\36\1\112\4\36\1\117\1\120"+ 
     1704        "\3\36\1\uffff\4\36\2\uffff\1\36\1\131\1\132\2\36\1\135\1\uffff\1"+ 
     1705        "\136\2\uffff\1\36\1\140\2\uffff\1\36\1\uffff\2\36\1\uffff"; 
    16501706    static final String DFA16_eofS = 
    1651         "\142\uffff"; 
     1707        "\144\uffff"; 
    16521708    static final String DFA16_minS = 
    1653         "\1\11\1\56\1\52\1\uffff\5\56\14\uffff\3\56\2\uffff\1\0\2\uffff\1"+ 
    1654         "\141\1\157\1\11\10\uffff\1\160\1\155\1\143\1\144\1\142\1\154\1\157"+ 
    1655         "\1\42\1\155\1\142\1\157\1\145\1\142\1\153\1\141\2\145\1\153\1\uffff"+ 
    1656         "\1\155\1\141\1\162\1\60\1\151\1\141\1\164\1\154\2\60\1\141\1\154"+ 
    1657         "\1\164\1\uffff\1\156\1\147\1\145\1\72\2\uffff\1\162\2\60\1\141\1"+ 
    1658         "\145\1\60\1\uffff\1\60\2\uffff\1\164\1\60\2\uffff\1\157\1\uffff"+ 
    1659         "\1\162\1\72\1\uffff"; 
     1709        "\1\11\1\56\1\52\1\uffff\5\56\14\uffff\2\56\2\uffff\1\56\2\uffff"+ 
     1710        "\1\0\2\uffff\1\141\1\157\1\11\10\uffff\1\160\1\155\1\143\1\144\1"+ 
     1711        "\142\1\154\1\157\1\42\1\155\1\142\1\157\1\145\1\142\1\153\1\141"+ 
     1712        "\2\145\1\153\1\uffff\1\155\1\141\1\162\1\60\1\151\1\141\1\164\1"+ 
     1713        "\154\2\60\1\141\1\154\1\164\1\uffff\1\156\1\147\1\145\1\72\2\uffff"+ 
     1714        "\1\162\2\60\1\141\1\145\1\60\1\uffff\1\60\2\uffff\1\164\1\60\2\uffff"+ 
     1715        "\1\157\1\uffff\1\162\1\72\1\uffff"; 
    16601716    static final String DFA16_maxS = 
    16611717        "\1\175\1\162\1\164\1\uffff\1\155\1\157\1\141\1\160\1\141\14\uffff"+ 
    1662         "\1\165\1\157\1\71\2\uffff\1\uffff\2\uffff\1\141\1\157\1\71\10\uffff"+ 
    1663         "\1\160\1\162\1\143\1\144\1\142\1\154\1\157\1\42\1\155\1\142\1\157"+ 
    1664         "\1\145\1\142\1\153\1\141\2\145\1\153\1\uffff\1\155\1\141\1\162\1"+ 
    1665         "\172\1\151\1\141\1\164\1\154\2\172\1\141\1\154\1\164\1\uffff\1\156"+ 
    1666         "\1\147\1\145\1\72\2\uffff\1\162\2\172\1\141\1\145\1\172\1\uffff"+ 
    1667         "\1\172\2\uffff\1\164\1\172\2\uffff\1\157\1\uffff\1\162\1\72\1\uffff"; 
     1718        "\1\165\1\157\2\uffff\1\71\2\uffff\1\uffff\2\uffff\1\141\1\157\1"+ 
     1719        "\71\10\uffff\1\160\1\162\1\143\1\144\1\142\1\154\1\157\1\42\1\155"+ 
     1720        "\1\142\1\157\1\145\1\142\1\153\1\141\2\145\1\153\1\uffff\1\155\1"+ 
     1721        "\141\1\162\1\172\1\151\1\141\1\164\1\154\2\172\1\141\1\154\1\164"+ 
     1722        "\1\uffff\1\156\1\147\1\145\1\72\2\uffff\1\162\2\172\1\141\1\145"+ 
     1723        "\1\172\1\uffff\1\172\2\uffff\1\164\1\172\2\uffff\1\157\1\uffff\1"+ 
     1724        "\162\1\72\1\uffff"; 
    16681725    static final String DFA16_acceptS = 
    16691726        "\3\uffff\1\3\5\uffff\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+ 
    1670         "\1\25\1\26\1\27\3\uffff\1\35\1\36\1\uffff\1\40\1\34\3\uffff\1\41"+ 
    1671         "\1\2\1\4\1\5\1\42\1\43\1\44\1\7\22\uffff\1\37\15\uffff\1\10\4\uffff"+ 
    1672         "\1\32\1\33\6\uffff\1\13\1\uffff\1\30\1\6\2\uffff\1\12\1\1\1\uffff"+ 
    1673         "\1\11\2\uffff\1\31"; 
     1727        "\1\25\1\26\1\27\2\uffff\1\34\1\35\1\uffff\1\37\1\40\1\uffff\1\42"+ 
     1728        "\1\36\3\uffff\1\43\1\2\1\4\1\5\1\44\1\45\1\46\1\7\22\uffff\1\41"+ 
     1729        "\15\uffff\1\10\4\uffff\1\32\1\33\6\uffff\1\13\1\uffff\1\30\1\6\2"+ 
     1730        "\uffff\1\12\1\1\1\uffff\1\11\2\uffff\1\31"; 
    16741731    static final String DFA16_specialS = 
    1675         "\32\uffff\1\0\107\uffff}>"; 
     1732        "\34\uffff\1\0\107\uffff}>"; 
    16761733    static final String[] DFA16_transitionS = { 
    1677             "\2\31\2\uffff\1\31\22\uffff\1\31\1\uffff\1\32\4\uffff\1\33\1"+ 
    1678             "\13\1\14\1\23\1\24\2\uffff\1\11\1\2\12\30\1\12\1\3\1\15\4\uffff"+ 
    1679             "\32\27\1\21\1\uffff\1\16\1\uffff\1\34\1\uffff\2\27\1\5\3\27"+ 
    1680             "\1\1\1\26\1\4\2\27\1\10\3\27\1\6\1\27\1\25\2\27\1\7\5\27\1\22"+ 
    1681             "\1\20\1\17", 
    1682             "\1\40\1\uffff\12\37\62\uffff\1\36\5\uffff\1\35", 
    1683             "\1\45\4\uffff\1\44\61\uffff\1\46\1\41\1\uffff\1\42\10\uffff"+ 
    1684             "\1\43\1\uffff\1\46\4\uffff\1\46", 
    1685             "", 
    1686             "\1\40\1\uffff\12\37\63\uffff\1\50", 
    1687             "\1\40\1\uffff\12\37\65\uffff\1\51", 
    1688             "\1\40\1\uffff\12\37\47\uffff\1\52", 
    1689             "\1\40\1\uffff\12\37\66\uffff\1\53", 
    1690             "\1\40\1\uffff\12\37\47\uffff\1\54", 
    1691             "", 
    1692             "", 
    1693             "", 
    1694             "", 
    1695             "", 
    1696             "", 
    1697             "", 
    1698             "", 
    1699             "", 
    1700             "", 
    1701             "", 
    1702             "", 
    1703             "\1\40\1\uffff\12\37\73\uffff\1\55", 
    1704             "\1\40\1\uffff\12\37\65\uffff\1\56", 
    1705             "\1\40\1\uffff\12\37", 
    1706             "", 
    1707             "", 
    1708             "\42\33\1\57\uffdd\33", 
    1709             "", 
    1710             "", 
    1711             "\1\60", 
    1712             "\1\61", 
    1713             "\1\40\26\uffff\1\40\15\uffff\1\40\1\uffff\12\37", 
    1714             "", 
    1715             "", 
    1716             "", 
    1717             "", 
    1718             "", 
    1719             "", 
     1734            "\2\33\2\uffff\1\33\22\uffff\1\33\1\uffff\1\34\1\27\3\uffff\1"+ 
     1735            "\35\1\13\1\14\1\23\1\24\1\30\1\uffff\1\11\1\2\12\32\1\12\1\3"+ 
     1736            "\1\15\4\uffff\32\31\1\21\1\uffff\1\16\1\uffff\1\36\1\uffff\2"+ 
     1737            "\31\1\5\3\31\1\1\1\26\1\4\2\31\1\10\3\31\1\6\1\31\1\25\2\31"+ 
     1738            "\1\7\5\31\1\22\1\20\1\17", 
     1739            "\1\42\1\uffff\12\41\62\uffff\1\40\5\uffff\1\37", 
     1740            "\1\47\4\uffff\1\46\61\uffff\1\50\1\43\1\uffff\1\44\10\uffff"+ 
     1741            "\1\45\1\uffff\1\50\4\uffff\1\50", 
     1742            "", 
     1743            "\1\42\1\uffff\12\41\63\uffff\1\52", 
     1744            "\1\42\1\uffff\12\41\65\uffff\1\53", 
     1745            "\1\42\1\uffff\12\41\47\uffff\1\54", 
     1746            "\1\42\1\uffff\12\41\66\uffff\1\55", 
     1747            "\1\42\1\uffff\12\41\47\uffff\1\56", 
     1748            "", 
     1749            "", 
     1750            "", 
     1751            "", 
     1752            "", 
     1753            "", 
     1754            "", 
     1755            "", 
     1756            "", 
     1757            "", 
     1758            "", 
     1759            "", 
     1760            "\1\42\1\uffff\12\41\73\uffff\1\57", 
     1761            "\1\42\1\uffff\12\41\65\uffff\1\60", 
     1762            "", 
     1763            "", 
     1764            "\1\42\1\uffff\12\41", 
     1765            "", 
     1766            "", 
     1767            "\42\35\1\61\uffdd\35", 
    17201768            "", 
    17211769            "", 
    17221770            "\1\62", 
    1723             "\1\64\4\uffff\1\63", 
    1724             "\1\65", 
    1725             "\1\66", 
     1771            "\1\63", 
     1772            "\1\42\26\uffff\1\42\15\uffff\1\42\1\uffff\12\41", 
     1773            "", 
     1774            "", 
     1775            "", 
     1776            "", 
     1777            "", 
     1778            "", 
     1779            "", 
     1780            "", 
     1781            "\1\64", 
     1782            "\1\66\4\uffff\1\65", 
    17261783            "\1\67", 
    17271784            "\1\70", 
     
    17381795            "\1\103", 
    17391796            "\1\104", 
    1740             "", 
    17411797            "\1\105", 
    17421798            "\1\106", 
     1799            "", 
    17431800            "\1\107", 
    1744             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
     1801            "\1\110", 
    17451802            "\1\111", 
    1746             "\1\112", 
     1803            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
    17471804            "\1\113", 
    17481805            "\1\114", 
    1749             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1750             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1751             "\1\117", 
    1752             "\1\120", 
     1806            "\1\115", 
     1807            "\1\116", 
     1808            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1809            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
    17531810            "\1\121", 
    1754             "", 
    17551811            "\1\122", 
    17561812            "\1\123", 
     1813            "", 
    17571814            "\1\124", 
    17581815            "\1\125", 
    1759             "", 
    1760             "", 
    17611816            "\1\126", 
    1762             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1763             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1764             "\1\131", 
    1765             "\1\132", 
    1766             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1767             "", 
    1768             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
    1769             "", 
    1770             "", 
    1771             "\1\135", 
    1772             "\12\34\7\uffff\32\34\4\uffff\1\34\1\uffff\32\34", 
     1817            "\1\127", 
     1818            "", 
     1819            "", 
     1820            "\1\130", 
     1821            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1822            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1823            "\1\133", 
     1824            "\1\134", 
     1825            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1826            "", 
     1827            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
    17731828            "", 
    17741829            "", 
    17751830            "\1\137", 
    1776             "", 
    1777             "\1\140", 
     1831            "\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32\36", 
     1832            "", 
     1833            "", 
    17781834            "\1\141", 
     1835            "", 
     1836            "\1\142", 
     1837            "\1\143", 
    17791838            "" 
    17801839    }; 
     
    18101869        } 
    18111870        public String getDescription() { 
    1812             return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC );"; 
     1871            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_ID | RULE_INT | RULE_WS | RULE_COLON | RULE_STRING | RULE_SECTIONHEADER | RULE_SL_COMMENT | RULE_ML_COMMENT | RULE_LOGIC );"; 
    18131872        } 
    18141873        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 
     
    18171876            switch ( s ) { 
    18181877                    case 0 :  
    1819                         int LA16_26 = input.LA(1); 
     1878                        int LA16_28 = input.LA(1); 
    18201879 
    18211880                        s = -1; 
    1822                         if ( (LA16_26=='\"') ) {s = 47;} 
    1823  
    1824                         else if ( ((LA16_26>='\u0000' && LA16_26<='!')||(LA16_26>='#' && LA16_26<='\uFFFF')) ) {s = 27;} 
     1881                        if ( (LA16_28=='\"') ) {s = 49;} 
     1882 
     1883                        else if ( ((LA16_28>='\u0000' && LA16_28<='!')||(LA16_28>='#' && LA16_28<='\uFFFF')) ) {s = 29;} 
    18251884 
    18261885                        if ( s>=0 ) return s; 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnfParser.java

    r88 r95  
    1818import java.util.List; 
    1919import java.util.ArrayList; 
    20  
     20import java.util.Map; 
     21import java.util.HashMap; 
    2122@SuppressWarnings("all") 
    2223public class InternalEbnfParser extends AbstractInternalAntlrParser { 
    2324    public static final String[] tokenNames = new String[] { 
    24         "<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_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'", "'#'", "','" 
    2526    }; 
     27    public static final int RULE_ID=4; 
     28    public static final int T__40=40; 
     29    public static final int RULE_SECTIONHEADER=5; 
     30    public static final int T__41=41; 
     31    public static final int T__29=29; 
     32    public static final int T__28=28; 
     33    public static final int T__27=27; 
     34    public static final int T__26=26; 
     35    public static final int T__25=25; 
     36    public static final int T__24=24; 
     37    public static final int T__23=23; 
     38    public static final int T__22=22; 
     39    public static final int T__21=21; 
     40    public static final int T__20=20; 
     41    public static final int RULE_SL_COMMENT=11; 
     42    public static final int EOF=-1; 
     43    public static final int RULE_ML_COMMENT=12; 
     44    public static final int T__30=30; 
     45    public static final int T__19=19; 
     46    public static final int RULE_COLON=9; 
     47    public static final int T__31=31; 
    2648    public static final int RULE_STRING=6; 
    27     public static final int RULE_SL_COMMENT=11; 
    28     public static final int T__19=19; 
    29     public static final int RULE_SECTIONHEADER=5; 
     49    public static final int T__32=32; 
     50    public static final int T__33=33; 
     51    public static final int T__16=16; 
     52    public static final int T__34=34; 
    3053    public static final int T__15=15; 
     54    public static final int T__35=35; 
     55    public static final int T__18=18; 
     56    public static final int T__36=36; 
     57    public static final int T__17=17; 
     58    public static final int RULE_LOGIC=8; 
    3159    public static final int T__37=37; 
    32     public static final int T__16=16; 
    3360    public static final int T__38=38; 
    34     public static final int T__17=17; 
    3561    public static final int T__39=39; 
    36     public static final int T__18=18; 
    37     public static final int T__33=33; 
    38     public static final int T__34=34; 
     62    public static final int T__14=14; 
    3963    public static final int T__13=13; 
    40     public static final int T__35=35; 
    41     public static final int T__14=14; 
    42     public static final int T__36=36; 
    43     public static final int EOF=-1; 
    44     public static final int T__30=30; 
    45     public static final int T__31=31; 
    46     public static final int T__32=32; 
    47     public static final int RULE_ID=4; 
     64    public static final int RULE_INT=7; 
    4865    public static final int RULE_WS=10; 
    49     public static final int RULE_COLON=9; 
    50     public static final int RULE_LOGIC=8; 
    51     public static final int T__26=26; 
    52     public static final int T__27=27; 
    53     public static final int T__28=28; 
    54     public static final int RULE_INT=7; 
    55     public static final int T__29=29; 
    56     public static final int T__22=22; 
    57     public static final int RULE_ML_COMMENT=12; 
    58     public static final int T__23=23; 
    59     public static final int T__24=24; 
    60     public static final int T__25=25; 
    61     public static final int T__20=20; 
    62     public static final int T__21=21; 
    6366 
    6467    // delegates 
     
    7174        public InternalEbnfParser(TokenStream input, RecognizerSharedState state) { 
    7275            super(input, state); 
     76            this.state.ruleMemo = new HashMap[99+1]; 
     77              
    7378              
    7479        } 
     
    8085 
    8186 
     87    /* 
     88      This grammar contains a lot of empty actions to work around a bug in ANTLR. 
     89      Otherwise the ANTLR tool will create synpreds that cannot be compiled in some rare cases. 
     90    */ 
     91      
    8292        private EbnfGrammarAccess grammarAccess; 
    8393         
     
    101111 
    102112    // $ANTLR start "entryRuleEtsiBnf" 
    103     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:67:1: entryRuleEtsiBnf returns [EObject current=null] : iv_ruleEtsiBnf= ruleEtsiBnf EOF ; 
     113    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:74:1: entryRuleEtsiBnf returns [EObject current=null] : iv_ruleEtsiBnf= ruleEtsiBnf EOF ; 
    104114    public final EObject entryRuleEtsiBnf() throws RecognitionException { 
    105115        EObject current = null; 
    106  
     116        int entryRuleEtsiBnf_StartIndex = input.index(); 
    107117        EObject iv_ruleEtsiBnf = null; 
    108118 
    109119 
    110120        try { 
    111             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:68:2: (iv_ruleEtsiBnf= ruleEtsiBnf EOF ) 
    112             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:69:2: iv_ruleEtsiBnf= ruleEtsiBnf EOF 
    113             { 
    114              newCompositeNode(grammarAccess.getEtsiBnfRule());  
    115             pushFollow(FOLLOW_ruleEtsiBnf_in_entryRuleEtsiBnf75); 
     121            if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return current; } 
     122            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:75:2: (iv_ruleEtsiBnf= ruleEtsiBnf EOF ) 
     123            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:76:2: iv_ruleEtsiBnf= ruleEtsiBnf EOF 
     124            { 
     125            if ( state.backtracking==0 ) { 
     126               newCompositeNode(grammarAccess.getEtsiBnfRule());  
     127            } 
     128            pushFollow(FOLLOW_ruleEtsiBnf_in_entryRuleEtsiBnf88); 
    116129            iv_ruleEtsiBnf=ruleEtsiBnf(); 
    117130 
    118131            state._fsp--; 
    119  
    120              current =iv_ruleEtsiBnf;  
    121             match(input,EOF,FOLLOW_EOF_in_entryRuleEtsiBnf85);  
     132            if (state.failed) return current; 
     133            if ( state.backtracking==0 ) { 
     134               current =iv_ruleEtsiBnf;  
     135            } 
     136            match(input,EOF,FOLLOW_EOF_in_entryRuleEtsiBnf98); if (state.failed) return current; 
    122137 
    123138            } 
     
    130145            }  
    131146        finally { 
     147            if ( state.backtracking>0 ) { memoize(input, 1, entryRuleEtsiBnf_StartIndex); } 
    132148        } 
    133149        return current; 
     
    137153 
    138154    // $ANTLR start "ruleEtsiBnf" 
    139     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:76:1: ruleEtsiBnf returns [EObject current=null] : ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) ; 
     155    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:83:1: ruleEtsiBnf returns [EObject current=null] : ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) ; 
    140156    public final EObject ruleEtsiBnf() throws RecognitionException { 
    141157        EObject current = null; 
    142  
     158        int ruleEtsiBnf_StartIndex = input.index(); 
    143159        Token otherlv_0=null; 
    144160        Token lv_name_1_0=null; 
     
    165181             
    166182        try { 
    167             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:79:28: ( ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) ) 
    168             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:80:1: ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) 
    169             { 
    170             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:80:1: ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) 
     183            if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return current; } 
     184            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:86:28: ( ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) ) 
     185            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:87:1: ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) 
     186            { 
     187            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:87:1: ( (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) | ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) | ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) ) 
    171188            int alt8=3; 
    172189            switch ( input.LA(1) ) { 
     
    187204                break; 
    188205            default: 
     206                if (state.backtracking>0) {state.failed=true; return current;} 
    189207                NoViableAltException nvae = 
    190208                    new NoViableAltException("", 8, 0, input); 
     
    195213            switch (alt8) { 
    196214                case 1 : 
    197                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:80:2: (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) 
    198                     { 
    199                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:80:2: (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) 
    200                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:80:4: otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) 
    201                     { 
    202                     otherlv_0=(Token)match(input,13,FOLLOW_13_in_ruleEtsiBnf123);  
    203  
    204                                 newLeafNode(otherlv_0, grammarAccess.getEtsiBnfAccess().getGrammarKeyword_0_0()); 
    205                          
    206                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:84:1: ( (lv_name_1_0= RULE_ID ) ) 
    207                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:85:1: (lv_name_1_0= RULE_ID ) 
    208                     { 
    209                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:85:1: (lv_name_1_0= RULE_ID ) 
    210                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:86:3: lv_name_1_0= RULE_ID 
    211                     { 
    212                     lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEtsiBnf140);  
    213  
    214                                         newLeafNode(lv_name_1_0, grammarAccess.getEtsiBnfAccess().getNameIDTerminalRuleCall_0_1_0());  
    215                                  
    216  
    217                                 if (current==null) { 
    218                                     current = createModelElement(grammarAccess.getEtsiBnfRule()); 
    219                                 } 
    220                                         setWithLastConsumed( 
    221                                                 current,  
    222                                                 "name", 
    223                                         lv_name_1_0,  
    224                                         "ID"); 
    225                              
    226  
    227                     } 
    228  
    229  
    230                     } 
    231  
    232                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:102:2: ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) 
    233                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:102:3: ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ 
    234                     { 
    235                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:102:3: ( (lv_type_2_0= '/bnf' ) )? 
     215                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:87:2: (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) 
     216                    { 
     217                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:87:2: (otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) ) 
     218                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:87:4: otherlv_0= 'grammar' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) 
     219                    { 
     220                    otherlv_0=(Token)match(input,13,FOLLOW_13_in_ruleEtsiBnf136); if (state.failed) return current; 
     221                    if ( state.backtracking==0 ) { 
     222 
     223                                newLeafNode(otherlv_0, grammarAccess.getEtsiBnfAccess().getGrammarKeyword_0_0()); 
     224                           
     225                    } 
     226                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:91:1: ( (lv_name_1_0= RULE_ID ) ) 
     227                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:92:1: (lv_name_1_0= RULE_ID ) 
     228                    { 
     229                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:92:1: (lv_name_1_0= RULE_ID ) 
     230                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:93:3: lv_name_1_0= RULE_ID 
     231                    { 
     232                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEtsiBnf153); if (state.failed) return current; 
     233                    if ( state.backtracking==0 ) { 
     234 
     235                                        newLeafNode(lv_name_1_0, grammarAccess.getEtsiBnfAccess().getNameIDTerminalRuleCall_0_1_0());  
     236                                 
     237                    } 
     238                    if ( state.backtracking==0 ) { 
     239 
     240                                if (current==null) { 
     241                                    current = createModelElement(grammarAccess.getEtsiBnfRule()); 
     242                                } 
     243                                        setWithLastConsumed( 
     244                                                current,  
     245                                                "name", 
     246                                        lv_name_1_0,  
     247                                        "ID"); 
     248                             
     249                    } 
     250 
     251                    } 
     252 
     253 
     254                    } 
     255 
     256                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:109:2: ( ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ ) 
     257                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:109:3: ( (lv_type_2_0= '/bnf' ) )? otherlv_3= ';' ( (lv_importSection_4_0= ruleImportSection ) )? ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ 
     258                    { 
     259                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:109:3: ( (lv_type_2_0= '/bnf' ) )? 
    236260                    int alt1=2; 
    237261                    int LA1_0 = input.LA(1); 
     
    242266                    switch (alt1) { 
    243267                        case 1 : 
    244                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:103:1: (lv_type_2_0= '/bnf' ) 
     268                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:110:1: (lv_type_2_0= '/bnf' ) 
    245269                            { 
    246                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:103:1: (lv_type_2_0= '/bnf' ) 
    247                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:104:3: lv_type_2_0= '/bnf' 
     270                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:110:1: (lv_type_2_0= '/bnf' ) 
     271                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:111:3: lv_type_2_0= '/bnf' 
    248272                            { 
    249                             lv_type_2_0=(Token)match(input,14,FOLLOW_14_in_ruleEtsiBnf164);  
    250  
    251                                     newLeafNode(lv_type_2_0, grammarAccess.getEtsiBnfAccess().getTypeBnfKeyword_0_2_0_0()); 
    252                                  
    253  
    254                                         if (current==null) { 
    255                                             current = createModelElement(grammarAccess.getEtsiBnfRule()); 
    256                                         } 
    257                                                 setWithLastConsumed(current, "type", lv_type_2_0, "/bnf"); 
    258                                      
     273                            lv_type_2_0=(Token)match(input,14,FOLLOW_14_in_ruleEtsiBnf177); if (state.failed) return current; 
     274                            if ( state.backtracking==0 ) { 
     275 
     276                                      newLeafNode(lv_type_2_0, grammarAccess.getEtsiBnfAccess().getTypeBnfKeyword_0_2_0_0()); 
     277                                   
     278                            } 
     279                            if ( state.backtracking==0 ) { 
     280 
     281                                        if (current==null) { 
     282                                            current = createModelElement(grammarAccess.getEtsiBnfRule()); 
     283                                        } 
     284                                                setWithLastConsumed(current, "type", lv_type_2_0, "/bnf"); 
     285                                     
     286                            } 
    259287 
    260288                            } 
     
    266294                    } 
    267295 
    268                     otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleEtsiBnf190);  
    269  
    270                                 newLeafNode(otherlv_3, grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_0_2_1()); 
    271                          
    272                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:121:1: ( (lv_importSection_4_0= ruleImportSection ) )? 
     296                    otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleEtsiBnf203); if (state.failed) return current; 
     297                    if ( state.backtracking==0 ) { 
     298 
     299                                newLeafNode(otherlv_3, grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_0_2_1()); 
     300                           
     301                    } 
     302                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:128:1: ( (lv_importSection_4_0= ruleImportSection ) )? 
    273303                    int alt2=2; 
    274304                    int LA2_0 = input.LA(1); 
     
    279309                    switch (alt2) { 
    280310                        case 1 : 
    281                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:122:1: (lv_importSection_4_0= ruleImportSection ) 
     311                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:129:1: (lv_importSection_4_0= ruleImportSection ) 
    282312                            { 
    283                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:122:1: (lv_importSection_4_0= ruleImportSection ) 
    284                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:123:3: lv_importSection_4_0= ruleImportSection 
     313                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:129:1: (lv_importSection_4_0= ruleImportSection ) 
     314                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:130:3: lv_importSection_4_0= ruleImportSection 
    285315                            { 
    286                               
    287                                         newCompositeNode(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_0_2_2_0());  
    288                                      
    289                             pushFollow(FOLLOW_ruleImportSection_in_ruleEtsiBnf211); 
     316                            if ( state.backtracking==0 ) { 
     317                                
     318                                        newCompositeNode(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_0_2_2_0());  
     319                                     
     320                            } 
     321                            pushFollow(FOLLOW_ruleImportSection_in_ruleEtsiBnf224); 
    290322                            lv_importSection_4_0=ruleImportSection(); 
    291323 
    292324                            state._fsp--; 
    293  
    294  
    295                                         if (current==null) { 
    296                                             current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
    297                                         } 
    298                                                 set( 
    299                                                         current,  
    300                                                         "importSection", 
    301                                                 lv_importSection_4_0,  
    302                                                 "ImportSection"); 
    303                                         afterParserOrEnumRuleCall(); 
    304                                      
     325                            if (state.failed) return current; 
     326                            if ( state.backtracking==0 ) { 
     327 
     328                                        if (current==null) { 
     329                                            current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
     330                                        } 
     331                                                set( 
     332                                                        current,  
     333                                                        "importSection", 
     334                                                lv_importSection_4_0,  
     335                                                "ImportSection"); 
     336                                        afterParserOrEnumRuleCall(); 
     337                                     
     338                            } 
    305339 
    306340                            } 
     
    312346                    } 
    313347 
    314                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:139:3: ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ 
     348                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:146:3: ( (lv_bnfEntry_5_0= ruleBnfEntry ) )+ 
    315349                    int cnt3=0; 
    316350                    loop3: 
     
    326360                        switch (alt3) { 
    327361                        case 1 : 
    328                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:140:1: (lv_bnfEntry_5_0= ruleBnfEntry ) 
     362                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:147:1: (lv_bnfEntry_5_0= ruleBnfEntry ) 
    329363                            { 
    330                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:140:1: (lv_bnfEntry_5_0= ruleBnfEntry ) 
    331                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:141:3: lv_bnfEntry_5_0= ruleBnfEntry 
     364                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:147:1: (lv_bnfEntry_5_0= ruleBnfEntry ) 
     365                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:148:3: lv_bnfEntry_5_0= ruleBnfEntry 
    332366                            { 
    333                               
    334                                         newCompositeNode(grammarAccess.getEtsiBnfAccess().getBnfEntryBnfEntryParserRuleCall_0_2_3_0());  
    335                                      
    336                             pushFollow(FOLLOW_ruleBnfEntry_in_ruleEtsiBnf233); 
     367                            if ( state.backtracking==0 ) { 
     368                                
     369                                        newCompositeNode(grammarAccess.getEtsiBnfAccess().getBnfEntryBnfEntryParserRuleCall_0_2_3_0());  
     370                                     
     371                            } 
     372                            pushFollow(FOLLOW_ruleBnfEntry_in_ruleEtsiBnf246); 
    337373                            lv_bnfEntry_5_0=ruleBnfEntry(); 
    338374 
    339375                            state._fsp--; 
    340  
    341  
    342                                         if (current==null) { 
    343                                             current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
    344                                         } 
    345                                                 add( 
    346                                                         current,  
    347                                                         "bnfEntry", 
    348                                                 lv_bnfEntry_5_0,  
    349                                                 "BnfEntry"); 
    350                                         afterParserOrEnumRuleCall(); 
    351                                      
     376                            if (state.failed) return current; 
     377                            if ( state.backtracking==0 ) { 
     378 
     379                                        if (current==null) { 
     380                                            current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
     381                                        } 
     382                                                add( 
     383                                                        current,  
     384                                                        "bnfEntry", 
     385                                                lv_bnfEntry_5_0,  
     386                                                "BnfEntry"); 
     387                                        afterParserOrEnumRuleCall(); 
     388                                     
     389                            } 
    352390 
    353391                            } 
     
    359397                        default : 
    360398                            if ( cnt3 >= 1 ) break loop3; 
     399                            if (state.backtracking>0) {state.failed=true; return current;} 
    361400                                EarlyExitException eee = 
    362401                                    new EarlyExitException(3, input); 
     
    376415                    break; 
    377416                case 2 : 
    378                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:158:6: ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) 
    379                     { 
    380                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:158:6: ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) 
    381                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:158:7: ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* 
    382                     { 
    383                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:158:7: ( (lv_type_6_0= '/delta' ) ) 
    384                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:159:1: (lv_type_6_0= '/delta' ) 
    385                     { 
    386                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:159:1: (lv_type_6_0= '/delta' ) 
    387                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:160:3: lv_type_6_0= '/delta' 
    388                     { 
    389                     lv_type_6_0=(Token)match(input,16,FOLLOW_16_in_ruleEtsiBnf261);  
    390  
    391                             newLeafNode(lv_type_6_0, grammarAccess.getEtsiBnfAccess().getTypeDeltaKeyword_1_0_0()); 
    392                          
    393  
    394                                 if (current==null) { 
    395                                     current = createModelElement(grammarAccess.getEtsiBnfRule()); 
    396                                 } 
    397                                         setWithLastConsumed(current, "type", lv_type_6_0, "/delta"); 
    398                              
    399  
    400                     } 
    401  
    402  
    403                     } 
    404  
    405                     otherlv_7=(Token)match(input,15,FOLLOW_15_in_ruleEtsiBnf286);  
    406  
    407                                 newLeafNode(otherlv_7, grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_1_1()); 
    408                          
    409                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:177:1: ( (lv_importSection_8_0= ruleImportSection ) )? 
     417                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:165:6: ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) 
     418                    { 
     419                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:165:6: ( ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* ) 
     420                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:165:7: ( (lv_type_6_0= '/delta' ) ) otherlv_7= ';' ( (lv_importSection_8_0= ruleImportSection ) )? ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* 
     421                    { 
     422                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:165:7: ( (lv_type_6_0= '/delta' ) ) 
     423                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:166:1: (lv_type_6_0= '/delta' ) 
     424                    { 
     425                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:166:1: (lv_type_6_0= '/delta' ) 
     426                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:167:3: lv_type_6_0= '/delta' 
     427                    { 
     428                    lv_type_6_0=(Token)match(input,16,FOLLOW_16_in_ruleEtsiBnf274); if (state.failed) return current; 
     429                    if ( state.backtracking==0 ) { 
     430 
     431                              newLeafNode(lv_type_6_0, grammarAccess.getEtsiBnfAccess().getTypeDeltaKeyword_1_0_0()); 
     432                           
     433                    } 
     434                    if ( state.backtracking==0 ) { 
     435 
     436                                if (current==null) { 
     437                                    current = createModelElement(grammarAccess.getEtsiBnfRule()); 
     438                                } 
     439                                        setWithLastConsumed(current, "type", lv_type_6_0, "/delta"); 
     440                             
     441                    } 
     442 
     443                    } 
     444 
     445 
     446                    } 
     447 
     448                    otherlv_7=(Token)match(input,15,FOLLOW_15_in_ruleEtsiBnf299); if (state.failed) return current; 
     449                    if ( state.backtracking==0 ) { 
     450 
     451                                newLeafNode(otherlv_7, grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_1_1()); 
     452                           
     453                    } 
     454                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:184:1: ( (lv_importSection_8_0= ruleImportSection ) )? 
    410455                    int alt4=2; 
    411456                    int LA4_0 = input.LA(1); 
     
    416461                    switch (alt4) { 
    417462                        case 1 : 
    418                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:178:1: (lv_importSection_8_0= ruleImportSection ) 
     463                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:185:1: (lv_importSection_8_0= ruleImportSection ) 
    419464                            { 
    420                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:178:1: (lv_importSection_8_0= ruleImportSection ) 
    421                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:179:3: lv_importSection_8_0= ruleImportSection 
     465                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:185:1: (lv_importSection_8_0= ruleImportSection ) 
     466                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:186:3: lv_importSection_8_0= ruleImportSection 
    422467                            { 
    423                               
    424                                         newCompositeNode(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_1_2_0());  
    425                                      
    426                             pushFollow(FOLLOW_ruleImportSection_in_ruleEtsiBnf307); 
     468                            if ( state.backtracking==0 ) { 
     469                                
     470                                        newCompositeNode(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_1_2_0());  
     471                                     
     472                            } 
     473                            pushFollow(FOLLOW_ruleImportSection_in_ruleEtsiBnf320); 
    427474                            lv_importSection_8_0=ruleImportSection(); 
    428475 
    429476                            state._fsp--; 
    430  
    431  
    432                                         if (current==null) { 
    433                                             current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
    434                                         } 
    435                                                 set( 
    436                                                         current,  
    437                                                         "importSection", 
    438                                                 lv_importSection_8_0,  
    439                                                 "ImportSection"); 
    440                                         afterParserOrEnumRuleCall(); 
    441                                      
     477                            if (state.failed) return current; 
     478                            if ( state.backtracking==0 ) { 
     479 
     480                                        if (current==null) { 
     481                                            current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
     482                                        } 
     483                                                set( 
     484                                                        current,  
     485                                                        "importSection", 
     486                                                lv_importSection_8_0,  
     487                                                "ImportSection"); 
     488                                        afterParserOrEnumRuleCall(); 
     489                                     
     490                            } 
    442491 
    443492                            } 
     
    449498                    } 
    450499 
    451                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:195:3: ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* 
     500                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:202:3: ( (lv_deltaEntry_9_0= ruleDeltaEntry ) )* 
    452501                    loop5: 
    453502                    do { 
     
    462511                        switch (alt5) { 
    463512                        case 1 : 
    464                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:196:1: (lv_deltaEntry_9_0= ruleDeltaEntry ) 
     513                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:203:1: (lv_deltaEntry_9_0= ruleDeltaEntry ) 
    465514                            { 
    466                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:196:1: (lv_deltaEntry_9_0= ruleDeltaEntry ) 
    467                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:197:3: lv_deltaEntry_9_0= ruleDeltaEntry 
     515                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:203:1: (lv_deltaEntry_9_0= ruleDeltaEntry ) 
     516                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:204:3: lv_deltaEntry_9_0= ruleDeltaEntry 
    468517                            { 
    469                               
    470                                         newCompositeNode(grammarAccess.getEtsiBnfAccess().getDeltaEntryDeltaEntryParserRuleCall_1_3_0());  
    471                                      
    472                             pushFollow(FOLLOW_ruleDeltaEntry_in_ruleEtsiBnf329); 
     518                            if ( state.backtracking==0 ) { 
     519                                
     520                                        newCompositeNode(grammarAccess.getEtsiBnfAccess().getDeltaEntryDeltaEntryParserRuleCall_1_3_0());  
     521                                     
     522                            } 
     523                            pushFollow(FOLLOW_ruleDeltaEntry_in_ruleEtsiBnf342); 
    473524                            lv_deltaEntry_9_0=ruleDeltaEntry(); 
    474525 
    475526                            state._fsp--; 
    476  
    477  
    478                                         if (current==null) { 
    479                                             current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
    480                                         } 
    481                                                 add( 
    482                                                         current,  
    483                                                         "deltaEntry", 
    484                                                 lv_deltaEntry_9_0,  
    485                                                 "DeltaEntry"); 
    486                                         afterParserOrEnumRuleCall(); 
    487                                      
     527                            if (state.failed) return current; 
     528                            if ( state.backtracking==0 ) { 
     529 
     530                                        if (current==null) { 
     531                                            current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
     532                                        } 
     533                                                add( 
     534                                                        current,  
     535                                                        "deltaEntry", 
     536                                                lv_deltaEntry_9_0,  
     537                                                "DeltaEntry"); 
     538                                        afterParserOrEnumRuleCall(); 
     539                                     
     540                            } 
    488541 
    489542                            } 
     
    505558                    break; 
    506559                case 3 : 
    507                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:214:6: ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) 
    508                     { 
    509                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:214:6: ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) 
    510                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:214:7: ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* 
    511                     { 
    512                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:214:7: ( (lv_type_10_0= '/merge' ) ) 
    513                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:215:1: (lv_type_10_0= '/merge' ) 
    514                     { 
    515                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:215:1: (lv_type_10_0= '/merge' ) 
    516                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:216:3: lv_type_10_0= '/merge' 
    517                     { 
    518                     lv_type_10_0=(Token)match(input,17,FOLLOW_17_in_ruleEtsiBnf356);  
    519  
    520                             newLeafNode(lv_type_10_0, grammarAccess.getEtsiBnfAccess().getTypeMergeKeyword_2_0_0()); 
    521                          
    522  
    523                                 if (current==null) { 
    524                                     current = createModelElement(grammarAccess.getEtsiBnfRule()); 
    525                                 } 
    526                                         setWithLastConsumed(current, "type", lv_type_10_0, "/merge"); 
    527                              
    528  
    529                     } 
    530  
    531  
    532                     } 
    533  
    534                     otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleEtsiBnf381);  
    535  
    536                                 newLeafNode(otherlv_11, grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_2_1()); 
    537                          
    538                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:233:1: ( (lv_importSection_12_0= ruleImportSection ) )? 
     560                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:221:6: ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) 
     561                    { 
     562                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:221:6: ( ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* ) 
     563                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:221:7: ( (lv_type_10_0= '/merge' ) ) otherlv_11= ';' ( (lv_importSection_12_0= ruleImportSection ) )? ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* 
     564                    { 
     565                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:221:7: ( (lv_type_10_0= '/merge' ) ) 
     566                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:222:1: (lv_type_10_0= '/merge' ) 
     567                    { 
     568                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:222:1: (lv_type_10_0= '/merge' ) 
     569                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:223:3: lv_type_10_0= '/merge' 
     570                    { 
     571                    lv_type_10_0=(Token)match(input,17,FOLLOW_17_in_ruleEtsiBnf369); if (state.failed) return current; 
     572                    if ( state.backtracking==0 ) { 
     573 
     574                              newLeafNode(lv_type_10_0, grammarAccess.getEtsiBnfAccess().getTypeMergeKeyword_2_0_0()); 
     575                           
     576                    } 
     577                    if ( state.backtracking==0 ) { 
     578 
     579                                if (current==null) { 
     580                                    current = createModelElement(grammarAccess.getEtsiBnfRule()); 
     581                                } 
     582                                        setWithLastConsumed(current, "type", lv_type_10_0, "/merge"); 
     583                             
     584                    } 
     585 
     586                    } 
     587 
     588 
     589                    } 
     590 
     591                    otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleEtsiBnf394); if (state.failed) return current; 
     592                    if ( state.backtracking==0 ) { 
     593 
     594                                newLeafNode(otherlv_11, grammarAccess.getEtsiBnfAccess().getSemicolonKeyword_2_1()); 
     595                           
     596                    } 
     597                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:240:1: ( (lv_importSection_12_0= ruleImportSection ) )? 
    539598                    int alt6=2; 
    540599                    int LA6_0 = input.LA(1); 
     
    545604                    switch (alt6) { 
    546605                        case 1 : 
    547                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:234:1: (lv_importSection_12_0= ruleImportSection ) 
     606                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:241:1: (lv_importSection_12_0= ruleImportSection ) 
    548607                            { 
    549                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:234:1: (lv_importSection_12_0= ruleImportSection ) 
    550                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:235:3: lv_importSection_12_0= ruleImportSection 
     608                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:241:1: (lv_importSection_12_0= ruleImportSection ) 
     609                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:242:3: lv_importSection_12_0= ruleImportSection 
    551610                            { 
    552                               
    553                                         newCompositeNode(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_2_2_0());  
    554                                      
    555                             pushFollow(FOLLOW_ruleImportSection_in_ruleEtsiBnf402); 
     611                            if ( state.backtracking==0 ) { 
     612                                
     613                                        newCompositeNode(grammarAccess.getEtsiBnfAccess().getImportSectionImportSectionParserRuleCall_2_2_0());  
     614                                     
     615                            } 
     616                            pushFollow(FOLLOW_ruleImportSection_in_ruleEtsiBnf415); 
    556617                            lv_importSection_12_0=ruleImportSection(); 
    557618 
    558619                            state._fsp--; 
    559  
    560  
    561                                         if (current==null) { 
    562                                             current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
    563                                         } 
    564                                                 set( 
    565                                                         current,  
    566                                                         "importSection", 
    567                                                 lv_importSection_12_0,  
    568                                                 "ImportSection"); 
    569                                         afterParserOrEnumRuleCall(); 
    570                                      
     620                            if (state.failed) return current; 
     621                            if ( state.backtracking==0 ) { 
     622 
     623                                        if (current==null) { 
     624                                            current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
     625                                        } 
     626                                                set( 
     627                                                        current,  
     628                                                        "importSection", 
     629                                                lv_importSection_12_0,  
     630                                                "ImportSection"); 
     631                                        afterParserOrEnumRuleCall(); 
     632                                     
     633                            } 
    571634 
    572635                            } 
     
    578641                    } 
    579642 
    580                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:251:3: ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* 
     643                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:258:3: ( (lv_mergeEntry_13_0= ruleMergeEntry ) )* 
    581644                    loop7: 
    582645                    do { 
     
    591654                        switch (alt7) { 
    592655                        case 1 : 
    593                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:252:1: (lv_mergeEntry_13_0= ruleMergeEntry ) 
     656                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:259:1: (lv_mergeEntry_13_0= ruleMergeEntry ) 
    594657                            { 
    595                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:252:1: (lv_mergeEntry_13_0= ruleMergeEntry ) 
    596                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:253:3: lv_mergeEntry_13_0= ruleMergeEntry 
     658                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:259:1: (lv_mergeEntry_13_0= ruleMergeEntry ) 
     659                            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:260:3: lv_mergeEntry_13_0= ruleMergeEntry 
    597660                            { 
    598                               
    599                                         newCompositeNode(grammarAccess.getEtsiBnfAccess().getMergeEntryMergeEntryParserRuleCall_2_3_0());  
    600                                      
    601                             pushFollow(FOLLOW_ruleMergeEntry_in_ruleEtsiBnf424); 
     661                            if ( state.backtracking==0 ) { 
     662                                
     663                                        newCompositeNode(grammarAccess.getEtsiBnfAccess().getMergeEntryMergeEntryParserRuleCall_2_3_0());  
     664                                     
     665                            } 
     666                            pushFollow(FOLLOW_ruleMergeEntry_in_ruleEtsiBnf437); 
    602667                            lv_mergeEntry_13_0=ruleMergeEntry(); 
    603668 
    604669                            state._fsp--; 
    605  
    606  
    607                                         if (current==null) { 
    608                                             current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
    609                                         } 
    610                                                 add( 
    611                                                         current,  
    612                                                         "mergeEntry", 
    613                                                 lv_mergeEntry_13_0,  
    614                                                 "MergeEntry"); 
    615                                         afterParserOrEnumRuleCall(); 
    616                                      
     670                            if (state.failed) return current; 
     671                            if ( state.backtracking==0 ) { 
     672 
     673                                        if (current==null) { 
     674                                            current = createModelElementForParent(grammarAccess.getEtsiBnfRule()); 
     675                                        } 
     676                                                add( 
     677                                                        current,  
     678                                                        "mergeEntry", 
     679                                                lv_mergeEntry_13_0,  
     680                                                "MergeEntry"); 
     681                                        afterParserOrEnumRuleCall(); 
     682                                     
     683                            } 
    617684 
    618685                            } 
     
    639706            } 
    640707 
    641              leaveRule();  
     708            if ( state.backtracking==0 ) { 
     709               leaveRule();  
     710            } 
    642711        } 
    643712          
     
    647716            }  
    648717        finally { 
     718            if ( state.backtracking>0 ) { memoize(input, 2, ruleEtsiBnf_StartIndex); } 
    649719        } 
    650720        return current; 
     
    654724 
    655725    // $ANTLR start "entryRuleImportSection" 
    656     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:277:1: entryRuleImportSection returns [EObject current=null] : iv_ruleImportSection= ruleImportSection EOF ; 
     726    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:284:1: entryRuleImportSection returns [EObject current=null] : iv_ruleImportSection= ruleImportSection EOF ; 
    657727    public final EObject entryRuleImportSection() throws RecognitionException { 
    658728        EObject current = null; 
    659  
     729        int entryRuleImportSection_StartIndex = input.index(); 
    660730        EObject iv_ruleImportSection = null; 
    661731 
    662732 
    663733        try { 
    664             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:278:2: (iv_ruleImportSection= ruleImportSection EOF ) 
    665             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:279:2: iv_ruleImportSection= ruleImportSection EOF 
    666             { 
    667              newCompositeNode(grammarAccess.getImportSectionRule());  
    668             pushFollow(FOLLOW_ruleImportSection_in_entryRuleImportSection462); 
     734            if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return current; } 
     735            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:285:2: (iv_ruleImportSection= ruleImportSection EOF ) 
     736            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:286:2: iv_ruleImportSection= ruleImportSection EOF 
     737            { 
     738            if ( state.backtracking==0 ) { 
     739               newCompositeNode(grammarAccess.getImportSectionRule());  
     740            } 
     741            pushFollow(FOLLOW_ruleImportSection_in_entryRuleImportSection475); 
    669742            iv_ruleImportSection=ruleImportSection(); 
    670743 
    671744            state._fsp--; 
    672  
    673              current =iv_ruleImportSection;  
    674             match(input,EOF,FOLLOW_EOF_in_entryRuleImportSection472);  
     745            if (state.failed) return current; 
     746            if ( state.backtracking==0 ) { 
     747               current =iv_ruleImportSection;  
     748            } 
     749            match(input,EOF,FOLLOW_EOF_in_entryRuleImportSection485); if (state.failed) return current; 
    675750 
    676751            } 
     
    683758            }  
    684759        finally { 
     760            if ( state.backtracking>0 ) { memoize(input, 3, entryRuleImportSection_StartIndex); } 
    685761        } 
    686762        return current; 
     
    690766 
    691767    // $ANTLR start "ruleImportSection" 
    692     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:286:1: ruleImportSection returns [EObject current=null] : ( (lv_imports_0_0= ruleImport ) )+ ; 
     768    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:293:1: ruleImportSection returns [EObject current=null] : ( (lv_imports_0_0= ruleImport ) )+ ; 
    693769    public final EObject ruleImportSection() throws RecognitionException { 
    694770        EObject current = null; 
    695  
     771        int ruleImportSection_StartIndex = input.index(); 
    696772        EObject lv_imports_0_0 = null; 
    697773 
     
    700776             
    701777        try { 
    702             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:289:28: ( ( (lv_imports_0_0= ruleImport ) )+ ) 
    703             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:290:1: ( (lv_imports_0_0= ruleImport ) )+ 
    704             { 
    705             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:290:1: ( (lv_imports_0_0= ruleImport ) )+ 
     778            if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return current; } 
     779            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:296:28: ( ( (lv_imports_0_0= ruleImport ) )+ ) 
     780            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:297:1: ( (lv_imports_0_0= ruleImport ) )+ 
     781            { 
     782            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:297:1: ( (lv_imports_0_0= ruleImport ) )+ 
    706783            int cnt9=0; 
    707784            loop9: 
     
    717794                switch (alt9) { 
    718795                case 1 : 
    719                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:291:1: (lv_imports_0_0= ruleImport ) 
     796                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:298:1: (lv_imports_0_0= ruleImport ) 
    720797                    { 
    721                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:291:1: (lv_imports_0_0= ruleImport ) 
    722                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:292:3: lv_imports_0_0= ruleImport 
     798                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:298:1: (lv_imports_0_0= ruleImport ) 
     799                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:299:3: lv_imports_0_0= ruleImport 
    723800                    { 
    724                       
    725                                 newCompositeNode(grammarAccess.getImportSectionAccess().getImportsImportParserRuleCall_0());  
    726                              
    727                     pushFollow(FOLLOW_ruleImport_in_ruleImportSection517); 
     801                    if ( state.backtracking==0 ) { 
     802                        
     803                                newCompositeNode(grammarAccess.getImportSectionAccess().getImportsImportParserRuleCall_0());  
     804                             
     805                    } 
     806                    pushFollow(FOLLOW_ruleImport_in_ruleImportSection530); 
    728807                    lv_imports_0_0=ruleImport(); 
    729808 
    730809                    state._fsp--; 
    731  
    732  
    733                                 if (current==null) { 
    734                                     current = createModelElementForParent(grammarAccess.getImportSectionRule()); 
    735                                 } 
    736                                         add( 
    737                                                 current,  
    738                                                 "imports", 
    739                                         lv_imports_0_0,  
    740                                         "Import"); 
    741                                 afterParserOrEnumRuleCall(); 
    742                              
     810                    if (state.failed) return current; 
     811                    if ( state.backtracking==0 ) { 
     812 
     813                                if (current==null) { 
     814                                    current = createModelElementForParent(grammarAccess.getImportSectionRule()); 
     815                                } 
     816                                        add( 
     817                                                current,  
     818                                                "imports", 
     819                                        lv_imports_0_0,  
     820                                        "Import"); 
     821                                afterParserOrEnumRuleCall(); 
     822                             
     823                    } 
    743824 
    744825                    } 
     
    750831                default : 
    751832                    if ( cnt9 >= 1 ) break loop9; 
     833                    if (state.backtracking>0) {state.failed=true; return current;} 
    752834                        EarlyExitException eee = 
    753835                            new EarlyExitException(9, input); 
     
    760842            } 
    761843 
    762              leaveRule();  
     844            if ( state.backtracking==0 ) { 
     845               leaveRule();  
     846            } 
    763847        } 
    764848          
     
    768852            }  
    769853        finally { 
     854            if ( state.backtracking>0 ) { memoize(input, 4, ruleImportSection_StartIndex); } 
    770855        } 
    771856        return current; 
     
    775860 
    776861    // $ANTLR start "entryRuleBnfEntry" 
    777     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:316:1: entryRuleBnfEntry returns [EObject current=null] : iv_ruleBnfEntry= ruleBnfEntry EOF ; 
     862    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:323:1: entryRuleBnfEntry returns [EObject current=null] : iv_ruleBnfEntry= ruleBnfEntry EOF ; 
    778863    public final EObject entryRuleBnfEntry() throws RecognitionException { 
    779864        EObject current = null; 
    780  
     865        int entryRuleBnfEntry_StartIndex = input.index(); 
    781866        EObject iv_ruleBnfEntry = null; 
    782867 
    783868 
    784869        try { 
    785             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:317:2: (iv_ruleBnfEntry= ruleBnfEntry EOF ) 
    786             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:318:2: iv_ruleBnfEntry= ruleBnfEntry EOF 
    787             { 
    788              newCompositeNode(grammarAccess.getBnfEntryRule());  
    789             pushFollow(FOLLOW_ruleBnfEntry_in_entryRuleBnfEntry553); 
     870            if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return current; } 
     871            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:324:2: (iv_ruleBnfEntry= ruleBnfEntry EOF ) 
     872            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:325:2: iv_ruleBnfEntry= ruleBnfEntry EOF 
     873            { 
     874            if ( state.backtracking==0 ) { 
     875               newCompositeNode(grammarAccess.getBnfEntryRule());  
     876            } 
     877            pushFollow(FOLLOW_ruleBnfEntry_in_entryRuleBnfEntry566); 
    790878            iv_ruleBnfEntry=ruleBnfEntry(); 
    791879 
    792880            state._fsp--; 
    793  
    794              current =iv_ruleBnfEntry;  
    795             match(input,EOF,FOLLOW_EOF_in_entryRuleBnfEntry563);  
     881            if (state.failed) return current; 
     882            if ( state.backtracking==0 ) { 
     883               current =iv_ruleBnfEntry;  
     884            } 
     885            match(input,EOF,FOLLOW_EOF_in_entryRuleBnfEntry576); if (state.failed) return current; 
    796886 
    797887            } 
     
    804894            }  
    805895        finally { 
     896            if ( state.backtracking>0 ) { memoize(input, 5, entryRuleBnfEntry_StartIndex); } 
    806897        } 
    807898        return current; 
     
    811902 
    812903    // $ANTLR start "ruleBnfEntry" 
    813     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:325: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 ) ) ) ; 
    814905    public final EObject ruleBnfEntry() throws RecognitionException { 
    815906        EObject current = null; 
    816  
     907        int ruleBnfEntry_StartIndex = input.index(); 
    817908        EObject lv_sectionheader_0_0 = null; 
    818909 
     
    823914             
    824915        try { 
    825             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:328:28: ( ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) ) ) 
    826             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:329:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) ) 
    827             { 
    828             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:329:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_rule_1_0= ruleRule ) ) ) 
     916            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 ) ) ) 
    829921            int alt10=2; 
    830922            int LA10_0 = input.LA(1); 
     
    837929            } 
    838930            else { 
     931                if (state.backtracking>0) {state.failed=true; return current;} 
    839932                NoViableAltException nvae = 
    840933                    new NoViableAltException("", 10, 0, input); 
     
    844937            switch (alt10) { 
    845938                case 1 : 
    846                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:329:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
    847                     { 
    848                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:329:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
    849                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:330:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
    850                     { 
    851                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:330:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
    852                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:331:3: lv_sectionheader_0_0= ruleSectionHeading 
    853                     { 
    854                       
    855                                 newCompositeNode(grammarAccess.getBnfEntryAccess().getSectionheaderSectionHeadingParserRuleCall_0_0());  
    856                              
    857                     pushFollow(FOLLOW_ruleSectionHeading_in_ruleBnfEntry609); 
     939                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:336:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
     940                    { 
     941                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:336:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
     942                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:337:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
     943                    { 
     944                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:337:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
     945                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:338:3: lv_sectionheader_0_0= ruleSectionHeading 
     946                    { 
     947                    if ( state.backtracking==0 ) { 
     948                        
     949                                newCompositeNode(grammarAccess.getBnfEntryAccess().getSectionheaderSectionHeadingParserRuleCall_0_0());  
     950                             
     951                    } 
     952                    pushFollow(FOLLOW_ruleSectionHeading_in_ruleBnfEntry622); 
    858953                    lv_sectionheader_0_0=ruleSectionHeading(); 
    859954 
    860955                    state._fsp--; 
    861  
    862  
    863                                 if (current==null) { 
    864                                     current = createModelElementForParent(grammarAccess.getBnfEntryRule()); 
    865                                 } 
    866                                         set( 
    867                                                 current,  
    868                                                 "sectionheader", 
    869                                         lv_sectionheader_0_0,  
    870                                         "SectionHeading"); 
    871                                 afterParserOrEnumRuleCall(); 
    872                              
     956                    if (state.failed) return current; 
     957                    if ( state.backtracking==0 ) { 
     958 
     959                                if (current==null) { 
     960                                    current = createModelElementForParent(grammarAccess.getBnfEntryRule()); 
     961                                } 
     962                                        set( 
     963                                                current,  
     964                                                "sectionheader", 
     965                                        lv_sectionheader_0_0,  
     966                                        "SectionHeading"); 
     967                                afterParserOrEnumRuleCall(); 
     968                             
     969                    } 
    873970 
    874971                    } 
     
    881978                    break; 
    882979                case 2 : 
    883                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:348:6: ( (lv_rule_1_0= ruleRule ) ) 
    884                     { 
    885                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:348:6: ( (lv_rule_1_0= ruleRule ) ) 
    886                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:349:1: (lv_rule_1_0= ruleRule ) 
    887                     { 
    888                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:349:1: (lv_rule_1_0= ruleRule ) 
    889                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:350:3: lv_rule_1_0= ruleRule 
    890                     { 
    891                       
    892                                 newCompositeNode(grammarAccess.getBnfEntryAccess().getRuleRuleParserRuleCall_1_0());  
    893                              
    894                     pushFollow(FOLLOW_ruleRule_in_ruleBnfEntry636); 
     980                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:355:6: ( (lv_rule_1_0= ruleRule ) ) 
     981                    { 
     982                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:355:6: ( (lv_rule_1_0= ruleRule ) ) 
     983                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:356:1: (lv_rule_1_0= ruleRule ) 
     984                    { 
     985                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:356:1: (lv_rule_1_0= ruleRule ) 
     986                    // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:357:3: lv_rule_1_0= ruleRule 
     987                    { 
     988                    if ( state.backtracking==0 ) { 
     989                        
     990                                newCompositeNode(grammarAccess.getBnfEntryAccess().getRuleRuleParserRuleCall_1_0());  
     991                             
     992                    } 
     993                    pushFollow(FOLLOW_ruleRule_in_ruleBnfEntry649); 
    895994                    lv_rule_1_0=ruleRule(); 
    896995 
    897996                    state._fsp--; 
    898  
    899  
    900                                 if (current==null) { 
    901                                     current = createModelElementForParent(grammarAccess.getBnfEntryRule()); 
    902                                 } 
    903                                         set( 
    904                                                 current,  
    905                                                 "rule", 
    906                                         lv_rule_1_0,  
    907                                         "Rule"); 
    908                                 afterParserOrEnumRuleCall(); 
    909                              
     997                    if (state.failed) return current; 
     998                    if ( state.backtracking==0 ) { 
     999 
     1000                                if (current==null) { 
     1001                                    current = createModelElementForParent(grammarAccess.getBnfEntryRule()); 
     1002                                } 
     1003                                        set( 
     1004                                                current,  
     1005                                                "rule", 
     1006                                        lv_rule_1_0,  
     1007                                        "Rule"); 
     1008                                afterParserOrEnumRuleCall(); 
     1009                             
     1010                    } 
    9101011 
    9111012                    } 
     
    9231024            } 
    9241025 
    925              leaveRule();  
     1026            if ( state.backtracking==0 ) { 
     1027               leaveRule();  
     1028            } 
    9261029        } 
    9271030          
     
    9311034            }  
    9321035        finally { 
     1036            if ( state.backtracking>0 ) { memoize(input, 6, ruleBnfEntry_StartIndex); } 
    9331037        } 
    9341038        return current; 
     
    9381042 
    9391043    // $ANTLR start "entryRuleDeltaEntry" 
    940     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:374:1: entryRuleDeltaEntry returns [EObject current=null] : iv_ruleDeltaEntry= ruleDeltaEntry EOF ; 
     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 ; 
    9411045    public final EObject entryRuleDeltaEntry() throws RecognitionException { 
    9421046        EObject current = null; 
    943  
     1047        int entryRuleDeltaEntry_StartIndex = input.index(); 
    9441048        EObject iv_ruleDeltaEntry = null; 
    9451049 
    9461050 
    9471051        try { 
    948             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:375:2: (iv_ruleDeltaEntry= ruleDeltaEntry EOF ) 
    949             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:376:2: iv_ruleDeltaEntry= ruleDeltaEntry EOF 
    950             { 
    951              newCompositeNode(grammarAccess.getDeltaEntryRule());  
    952             pushFollow(FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry672); 
     1052            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 
     1055            { 
     1056            if ( state.backtracking==0 ) { 
     1057               newCompositeNode(grammarAccess.getDeltaEntryRule());  
     1058            } 
     1059            pushFollow(FOLLOW_ruleDeltaEntry_in_entryRuleDeltaEntry685); 
    9531060            iv_ruleDeltaEntry=ruleDeltaEntry(); 
    9541061 
    9551062            state._fsp--; 
    956  
    957              current =iv_ruleDeltaEntry;  
    958             match(input,EOF,FOLLOW_EOF_in_entryRuleDeltaEntry682);  
     1063            if (state.failed) return current; 
     1064            if ( state.backtracking==0 ) { 
     1065               current =iv_ruleDeltaEntry;  
     1066            } 
     1067            match(input,EOF,FOLLOW_EOF_in_entryRuleDeltaEntry695); if (state.failed) return current; 
    9591068 
    9601069            } 
     
    9671076            }  
    9681077        finally { 
     1078            if ( state.backtracking>0 ) { memoize(input, 7, entryRuleDeltaEntry_StartIndex); } 
    9691079        } 
    9701080        return current; 
     
    9741084 
    9751085    // $ANTLR start "ruleDeltaEntry" 
    976     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:383:1: ruleDeltaEntry returns [EObject current=null] : ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) ; 
     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 ) ) ) ; 
    9771087    public final EObject ruleDeltaEntry() throws RecognitionException { 
    9781088        EObject current = null; 
    979  
     1089        int ruleDeltaEntry_StartIndex = input.index(); 
    9801090        EObject lv_rule_0_0 = null; 
    9811091 
     
    9881098             
    9891099        try { 
    990             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:386:28: ( ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) ) 
    991             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:387:1: ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) 
    992             { 
    993             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:387:1: ( ( (lv_rule_0_0= ruleRule ) ) | ( (lv_sectionheader_1_0= ruleSectionHeading ) ) | ( (lv_extRule_2_0= ruleExtRule ) ) ) 
     1100            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 ) ) ) 
    9941105            int alt11=3; 
    9951106            switch ( input.LA(1) ) { 
     
    10071118                            int LA11_2 = input.LA(5); 
    10081119 
    1009                             if ( (LA11_2==26) ) { 
     1120                            if ( (LA11_2==25) ) { 
     1121                                alt11=1; 
     1122                            } 
     1123                            else if ( (LA11_2==26) ) { 
    10101124                                alt11=3; 
    10111125                            } 
    1012                             else if ( (LA11_2==25) ) { 
    1013                                 alt11=1; 
    1014                             } 
    10151126                            else { 
     1127                                if (state.backtracking>0) {state.failed=true; return current;} 
    10161128                                NoViableAltException nvae = 
    10171129                                    new NoViableAltException("", 11, 2, input); 
     
    10211133                        } 
    10221134                        else { 
     1135                            if (state.backtracking>0) {state.failed=true; return current;} 
    10231136                            NoViableAltException nvae = 
    10241137                                new NoViableAltException("", 11, 5, input); 
     
    10281141                    } 
    10291142                    else { 
     1143                        if (state.backtracking>0) {state.failed=true; return current;} 
    10301144                        NoViableAltException nvae = 
    10311145                            new NoViableAltException("", 11, 4, input); 
     
    10401154                        int LA11_2 = input.LA(4); 
    10411155 
    1042                         if ( (LA11_2==26) ) { 
     1156                        if ( (LA11_2==25) ) { 
     1157                            alt11=1; 
     1158                        } 
     1159                        else if ( (LA11_2==26) ) { 
    10431160                            alt11=3; 
    10441161                        } 
    1045                         else if ( (LA11_2==25) ) { 
    1046                             alt11=1; 
    1047                         } 
    10481162                        else { 
     1163                            if (state.backtracking>0) {state.failed=true; return current;} 
    10491164                            NoViableAltException nvae = 
    10501165                                new NoViableAltException("", 11, 2, input); 
     
    10541169                    } 
    10551170                    else { 
     1171                        if (state.backtracking>0) {state.failed=true; return current;} 
    10561172                        NoViableAltException nvae = 
    10571173                            new NoViableAltException("", 11, 5, input); 
     
    10611177                } 
    10621178                else { 
     1179                    if (state.backtracking>0) {state.failed=true; return current;} 
    10631180                    NoViableAltException nvae = 
    10641181                        new NoViableAltException("", 11, 1, input); 
     
    10721189                int LA11_2 = input.LA(2); 
    10731190 
    1074                 if ( (LA11_2==26) ) { 
     1191                if ( (LA11_2==25) ) { 
     1192                    alt11=1; 
     1193                } 
     1194                else if ( (LA11_2==26) ) { 
    10751195                    alt11=3; 
    10761196                } 
    1077                 else if ( (LA11_2==25) ) { 
    1078                     alt11=1; 
    1079                 } 
    10801197                else { 
     1198                    if (state.backtracking>0) {state.failed=true; return current;} 
    10811199                    NoViableAltException nvae = 
    10821200                        new NoViableAltException("", 11, 2, input); 
     
    10921210                break; 
    10931211            default: 
     1212                if (state.backtracking>0) {state.failed=true; return current;} 
    10941213                NoViableAltException nvae = 
    10951214                    new NoViableAltException("", 11, 0, input); 
     
    11001219            switch (alt11) { 
    11011220                case 1 : 
    1102                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:387:2: ( (lv_rule_0_0= ruleRule ) ) 
    1103                     { 
    1104                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:387:2: ( (lv_rule_0_0= ruleRule ) ) 
    1105                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:388:1: (lv_rule_0_0= ruleRule ) 
    1106                     { 
    1107                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:388:1: (lv_rule_0_0= ruleRule ) 
    1108                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:389:3: lv_rule_0_0= ruleRule 
    1109                     { 
    1110                       
    1111                                 newCompositeNode(grammarAccess.getDeltaEntryAccess().getRuleRuleParserRuleCall_0_0());  
    1112                              
    1113                     pushFollow(FOLLOW_ruleRule_in_ruleDeltaEntry728); 
     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 
     1228                    { 
     1229                    if ( state.backtracking==0 ) { 
     1230                        
     1231                                newCompositeNode(grammarAccess.getDeltaEntryAccess().getRuleRuleParserRuleCall_0_0());  
     1232                             
     1233                    } 
     1234                    pushFollow(FOLLOW_ruleRule_in_ruleDeltaEntry741); 
    11141235                    lv_rule_0_0=ruleRule(); 
    11151236 
    11161237                    state._fsp--; 
    1117  
    1118  
    1119                                 if (current==null) { 
    1120                                     current = createModelElementForParent(grammarAccess.getDeltaEntryRule()); 
    1121                                 } 
    1122                                         set( 
    1123                                                 current,  
    1124                                                 "rule", 
    1125                                         lv_rule_0_0,  
    1126                                         "Rule"); 
    1127                                 afterParserOrEnumRuleCall(); 
    1128                              
     1238                    if (state.failed) return current; 
     1239                    if ( state.backtracking==0 ) { 
     1240 
     1241                                if (current==null) { 
     1242                                    current = createModelElementForParent(grammarAccess.getDeltaEntryRule()); 
     1243                                } 
     1244                                        set( 
     1245                                                current,  
     1246                                                "rule", 
     1247                                        lv_rule_0_0,  
     1248                                        "Rule"); 
     1249                                afterParserOrEnumRuleCall(); 
     1250                             
     1251                    } 
    11291252 
    11301253                    } 
     
    11371260                    break; 
    11381261                case 2 : 
    1139                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:406:6: ( (lv_sectionheader_1_0= ruleSectionHeading ) ) 
    1140                     { 
    1141                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:406:6: ( (lv_sectionheader_1_0= ruleSectionHeading ) ) 
    1142                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:407:1: (lv_sectionheader_1_0= ruleSectionHeading ) 
    1143                     { 
    1144                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:407:1: (lv_sectionheader_1_0= ruleSectionHeading ) 
    1145                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:408:3: lv_sectionheader_1_0= ruleSectionHeading 
    1146                     { 
    1147                       
    1148                                 newCompositeNode(grammarAccess.getDeltaEntryAccess().getSectionheaderSectionHeadingParserRuleCall_1_0());  
    1149                              
    1150                     pushFollow(FOLLOW_ruleSectionHeading_in_ruleDeltaEntry755); 
     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 
     1269                    { 
     1270                    if ( state.backtracking==0 ) { 
     1271                        
     1272                                newCompositeNode(grammarAccess.getDeltaEntryAccess().getSectionheaderSectionHeadingParserRuleCall_1_0());  
     1273                             
     1274                    } 
     1275                    pushFollow(FOLLOW_ruleSectionHeading_in_ruleDeltaEntry768); 
    11511276                    lv_sectionheader_1_0=ruleSectionHeading(); 
    11521277 
    11531278                    state._fsp--; 
    1154  
    1155  
    1156                                 if (current==null) { 
    1157                                     current = createModelElementForParent(grammarAccess.getDeltaEntryRule()); 
    1158                                 } 
    1159                                         set( 
    1160                                                 current,  
    1161                                                 "sectionheader", 
    1162                                         lv_sectionheader_1_0,  
    1163                                         "SectionHeading"); 
    1164                                 afterParserOrEnumRuleCall(); 
    1165                              
     1279                    if (state.failed) return current; 
     1280                    if ( state.backtracking==0 ) { 
     1281 
     1282                                if (current==null) { 
     1283                                    current = createModelElementForParent(grammarAccess.getDeltaEntryRule()); 
     1284                                } 
     1285                                        set( 
     1286                                                current,  
     1287                                                "sectionheader", 
     1288                                        lv_sectionheader_1_0,  
     1289                                        "SectionHeading"); 
     1290                                afterParserOrEnumRuleCall(); 
     1291                             
     1292                    } 
    11661293 
    11671294                    } 
     
    11741301                    break; 
    11751302                case 3 : 
    1176                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:425:6: ( (lv_extRule_2_0= ruleExtRule ) ) 
    1177                     { 
    1178                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:425:6: ( (lv_extRule_2_0= ruleExtRule ) ) 
    1179                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:426:1: (lv_extRule_2_0= ruleExtRule ) 
    1180                     { 
    1181                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:426:1: (lv_extRule_2_0= ruleExtRule ) 
    1182                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:427:3: lv_extRule_2_0= ruleExtRule 
    1183                     { 
    1184                       
    1185                                 newCompositeNode(grammarAccess.getDeltaEntryAccess().getExtRuleExtRuleParserRuleCall_2_0());  
    1186                              
    1187                     pushFollow(FOLLOW_ruleExtRule_in_ruleDeltaEntry782); 
     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 
     1310                    { 
     1311                    if ( state.backtracking==0 ) { 
     1312                        
     1313                                newCompositeNode(grammarAccess.getDeltaEntryAccess().getExtRuleExtRuleParserRuleCall_2_0());  
     1314                             
     1315                    } 
     1316                    pushFollow(FOLLOW_ruleExtRule_in_ruleDeltaEntry795); 
    11881317                    lv_extRule_2_0=ruleExtRule(); 
    11891318 
    11901319                    state._fsp--; 
    1191  
    1192  
    1193                                 if (current==null) { 
    1194                                     current = createModelElementForParent(grammarAccess.getDeltaEntryRule()); 
    1195                                 } 
    1196                                         set( 
    1197                                                 current,  
    1198                                                 "extRule", 
    1199                                         lv_extRule_2_0,  
    1200                                         "ExtRule"); 
    1201                                 afterParserOrEnumRuleCall(); 
    1202                              
     1320                    if (state.failed) return current; 
     1321                    if ( state.backtracking==0 ) { 
     1322 
     1323                                if (current==null) { 
     1324                                    current = createModelElementForParent(grammarAccess.getDeltaEntryRule()); 
     1325                                } 
     1326                                        set( 
     1327                                                current,  
     1328                                                "extRule", 
     1329                                        lv_extRule_2_0,  
     1330                                        "ExtRule"); 
     1331                                afterParserOrEnumRuleCall(); 
     1332                             
     1333                    } 
    12031334 
    12041335                    } 
     
    12161347            } 
    12171348 
    1218              leaveRule();  
     1349            if ( state.backtracking==0 ) { 
     1350               leaveRule();  
     1351            } 
    12191352        } 
    12201353          
     
    12241357            }  
    12251358        finally { 
     1359            if ( state.backtracking>0 ) { memoize(input, 8, ruleDeltaEntry_StartIndex); } 
    12261360        } 
    12271361        return current; 
     
    12311365 
    12321366    // $ANTLR start "entryRuleMergeEntry" 
    1233     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:451:1: entryRuleMergeEntry returns [EObject current=null] : iv_ruleMergeEntry= ruleMergeEntry EOF ; 
     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 ; 
    12341368    public final EObject entryRuleMergeEntry() throws RecognitionException { 
    12351369        EObject current = null; 
    1236  
     1370        int entryRuleMergeEntry_StartIndex = input.index(); 
    12371371        EObject iv_ruleMergeEntry = null; 
    12381372 
    12391373 
    12401374        try { 
    1241             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:452:2: (iv_ruleMergeEntry= ruleMergeEntry EOF ) 
    1242             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:453:2: iv_ruleMergeEntry= ruleMergeEntry EOF 
    1243             { 
    1244              newCompositeNode(grammarAccess.getMergeEntryRule());  
    1245             pushFollow(FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry818); 
     1375            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 
     1378            { 
     1379            if ( state.backtracking==0 ) { 
     1380               newCompositeNode(grammarAccess.getMergeEntryRule());  
     1381            } 
     1382            pushFollow(FOLLOW_ruleMergeEntry_in_entryRuleMergeEntry831); 
    12461383            iv_ruleMergeEntry=ruleMergeEntry(); 
    12471384 
    12481385            state._fsp--; 
    1249  
    1250              current =iv_ruleMergeEntry;  
    1251             match(input,EOF,FOLLOW_EOF_in_entryRuleMergeEntry828);  
     1386            if (state.failed) return current; 
     1387            if ( state.backtracking==0 ) { 
     1388               current =iv_ruleMergeEntry;  
     1389            } 
     1390            match(input,EOF,FOLLOW_EOF_in_entryRuleMergeEntry841); if (state.failed) return current; 
    12521391 
    12531392            } 
     
    12601399            }  
    12611400        finally { 
     1401            if ( state.backtracking>0 ) { memoize(input, 9, entryRuleMergeEntry_StartIndex); } 
    12621402        } 
    12631403        return current; 
     
    12671407 
    12681408    // $ANTLR start "ruleMergeEntry" 
    1269     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:460:1: ruleMergeEntry returns [EObject current=null] : ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) ; 
     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 ) ) ) ; 
    12701410    public final EObject ruleMergeEntry() throws RecognitionException { 
    12711411        EObject current = null; 
    1272  
     1412        int ruleMergeEntry_StartIndex = input.index(); 
    12731413        EObject lv_sectionheader_0_0 = null; 
    12741414 
     
    12791419             
    12801420        try { 
    1281             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:463:28: ( ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) ) 
    1282             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:464:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) 
    1283             { 
    1284             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:464:1: ( ( (lv_sectionheader_0_0= ruleSectionHeading ) ) | ( (lv_mergeRule_1_0= ruleMergeRule ) ) ) 
     1421            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 ) ) ) 
    12851426            int alt12=2; 
    12861427            int LA12_0 = input.LA(1); 
     
    12931434            } 
    12941435            else { 
     1436                if (state.backtracking>0) {state.failed=true; return current;} 
    12951437                NoViableAltException nvae = 
    12961438                    new NoViableAltException("", 12, 0, input); 
     
    13001442            switch (alt12) { 
    13011443                case 1 : 
    1302                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:464:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
    1303                     { 
    1304                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:464:2: ( (lv_sectionheader_0_0= ruleSectionHeading ) ) 
    1305                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:465:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
    1306                     { 
    1307                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:465:1: (lv_sectionheader_0_0= ruleSectionHeading ) 
    1308                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:466:3: lv_sectionheader_0_0= ruleSectionHeading 
    1309                     { 
    1310                       
    1311                                 newCompositeNode(grammarAccess.getMergeEntryAccess().getSectionheaderSectionHeadingParserRuleCall_0_0());  
    1312                              
    1313                     pushFollow(FOLLOW_ruleSectionHeading_in_ruleMergeEntry874); 
     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 
     1451                    { 
     1452                    if ( state.backtracking==0 ) { 
     1453                        
     1454                                newCompositeNode(grammarAccess.getMergeEntryAccess().getSectionheaderSectionHeadingParserRuleCall_0_0());  
     1455                             
     1456                    } 
     1457                    pushFollow(FOLLOW_ruleSectionHeading_in_ruleMergeEntry887); 
    13141458                    lv_sectionheader_0_0=ruleSectionHeading(); 
    13151459 
    13161460                    state._fsp--; 
    1317  
    1318  
    1319                                 if (current==null) { 
    1320                                     current = createModelElementForParent(grammarAccess.getMergeEntryRule()); 
    1321                                 } 
    1322                                         set( 
    1323                                                 current,  
    1324                                                 "sectionheader", 
    1325                                         lv_sectionheader_0_0,  
    1326                                         "SectionHeading"); 
    1327                                 afterParserOrEnumRuleCall(); 
    1328                              
     1461                    if (state.failed) return current; 
     1462                    if ( state.backtracking==0 ) { 
     1463 
     1464                                if (current==null) { 
     1465                                    current = createModelElementForParent(grammarAccess.getMergeEntryRule()); 
     1466                                } 
     1467                                        set( 
     1468                                                current,  
     1469                                                "sectionheader", 
     1470                                        lv_sectionheader_0_0,  
     1471                                        "SectionHeading"); 
     1472                                afterParserOrEnumRuleCall(); 
     1473                             
     1474                    } 
    13291475 
    13301476                    } 
     
    13371483                    break; 
    13381484                case 2 : 
    1339                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:483:6: ( (lv_mergeRule_1_0= ruleMergeRule ) ) 
    1340                     { 
    1341                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:483:6: ( (lv_mergeRule_1_0= ruleMergeRule ) ) 
    1342                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:484:1: (lv_mergeRule_1_0= ruleMergeRule ) 
    1343                     { 
    1344                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:484:1: (lv_mergeRule_1_0= ruleMergeRule ) 
    1345                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:485:3: lv_mergeRule_1_0= ruleMergeRule 
    1346                     { 
    1347                       
    1348                                 newCompositeNode(grammarAccess.getMergeEntryAccess().getMergeRuleMergeRuleParserRuleCall_1_0());  
    1349                              
    1350                     pushFollow(FOLLOW_ruleMergeRule_in_ruleMergeEntry901); 
     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 
     1492                    { 
     1493                    if ( state.backtracking==0 ) { 
     1494                        
     1495                                newCompositeNode(grammarAccess.getMergeEntryAccess().getMergeRuleMergeRuleParserRuleCall_1_0());  
     1496                             
     1497                    } 
     1498                    pushFollow(FOLLOW_ruleMergeRule_in_ruleMergeEntry914); 
    13511499                    lv_mergeRule_1_0=ruleMergeRule(); 
    13521500 
    13531501                    state._fsp--; 
    1354  
    1355  
    1356                                 if (current==null) { 
    1357                                     current = createModelElementForParent(grammarAccess.getMergeEntryRule()); 
    1358                                 } 
    1359                                         set( 
    1360                                                 current,  
    1361                                                 "mergeRule", 
    1362                                         lv_mergeRule_1_0,  
    1363                                         "MergeRule"); 
    1364                                 afterParserOrEnumRuleCall(); 
    1365                              
     1502                    if (state.failed) return current; 
     1503                    if ( state.backtracking==0 ) { 
     1504 
     1505                                if (current==null) { 
     1506                                    current = createModelElementForParent(grammarAccess.getMergeEntryRule()); 
     1507                                } 
     1508                                        set( 
     1509                                                current,  
     1510                                                "mergeRule", 
     1511                                        lv_mergeRule_1_0,  
     1512                                        "MergeRule"); 
     1513                                afterParserOrEnumRuleCall(); 
     1514                             
     1515                    } 
    13661516 
    13671517                    } 
     
    13791529            } 
    13801530 
    1381              leaveRule();  
     1531            if ( state.backtracking==0 ) { 
     1532               leaveRule();  
     1533            } 
    13821534        } 
    13831535          
     
    13871539            }  
    13881540        finally { 
     1541            if ( state.backtracking>0 ) { memoize(input, 10, ruleMergeEntry_StartIndex); } 
    13891542        } 
    13901543        return current; 
     
    13941547 
    13951548    // $ANTLR start "entryRuleSectionHeading" 
    1396     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:509:1: entryRuleSectionHeading returns [EObject current=null] : iv_ruleSectionHeading= ruleSectionHeading EOF ; 
     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 ; 
    13971550    public final EObject entryRuleSectionHeading() throws RecognitionException { 
    13981551        EObject current = null; 
    1399  
     1552        int entryRuleSectionHeading_StartIndex = input.index(); 
    14001553        EObject iv_ruleSectionHeading = null; 
    14011554 
    14021555 
    14031556        try { 
    1404             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:510:2: (iv_ruleSectionHeading= ruleSectionHeading EOF ) 
    1405             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:511:2: iv_ruleSectionHeading= ruleSectionHeading EOF 
    1406             { 
    1407              newCompositeNode(grammarAccess.getSectionHeadingRule());  
    1408             pushFollow(FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading937); 
     1557            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 
     1560            { 
     1561            if ( state.backtracking==0 ) { 
     1562               newCompositeNode(grammarAccess.getSectionHeadingRule());  
     1563            } 
     1564            pushFollow(FOLLOW_ruleSectionHeading_in_entryRuleSectionHeading950); 
    14091565            iv_ruleSectionHeading=ruleSectionHeading(); 
    14101566 
    14111567            state._fsp--; 
    1412  
    1413              current =iv_ruleSectionHeading;  
    1414             match(input,EOF,FOLLOW_EOF_in_entryRuleSectionHeading947);  
     1568            if (state.failed) return current; 
     1569            if ( state.backtracking==0 ) { 
     1570               current =iv_ruleSectionHeading;  
     1571            } 
     1572            match(input,EOF,FOLLOW_EOF_in_entryRuleSectionHeading960); if (state.failed) return current; 
    14151573 
    14161574            } 
     
    14231581            }  
    14241582        finally { 
     1583            if ( state.backtracking>0 ) { memoize(input, 11, entryRuleSectionHeading_StartIndex); } 
    14251584        } 
    14261585        return current; 
     
    14301589 
    14311590    // $ANTLR start "ruleSectionHeading" 
    1432     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:518:1: ruleSectionHeading returns [EObject current=null] : ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) ; 
     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 ) ) ) ; 
    14331592    public final EObject ruleSectionHeading() throws RecognitionException { 
    14341593        EObject current = null; 
    1435  
     1594        int ruleSectionHeading_StartIndex = input.index(); 
    14361595        Token lv_sectionHeader_1_0=null; 
    14371596 
     
    14391598             
    14401599        try { 
    1441             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:521:28: ( ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) ) 
    1442             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:522:1: ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) 
    1443             { 
    1444             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:522:1: ( () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) ) 
    1445             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:522:2: () ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) 
    1446             { 
    1447             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:522:2: () 
    1448             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:523:5:  
    1449             { 
    1450  
    1451                     current = forceCreateModelElement( 
    1452                         grammarAccess.getSectionHeadingAccess().getSectionHeadingAction_0(), 
    1453                         current); 
    1454                  
    1455  
    1456             } 
    1457  
    1458             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:528:2: ( (lv_sectionHeader_1_0= RULE_SECTIONHEADER ) ) 
    1459             // ../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 ) 
    1460             { 
    1461             // ../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 ) 
    1462             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:530:3: lv_sectionHeader_1_0= RULE_SECTIONHEADER 
    1463             { 
    1464             lv_sectionHeader_1_0=(Token)match(input,RULE_SECTIONHEADER,FOLLOW_RULE_SECTIONHEADER_in_ruleSectionHeading998);  
    1465  
    1466                                 newLeafNode(lv_sectionHeader_1_0, grammarAccess.getSectionHeadingAccess().getSectionHeaderSECTIONHEADERTerminalRuleCall_1_0());  
    1467                          
    1468  
    1469                         if (current==null) { 
    1470                             current = createModelElement(grammarAccess.getSectionHeadingRule()); 
    1471                         } 
    1472                                 setWithLastConsumed( 
    1473                                         current,  
    1474                                         "sectionHeader", 
    1475                                 lv_sectionHeader_1_0,  
    1476                                 "SECTIONHEADER"); 
    1477                      
    1478  
    1479             } 
    1480  
    1481  
    1482             } 
    1483  
    1484  
    1485             } 
    1486  
    1487  
    1488             } 
    1489  
    1490              leaveRule();  
     1600            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:  
     1609            { 
     1610            if ( state.backtracking==0 ) { 
     1611                
     1612                  /* */  
     1613                 
     1614            } 
     1615            if ( state.backtracking==0 ) { 
     1616 
     1617                      current = forceCreateModelElement( 
     1618                          grammarAccess.getSectionHeadingAccess().getSectionHeadingAction_0(), 
     1619                          current); 
     1620                   
     1621            } 
     1622 
     1623            } 
     1624 
     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; 
     1632            if ( state.backtracking==0 ) { 
     1633 
     1634                                newLeafNode(lv_sectionHeader_1_0, grammarAccess.getSectionHeadingAccess().getSectionHeaderSECTIONHEADERTerminalRuleCall_1_0());  
     1635                         
     1636            } 
     1637            if ( state.backtracking==0 ) { 
     1638 
     1639                        if (current==null) { 
     1640                            current = createModelElement(grammarAccess.getSectionHeadingRule()); 
     1641                        } 
     1642                                setWithLastConsumed( 
     1643                                        current,  
     1644                                        "sectionHeader", 
     1645                                lv_sectionHeader_1_0,  
     1646                                "SECTIONHEADER"); 
     1647                     
     1648            } 
     1649 
     1650            } 
     1651 
     1652 
     1653            } 
     1654 
     1655 
     1656            } 
     1657 
     1658 
     1659            } 
     1660 
     1661            if ( state.backtracking==0 ) { 
     1662               leaveRule();  
     1663            } 
    14911664        } 
    14921665          
     
    14961669            }  
    14971670        finally { 
     1671            if ( state.backtracking>0 ) { memoize(input, 12, ruleSectionHeading_StartIndex); } 
    14981672        } 
    14991673        return current; 
     
    15031677 
    15041678    // $ANTLR start "entryRuleImport" 
    1505     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:554:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ; 
     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 ; 
    15061680    public final EObject entryRuleImport() throws RecognitionException { 
    15071681        EObject current = null; 
    1508  
     1682        int entryRuleImport_StartIndex = input.index(); 
    15091683        EObject iv_ruleImport = null; 
    15101684 
    15111685 
    15121686        try { 
    1513             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:555:2: (iv_ruleImport= ruleImport EOF ) 
    1514             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:556:2: iv_ruleImport= ruleImport EOF 
    1515             { 
    1516              newCompositeNode(grammarAccess.getImportRule());  
    1517             pushFollow(FOLLOW_ruleImport_in_entryRuleImport1039); 
     1687            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); 
    15181695            iv_ruleImport=ruleImport(); 
    15191696 
    15201697            state._fsp--; 
    1521  
    1522              current =iv_ruleImport;  
    1523             match(input,EOF,FOLLOW_EOF_in_entryRuleImport1049);  
     1698            if (state.failed) return current; 
     1699            if ( state.backtracking==0 ) { 
     1700               current =iv_ruleImport;  
     1701            } 
     1702            match(input,EOF,FOLLOW_EOF_in_entryRuleImport1065); if (state.failed) return current; 
    15241703 
    15251704            } 
     
    15321711            }  
    15331712        finally { 
     1713            if ( state.backtracking>0 ) { memoize(input, 13, entryRuleImport_StartIndex); } 
    15341714        } 
    15351715        return current; 
     
    15391719 
    15401720    // $ANTLR start "ruleImport" 
    1541     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:563: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= ';' ) ; 
     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= ';' ) ; 
    15421722    public final EObject ruleImport() throws RecognitionException { 
    15431723        EObject current = null; 
    1544  
     1724        int ruleImport_StartIndex = input.index(); 
    15451725        Token otherlv_0=null; 
    15461726        Token lv_importURI_1_0=null; 
     
    15561736             
    15571737        try { 
    1558             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:566: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= ';' ) ) 
    1559             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:567: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= ';' ) 
    1560             { 
    1561             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:567: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= ';' ) 
    1562             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:567: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= ';' 
    1563             { 
    1564             otherlv_0=(Token)match(input,18,FOLLOW_18_in_ruleImport1086);  
    1565  
    1566                         newLeafNode(otherlv_0, grammarAccess.getImportAccess().getImportKeyword_0()); 
    1567                  
    1568             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:571:1: ( (lv_importURI_1_0= RULE_STRING ) ) 
    1569             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:572:1: (lv_importURI_1_0= RULE_STRING ) 
    1570             { 
    1571             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:572:1: (lv_importURI_1_0= RULE_STRING ) 
    1572             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:573:3: lv_importURI_1_0= RULE_STRING 
    1573             { 
    1574             lv_importURI_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleImport1103);  
    1575  
    1576                                 newLeafNode(lv_importURI_1_0, grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_1_0());  
    1577                          
    1578  
    1579                         if (current==null) { 
    1580                             current = createModelElement(grammarAccess.getImportRule()); 
    1581                         } 
    1582                                 setWithLastConsumed( 
    1583                                         current,  
    1584                                         "importURI", 
    1585                                 lv_importURI_1_0,  
    1586                                 "STRING"); 
    1587                      
    1588  
    1589             } 
    1590  
    1591  
    1592             } 
    1593  
    1594             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:589:2: (otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) )? 
     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; 
     1746            if ( state.backtracking==0 ) { 
     1747 
     1748                        newLeafNode(otherlv_0, grammarAccess.getImportAccess().getImportKeyword_0()); 
     1749                   
     1750            } 
     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; 
     1758            if ( state.backtracking==0 ) { 
     1759 
     1760                                newLeafNode(lv_importURI_1_0, grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_1_0());  
     1761                         
     1762            } 
     1763            if ( state.backtracking==0 ) { 
     1764 
     1765                        if (current==null) { 
     1766                            current = createModelElement(grammarAccess.getImportRule()); 
     1767                        } 
     1768                                setWithLastConsumed( 
     1769                                        current,  
     1770                                        "importURI", 
     1771                                lv_importURI_1_0,  
     1772                                "STRING"); 
     1773                     
     1774            } 
     1775 
     1776            } 
     1777 
     1778 
     1779            } 
     1780 
     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' ) ) ) )? 
    15951782            int alt14=2; 
    15961783            int LA14_0 = input.LA(1); 
     
    16011788            switch (alt14) { 
    16021789                case 1 : 
    1603                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:589:4: otherlv_2= '/' ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) 
    1604                     { 
    1605                     otherlv_2=(Token)match(input,19,FOLLOW_19_in_ruleImport1121);  
    1606  
    1607                                 newLeafNode(otherlv_2, grammarAccess.getImportAccess().getSolidusKeyword_2_0()); 
    1608                          
    1609                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:593:1: ( ( (lv_grammarType_3_0= 'core' ) ) | ( (lv_grammarType_4_0= 'package' ) ) | ( (lv_grammarType_5_0= 'update' ) ) ) 
     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; 
     1793                    if ( state.backtracking==0 ) { 
     1794 
     1795                                newLeafNode(otherlv_2, grammarAccess.getImportAccess().getSolidusKeyword_2_0()); 
     1796                           
     1797                    } 
     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' ) ) ) 
    16101799                    int alt13=3; 
    16111800                    switch ( input.LA(1) ) { 
     
    16261815                        break; 
    16271816                    default: 
     1817                        if (state.backtracking>0) {state.failed=true; return current;} 
    16281818                        NoViableAltException nvae = 
    16291819                            new NoViableAltException("", 13, 0, input); 
     
    16341824                    switch (alt13) { 
    16351825                        case 1 : 
    1636                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:593:2: ( (lv_grammarType_3_0= 'core' ) ) 
     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' ) ) 
    16371827                            { 
    1638                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:593:2: ( (lv_grammarType_3_0= 'core' ) ) 
    1639                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:594:1: (lv_grammarType_3_0= 'core' ) 
     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' ) 
    16401830                            { 
    1641                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:594:1: (lv_grammarType_3_0= 'core' ) 
    1642                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:595:3: lv_grammarType_3_0= 'core' 
     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' 
    16431833                            { 
    1644                             lv_grammarType_3_0=(Token)match(input,20,FOLLOW_20_in_ruleImport1140);  
    1645  
    1646                                     newLeafNode(lv_grammarType_3_0, grammarAccess.getImportAccess().getGrammarTypeCoreKeyword_2_1_0_0()); 
    1647                                  
    1648  
    1649                                         if (current==null) { 
    1650                                             current = createModelElement(grammarAccess.getImportRule()); 
    1651                                         } 
    1652                                                 setWithLastConsumed(current, "grammarType", lv_grammarType_3_0, "core"); 
    1653                                      
     1834                            lv_grammarType_3_0=(Token)match(input,20,FOLLOW_20_in_ruleImport1156); if (state.failed) return current; 
     1835                            if ( state.backtracking==0 ) { 
     1836 
     1837                                      newLeafNode(lv_grammarType_3_0, grammarAccess.getImportAccess().getGrammarTypeCoreKeyword_2_1_0_0()); 
     1838                                   
     1839                            } 
     1840                            if ( state.backtracking==0 ) { 
     1841 
     1842                                        if (current==null) { 
     1843                                            current = createModelElement(grammarAccess.getImportRule()); 
     1844                                        } 
     1845                                                setWithLastConsumed(current, "grammarType", lv_grammarType_3_0, "core"); 
     1846                                     
     1847                            } 
    16541848 
    16551849                            } 
     
    16621856                            break; 
    16631857                        case 2 : 
    1664                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:609:6: ( (lv_grammarType_4_0= 'package' ) ) 
     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' ) ) 
    16651859                            { 
    1666                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:609:6: ( (lv_grammarType_4_0= 'package' ) ) 
    1667                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:610:1: (lv_grammarType_4_0= 'package' ) 
     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' ) 
    16681862                            { 
    1669                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:610:1: (lv_grammarType_4_0= 'package' ) 
    1670                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:611:3: lv_grammarType_4_0= 'package' 
     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' 
    16711865                            { 
    1672                             lv_grammarType_4_0=(Token)match(input,21,FOLLOW_21_in_ruleImport1177);  
    1673  
    1674                                     newLeafNode(lv_grammarType_4_0, grammarAccess.getImportAccess().getGrammarTypePackageKeyword_2_1_1_0()); 
    1675                                  
    1676  
    1677                                         if (current==null) { 
    1678                                             current = createModelElement(grammarAccess.getImportRule()); 
    1679                                         } 
    1680                                                 setWithLastConsumed(current, "grammarType", lv_grammarType_4_0, "package"); 
    1681                                      
     1866                            lv_grammarType_4_0=(Token)match(input,21,FOLLOW_21_in_ruleImport1193); if (state.failed) return current; 
     1867                            if ( state.backtracking==0 ) { 
     1868 
     1869                                      newLeafNode(lv_grammarType_4_0, grammarAccess.getImportAccess().getGrammarTypePackageKeyword_2_1_1_0()); 
     1870                                   
     1871                            } 
     1872                            if ( state.backtracking==0 ) { 
     1873 
     1874                                        if (current==null) { 
     1875                                            current = createModelElement(grammarAccess.getImportRule()); 
     1876                                        } 
     1877                                                setWithLastConsumed(current, "grammarType", lv_grammarType_4_0, "package"); 
     1878                                     
     1879                            } 
    16821880 
    16831881                            } 
     
    16901888                            break; 
    16911889                        case 3 : 
    1692                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:625:6: ( (lv_grammarType_5_0= 'update' ) ) 
     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' ) ) 
    16931891                            { 
    1694                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:625:6: ( (lv_grammarType_5_0= 'update' ) ) 
    1695                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:626:1: (lv_grammarType_5_0= 'update' ) 
     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' ) 
    16961894                            { 
    1697                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:626:1: (lv_grammarType_5_0= 'update' ) 
    1698                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:627:3: lv_grammarType_5_0= 'update' 
     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' 
    16991897                            { 
    1700                             lv_grammarType_5_0=(Token)match(input,22,FOLLOW_22_in_ruleImport1214);  
    1701  
    1702                                     newLeafNode(lv_grammarType_5_0, grammarAccess.getImportAccess().getGrammarTypeUpdateKeyword_2_1_2_0()); 
    1703                                  
    1704  
    1705                                         if (current==null) { 
    1706                                             current = createModelElement(grammarAccess.getImportRule()); 
    1707                                         } 
    1708                                                 setWithLastConsumed(current, "grammarType", lv_grammarType_5_0, "update"); 
    1709                                      
     1898                            lv_grammarType_5_0=(Token)match(input,22,FOLLOW_22_in_ruleImport1230); if (state.failed) return current; 
     1899                            if ( state.backtracking==0 ) { 
     1900 
     1901                                      newLeafNode(lv_grammarType_5_0, grammarAccess.getImportAccess().getGrammarTypeUpdateKeyword_2_1_2_0()); 
     1902                                   
     1903                            } 
     1904                            if ( state.backtracking==0 ) { 
     1905 
     1906                                        if (current==null) { 
     1907                                            current = createModelElement(grammarAccess.getImportRule()); 
     1908                                        } 
     1909                                                setWithLastConsumed(current, "grammarType", lv_grammarType_5_0, "update"); 
     1910                                     
     1911                            } 
    17101912 
    17111913                            } 
     
    17261928            } 
    17271929 
    1728             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:640:5: (otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) )? 
     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 ) ) )? 
    17291931            int alt15=2; 
    17301932            int LA15_0 = input.LA(1); 
     
    17351937            switch (alt15) { 
    17361938                case 1 : 
    1737                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:640:7: otherlv_6= 'label:' ( (lv_label_7_0= RULE_ID ) ) 
    1738                     { 
    1739                     otherlv_6=(Token)match(input,23,FOLLOW_23_in_ruleImport1243);  
    1740  
    1741                                 newLeafNode(otherlv_6, grammarAccess.getImportAccess().getLabelKeyword_3_0()); 
    1742                          
    1743                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:644:1: ( (lv_label_7_0= RULE_ID ) ) 
    1744                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:645:1: (lv_label_7_0= RULE_ID ) 
    1745                     { 
    1746                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:645:1: (lv_label_7_0= RULE_ID ) 
    1747                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:646:3: lv_label_7_0= RULE_ID 
    1748                     { 
    1749                     lv_label_7_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleImport1260);  
    1750  
    1751                                         newLeafNode(lv_label_7_0, grammarAccess.getImportAccess().getLabelIDTerminalRuleCall_3_1_0());  
    1752                                  
    1753  
    1754                                 if (current==null) { 
    1755                                     current = createModelElement(grammarAccess.getImportRule()); 
    1756                                 } 
    1757                                         setWithLastConsumed( 
    1758                                                 current,  
    1759                                                 "label", 
    1760                                         lv_label_7_0,  
    1761                                         "ID"); 
    1762                              
     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; 
     1942                    if ( state.backtracking==0 ) { 
     1943 
     1944                                newLeafNode(otherlv_6, grammarAccess.getImportAccess().getLabelKeyword_3_0()); 
     1945                           
     1946                    } 
     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; 
     1954                    if ( state.backtracking==0 ) { 
     1955 
     1956                                        newLeafNode(lv_label_7_0, grammarAccess.getImportAccess().getLabelIDTerminalRuleCall_3_1_0());  
     1957                                 
     1958                    } 
     1959                    if ( state.backtracking==0 ) { 
     1960 
     1961                                if (current==null) { 
     1962                                    current = createModelElement(grammarAccess.getImportRule()); 
     1963                                } 
     1964                                        setWithLastConsumed( 
     1965                                                current,  
     1966                                                "label", 
     1967                                        lv_label_7_0,  
     1968                                        "ID"); 
     1969                             
     1970                    } 
    17631971 
    17641972                    } 
     
    17731981            } 
    17741982 
    1775             otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleImport1279);  
    1776  
    1777                         newLeafNode(otherlv_8, grammarAccess.getImportAccess().getSemicolonKeyword_4()); 
    1778                  
    1779  
    1780             } 
    1781  
    1782  
    1783             } 
    1784  
    1785              leaveRule();  
     1983            otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleImport1295); if (state.failed) return current; 
     1984            if ( state.backtracking==0 ) { 
     1985 
     1986                        newLeafNode(otherlv_8, grammarAccess.getImportAccess().getSemicolonKeyword_4()); 
     1987                   
     1988            } 
     1989 
     1990            } 
     1991 
     1992 
     1993            } 
     1994 
     1995            if ( state.backtracking==0 ) { 
     1996               leaveRule();  
     1997            } 
    17861998        } 
    17871999          
     
    17912003            }  
    17922004        finally { 
     2005            if ( state.backtracking>0 ) { memoize(input, 14, ruleImport_StartIndex); } 
    17932006        } 
    17942007        return current; 
     
    17982011 
    17992012    // $ANTLR start "entryRuleRule" 
    1800     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:674:1: entryRuleRule returns [EObject current=null] : iv_ruleRule= ruleRule EOF ; 
     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 ; 
    18012014    public final EObject entryRuleRule() throws RecognitionException { 
    18022015        EObject current = null; 
    1803  
     2016        int entryRuleRule_StartIndex = input.index(); 
    18042017        EObject iv_ruleRule = null; 
    18052018 
    18062019 
    18072020        try { 
    1808             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:675:2: (iv_ruleRule= ruleRule EOF ) 
    1809             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:676:2: iv_ruleRule= ruleRule EOF 
    1810             { 
    1811              newCompositeNode(grammarAccess.getRuleRule());  
    1812             pushFollow(FOLLOW_ruleRule_in_entryRuleRule1315); 
     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 
     2024            { 
     2025            if ( state.backtracking==0 ) { 
     2026               newCompositeNode(grammarAccess.getRuleRule());  
     2027            } 
     2028            pushFollow(FOLLOW_ruleRule_in_entryRuleRule1331); 
    18132029            iv_ruleRule=ruleRule(); 
    18142030 
    18152031            state._fsp--; 
    1816  
    1817              current =iv_ruleRule;  
    1818             match(input,EOF,FOLLOW_EOF_in_entryRuleRule1325);  
     2032            if (state.failed) return current; 
     2033            if ( state.backtracking==0 ) { 
     2034               current =iv_ruleRule;  
     2035            } 
     2036            match(input,EOF,FOLLOW_EOF_in_entryRuleRule1341); if (state.failed) return current; 
    18192037 
    18202038            } 
     
    18272045            }  
    18282046        finally { 
     2047            if ( state.backtracking>0 ) { memoize(input, 15, entryRuleRule_StartIndex); } 
    18292048        } 
    18302049        return current; 
     
    18342053 
    18352054    // $ANTLR start "ruleRule" 
    1836     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:683: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= ';' )? ) ; 
     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= ';' )? ) ; 
    18372056    public final EObject ruleRule() throws RecognitionException { 
    18382057        EObject current = null; 
    1839  
     2058        int ruleRule_StartIndex = input.index(); 
    18402059        Token lv_rulenumber_0_0=null; 
    18412060        Token lv_rulevariant_1_0=null; 
     
    18502069             
    18512070        try { 
    1852             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:686: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= ';' )? ) ) 
    1853             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687: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= ';' )? ) 
    1854             { 
    1855             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687: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= ';' )? ) 
    1856             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687: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= ';' )? 
    1857             { 
    1858             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687:2: ( ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' )? 
     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= '.' )? 
    18592079            int alt17=2; 
    18602080            int LA17_0 = input.LA(1); 
     
    18652085            switch (alt17) { 
    18662086                case 1 : 
    1867                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687:3: ( (lv_rulenumber_0_0= RULE_INT ) ) ( (lv_rulevariant_1_0= RULE_ID ) )? otherlv_2= '.' 
    1868                     { 
    1869                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:687:3: ( (lv_rulenumber_0_0= RULE_INT ) ) 
    1870                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:688:1: (lv_rulenumber_0_0= RULE_INT ) 
    1871                     { 
    1872                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:688:1: (lv_rulenumber_0_0= RULE_INT ) 
    1873                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:689:3: lv_rulenumber_0_0= RULE_INT 
    1874                     { 
    1875                     lv_rulenumber_0_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRule1368);  
    1876  
    1877                                         newLeafNode(lv_rulenumber_0_0, grammarAccess.getRuleAccess().getRulenumberINTTerminalRuleCall_0_0_0());  
    1878                                  
    1879  
    1880                                 if (current==null) { 
    1881                                     current = createModelElement(grammarAccess.getRuleRule()); 
    1882                                 } 
    1883                                         setWithLastConsumed( 
    1884                                                 current,  
    1885                                                 "rulenumber", 
    1886                                         lv_rulenumber_0_0,  
    1887                                         "INT"); 
    1888                              
    1889  
    1890                     } 
    1891  
    1892  
    1893                     } 
    1894  
    1895                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:705:2: ( (lv_rulevariant_1_0= RULE_ID ) )? 
     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; 
     2096                    if ( state.backtracking==0 ) { 
     2097 
     2098                                        newLeafNode(lv_rulenumber_0_0, grammarAccess.getRuleAccess().getRulenumberINTTerminalRuleCall_0_0_0());  
     2099                                 
     2100                    } 
     2101                    if ( state.backtracking==0 ) { 
     2102 
     2103                                if (current==null) { 
     2104                                    current = createModelElement(grammarAccess.getRuleRule()); 
     2105                                } 
     2106                                        setWithLastConsumed( 
     2107                                                current,  
     2108                                                "rulenumber", 
     2109                                        lv_rulenumber_0_0,  
     2110                                        "INT"); 
     2111                             
     2112                    } 
     2113 
     2114                    } 
     2115 
     2116 
     2117                    } 
     2118 
     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 ) )? 
    18962120                    int alt16=2; 
    18972121                    int LA16_0 = input.LA(1); 
     
    19022126                    switch (alt16) { 
    19032127                        case 1 : 
    1904                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:706:1: (lv_rulevariant_1_0= RULE_ID ) 
     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 ) 
    19052129                            { 
    1906                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:706:1: (lv_rulevariant_1_0= RULE_ID ) 
    1907                             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:707:3: lv_rulevariant_1_0= RULE_ID 
     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 
    19082132                            { 
    1909                             lv_rulevariant_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRule1390);  
    1910  
    1911                                                 newLeafNode(lv_rulevariant_1_0, grammarAccess.getRuleAccess().getRulevariantIDTerminalRuleCall_0_1_0());  
    1912                                          
    1913  
    1914                                         if (current==null) { 
    1915                                             current = createModelElement(grammarAccess.getRuleRule()); 
    1916                                         } 
    1917                                                 setWithLastConsumed( 
    1918                                                         current,  
    1919                                                         "rulevariant", 
    1920                                                 lv_rulevariant_1_0,  
    1921                                                 "ID"); 
    1922                                      
     2133                            lv_rulevariant_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRule1406); if (state.failed) return current; 
     2134                            if ( state.backtracking==0 ) { 
     2135 
     2136                                                newLeafNode(lv_rulevariant_1_0, grammarAccess.getRuleAccess().getRulevariantIDTerminalRuleCall_0_1_0());  
     2137                                         
     2138                            } 
     2139                            if ( state.backtracking==0 ) { 
     2140 
     2141                                        if (current==null) { 
     2142                                            current = createModelElement(grammarAccess.getRuleRule()); 
     2143                                        } 
     2144                                                setWithLastConsumed( 
     2145                                                        current,  
     2146                                                        "rulevariant", 
     2147                                                lv_rulevariant_1_0,  
     2148                                                "ID"); 
     2149                                     
     2150                            } 
    19232151 
    19242152                            } 
     
    19302158                    } 
    19312159 
    1932                     otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleRule1408);  
    1933  
    1934                                 newLeafNode(otherlv_2, grammarAccess.getRuleAccess().getFullStopKeyword_0_2()); 
    1935                          
     2160                    otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleRule1424); if (state.failed) return current; 
     2161                    if ( state.backtracking==0 ) { 
     2162 
     2163                                newLeafNode(otherlv_2, grammarAccess.getRuleAccess().getFullStopKeyword_0_2()); 
     2164                           
     2165                    } 
    19362166 
    19372167                    } 
     
    19402170            } 
    19412171 
    1942             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:727:3: ( (lv_name_3_0= RULE_ID ) ) 
    1943             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:728:1: (lv_name_3_0= RULE_ID ) 
    1944             { 
    1945             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:728:1: (lv_name_3_0= RULE_ID ) 
    1946             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:729:3: lv_name_3_0= RULE_ID 
    1947             { 
    1948             lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRule1427);  
    1949  
    1950                                 newLeafNode(lv_name_3_0, grammarAccess.getRuleAccess().getNameIDTerminalRuleCall_1_0());  
    1951                          
    1952  
    1953                         if (current==null) { 
    1954                             current = createModelElement(grammarAccess.getRuleRule()); 
    1955                         } 
    1956                                 setWithLastConsumed( 
    1957                                         current,  
    1958                                         "name", 
    1959                                 lv_name_3_0,  
    1960                                 "ID"); 
    1961                      
    1962  
    1963             } 
    1964  
    1965  
    1966             } 
    1967  
    1968             otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleRule1444);  
    1969  
    1970                         newLeafNode(otherlv_4, grammarAccess.getRuleAccess().getColonColonEqualsSignKeyword_2()); 
    1971                  
    1972             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:749:1: ( (lv_definitionList_5_0= ruleDefinitionList ) )? 
     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; 
     2179            if ( state.backtracking==0 ) { 
     2180 
     2181                                newLeafNode(lv_name_3_0, grammarAccess.getRuleAccess().getNameIDTerminalRuleCall_1_0());  
     2182                         
     2183            } 
     2184            if ( state.backtracking==0 ) { 
     2185 
     2186                        if (current==null) { 
     2187                            current = createModelElement(grammarAccess.getRuleRule()); 
     2188                        } 
     2189                                setWithLastConsumed( 
     2190                                        current,  
     2191                                        "name", 
     2192                                lv_name_3_0,  
     2193                                "ID"); 
     2194                     
     2195            } 
     2196 
     2197            } 
     2198 
     2199 
     2200            } 
     2201 
     2202            otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleRule1460); if (state.failed) return current; 
     2203            if ( state.backtracking==0 ) { 
     2204 
     2205                        newLeafNode(otherlv_4, grammarAccess.getRuleAccess().getColonColonEqualsSignKeyword_2()); 
     2206                   
     2207            } 
     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 ) )? 
    19732209            int alt18=2; 
    19742210            int LA18_0 = input.LA(1); 
     
    19932229            switch (alt18) { 
    19942230                case 1 : 
    1995                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:750:1: (lv_definitionList_5_0= ruleDefinitionList ) 
    1996                     { 
    1997                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:750:1: (lv_definitionList_5_0= ruleDefinitionList ) 
    1998                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:751:3: lv_definitionList_5_0= ruleDefinitionList 
    1999                     { 
    2000                       
    2001                                 newCompositeNode(grammarAccess.getRuleAccess().getDefinitionListDefinitionListParserRuleCall_3_0());  
    2002                              
    2003                     pushFollow(FOLLOW_ruleDefinitionList_in_ruleRule1465); 
     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 
     2235                    { 
     2236                    if ( state.backtracking==0 ) { 
     2237                        
     2238                                newCompositeNode(grammarAccess.getRuleAccess().getDefinitionListDefinitionListParserRuleCall_3_0());  
     2239                             
     2240                    } 
     2241                    pushFollow(FOLLOW_ruleDefinitionList_in_ruleRule1481); 
    20042242                    lv_definitionList_5_0=ruleDefinitionList(); 
    20052243 
    20062244                    state._fsp--; 
    2007  
    2008  
    2009                                 if (current==null) { 
    2010                                     current = createModelElementForParent(grammarAccess.getRuleRule()); 
    2011                                 } 
    2012                                         set( 
    2013                                                 current,  
    2014                                                 "definitionList", 
    2015                                         lv_definitionList_5_0,  
    2016                                         "DefinitionList"); 
    2017                                 afterParserOrEnumRuleCall(); 
    2018                              
     2245                    if (state.failed) return current; 
     2246                    if ( state.backtracking==0 ) { 
     2247 
     2248                                if (current==null) { 
     2249                                    current = createModelElementForParent(grammarAccess.getRuleRule()); 
     2250                                } 
     2251                                        set( 
     2252                                                current,  
     2253                                                "definitionList", 
     2254                                        lv_definitionList_5_0,  
     2255                                        "DefinitionList"); 
     2256                                afterParserOrEnumRuleCall(); 
     2257                             
     2258                    } 
    20192259 
    20202260                    } 
     
    20262266            } 
    20272267 
    2028             // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:767:3: (otherlv_6= ';' )? 
     2268            // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:777:3: (otherlv_6= ';' )? 
    20292269            int alt19=2; 
    20302270            int LA19_0 = input.LA(1); 
     
    20352275            switch (alt19) { 
    20362276                case 1 : 
    2037                     // ../de.ugoe.cs.swe.bnftools.ebnf/src-gen/de/ugoe/cs/swe/bnftools/parser/antlr/internal/InternalEbnf.g:767:5: otherlv_6= ';' 
    2038                     { 
    2039                     otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleRule1479);  
    2040  
    2041                                 newLeafNode(otherlv_6, grammarAccess.getRuleAccess().getSemicolonKeyword_4()); 
    2042                          
     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; 
     2280                    if ( state.backtracking==0 ) { 
     2281 
     2282                                newLeafNode(otherlv_6, grammarAccess.getRuleAccess().getSemicolonKeyword_4()); 
     2283                           
     2284                    } 
    20432285 
    20442286                    } 
     
    20532295            } 
    20542296 
    2055              leaveRule();  
     2297            if ( state.backtracking==0 ) { 
     2298               leaveRule();  
     2299            } 
    20562300        } 
    20572301          
     
    20612305            }  
    20622306        finally { 
     2307            if ( state.backtracking>0 ) { memoize(input, 16, ruleRule_StartIndex); } 
    20632308        } 
    20642309        return current;