/* * generated by Xtext */ package de.sebastianbenz.xgherkin.ui.contentassist.antlr; import java.util.Collection; import java.util.Map; import java.util.HashMap; import org.antlr.runtime.RecognitionException; import org.eclipse.xtext.AbstractElement; import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser; import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement; import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser; import com.google.inject.Inject; import de.sebastianbenz.xgherkin.services.GherkinGrammarAccess; public class GherkinParser extends AbstractContentAssistParser { @Inject private GherkinGrammarAccess grammarAccess; private Map<AbstractElement, String> nameMappings; @Override protected de.sebastianbenz.xgherkin.ui.contentassist.antlr.internal.InternalGherkinParser createParser() { de.sebastianbenz.xgherkin.ui.contentassist.antlr.internal.InternalGherkinParser result = new de.sebastianbenz.xgherkin.ui.contentassist.antlr.internal.InternalGherkinParser(null); result.setGrammarAccess(grammarAccess); return result; } @Override protected String getRuleName(AbstractElement element) { if (nameMappings == null) { nameMappings = new HashMap<AbstractElement, String>() { private static final long serialVersionUID = 1L; { put(grammarAccess.getNarrativeElementAccess().getAlternatives(), "rule__NarrativeElement__Alternatives"); put(grammarAccess.getAbstractScenarioAccess().getAlternatives(), "rule__AbstractScenario__Alternatives"); put(grammarAccess.getStepAccess().getAlternatives(), "rule__Step__Alternatives"); put(grammarAccess.getOptionalTextAccess().getAlternatives(), "rule__OptionalText__Alternatives"); put(grammarAccess.getFeatureAccess().getGroup(), "rule__Feature__Group__0"); put(grammarAccess.getScenarioAccess().getGroup(), "rule__Scenario__Group__0"); put(grammarAccess.getScenarioWithOutlineAccess().getGroup(), "rule__ScenarioWithOutline__Group__0"); put(grammarAccess.getExampleAccess().getGroup(), "rule__Example__Group__0"); put(grammarAccess.getExampleRowAccess().getGroup(), "rule__ExampleRow__Group__0"); put(grammarAccess.getBackgroundAccess().getGroup(), "rule__Background__Group__0"); put(grammarAccess.getWhenStepAccess().getGroup(), "rule__WhenStep__Group__0"); put(grammarAccess.getThenStepAccess().getGroup(), "rule__ThenStep__Group__0"); put(grammarAccess.getGivenStepAccess().getGroup(), "rule__GivenStep__Group__0"); put(grammarAccess.getAndStepAccess().getGroup(), "rule__AndStep__Group__0"); put(grammarAccess.getFeatureAccess().getTagsAssignment_0(), "rule__Feature__TagsAssignment_0"); put(grammarAccess.getFeatureAccess().getNameAssignment_1(), "rule__Feature__NameAssignment_1"); put(grammarAccess.getFeatureAccess().getElementsAssignment_2(), "rule__Feature__ElementsAssignment_2"); put(grammarAccess.getFeatureAccess().getScenariosAssignment_3(), "rule__Feature__ScenariosAssignment_3"); put(grammarAccess.getFreeTextAccess().getNameAssignment(), "rule__FreeText__NameAssignment"); put(grammarAccess.getAsAAccess().getNameAssignment(), "rule__AsA__NameAssignment"); put(grammarAccess.getInOrderToAccess().getNameAssignment(), "rule__InOrderTo__NameAssignment"); put(grammarAccess.getIWantToAccess().getNameAssignment(), "rule__IWantTo__NameAssignment"); put(grammarAccess.getScenarioAccess().getTagsAssignment_0(), "rule__Scenario__TagsAssignment_0"); put(grammarAccess.getScenarioAccess().getNameAssignment_1(), "rule__Scenario__NameAssignment_1"); put(grammarAccess.getScenarioAccess().getElementsAssignment_2(), "rule__Scenario__ElementsAssignment_2"); put(grammarAccess.getScenarioAccess().getStepsAssignment_3(), "rule__Scenario__StepsAssignment_3"); put(grammarAccess.getScenarioWithOutlineAccess().getTagsAssignment_0(), "rule__ScenarioWithOutline__TagsAssignment_0"); put(grammarAccess.getScenarioWithOutlineAccess().getNameAssignment_1(), "rule__ScenarioWithOutline__NameAssignment_1"); put(grammarAccess.getScenarioWithOutlineAccess().getElementsAssignment_2(), "rule__ScenarioWithOutline__ElementsAssignment_2"); put(grammarAccess.getScenarioWithOutlineAccess().getStepsAssignment_3(), "rule__ScenarioWithOutline__StepsAssignment_3"); put(grammarAccess.getScenarioWithOutlineAccess().getExampleAssignment_4(), "rule__ScenarioWithOutline__ExampleAssignment_4"); put(grammarAccess.getExampleAccess().getHeadingAssignment_1(), "rule__Example__HeadingAssignment_1"); put(grammarAccess.getExampleAccess().getRowsAssignment_2(), "rule__Example__RowsAssignment_2"); put(grammarAccess.getExampleRowAccess().getCellsAssignment_0(), "rule__ExampleRow__CellsAssignment_0"); put(grammarAccess.getExampleCellAccess().getValueAssignment(), "rule__ExampleCell__ValueAssignment"); put(grammarAccess.getBackgroundAccess().getTagsAssignment_0(), "rule__Background__TagsAssignment_0"); put(grammarAccess.getBackgroundAccess().getNameAssignment_1(), "rule__Background__NameAssignment_1"); put(grammarAccess.getBackgroundAccess().getStepsAssignment_2(), "rule__Background__StepsAssignment_2"); put(grammarAccess.getWhenStepAccess().getTagsAssignment_0(), "rule__WhenStep__TagsAssignment_0"); put(grammarAccess.getWhenStepAccess().getDescAssignment_1(), "rule__WhenStep__DescAssignment_1"); put(grammarAccess.getWhenStepAccess().getDescAssignment_2(), "rule__WhenStep__DescAssignment_2"); put(grammarAccess.getWhenStepAccess().getRowsAssignment_3(), "rule__WhenStep__RowsAssignment_3"); put(grammarAccess.getThenStepAccess().getTagsAssignment_0(), "rule__ThenStep__TagsAssignment_0"); put(grammarAccess.getThenStepAccess().getDescAssignment_1(), "rule__ThenStep__DescAssignment_1"); put(grammarAccess.getThenStepAccess().getDescAssignment_2(), "rule__ThenStep__DescAssignment_2"); put(grammarAccess.getThenStepAccess().getRowsAssignment_3(), "rule__ThenStep__RowsAssignment_3"); put(grammarAccess.getGivenStepAccess().getTagsAssignment_0(), "rule__GivenStep__TagsAssignment_0"); put(grammarAccess.getGivenStepAccess().getDescAssignment_1(), "rule__GivenStep__DescAssignment_1"); put(grammarAccess.getGivenStepAccess().getDescAssignment_2(), "rule__GivenStep__DescAssignment_2"); put(grammarAccess.getGivenStepAccess().getRowsAssignment_3(), "rule__GivenStep__RowsAssignment_3"); put(grammarAccess.getAndStepAccess().getDescAssignment_0(), "rule__AndStep__DescAssignment_0"); put(grammarAccess.getAndStepAccess().getDescAssignment_1(), "rule__AndStep__DescAssignment_1"); put(grammarAccess.getAndStepAccess().getRowsAssignment_2(), "rule__AndStep__RowsAssignment_2"); } }; } return nameMappings.get(element); } @Override protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) { try { de.sebastianbenz.xgherkin.ui.contentassist.antlr.internal.InternalGherkinParser typedParser = (de.sebastianbenz.xgherkin.ui.contentassist.antlr.internal.InternalGherkinParser) parser; typedParser.entryRuleFeature(); return typedParser.getFollowElements(); } catch(RecognitionException ex) { throw new RuntimeException(ex); } } @Override protected String[] getInitialHiddenTokens() { return new String[] { "RULE_WS", "RULE_SL_COMMENT" }; } public GherkinGrammarAccess getGrammarAccess() { return this.grammarAccess; } public void setGrammarAccess(GherkinGrammarAccess grammarAccess) { this.grammarAccess = grammarAccess; } }