blob: 23d992a5101d2b507184593a9dd328dc7d34ae9d [file] [log] [blame]
/*****************************************************************************
* Copyright (c) 2016 CEA LIST and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* CEA LIST - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.interoperability.rpy.parser.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 org.eclipse.papyrus.interoperability.rpy.parser.services.RpySyntaxGrammarAccess;
public class RpySyntaxParser extends AbstractContentAssistParser {
@Inject
private RpySyntaxGrammarAccess grammarAccess;
private Map<AbstractElement, String> nameMappings;
@Override
protected org.eclipse.papyrus.interoperability.rpy.parser.ui.contentassist.antlr.internal.InternalRpySyntaxParser createParser() {
org.eclipse.papyrus.interoperability.rpy.parser.ui.contentassist.antlr.internal.InternalRpySyntaxParser result = new org.eclipse.papyrus.interoperability.rpy.parser.ui.contentassist.antlr.internal.InternalRpySyntaxParser(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.getRpyContentAccess().getAlternatives(), "rule__RpyContent__Alternatives");
put(grammarAccess.getRpyFeatureValueAccess().getAlternatives(), "rule__RpyFeatureValue__Alternatives");
put(grammarAccess.getVALUE_TERMINALAccess().getAlternatives(), "rule__VALUE_TERMINAL__Alternatives");
put(grammarAccess.getRpyFileAccess().getGroup(), "rule__RpyFile__Group__0");
put(grammarAccess.getRpyNodeAccess().getGroup(), "rule__RpyNode__Group__0");
put(grammarAccess.getRpyFeatureAccess().getGroup(), "rule__RpyFeature__Group__0");
put(grammarAccess.getSimpleValueListAccess().getGroup(), "rule__SimpleValueList__Group__0");
put(grammarAccess.getRpySimpleValueElementAccess().getGroup(), "rule__RpySimpleValueElement__Group__0");
put(grammarAccess.getRpyStringMapEntryAccess().getGroup(), "rule__RpyStringMapEntry__Group__0");
put(grammarAccess.getRpyFileAccess().getVersionAssignment_1(), "rule__RpyFile__VersionAssignment_1");
put(grammarAccess.getRpyFileAccess().getContentsAssignment_2(), "rule__RpyFile__ContentsAssignment_2");
put(grammarAccess.getRpyNodeAccess().getNameAssignment_1(), "rule__RpyNode__NameAssignment_1");
put(grammarAccess.getRpyNodeAccess().getContentsAssignment_2(), "rule__RpyNode__ContentsAssignment_2");
put(grammarAccess.getRpyFeatureAccess().getNameAssignment_1(), "rule__RpyFeature__NameAssignment_1");
put(grammarAccess.getRpyFeatureAccess().getValueAssignment_3(), "rule__RpyFeature__ValueAssignment_3");
put(grammarAccess.getRpyNodeListAccess().getValuesAssignment(), "rule__RpyNodeList__ValuesAssignment");
put(grammarAccess.getSimpleValueListAccess().getIsOldIDAssignment_1(), "rule__SimpleValueList__IsOldIDAssignment_1");
put(grammarAccess.getSimpleValueListAccess().getIsGUIDAssignment_2(), "rule__SimpleValueList__IsGUIDAssignment_2");
put(grammarAccess.getSimpleValueListAccess().getValueElementsAssignment_3(), "rule__SimpleValueList__ValueElementsAssignment_3");
put(grammarAccess.getRpySimpleValueElementAccess().getValuesAssignment_1(), "rule__RpySimpleValueElement__ValuesAssignment_1");
put(grammarAccess.getRpyStringMapAccess().getEntriesAssignment(), "rule__RpyStringMap__EntriesAssignment");
put(grammarAccess.getRpyStringMapEntryAccess().getKeyAssignment_0(), "rule__RpyStringMapEntry__KeyAssignment_0");
put(grammarAccess.getRpyStringMapEntryAccess().getValueAssignment_1(), "rule__RpyStringMapEntry__ValueAssignment_1");
}
};
}
return nameMappings.get(element);
}
@Override
protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
try {
org.eclipse.papyrus.interoperability.rpy.parser.ui.contentassist.antlr.internal.InternalRpySyntaxParser typedParser = (org.eclipse.papyrus.interoperability.rpy.parser.ui.contentassist.antlr.internal.InternalRpySyntaxParser) parser;
typedParser.entryRuleRpyFile();
return typedParser.getFollowElements();
} catch(RecognitionException ex) {
throw new RuntimeException(ex);
}
}
@Override
protected String[] getInitialHiddenTokens() {
return new String[] { "RULE_WS" };
}
public RpySyntaxGrammarAccess getGrammarAccess() {
return this.grammarAccess;
}
public void setGrammarAccess(RpySyntaxGrammarAccess grammarAccess) {
this.grammarAccess = grammarAccess;
}
}