Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/xtend-gen/de/ugoe/cs/swe/bnftools/formatting/EbnfFormatter.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/xtend-gen/de/ugoe/cs/swe/bnftools/formatting/EbnfFormatter.java	(revision 63)
+++ 	(revision )
@@ -1,53 +1,0 @@
-/**
- * generated by Xtext
- */
-package de.ugoe.cs.swe.bnftools.formatting;
-
-import com.google.inject.Inject;
-import de.ugoe.cs.swe.bnftools.services.EbnfGrammarAccess;
-import org.eclipse.xtext.IGrammarAccess;
-import org.eclipse.xtext.ParserRule;
-import org.eclipse.xtext.RuleCall;
-import org.eclipse.xtext.TerminalRule;
-import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
-import org.eclipse.xtext.formatting.impl.FormattingConfig;
-import org.eclipse.xtext.xbase.lib.Extension;
-
-/**
- * This class contains custom formatting description.
- * 
- * see : http://www.eclipse.org/Xtext/documentation.html#formatting
- * on how and when to use it
- * 
- * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
- */
-@SuppressWarnings("all")
-public class EbnfFormatter extends AbstractDeclarativeFormatter {
-  @Inject
-  @Extension
-  private EbnfGrammarAccess _ebnfGrammarAccess;
-  
-  protected void configureFormatting(final FormattingConfig c) {
-    FormattingConfig.LinewrapLocator _setLinewrap = c.setLinewrap(0, 1, 2);
-    TerminalRule _sL_COMMENTRule = this._ebnfGrammarAccess.getSL_COMMENTRule();
-    _setLinewrap.before(_sL_COMMENTRule);
-    FormattingConfig.LinewrapLocator _setLinewrap_1 = c.setLinewrap(0, 1, 2);
-    TerminalRule _mL_COMMENTRule = this._ebnfGrammarAccess.getML_COMMENTRule();
-    _setLinewrap_1.before(_mL_COMMENTRule);
-    FormattingConfig.LinewrapLocator _setLinewrap_2 = c.setLinewrap(0, 1, 1);
-    TerminalRule _mL_COMMENTRule_1 = this._ebnfGrammarAccess.getML_COMMENTRule();
-    _setLinewrap_2.after(_mL_COMMENTRule_1);
-    IGrammarAccess _grammarAccess = this.getGrammarAccess();
-    EbnfGrammarAccess f = ((EbnfGrammarAccess) _grammarAccess);
-    FormattingConfig.LinewrapLocator _setLinewrap_3 = c.setLinewrap();
-    ParserRule _ruleRule = f.getRuleRule();
-    _setLinewrap_3.before(_ruleRule);
-    FormattingConfig.LinewrapLocator _setLinewrap_4 = c.setLinewrap();
-    ParserRule _importRule = f.getImportRule();
-    _setLinewrap_4.before(_importRule);
-    FormattingConfig.NoSpaceLocator _setNoSpace = c.setNoSpace();
-    EbnfGrammarAccess.RuleElements _ruleAccess = f.getRuleAccess();
-    RuleCall _rulenumberINTTerminalRuleCall_0_0_0 = _ruleAccess.getRulenumberINTTerminalRuleCall_0_0_0();
-    _setNoSpace.after(_rulenumberINTTerminalRuleCall_0_0_0);
-  }
-}
Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/xtend-gen/de/ugoe/cs/swe/bnftools/generator/EbnfGenerator.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/xtend-gen/de/ugoe/cs/swe/bnftools/generator/EbnfGenerator.java	(revision 63)
+++ 	(revision )
@@ -1,327 +1,0 @@
-/**
- * generated by Xtext
- */
-package de.ugoe.cs.swe.bnftools.generator;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.Iterables;
-import de.ugoe.cs.swe.bnftools.ebnf.Atom;
-import de.ugoe.cs.swe.bnftools.ebnf.BnfEntry;
-import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList;
-import de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf;
-import de.ugoe.cs.swe.bnftools.ebnf.GroupedSequence;
-import de.ugoe.cs.swe.bnftools.ebnf.OptionalSequence;
-import de.ugoe.cs.swe.bnftools.ebnf.RepeatedSequence;
-import de.ugoe.cs.swe.bnftools.ebnf.Rule;
-import de.ugoe.cs.swe.bnftools.ebnf.RuleReference;
-import de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition;
-import de.ugoe.cs.swe.bnftools.ebnf.StringRule;
-import de.ugoe.cs.swe.bnftools.ebnf.Term;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.TreeIterator;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xtend2.lib.StringConcatenation;
-import org.eclipse.xtext.generator.IFileSystemAccess;
-import org.eclipse.xtext.generator.IGenerator;
-import org.eclipse.xtext.xbase.lib.IterableExtensions;
-import org.eclipse.xtext.xbase.lib.IteratorExtensions;
-
-/**
- * Generates code from your model files on save.
- * 
- * see http://www.eclipse.org/Xtext/documentation.html#TutorialCodeGeneration
- */
-@SuppressWarnings("all")
-public class EbnfGenerator implements IGenerator {
-  public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
-    TreeIterator<EObject> _allContents = resource.getAllContents();
-    Iterable<EObject> _iterable = IteratorExtensions.<EObject>toIterable(_allContents);
-    Iterable<EtsiBnf> _filter = Iterables.<EtsiBnf>filter(_iterable, EtsiBnf.class);
-    for (final EtsiBnf e : _filter) {
-      EList<BnfEntry> _bnfEntry = e.getBnfEntry();
-      int _size = _bnfEntry.size();
-      boolean _notEquals = (_size != 0);
-      if (_notEquals) {
-        String _name = e.getName();
-        String _plus = (_name + ".fo");
-        CharSequence _compile = this.compile(e);
-        fsa.generateFile(_plus, _compile);
-      }
-    }
-  }
-  
-  public CharSequence compile(final EtsiBnf bnf) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("<?xml version=\"1.0\"?>");
-    _builder.newLine();
-    _builder.append("<!-- fop ");
-    String _name = bnf.getName();
-    _builder.append(_name, "");
-    _builder.append(".xml -rtf ");
-    String _name_1 = bnf.getName();
-    _builder.append(_name_1, "");
-    _builder.append(".rtf -->");
-    _builder.newLineIfNotEmpty();
-    _builder.append("<fo:root xmlns:fo=\"http://www.w3.org/1999/XSL/Format\">");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("<fo:layout-master-set>");
-    _builder.newLine();
-    _builder.append("  \t\t");
-    _builder.append("<fo:simple-page-master master-name=\"A4\" page-width=\"210mm\" page-height=\"297mm\">");
-    _builder.newLine();
-    _builder.append("    \t\t");
-    _builder.append("<fo:region-body region-name=\"xsl-region-body\"  margin=\"2cm\"/>");
-    _builder.newLine();
-    _builder.append("     \t");
-    _builder.append("</fo:simple-page-master>");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("</fo:layout-master-set>");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("<fo:page-sequence  master-reference=\"A4\">");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("<fo:flow flow-name=\"xsl-region-body\" font-family=\"verdana\">");
-    _builder.newLine();
-    {
-      EList<BnfEntry> _bnfEntry = bnf.getBnfEntry();
-      for(final BnfEntry bnfentry : _bnfEntry) {
-        _builder.append("\t\t\t");
-        CharSequence _compile = this.compile(bnfentry);
-        _builder.append(_compile, "\t\t\t");
-        _builder.newLineIfNotEmpty();
-      }
-    }
-    _builder.append("\t\t");
-    _builder.append("</fo:flow>");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("</fo:page-sequence>");
-    _builder.newLine();
-    _builder.append("</fo:root>");
-    return _builder;
-  }
-  
-  public CharSequence compile(final BnfEntry bnfEntry) {
-    StringConcatenation _builder = new StringConcatenation();
-    {
-      Rule _rule = bnfEntry.getRule();
-      boolean _notEquals = (!Objects.equal(_rule, null));
-      if (_notEquals) {
-        Rule _rule_1 = bnfEntry.getRule();
-        CharSequence _compile = this.compile(_rule_1);
-        _builder.append(_compile, "");
-        _builder.newLineIfNotEmpty();
-      }
-    }
-    return _builder;
-  }
-  
-  public CharSequence compile(final Rule rule) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("<fo:block><fo:inline id=\"");
-    String _name = rule.getName();
-    _builder.append(_name, "");
-    _builder.append("\"\tcolor=\"purple\">");
-    {
-      int _rulenumber = rule.getRulenumber();
-      boolean _notEquals = (_rulenumber != 0);
-      if (_notEquals) {
-        int _rulenumber_1 = rule.getRulenumber();
-        _builder.append(_rulenumber_1, "");
-        _builder.append(".\\t");
-      }
-    }
-    String _name_1 = rule.getName();
-    _builder.append(_name_1, "");
-    _builder.append("</fo:inline>\t::=\t");
-    DefinitionList _definitionList = rule.getDefinitionList();
-    CharSequence _compile = this.compile(_definitionList);
-    _builder.append(_compile, "");
-    _builder.append("</block>");
-    return _builder;
-  }
-  
-  public CharSequence compile(final DefinitionList dList) {
-    StringConcatenation _builder = new StringConcatenation();
-    {
-      EList<SingleDefinition> _singleDefinition = dList.getSingleDefinition();
-      for(final SingleDefinition sDef : _singleDefinition) {
-        CharSequence _compile = this.compile(sDef);
-        _builder.append(_compile, "");
-        {
-          EList<SingleDefinition> _singleDefinition_1 = dList.getSingleDefinition();
-          SingleDefinition _last = IterableExtensions.<SingleDefinition>last(_singleDefinition_1);
-          boolean _equals = sDef.equals(_last);
-          boolean _not = (!_equals);
-          if (_not) {
-            _builder.append(" | ");
-          }
-        }
-      }
-    }
-    return _builder;
-  }
-  
-  public CharSequence compile(final SingleDefinition sDefinition) {
-    StringConcatenation _builder = new StringConcatenation();
-    {
-      EList<Term> _terms = sDefinition.getTerms();
-      for(final Term term : _terms) {
-        CharSequence _compile = this.compile(term);
-        _builder.append(_compile, "");
-      }
-    }
-    return _builder;
-  }
-  
-  public CharSequence compile(final Term term) {
-    StringConcatenation _builder = new StringConcatenation();
-    {
-      Atom _termAtom = term.getTermAtom();
-      boolean _notEquals = (!Objects.equal(_termAtom, null));
-      if (_notEquals) {
-        Atom _termAtom_1 = term.getTermAtom();
-        CharSequence _compile = this.compile(_termAtom_1);
-        _builder.append(_compile, "");
-      }
-    }
-    {
-      OptionalSequence _termOptionalSequence = term.getTermOptionalSequence();
-      boolean _notEquals_1 = (!Objects.equal(_termOptionalSequence, null));
-      if (_notEquals_1) {
-        OptionalSequence _termOptionalSequence_1 = term.getTermOptionalSequence();
-        CharSequence _compile_1 = this.compile(_termOptionalSequence_1);
-        _builder.append(_compile_1, "");
-      }
-    }
-    {
-      RepeatedSequence _termRepeatedSequence = term.getTermRepeatedSequence();
-      boolean _notEquals_2 = (!Objects.equal(_termRepeatedSequence, null));
-      if (_notEquals_2) {
-        RepeatedSequence _termRepeatedSequence_1 = term.getTermRepeatedSequence();
-        CharSequence _compile_2 = this.compile(_termRepeatedSequence_1);
-        _builder.append(_compile_2, "");
-      }
-    }
-    {
-      GroupedSequence _termGroupedSequence = term.getTermGroupedSequence();
-      boolean _notEquals_3 = (!Objects.equal(_termGroupedSequence, null));
-      if (_notEquals_3) {
-        GroupedSequence _termGroupedSequence_1 = term.getTermGroupedSequence();
-        CharSequence _compile_3 = this.compile(_termGroupedSequence_1);
-        _builder.append(_compile_3, "");
-      }
-    }
-    return _builder;
-  }
-  
-  public CharSequence compile(final GroupedSequence gSequ) {
-    StringConcatenation _builder = new StringConcatenation();
-    {
-      EList<DefinitionList> _definitionList = gSequ.getDefinitionList();
-      for(final DefinitionList d : _definitionList) {
-        Object _compile = this.compile(d);
-        _builder.append(_compile, "");
-      }
-    }
-    return _builder;
-  }
-  
-  public CharSequence compile(final RepeatedSequence rSequ) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("{");
-    {
-      EList<DefinitionList> _definitions = rSequ.getDefinitions();
-      for(final DefinitionList d : _definitions) {
-        Object _compile = this.compile(d);
-        _builder.append(_compile, "");
-      }
-    }
-    _builder.append("}");
-    {
-      boolean _isMorethanonce = rSequ.isMorethanonce();
-      if (_isMorethanonce) {
-        _builder.append("+");
-      }
-    }
-    return _builder;
-  }
-  
-  public CharSequence compile(final OptionalSequence oSequ) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("(");
-    {
-      EList<DefinitionList> _definitionList = oSequ.getDefinitionList();
-      for(final DefinitionList d : _definitionList) {
-        Object _compile = this.compile(d);
-        _builder.append(_compile, "");
-      }
-    }
-    _builder.append(")");
-    return _builder;
-  }
-  
-  public CharSequence compile(final Atom atom) {
-    StringConcatenation _builder = new StringConcatenation();
-    {
-      RuleReference _atomRuleReference = atom.getAtomRuleReference();
-      boolean _notEquals = (!Objects.equal(_atomRuleReference, null));
-      if (_notEquals) {
-        RuleReference _atomRuleReference_1 = atom.getAtomRuleReference();
-        CharSequence _compile = this.compile(_atomRuleReference_1);
-        _builder.append(_compile, "");
-      }
-    }
-    {
-      StringRule _atomStringRule = atom.getAtomStringRule();
-      boolean _notEquals_1 = (!Objects.equal(_atomStringRule, null));
-      if (_notEquals_1) {
-        StringRule _atomStringRule_1 = atom.getAtomStringRule();
-        CharSequence _compile_1 = this.compile(_atomStringRule_1);
-        _builder.append(_compile_1, "");
-      }
-    }
-    return _builder;
-  }
-  
-  public CharSequence compile(final RuleReference rRef) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("<fo:basic-link internal-destination=\"");
-    Rule _ruleref = rRef.getRuleref();
-    String _name = _ruleref.getName();
-    _builder.append(_name, "");
-    _builder.append("\" text-decoration=\"underline\" color=\"blue\">");
-    Rule _ruleref_1 = rRef.getRuleref();
-    String _name_1 = _ruleref_1.getName();
-    _builder.append(_name_1, "");
-    _builder.append("</fo:basic-link>");
-    return _builder;
-  }
-  
-  public CharSequence compile(final StringRule sRule) {
-    StringConcatenation _builder = new StringConcatenation();
-    {
-      String _colon = sRule.getColon();
-      boolean _notEquals = (!Objects.equal(_colon, null));
-      if (_notEquals) {
-        String _colon_1 = sRule.getColon();
-        _builder.append(_colon_1, "");
-      }
-    }
-    {
-      String _literal = sRule.getLiteral();
-      boolean _notEquals_1 = (!Objects.equal(_literal, null));
-      if (_notEquals_1) {
-        String _literal_1 = sRule.getLiteral();
-        _builder.append(_literal_1, "");
-      }
-    }
-    return _builder;
-  }
-}
Index: v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/xtend-gen/de/ugoe/cs/swe/bnftools/validation/EbnfValidator.java
===================================================================
--- v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/xtend-gen/de/ugoe/cs/swe/bnftools/validation/EbnfValidator.java	(revision 63)
+++ 	(revision )
@@ -1,217 +1,0 @@
-/**
- * generated by Xtext
- */
-package de.ugoe.cs.swe.bnftools.validation;
-
-import com.google.common.base.Objects;
-import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList;
-import de.ugoe.cs.swe.bnftools.ebnf.EbnfPackage;
-import de.ugoe.cs.swe.bnftools.ebnf.EtsiBnf;
-import de.ugoe.cs.swe.bnftools.ebnf.Rule;
-import de.ugoe.cs.swe.bnftools.ebnf.RuleReference;
-import de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition;
-import de.ugoe.cs.swe.bnftools.validation.AbstractEbnfValidator;
-import de.ugoe.cs.swe.bnftools.validation.EbnfAnalysisUtils;
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.nodemodel.ICompositeNode;
-import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
-import org.eclipse.xtext.validation.Check;
-
-/**
- * Custom validation rules.
- * 
- * see http://www.eclipse.org/Xtext/documentation.html#validation
- */
-@SuppressWarnings("all")
-public class EbnfValidator extends AbstractEbnfValidator {
-  public final static String ruleReferencedOneDescription = "The rule is only referenced by one other rule";
-  
-  public final static String passthroughRuleDescription = "The rule is a passthrough rule";
-  
-  public final static String unreferencedPassthroughRuleDescription = "The rule is an unreferenced passthrough rule";
-  
-  public final static String unusedRuleDescription = "The rule is not referenced anywhere";
-  
-  public final static String equalAlternativeDescription = "The rule contains equal alternatives";
-  
-  public final static String duplicateRulesDescription = "The rule is a duplicate";
-  
-  public final static String nonUniqueNameDescription = "The rule has the same Name as the Rule in Line ";
-  
-  /**
-   * Checks if a rule is only referenced by one other Rule, e.g.:
-   * a ::= b
-   * b ::= "foo"
-   */
-  @Check
-  public void checkReferencedOnlyOnce(final Rule rule) {
-    boolean _isTokenRule = EbnfAnalysisUtils.isTokenRule(rule);
-    if (_isTokenRule) {
-      return;
-    }
-    List<RuleReference> references = EbnfAnalysisUtils.findReferences(rule);
-    boolean _and = false;
-    int _size = references.size();
-    boolean _equals = (_size == 1);
-    if (!_equals) {
-      _and = false;
-    } else {
-      int _rulenumber = rule.getRulenumber();
-      boolean _notEquals = (_rulenumber != 1);
-      _and = _notEquals;
-    }
-    if (_and) {
-      String _name = rule.getName();
-      this.warning(EbnfValidator.ruleReferencedOneDescription, EbnfPackage.Literals.RULE__NAME, EbnfValidator.ruleReferencedOneDescription, _name);
-    }
-  }
-  
-  /**
-   * Checks if a a rule has the same definition as another rule e.g.:
-   * a ::= "test"
-   * b ::= "test"
-   * (Problem: does not check if there is a permutation)
-   */
-  @Check
-  public void checkDuplicateRules(final Rule rule) {
-    EObject _eContainer = rule.eContainer();
-    EObject _eContainer_1 = _eContainer.eContainer();
-    EtsiBnf etsiBnf = ((EtsiBnf) _eContainer_1);
-    DefinitionList _definitionList = rule.getDefinitionList();
-    ICompositeNode definitionList = NodeModelUtils.findActualNodeFor(_definitionList);
-    String _text = definitionList.getText();
-    String _trim = _text.trim();
-    String rightHandSideText = _trim.replaceAll("[ \t\n\r]", "");
-    List<Rule> allRules = EbnfAnalysisUtils.getAllRules(etsiBnf);
-    for (final Rule currentRule : allRules) {
-      boolean _notEquals = (!Objects.equal(currentRule, rule));
-      if (_notEquals) {
-        DefinitionList _definitionList_1 = currentRule.getDefinitionList();
-        ICompositeNode currentRuleDefinitionList = NodeModelUtils.findActualNodeFor(_definitionList_1);
-        String _text_1 = currentRuleDefinitionList.getText();
-        String _trim_1 = _text_1.trim();
-        String currentRuleRightHandSideText = _trim_1.replaceAll("[ \t\n\r]", 
-          "");
-        boolean _equals = currentRuleRightHandSideText.equals(rightHandSideText);
-        if (_equals) {
-          String _name = currentRule.getName();
-          String _plus = ((EbnfValidator.duplicateRulesDescription + " with rule \"") + _name);
-          String _plus_1 = (_plus + 
-            "\" (Line ");
-          ICompositeNode _findActualNodeFor = NodeModelUtils.findActualNodeFor(currentRule);
-          int _startLine = _findActualNodeFor.getStartLine();
-          String _plus_2 = (_plus_1 + Integer.valueOf(_startLine));
-          String description = (_plus_2 + ")");
-          this.warning(description, EbnfPackage.Literals.RULE__NAME);
-        }
-      }
-    }
-  }
-  
-  /**
-   * Checks if a Rule got the same Name as another Rule, e.g.:
-   * a ::= "foo"
-   * a ::= "bar"
-   */
-  @Check
-  public void checkNameIsUnique(final Rule rule) {
-    EObject _eContainer = rule.eContainer();
-    EObject _eContainer_1 = _eContainer.eContainer();
-    final EtsiBnf bnf = ((EtsiBnf) _eContainer_1);
-    List<Rule> _allRules = EbnfAnalysisUtils.getAllRules(bnf);
-    for (final Rule r : _allRules) {
-      String _name = rule.getName();
-      String _name_1 = r.getName();
-      boolean _equals = _name.equals(_name_1);
-      if (_equals) {
-        boolean _equals_1 = r.equals(rule);
-        boolean _not = (!_equals_1);
-        if (_not) {
-          ICompositeNode _findActualNodeFor = NodeModelUtils.findActualNodeFor(r);
-          int _startLine = _findActualNodeFor.getStartLine();
-          String _plus = (EbnfValidator.nonUniqueNameDescription + Integer.valueOf(_startLine));
-          this.error(_plus, 
-            EbnfPackage.Literals.RULE__NAME);
-        }
-      }
-    }
-  }
-  
-  /**
-   * Checks if a Rule, except for the #1 is not referenced, e.g.:
-   * a::= b
-   * b::="foo"
-   * c ::= "bar"
-   */
-  @Check
-  public void checkUnusedRule(final Rule rule) {
-    List<RuleReference> references = EbnfAnalysisUtils.findReferences(rule);
-    boolean _and = false;
-    int _size = references.size();
-    boolean _equals = (_size == 0);
-    if (!_equals) {
-      _and = false;
-    } else {
-      int _rulenumber = rule.getRulenumber();
-      boolean _notEquals = (_rulenumber != 1);
-      _and = _notEquals;
-    }
-    if (_and) {
-      String _name = rule.getName();
-      this.warning(EbnfValidator.unusedRuleDescription, EbnfPackage.Literals.RULE__NAME, EbnfValidator.unusedRuleDescription, _name);
-    }
-  }
-  
-  /**
-   * Checks if a rule got two equal alternatives, e.g.:
-   * a ::= b | "foo" | b
-   * (Problem:ignores whitespaces in literals)
-   */
-  @Check
-  public void checkEqualAlternative(final Rule rule) {
-    DefinitionList definitionList = rule.getDefinitionList();
-    List<SingleDefinition> singleDefinitions = definitionList.getSingleDefinition();
-    for (final SingleDefinition sDef1 : singleDefinitions) {
-      for (final SingleDefinition sDef2 : singleDefinitions) {
-        boolean _equals = sDef1.equals(sDef2);
-        boolean _not = (!_equals);
-        if (_not) {
-          ICompositeNode _findActualNodeFor = NodeModelUtils.findActualNodeFor(sDef1);
-          String _text = _findActualNodeFor.getText();
-          String _trim = _text.trim();
-          String d1 = _trim.replaceAll("[ \t\n\r]", "");
-          ICompositeNode _findActualNodeFor_1 = NodeModelUtils.findActualNodeFor(sDef2);
-          String _text_1 = _findActualNodeFor_1.getText();
-          String _trim_1 = _text_1.trim();
-          String d2 = _trim_1.replaceAll("[ \t\n\r]", "");
-          boolean _equals_1 = d1.equals(d2);
-          if (_equals_1) {
-            this.warning(EbnfValidator.equalAlternativeDescription, EbnfPackage.Literals.RULE__NAME, EbnfValidator.equalAlternativeDescription);
-          }
-        }
-      }
-    }
-  }
-  
-  /**
-   * Checks if a rule gets just passed through, e.g.:
-   * a ::= b | "literal"
-   * b ::= c
-   * c ::= "foo.bar"
-   */
-  @Check
-  public void checkPassthroughRule(final Rule rule) {
-    List<RuleReference> references = EbnfAnalysisUtils.findReferences(rule);
-    boolean _isPassthroughRule = EbnfAnalysisUtils.isPassthroughRule(rule);
-    if (_isPassthroughRule) {
-      int _size = references.size();
-      boolean _equals = (_size == 0);
-      if (_equals) {
-        this.warning(EbnfValidator.unreferencedPassthroughRuleDescription, EbnfPackage.Literals.RULE__NAME);
-      } else {
-        this.warning(EbnfValidator.passthroughRuleDescription, EbnfPackage.Literals.RULE__NAME, EbnfValidator.passthroughRuleDescription);
-      }
-    }
-  }
-}
