/**
 */
package de.ugoe.cs.swe.bnftools.ebnf;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see de.ugoe.cs.swe.bnftools.ebnf.EbnfFactory
 * @model kind="package"
 * @generated
 */
public interface EbnfPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "ebnf";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.ugoe.de/cs/swe/bnftools/Ebnf";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "ebnf";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  EbnfPackage eINSTANCE = de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl.init();

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.EtsiBnfImpl <em>Etsi Bnf</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EtsiBnfImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getEtsiBnf()
   * @generated
   */
  int ETSI_BNF = 0;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ETSI_BNF__NAME = 0;

  /**
   * The feature id for the '<em><b>Type</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ETSI_BNF__TYPE = 1;

  /**
   * The feature id for the '<em><b>Import Section</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ETSI_BNF__IMPORT_SECTION = 2;

  /**
   * The feature id for the '<em><b>Bnf Entry</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ETSI_BNF__BNF_ENTRY = 3;

  /**
   * The feature id for the '<em><b>Delta Entry</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ETSI_BNF__DELTA_ENTRY = 4;

  /**
   * The feature id for the '<em><b>Merge Entry</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ETSI_BNF__MERGE_ENTRY = 5;

  /**
   * The number of structural features of the '<em>Etsi Bnf</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ETSI_BNF_FEATURE_COUNT = 6;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ImportSectionImpl <em>Import Section</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.ImportSectionImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getImportSection()
   * @generated
   */
  int IMPORT_SECTION = 1;

  /**
   * The feature id for the '<em><b>Imports</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IMPORT_SECTION__IMPORTS = 0;

  /**
   * The number of structural features of the '<em>Import Section</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IMPORT_SECTION_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.BnfEntryImpl <em>Bnf Entry</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.BnfEntryImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getBnfEntry()
   * @generated
   */
  int BNF_ENTRY = 2;

  /**
   * The feature id for the '<em><b>Sectionheader</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int BNF_ENTRY__SECTIONHEADER = 0;

  /**
   * The feature id for the '<em><b>Rule</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int BNF_ENTRY__RULE = 1;

  /**
   * The number of structural features of the '<em>Bnf Entry</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int BNF_ENTRY_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.DeltaEntryImpl <em>Delta Entry</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.DeltaEntryImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getDeltaEntry()
   * @generated
   */
  int DELTA_ENTRY = 3;

  /**
   * The feature id for the '<em><b>Rule</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DELTA_ENTRY__RULE = 0;

  /**
   * The feature id for the '<em><b>Sectionheader</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DELTA_ENTRY__SECTIONHEADER = 1;

  /**
   * The feature id for the '<em><b>Ext Rule</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DELTA_ENTRY__EXT_RULE = 2;

  /**
   * The number of structural features of the '<em>Delta Entry</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DELTA_ENTRY_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.MergeEntryImpl <em>Merge Entry</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.MergeEntryImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getMergeEntry()
   * @generated
   */
  int MERGE_ENTRY = 4;

  /**
   * The feature id for the '<em><b>Sectionheader</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MERGE_ENTRY__SECTIONHEADER = 0;

  /**
   * The feature id for the '<em><b>Merge Rule</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MERGE_ENTRY__MERGE_RULE = 1;

  /**
   * The number of structural features of the '<em>Merge Entry</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MERGE_ENTRY_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.SectionHeadingImpl <em>Section Heading</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.SectionHeadingImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getSectionHeading()
   * @generated
   */
  int SECTION_HEADING = 5;

  /**
   * The feature id for the '<em><b>Section Header</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SECTION_HEADING__SECTION_HEADER = 0;

  /**
   * The number of structural features of the '<em>Section Heading</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SECTION_HEADING_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ImportImpl <em>Import</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.ImportImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getImport()
   * @generated
   */
  int IMPORT = 6;

  /**
   * The feature id for the '<em><b>Import URI</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IMPORT__IMPORT_URI = 0;

  /**
   * The feature id for the '<em><b>Grammar Type</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IMPORT__GRAMMAR_TYPE = 1;

  /**
   * The feature id for the '<em><b>Label</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IMPORT__LABEL = 2;

  /**
   * The number of structural features of the '<em>Import</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int IMPORT_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RuleImpl <em>Rule</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RuleImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRule()
   * @generated
   */
  int RULE = 7;

  /**
   * The feature id for the '<em><b>Rulenumber</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE__RULENUMBER = 0;

  /**
   * The feature id for the '<em><b>Rulevariant</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE__RULEVARIANT = 1;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE__NAME = 2;

  /**
   * The feature id for the '<em><b>Definition List</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE__DEFINITION_LIST = 3;

  /**
   * The number of structural features of the '<em>Rule</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_FEATURE_COUNT = 4;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ExtRuleImpl <em>Ext Rule</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.ExtRuleImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getExtRule()
   * @generated
   */
  int EXT_RULE = 8;

  /**
   * The feature id for the '<em><b>Rulenumber</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXT_RULE__RULENUMBER = 0;

  /**
   * The feature id for the '<em><b>Rulevariant</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXT_RULE__RULEVARIANT = 1;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXT_RULE__NAME = 2;

  /**
   * The feature id for the '<em><b>Ruleext</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXT_RULE__RULEEXT = 3;

  /**
   * The feature id for the '<em><b>Elements</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXT_RULE__ELEMENTS = 4;

  /**
   * The number of structural features of the '<em>Ext Rule</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXT_RULE_FEATURE_COUNT = 5;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.MergeRuleImpl <em>Merge Rule</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.MergeRuleImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getMergeRule()
   * @generated
   */
  int MERGE_RULE = 9;

  /**
   * The feature id for the '<em><b>Logic</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MERGE_RULE__LOGIC = 0;

  /**
   * The number of structural features of the '<em>Merge Rule</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MERGE_RULE_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.GlobalCombinatorImpl <em>Global Combinator</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.GlobalCombinatorImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getGlobalCombinator()
   * @generated
   */
  int GLOBAL_COMBINATOR = 10;

  /**
   * The feature id for the '<em><b>Logic</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int GLOBAL_COMBINATOR__LOGIC = MERGE_RULE__LOGIC;

  /**
   * The number of structural features of the '<em>Global Combinator</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int GLOBAL_COMBINATOR_FEATURE_COUNT = MERGE_RULE_FEATURE_COUNT + 0;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RuleCombinatorImpl <em>Rule Combinator</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RuleCombinatorImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRuleCombinator()
   * @generated
   */
  int RULE_COMBINATOR = 11;

  /**
   * The feature id for the '<em><b>Logic</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_COMBINATOR__LOGIC = MERGE_RULE__LOGIC;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_COMBINATOR__NAME = MERGE_RULE_FEATURE_COUNT + 0;

  /**
   * The feature id for the '<em><b>LABEL</b></em>' attribute list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_COMBINATOR__LABEL = MERGE_RULE_FEATURE_COUNT + 1;

  /**
   * The number of structural features of the '<em>Rule Combinator</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_COMBINATOR_FEATURE_COUNT = MERGE_RULE_FEATURE_COUNT + 2;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.HookCombinatorImpl <em>Hook Combinator</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.HookCombinatorImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getHookCombinator()
   * @generated
   */
  int HOOK_COMBINATOR = 12;

  /**
   * The feature id for the '<em><b>Logic</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HOOK_COMBINATOR__LOGIC = MERGE_RULE__LOGIC;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HOOK_COMBINATOR__NAME = MERGE_RULE_FEATURE_COUNT + 0;

  /**
   * The feature id for the '<em><b>Ruleext</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HOOK_COMBINATOR__RULEEXT = MERGE_RULE_FEATURE_COUNT + 1;

  /**
   * The feature id for the '<em><b>LABEL</b></em>' attribute list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HOOK_COMBINATOR__LABEL = MERGE_RULE_FEATURE_COUNT + 2;

  /**
   * The number of structural features of the '<em>Hook Combinator</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int HOOK_COMBINATOR_FEATURE_COUNT = MERGE_RULE_FEATURE_COUNT + 3;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.DefinitionListImpl <em>Definition List</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.DefinitionListImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getDefinitionList()
   * @generated
   */
  int DEFINITION_LIST = 13;

  /**
   * The feature id for the '<em><b>Single Definition</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DEFINITION_LIST__SINGLE_DEFINITION = 0;

  /**
   * The number of structural features of the '<em>Definition List</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int DEFINITION_LIST_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.SingleDefinitionImpl <em>Single Definition</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.SingleDefinitionImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getSingleDefinition()
   * @generated
   */
  int SINGLE_DEFINITION = 14;

  /**
   * The feature id for the '<em><b>Terms</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SINGLE_DEFINITION__TERMS = 0;

  /**
   * The number of structural features of the '<em>Single Definition</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int SINGLE_DEFINITION_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.TermImpl <em>Term</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.TermImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getTerm()
   * @generated
   */
  int TERM = 15;

  /**
   * The feature id for the '<em><b>Term Atom</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TERM__TERM_ATOM = 0;

  /**
   * The feature id for the '<em><b>Term Grouped Sequence</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TERM__TERM_GROUPED_SEQUENCE = 1;

  /**
   * The feature id for the '<em><b>Term Optional Sequence</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TERM__TERM_OPTIONAL_SEQUENCE = 2;

  /**
   * The feature id for the '<em><b>Term Repeated Sequence</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TERM__TERM_REPEATED_SEQUENCE = 3;

  /**
   * The number of structural features of the '<em>Term</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int TERM_FEATURE_COUNT = 4;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.AtomImpl <em>Atom</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.AtomImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getAtom()
   * @generated
   */
  int ATOM = 16;

  /**
   * The feature id for the '<em><b>Atom String Rule</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ATOM__ATOM_STRING_RULE = 0;

  /**
   * The feature id for the '<em><b>Atom Rule Reference</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ATOM__ATOM_RULE_REFERENCE = 1;

  /**
   * The number of structural features of the '<em>Atom</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ATOM_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RuleReferenceImpl <em>Rule Reference</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RuleReferenceImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRuleReference()
   * @generated
   */
  int RULE_REFERENCE = 17;

  /**
   * The feature id for the '<em><b>Ruleref</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_REFERENCE__RULEREF = 0;

  /**
   * The number of structural features of the '<em>Rule Reference</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int RULE_REFERENCE_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.StringRuleImpl <em>String Rule</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.StringRuleImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getStringRule()
   * @generated
   */
  int STRING_RULE = 18;

  /**
   * The feature id for the '<em><b>Literal</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int STRING_RULE__LITERAL = 0;

  /**
   * The feature id for the '<em><b>Colon</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int STRING_RULE__COLON = 1;

  /**
   * The number of structural features of the '<em>String Rule</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int STRING_RULE_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.GroupedSequenceImpl <em>Grouped Sequence</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.GroupedSequenceImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getGroupedSequence()
   * @generated
   */
  int GROUPED_SEQUENCE = 19;

  /**
   * The feature id for the '<em><b>Definition List</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int GROUPED_SEQUENCE__DEFINITION_LIST = 0;

  /**
   * The number of structural features of the '<em>Grouped Sequence</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int GROUPED_SEQUENCE_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.OptionalSequenceImpl <em>Optional Sequence</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.OptionalSequenceImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getOptionalSequence()
   * @generated
   */
  int OPTIONAL_SEQUENCE = 20;

  /**
   * The feature id for the '<em><b>Definition List</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OPTIONAL_SEQUENCE__DEFINITION_LIST = 0;

  /**
   * The number of structural features of the '<em>Optional Sequence</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int OPTIONAL_SEQUENCE_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatedSequenceImpl <em>Repeated Sequence</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatedSequenceImpl
   * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRepeatedSequence()
   * @generated
   */
  int REPEATED_SEQUENCE = 21;

  /**
   * The feature id for the '<em><b>Definitions</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPEATED_SEQUENCE__DEFINITIONS = 0;

  /**
   * The feature id for the '<em><b>Morethanonce</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPEATED_SEQUENCE__MORETHANONCE = 1;

  /**
   * The number of structural features of the '<em>Repeated Sequence</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REPEATED_SEQUENCE_FEATURE_COUNT = 2;


  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf <em>Etsi Bnf</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Etsi Bnf</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf
   * @generated
   */
  EClass getEtsiBnf();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getName()
   * @see #getEtsiBnf()
   * @generated
   */
  EAttribute getEtsiBnf_Name();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getType <em>Type</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Type</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getType()
   * @see #getEtsiBnf()
   * @generated
   */
  EAttribute getEtsiBnf_Type();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getImportSection <em>Import Section</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Import Section</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getImportSection()
   * @see #getEtsiBnf()
   * @generated
   */
  EReference getEtsiBnf_ImportSection();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getBnfEntry <em>Bnf Entry</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Bnf Entry</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getBnfEntry()
   * @see #getEtsiBnf()
   * @generated
   */
  EReference getEtsiBnf_BnfEntry();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getDeltaEntry <em>Delta Entry</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Delta Entry</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getDeltaEntry()
   * @see #getEtsiBnf()
   * @generated
   */
  EReference getEtsiBnf_DeltaEntry();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getMergeEntry <em>Merge Entry</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Merge Entry</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf#getMergeEntry()
   * @see #getEtsiBnf()
   * @generated
   */
  EReference getEtsiBnf_MergeEntry();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.ImportSection <em>Import Section</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Import Section</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ImportSection
   * @generated
   */
  EClass getImportSection();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.ImportSection#getImports <em>Imports</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Imports</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ImportSection#getImports()
   * @see #getImportSection()
   * @generated
   */
  EReference getImportSection_Imports();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry <em>Bnf Entry</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Bnf Entry</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.BnfEntry
   * @generated
   */
  EClass getBnfEntry();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getSectionheader <em>Sectionheader</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Sectionheader</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getSectionheader()
   * @see #getBnfEntry()
   * @generated
   */
  EReference getBnfEntry_Sectionheader();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getRule <em>Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.BnfEntry#getRule()
   * @see #getBnfEntry()
   * @generated
   */
  EReference getBnfEntry_Rule();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry <em>Delta Entry</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Delta Entry</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry
   * @generated
   */
  EClass getDeltaEntry();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry#getRule <em>Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry#getRule()
   * @see #getDeltaEntry()
   * @generated
   */
  EReference getDeltaEntry_Rule();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry#getSectionheader <em>Sectionheader</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Sectionheader</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry#getSectionheader()
   * @see #getDeltaEntry()
   * @generated
   */
  EReference getDeltaEntry_Sectionheader();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry#getExtRule <em>Ext Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Ext Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.DeltaEntry#getExtRule()
   * @see #getDeltaEntry()
   * @generated
   */
  EReference getDeltaEntry_ExtRule();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.MergeEntry <em>Merge Entry</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Merge Entry</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.MergeEntry
   * @generated
   */
  EClass getMergeEntry();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.MergeEntry#getSectionheader <em>Sectionheader</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Sectionheader</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.MergeEntry#getSectionheader()
   * @see #getMergeEntry()
   * @generated
   */
  EReference getMergeEntry_Sectionheader();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.MergeEntry#getMergeRule <em>Merge Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Merge Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.MergeEntry#getMergeRule()
   * @see #getMergeEntry()
   * @generated
   */
  EReference getMergeEntry_MergeRule();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.SectionHeading <em>Section Heading</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Section Heading</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.SectionHeading
   * @generated
   */
  EClass getSectionHeading();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.SectionHeading#getSectionHeader <em>Section Header</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Section Header</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.SectionHeading#getSectionHeader()
   * @see #getSectionHeading()
   * @generated
   */
  EAttribute getSectionHeading_SectionHeader();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.Import <em>Import</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Import</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Import
   * @generated
   */
  EClass getImport();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.Import#getImportURI <em>Import URI</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Import URI</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Import#getImportURI()
   * @see #getImport()
   * @generated
   */
  EAttribute getImport_ImportURI();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.Import#getGrammarType <em>Grammar Type</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Grammar Type</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Import#getGrammarType()
   * @see #getImport()
   * @generated
   */
  EAttribute getImport_GrammarType();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.Import#getLabel <em>Label</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Label</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Import#getLabel()
   * @see #getImport()
   * @generated
   */
  EAttribute getImport_Label();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.Rule <em>Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Rule
   * @generated
   */
  EClass getRule();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.Rule#getRulenumber <em>Rulenumber</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Rulenumber</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Rule#getRulenumber()
   * @see #getRule()
   * @generated
   */
  EAttribute getRule_Rulenumber();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.Rule#getRulevariant <em>Rulevariant</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Rulevariant</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Rule#getRulevariant()
   * @see #getRule()
   * @generated
   */
  EAttribute getRule_Rulevariant();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.Rule#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Rule#getName()
   * @see #getRule()
   * @generated
   */
  EAttribute getRule_Name();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.Rule#getDefinitionList <em>Definition List</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Definition List</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Rule#getDefinitionList()
   * @see #getRule()
   * @generated
   */
  EReference getRule_DefinitionList();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.ExtRule <em>Ext Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Ext Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ExtRule
   * @generated
   */
  EClass getExtRule();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getRulenumber <em>Rulenumber</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Rulenumber</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getRulenumber()
   * @see #getExtRule()
   * @generated
   */
  EAttribute getExtRule_Rulenumber();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getRulevariant <em>Rulevariant</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Rulevariant</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getRulevariant()
   * @see #getExtRule()
   * @generated
   */
  EAttribute getExtRule_Rulevariant();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getName()
   * @see #getExtRule()
   * @generated
   */
  EAttribute getExtRule_Name();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getRuleext <em>Ruleext</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Ruleext</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getRuleext()
   * @see #getExtRule()
   * @generated
   */
  EAttribute getExtRule_Ruleext();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getElements <em>Elements</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Elements</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.ExtRule#getElements()
   * @see #getExtRule()
   * @generated
   */
  EReference getExtRule_Elements();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.MergeRule <em>Merge Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Merge Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.MergeRule
   * @generated
   */
  EClass getMergeRule();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.MergeRule#getLogic <em>Logic</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Logic</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.MergeRule#getLogic()
   * @see #getMergeRule()
   * @generated
   */
  EAttribute getMergeRule_Logic();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.GlobalCombinator <em>Global Combinator</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Global Combinator</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.GlobalCombinator
   * @generated
   */
  EClass getGlobalCombinator();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.RuleCombinator <em>Rule Combinator</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule Combinator</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RuleCombinator
   * @generated
   */
  EClass getRuleCombinator();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.RuleCombinator#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RuleCombinator#getName()
   * @see #getRuleCombinator()
   * @generated
   */
  EAttribute getRuleCombinator_Name();

  /**
   * Returns the meta object for the attribute list '{@link de.ugoe.cs.swe.bnftools.ebnf.RuleCombinator#getLABEL <em>LABEL</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute list '<em>LABEL</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RuleCombinator#getLABEL()
   * @see #getRuleCombinator()
   * @generated
   */
  EAttribute getRuleCombinator_LABEL();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.HookCombinator <em>Hook Combinator</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Hook Combinator</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.HookCombinator
   * @generated
   */
  EClass getHookCombinator();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.HookCombinator#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.HookCombinator#getName()
   * @see #getHookCombinator()
   * @generated
   */
  EAttribute getHookCombinator_Name();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.HookCombinator#getRuleext <em>Ruleext</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Ruleext</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.HookCombinator#getRuleext()
   * @see #getHookCombinator()
   * @generated
   */
  EAttribute getHookCombinator_Ruleext();

  /**
   * Returns the meta object for the attribute list '{@link de.ugoe.cs.swe.bnftools.ebnf.HookCombinator#getLABEL <em>LABEL</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute list '<em>LABEL</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.HookCombinator#getLABEL()
   * @see #getHookCombinator()
   * @generated
   */
  EAttribute getHookCombinator_LABEL();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.DefinitionList <em>Definition List</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Definition List</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.DefinitionList
   * @generated
   */
  EClass getDefinitionList();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.DefinitionList#getSingleDefinition <em>Single Definition</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Single Definition</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.DefinitionList#getSingleDefinition()
   * @see #getDefinitionList()
   * @generated
   */
  EReference getDefinitionList_SingleDefinition();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition <em>Single Definition</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Single Definition</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition
   * @generated
   */
  EClass getSingleDefinition();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition#getTerms <em>Terms</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Terms</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition#getTerms()
   * @see #getSingleDefinition()
   * @generated
   */
  EReference getSingleDefinition_Terms();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.Term <em>Term</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Term</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Term
   * @generated
   */
  EClass getTerm();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.Term#getTermAtom <em>Term Atom</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Term Atom</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Term#getTermAtom()
   * @see #getTerm()
   * @generated
   */
  EReference getTerm_TermAtom();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.Term#getTermGroupedSequence <em>Term Grouped Sequence</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Term Grouped Sequence</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Term#getTermGroupedSequence()
   * @see #getTerm()
   * @generated
   */
  EReference getTerm_TermGroupedSequence();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.Term#getTermOptionalSequence <em>Term Optional Sequence</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Term Optional Sequence</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Term#getTermOptionalSequence()
   * @see #getTerm()
   * @generated
   */
  EReference getTerm_TermOptionalSequence();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.Term#getTermRepeatedSequence <em>Term Repeated Sequence</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Term Repeated Sequence</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Term#getTermRepeatedSequence()
   * @see #getTerm()
   * @generated
   */
  EReference getTerm_TermRepeatedSequence();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.Atom <em>Atom</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Atom</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Atom
   * @generated
   */
  EClass getAtom();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.Atom#getAtomStringRule <em>Atom String Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Atom String Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Atom#getAtomStringRule()
   * @see #getAtom()
   * @generated
   */
  EReference getAtom_AtomStringRule();

  /**
   * Returns the meta object for the containment reference '{@link de.ugoe.cs.swe.bnftools.ebnf.Atom#getAtomRuleReference <em>Atom Rule Reference</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Atom Rule Reference</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.Atom#getAtomRuleReference()
   * @see #getAtom()
   * @generated
   */
  EReference getAtom_AtomRuleReference();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.RuleReference <em>Rule Reference</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Rule Reference</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RuleReference
   * @generated
   */
  EClass getRuleReference();

  /**
   * Returns the meta object for the reference '{@link de.ugoe.cs.swe.bnftools.ebnf.RuleReference#getRuleref <em>Ruleref</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Ruleref</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RuleReference#getRuleref()
   * @see #getRuleReference()
   * @generated
   */
  EReference getRuleReference_Ruleref();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.StringRule <em>String Rule</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>String Rule</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.StringRule
   * @generated
   */
  EClass getStringRule();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.StringRule#getLiteral <em>Literal</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Literal</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.StringRule#getLiteral()
   * @see #getStringRule()
   * @generated
   */
  EAttribute getStringRule_Literal();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.StringRule#getColon <em>Colon</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Colon</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.StringRule#getColon()
   * @see #getStringRule()
   * @generated
   */
  EAttribute getStringRule_Colon();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.GroupedSequence <em>Grouped Sequence</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Grouped Sequence</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.GroupedSequence
   * @generated
   */
  EClass getGroupedSequence();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.GroupedSequence#getDefinitionList <em>Definition List</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Definition List</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.GroupedSequence#getDefinitionList()
   * @see #getGroupedSequence()
   * @generated
   */
  EReference getGroupedSequence_DefinitionList();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.OptionalSequence <em>Optional Sequence</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Optional Sequence</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.OptionalSequence
   * @generated
   */
  EClass getOptionalSequence();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.OptionalSequence#getDefinitionList <em>Definition List</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Definition List</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.OptionalSequence#getDefinitionList()
   * @see #getOptionalSequence()
   * @generated
   */
  EReference getOptionalSequence_DefinitionList();

  /**
   * Returns the meta object for class '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence <em>Repeated Sequence</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Repeated Sequence</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence
   * @generated
   */
  EClass getRepeatedSequence();

  /**
   * Returns the meta object for the containment reference list '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#getDefinitions <em>Definitions</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Definitions</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#getDefinitions()
   * @see #getRepeatedSequence()
   * @generated
   */
  EReference getRepeatedSequence_Definitions();

  /**
   * Returns the meta object for the attribute '{@link de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#isMorethanonce <em>Morethanonce</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Morethanonce</em>'.
   * @see de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence#isMorethanonce()
   * @see #getRepeatedSequence()
   * @generated
   */
  EAttribute getRepeatedSequence_Morethanonce();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  EbnfFactory getEbnfFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.EtsiBnfImpl <em>Etsi Bnf</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EtsiBnfImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getEtsiBnf()
     * @generated
     */
    EClass ETSI_BNF = eINSTANCE.getEtsiBnf();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute ETSI_BNF__NAME = eINSTANCE.getEtsiBnf_Name();

    /**
     * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute ETSI_BNF__TYPE = eINSTANCE.getEtsiBnf_Type();

    /**
     * The meta object literal for the '<em><b>Import Section</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ETSI_BNF__IMPORT_SECTION = eINSTANCE.getEtsiBnf_ImportSection();

    /**
     * The meta object literal for the '<em><b>Bnf Entry</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ETSI_BNF__BNF_ENTRY = eINSTANCE.getEtsiBnf_BnfEntry();

    /**
     * The meta object literal for the '<em><b>Delta Entry</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ETSI_BNF__DELTA_ENTRY = eINSTANCE.getEtsiBnf_DeltaEntry();

    /**
     * The meta object literal for the '<em><b>Merge Entry</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ETSI_BNF__MERGE_ENTRY = eINSTANCE.getEtsiBnf_MergeEntry();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ImportSectionImpl <em>Import Section</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.ImportSectionImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getImportSection()
     * @generated
     */
    EClass IMPORT_SECTION = eINSTANCE.getImportSection();

    /**
     * The meta object literal for the '<em><b>Imports</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference IMPORT_SECTION__IMPORTS = eINSTANCE.getImportSection_Imports();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.BnfEntryImpl <em>Bnf Entry</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.BnfEntryImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getBnfEntry()
     * @generated
     */
    EClass BNF_ENTRY = eINSTANCE.getBnfEntry();

    /**
     * The meta object literal for the '<em><b>Sectionheader</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference BNF_ENTRY__SECTIONHEADER = eINSTANCE.getBnfEntry_Sectionheader();

    /**
     * The meta object literal for the '<em><b>Rule</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference BNF_ENTRY__RULE = eINSTANCE.getBnfEntry_Rule();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.DeltaEntryImpl <em>Delta Entry</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.DeltaEntryImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getDeltaEntry()
     * @generated
     */
    EClass DELTA_ENTRY = eINSTANCE.getDeltaEntry();

    /**
     * The meta object literal for the '<em><b>Rule</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference DELTA_ENTRY__RULE = eINSTANCE.getDeltaEntry_Rule();

    /**
     * The meta object literal for the '<em><b>Sectionheader</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference DELTA_ENTRY__SECTIONHEADER = eINSTANCE.getDeltaEntry_Sectionheader();

    /**
     * The meta object literal for the '<em><b>Ext Rule</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference DELTA_ENTRY__EXT_RULE = eINSTANCE.getDeltaEntry_ExtRule();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.MergeEntryImpl <em>Merge Entry</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.MergeEntryImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getMergeEntry()
     * @generated
     */
    EClass MERGE_ENTRY = eINSTANCE.getMergeEntry();

    /**
     * The meta object literal for the '<em><b>Sectionheader</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MERGE_ENTRY__SECTIONHEADER = eINSTANCE.getMergeEntry_Sectionheader();

    /**
     * The meta object literal for the '<em><b>Merge Rule</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MERGE_ENTRY__MERGE_RULE = eINSTANCE.getMergeEntry_MergeRule();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.SectionHeadingImpl <em>Section Heading</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.SectionHeadingImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getSectionHeading()
     * @generated
     */
    EClass SECTION_HEADING = eINSTANCE.getSectionHeading();

    /**
     * The meta object literal for the '<em><b>Section Header</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute SECTION_HEADING__SECTION_HEADER = eINSTANCE.getSectionHeading_SectionHeader();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ImportImpl <em>Import</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.ImportImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getImport()
     * @generated
     */
    EClass IMPORT = eINSTANCE.getImport();

    /**
     * The meta object literal for the '<em><b>Import URI</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute IMPORT__IMPORT_URI = eINSTANCE.getImport_ImportURI();

    /**
     * The meta object literal for the '<em><b>Grammar Type</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute IMPORT__GRAMMAR_TYPE = eINSTANCE.getImport_GrammarType();

    /**
     * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute IMPORT__LABEL = eINSTANCE.getImport_Label();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RuleImpl <em>Rule</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RuleImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRule()
     * @generated
     */
    EClass RULE = eINSTANCE.getRule();

    /**
     * The meta object literal for the '<em><b>Rulenumber</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute RULE__RULENUMBER = eINSTANCE.getRule_Rulenumber();

    /**
     * The meta object literal for the '<em><b>Rulevariant</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute RULE__RULEVARIANT = eINSTANCE.getRule_Rulevariant();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute RULE__NAME = eINSTANCE.getRule_Name();

    /**
     * The meta object literal for the '<em><b>Definition List</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference RULE__DEFINITION_LIST = eINSTANCE.getRule_DefinitionList();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.ExtRuleImpl <em>Ext Rule</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.ExtRuleImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getExtRule()
     * @generated
     */
    EClass EXT_RULE = eINSTANCE.getExtRule();

    /**
     * The meta object literal for the '<em><b>Rulenumber</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute EXT_RULE__RULENUMBER = eINSTANCE.getExtRule_Rulenumber();

    /**
     * The meta object literal for the '<em><b>Rulevariant</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute EXT_RULE__RULEVARIANT = eINSTANCE.getExtRule_Rulevariant();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute EXT_RULE__NAME = eINSTANCE.getExtRule_Name();

    /**
     * The meta object literal for the '<em><b>Ruleext</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute EXT_RULE__RULEEXT = eINSTANCE.getExtRule_Ruleext();

    /**
     * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference EXT_RULE__ELEMENTS = eINSTANCE.getExtRule_Elements();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.MergeRuleImpl <em>Merge Rule</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.MergeRuleImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getMergeRule()
     * @generated
     */
    EClass MERGE_RULE = eINSTANCE.getMergeRule();

    /**
     * The meta object literal for the '<em><b>Logic</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute MERGE_RULE__LOGIC = eINSTANCE.getMergeRule_Logic();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.GlobalCombinatorImpl <em>Global Combinator</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.GlobalCombinatorImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getGlobalCombinator()
     * @generated
     */
    EClass GLOBAL_COMBINATOR = eINSTANCE.getGlobalCombinator();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RuleCombinatorImpl <em>Rule Combinator</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RuleCombinatorImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRuleCombinator()
     * @generated
     */
    EClass RULE_COMBINATOR = eINSTANCE.getRuleCombinator();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute RULE_COMBINATOR__NAME = eINSTANCE.getRuleCombinator_Name();

    /**
     * The meta object literal for the '<em><b>LABEL</b></em>' attribute list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute RULE_COMBINATOR__LABEL = eINSTANCE.getRuleCombinator_LABEL();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.HookCombinatorImpl <em>Hook Combinator</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.HookCombinatorImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getHookCombinator()
     * @generated
     */
    EClass HOOK_COMBINATOR = eINSTANCE.getHookCombinator();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute HOOK_COMBINATOR__NAME = eINSTANCE.getHookCombinator_Name();

    /**
     * The meta object literal for the '<em><b>Ruleext</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute HOOK_COMBINATOR__RULEEXT = eINSTANCE.getHookCombinator_Ruleext();

    /**
     * The meta object literal for the '<em><b>LABEL</b></em>' attribute list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute HOOK_COMBINATOR__LABEL = eINSTANCE.getHookCombinator_LABEL();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.DefinitionListImpl <em>Definition List</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.DefinitionListImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getDefinitionList()
     * @generated
     */
    EClass DEFINITION_LIST = eINSTANCE.getDefinitionList();

    /**
     * The meta object literal for the '<em><b>Single Definition</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference DEFINITION_LIST__SINGLE_DEFINITION = eINSTANCE.getDefinitionList_SingleDefinition();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.SingleDefinitionImpl <em>Single Definition</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.SingleDefinitionImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getSingleDefinition()
     * @generated
     */
    EClass SINGLE_DEFINITION = eINSTANCE.getSingleDefinition();

    /**
     * The meta object literal for the '<em><b>Terms</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference SINGLE_DEFINITION__TERMS = eINSTANCE.getSingleDefinition_Terms();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.TermImpl <em>Term</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.TermImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getTerm()
     * @generated
     */
    EClass TERM = eINSTANCE.getTerm();

    /**
     * The meta object literal for the '<em><b>Term Atom</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference TERM__TERM_ATOM = eINSTANCE.getTerm_TermAtom();

    /**
     * The meta object literal for the '<em><b>Term Grouped Sequence</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference TERM__TERM_GROUPED_SEQUENCE = eINSTANCE.getTerm_TermGroupedSequence();

    /**
     * The meta object literal for the '<em><b>Term Optional Sequence</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference TERM__TERM_OPTIONAL_SEQUENCE = eINSTANCE.getTerm_TermOptionalSequence();

    /**
     * The meta object literal for the '<em><b>Term Repeated Sequence</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference TERM__TERM_REPEATED_SEQUENCE = eINSTANCE.getTerm_TermRepeatedSequence();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.AtomImpl <em>Atom</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.AtomImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getAtom()
     * @generated
     */
    EClass ATOM = eINSTANCE.getAtom();

    /**
     * The meta object literal for the '<em><b>Atom String Rule</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ATOM__ATOM_STRING_RULE = eINSTANCE.getAtom_AtomStringRule();

    /**
     * The meta object literal for the '<em><b>Atom Rule Reference</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ATOM__ATOM_RULE_REFERENCE = eINSTANCE.getAtom_AtomRuleReference();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RuleReferenceImpl <em>Rule Reference</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RuleReferenceImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRuleReference()
     * @generated
     */
    EClass RULE_REFERENCE = eINSTANCE.getRuleReference();

    /**
     * The meta object literal for the '<em><b>Ruleref</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference RULE_REFERENCE__RULEREF = eINSTANCE.getRuleReference_Ruleref();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.StringRuleImpl <em>String Rule</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.StringRuleImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getStringRule()
     * @generated
     */
    EClass STRING_RULE = eINSTANCE.getStringRule();

    /**
     * The meta object literal for the '<em><b>Literal</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute STRING_RULE__LITERAL = eINSTANCE.getStringRule_Literal();

    /**
     * The meta object literal for the '<em><b>Colon</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute STRING_RULE__COLON = eINSTANCE.getStringRule_Colon();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.GroupedSequenceImpl <em>Grouped Sequence</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.GroupedSequenceImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getGroupedSequence()
     * @generated
     */
    EClass GROUPED_SEQUENCE = eINSTANCE.getGroupedSequence();

    /**
     * The meta object literal for the '<em><b>Definition List</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference GROUPED_SEQUENCE__DEFINITION_LIST = eINSTANCE.getGroupedSequence_DefinitionList();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.OptionalSequenceImpl <em>Optional Sequence</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.OptionalSequenceImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getOptionalSequence()
     * @generated
     */
    EClass OPTIONAL_SEQUENCE = eINSTANCE.getOptionalSequence();

    /**
     * The meta object literal for the '<em><b>Definition List</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference OPTIONAL_SEQUENCE__DEFINITION_LIST = eINSTANCE.getOptionalSequence_DefinitionList();

    /**
     * The meta object literal for the '{@link de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatedSequenceImpl <em>Repeated Sequence</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.RepeatedSequenceImpl
     * @see de.ugoe.cs.swe.bnftools.ebnf.impl.EbnfPackageImpl#getRepeatedSequence()
     * @generated
     */
    EClass REPEATED_SEQUENCE = eINSTANCE.getRepeatedSequence();

    /**
     * The meta object literal for the '<em><b>Definitions</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference REPEATED_SEQUENCE__DEFINITIONS = eINSTANCE.getRepeatedSequence_Definitions();

    /**
     * The meta object literal for the '<em><b>Morethanonce</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute REPEATED_SEQUENCE__MORETHANONCE = eINSTANCE.getRepeatedSequence_Morethanonce();

  }

} //EbnfPackage
