/*
* 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;
}
}