// $ANTLR ${project.version} ${buildNumber}
package org.reuseware.air.language.abstractsyntax.resource.as.mopp;
import org.antlr.runtime3_2_0.*;
import java.util.HashMap;
public class AsParser extends AsANTLRParserBase {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "TEXT", "QUOTED_60_62", "QNAME", "COMMENT", "WHITESPACE", "LINEBREAK", "'ABSTRACTSYNTAX'", "'URI'", "'PREFIX'", "'IMPORT'", "','", "'AS'", "'==>'", "'='", "';'", "'|'", "'@'", "':'", "'::'", "'->'", "'+'", "'*'", "'?'"
};
public static final int T__26=26;
public static final int T__25=25;
public static final int T__24=24;
public static final int T__23=23;
public static final int T__22=22;
public static final int T__21=21;
public static final int T__20=20;
public static final int WHITESPACE=8;
public static final int TEXT=4;
public static final int EOF=-1;
public static final int T__19=19;
public static final int QNAME=6;
public static final int T__16=16;
public static final int T__15=15;
public static final int T__18=18;
public static final int T__17=17;
public static final int T__12=12;
public static final int T__11=11;
public static final int T__14=14;
public static final int T__13=13;
public static final int T__10=10;
public static final int QUOTED_60_62=5;
public static final int COMMENT=7;
public static final int LINEBREAK=9;
// delegates
// delegators
public AsParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public AsParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
this.state.ruleMemo = new HashMap[35+1];
}
public String[] getTokenNames() { return AsParser.tokenNames; }
public String getGrammarFileName() { return "As.g"; }
private org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolverFactory tokenResolverFactory = new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTokenResolverFactory();
/**
* the index of the last token that was handled by collectHiddenTokens()
*/
@SuppressWarnings("unused")
private int lastPosition;
/**
* the index of the last token that was handled by retrieveLayoutInformation()
*/
private int lastPosition2;
private org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTokenResolveResult tokenResolveResult = new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTokenResolveResult();
/**
* A flag that indicateds whether the parser should remember all expected
* elements. This flag is set to true when using the parse for code completion.
* Otherwise it is set to false.
*/
private boolean rememberExpectedElements = false;
private java.lang.Object parseToIndexTypeObject;
private int lastTokenIndex = 0;
/**
* A list of expected elements the were collected while parsing the input stream.
* This list is only filled if <code>rememberExpectedElements</code> is set to
* true.
*/
private java.util.List<org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal> expectedElements = new java.util.ArrayList<org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal>();
private int mismatchedTokenRecoveryTries = 0;
private java.util.Map<?, ?> options;
/**
* A helper list to allow a lexer to pass errors to its parser
*/
protected java.util.List<org.antlr.runtime3_2_0.RecognitionException> lexerExceptions = java.util.Collections.synchronizedList(new java.util.ArrayList<org.antlr.runtime3_2_0.RecognitionException>());
/**
* Another helper list to allow a lexer to pass positions of errors to its parser
*/
protected java.util.List<java.lang.Integer> lexerExceptionsPosition = java.util.Collections.synchronizedList(new java.util.ArrayList<java.lang.Integer>());
/**
* A stack for incomplete objects. This stack is used only when the parser is used
* for code completion. Whenever the parser starts to read an object it is pushed
* on the stack. Once the element was parser completely it is popped for the stack.
*/
protected java.util.Stack<org.eclipse.emf.ecore.EObject> incompleteObjects = new java.util.Stack<org.eclipse.emf.ecore.EObject>();
private int stopIncludingHiddenTokens;
private int stopExcludingHiddenTokens;
/**
* A collection that is filled with commands to be exectued after parsing. This
* collection is cleared before parsing starts and returned as part of the parse
* result object.
*/
private java.util.Collection<org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>> postParseCommands;
/**
* A flag to indicate that the parser should stop parsing as soon as possible. The
* flag is set to false before parsing starts. It can be set to true by invoking
* the terminateParsing() method from another thread. This feature is used, when
* documents are parsed in the background (i.e., while editing them). In order to
* cancel running parsers, the parsing process can be terminated. This is done
* whenever a document changes, because the previous content of the document is
* not valid anymore and parsing the old content is not necessary any longer.
*/
private boolean terminateParsing;
private int tokenIndexOfLastCompleteElement;
private int expectedElementsIndexOfLastCompleteElement;
protected void addErrorToResource(final java.lang.String errorMessage, final int line, final int charPositionInLine, final int startIndex, final int stopIndex) {
postParseCommands.add(new org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>() {
public boolean execute(org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource) {
if (resource == null) {
// the resource can be null if the parser is used for code completion
return true;
}
resource.addProblem(new org.reuseware.air.language.abstractsyntax.resource.as.IAsProblem() {
public org.reuseware.air.language.abstractsyntax.resource.as.AsEProblemType getType() {
return org.reuseware.air.language.abstractsyntax.resource.as.AsEProblemType.ERROR;
}
public java.lang.String getMessage() {
return errorMessage;
}
}, line, charPositionInLine, startIndex, stopIndex);
return true;
}
});
}
public void addExpectedElement(org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal expectedElement) {
if (!this.rememberExpectedElements) {
return;
}
setPosition(expectedElement, input.index());
this.expectedElements.add(expectedElement);
}
protected void addMapEntry(org.eclipse.emf.ecore.EObject element, org.eclipse.emf.ecore.EStructuralFeature structuralFeature, org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsDummyEObject dummy) {
java.lang.Object value = element.eGet(structuralFeature);
java.lang.Object mapKey = dummy.getValueByName("key");
java.lang.Object mapValue = dummy.getValueByName("value");
if (value instanceof org.eclipse.emf.common.util.EMap<?, ?>) {
org.eclipse.emf.common.util.EMap<java.lang.Object, java.lang.Object> valueMap = org.reuseware.air.language.abstractsyntax.resource.as.util.AsMapUtil.castToEMap(value);
if (mapKey != null && mapValue != null) {
valueMap.put(mapKey, mapValue);
}
}
}
@SuppressWarnings("unchecked")
public boolean addObjectToList(org.eclipse.emf.ecore.EObject element, int featureID, java.lang.Object proxy) {
return ((java.util.List<java.lang.Object>) element.eGet(element.eClass().getEStructuralFeature(featureID))).add(proxy);
}
protected org.eclipse.emf.ecore.EObject apply(org.eclipse.emf.ecore.EObject target, java.util.List<org.eclipse.emf.ecore.EObject> dummyEObjects) {
org.eclipse.emf.ecore.EObject currentTarget = target;
for (org.eclipse.emf.ecore.EObject object : dummyEObjects) {
assert(object instanceof org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsDummyEObject);
org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsDummyEObject dummy = (org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsDummyEObject) object;
org.eclipse.emf.ecore.EObject newEObject = dummy.applyTo(currentTarget);
currentTarget = newEObject;
}
return currentTarget;
}
protected void collectHiddenTokens(org.eclipse.emf.ecore.EObject element) {
}
protected void copyLocalizationInfos(final org.eclipse.emf.ecore.EObject source, final org.eclipse.emf.ecore.EObject target) {
postParseCommands.add(new org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>() {
public boolean execute(org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsLocationMap locationMap = resource.getLocationMap();
if (locationMap == null) {
// the locationMap can be null if the parser is used for code completion
return true;
}
locationMap.setCharStart(target, locationMap.getCharStart(source));
locationMap.setCharEnd(target, locationMap.getCharEnd(source));
locationMap.setColumn(target, locationMap.getColumn(source));
locationMap.setLine(target, locationMap.getLine(source));
return true;
}
});
}
protected void copyLocalizationInfos(final org.antlr.runtime3_2_0.CommonToken source, final org.eclipse.emf.ecore.EObject target) {
postParseCommands.add(new org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>() {
public boolean execute(org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsLocationMap locationMap = resource.getLocationMap();
if (locationMap == null) {
// the locationMap can be null if the parser is used for code completion
return true;
}
if (source == null) {
return true;
}
locationMap.setCharStart(target, source.getStartIndex());
locationMap.setCharEnd(target, source.getStopIndex());
locationMap.setColumn(target, source.getCharPositionInLine());
locationMap.setLine(target, source.getLine());
return true;
}
});
}
/**
* Sets the end character index and the last line for the given object in the
* location map.
*/
protected void setLocalizationEnd(java.util.Collection<org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>> postParseCommands , final org.eclipse.emf.ecore.EObject object, final int endChar, final int endLine) {
postParseCommands.add(new org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>() {
public boolean execute(org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsLocationMap locationMap = resource.getLocationMap();
if (locationMap == null) {
// the locationMap can be null if the parser is used for code completion
return true;
}
locationMap.setCharEnd(object, endChar);
locationMap.setLine(object, endLine);
return true;
}
});
}
public org.reuseware.air.language.abstractsyntax.resource.as.IAsTextParser createInstance(java.io.InputStream actualInputStream, java.lang.String encoding) {
try {
if (encoding == null) {
return new AsParser(new org.antlr.runtime3_2_0.CommonTokenStream(new AsLexer(new org.antlr.runtime3_2_0.ANTLRInputStream(actualInputStream))));
} else {
return new AsParser(new org.antlr.runtime3_2_0.CommonTokenStream(new AsLexer(new org.antlr.runtime3_2_0.ANTLRInputStream(actualInputStream, encoding))));
}
} catch (java.io.IOException e) {
org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsPlugin.logError("Error while creating parser.", e);
return null;
}
}
/**
* This default constructor is only used to call createInstance() on it.
*/
public AsParser() {
super(null);
}
protected org.eclipse.emf.ecore.EObject doParse() throws org.antlr.runtime3_2_0.RecognitionException {
this.lastPosition = 0;
// required because the lexer class can not be subclassed
((AsLexer) getTokenStream().getTokenSource()).lexerExceptions = lexerExceptions;
((AsLexer) getTokenStream().getTokenSource()).lexerExceptionsPosition = lexerExceptionsPosition;
java.lang.Object typeObject = getTypeObject();
if (typeObject == null) {
return start();
} else if (typeObject instanceof org.eclipse.emf.ecore.EClass) {
org.eclipse.emf.ecore.EClass type = (org.eclipse.emf.ecore.EClass) typeObject;
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.AbstractSyntax.class) {
return parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.Import.class) {
return parse_org_reuseware_air_language_abstractsyntax_Import();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.ASProgram.class) {
return parse_org_reuseware_air_language_abstractsyntax_ASProgram();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition.class) {
return parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition.class) {
return parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.Attribute.class) {
return parse_org_reuseware_air_language_abstractsyntax_Attribute();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.Containment.class) {
return parse_org_reuseware_air_language_abstractsyntax_Containment();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.InternalReference.class) {
return parse_org_reuseware_air_language_abstractsyntax_InternalReference();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.ExternalReference.class) {
return parse_org_reuseware_air_language_abstractsyntax_ExternalReference();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.PLUS.class) {
return parse_org_reuseware_air_language_abstractsyntax_PLUS();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.STAR.class) {
return parse_org_reuseware_air_language_abstractsyntax_STAR();
}
if (type.getInstanceClass() == org.reuseware.air.language.abstractsyntax.QUESTIONMARK.class) {
return parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK();
}
}
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsUnexpectedContentTypeException(typeObject);
}
private org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTokenResolveResult getFreshTokenResolveResult() {
tokenResolveResult.clear();
return tokenResolveResult;
}
public int getMismatchedTokenRecoveryTries() {
return mismatchedTokenRecoveryTries;
}
public java.lang.Object getMissingSymbol(org.antlr.runtime3_2_0.IntStream arg0, org.antlr.runtime3_2_0.RecognitionException arg1, int arg2, org.antlr.runtime3_2_0.BitSet arg3) {
mismatchedTokenRecoveryTries++;
return super.getMissingSymbol(arg0, arg1, arg2, arg3);
}
protected java.util.Map<?,?> getOptions() {
return options;
}
public org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsMetaInformation getMetaInformation() {
return new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsMetaInformation();
}
public java.lang.Object getParseToIndexTypeObject() {
return parseToIndexTypeObject;
}
protected org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsReferenceResolverSwitch getReferenceResolverSwitch() {
return (org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsReferenceResolverSwitch) getMetaInformation().getReferenceResolverSwitch();
}
protected java.lang.Object getTypeObject() {
java.lang.Object typeObject = getParseToIndexTypeObject();
if (typeObject != null) {
return typeObject;
}
java.util.Map<?,?> options = getOptions();
if (options != null) {
typeObject = options.get(org.reuseware.air.language.abstractsyntax.resource.as.IAsOptions.RESOURCE_CONTENT_TYPE);
}
return typeObject;
}
/**
* Implementation that calls {@link #doParse()} and handles the thrown
* RecognitionExceptions.
*/
public org.reuseware.air.language.abstractsyntax.resource.as.IAsParseResult parse() {
terminateParsing = false;
postParseCommands = new java.util.ArrayList<org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>>();
org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsParseResult parseResult = new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsParseResult();
try {
org.eclipse.emf.ecore.EObject result = doParse();
if (lexerExceptions.isEmpty()) {
parseResult.setRoot(result);
}
} catch (org.antlr.runtime3_2_0.RecognitionException re) {
reportError(re);
} catch (java.lang.IllegalArgumentException iae) {
if ("The 'no null' constraint is violated".equals(iae.getMessage())) {
// can be caused if a null is set on EMF models where not allowed. this will just
// happen if other errors occurred before
} else {
iae.printStackTrace();
}
}
for (org.antlr.runtime3_2_0.RecognitionException re : lexerExceptions) {
reportLexicalError(re);
}
parseResult.getPostParseCommands().addAll(postParseCommands);
return parseResult;
}
public java.util.List<org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal> parseToExpectedElements(org.eclipse.emf.ecore.EClass type, org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource dummyResource) {
rememberExpectedElements = true;
parseToIndexTypeObject = type;
final org.antlr.runtime3_2_0.CommonTokenStream tokenStream = (org.antlr.runtime3_2_0.CommonTokenStream) getTokenStream();
org.reuseware.air.language.abstractsyntax.resource.as.IAsParseResult result = parse();
for (org.eclipse.emf.ecore.EObject incompleteObject : incompleteObjects) {
org.antlr.runtime3_2_0.Lexer lexer = (org.antlr.runtime3_2_0.Lexer) tokenStream.getTokenSource();
int endChar = lexer.getCharIndex();
int endLine = lexer.getLine();
setLocalizationEnd(result.getPostParseCommands(), incompleteObject, endChar, endLine);
}
if (result != null) {
org.eclipse.emf.ecore.EObject root = result.getRoot();
if (root != null) {
dummyResource.getContents().add(root);
}
for (org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource> command : result.getPostParseCommands()) {
command.execute(dummyResource);
}
}
// remove all expected elements that were added after the last complete element
expectedElements = expectedElements.subList(0, expectedElementsIndexOfLastCompleteElement + 1);
int lastFollowSetID = expectedElements.get(expectedElementsIndexOfLastCompleteElement).getFollowSetID();
java.util.Set<org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal> currentFollowSet = new java.util.LinkedHashSet<org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal>();
java.util.List<org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal> newFollowSet = new java.util.ArrayList<org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal>();
for (int i = expectedElementsIndexOfLastCompleteElement; i >= 0; i--) {
org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal expectedElementI = expectedElements.get(i);
if (expectedElementI.getFollowSetID() == lastFollowSetID) {
currentFollowSet.add(expectedElementI);
} else {
break;
}
}
int followSetID = 59;
int i;
for (i = tokenIndexOfLastCompleteElement; i < tokenStream.size(); i++) {
org.antlr.runtime3_2_0.CommonToken nextToken = (org.antlr.runtime3_2_0.CommonToken) tokenStream.get(i);
if (nextToken.getChannel() == 99) {
// hidden tokens do not reduce the follow set
} else {
// now that we have found the next visible token the position for that expected
// terminals can be set
for (org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal nextFollow : newFollowSet) {
lastTokenIndex = 0;
setPosition(nextFollow, i);
}
newFollowSet.clear();
// normal tokens do reduce the follow set - only elements that match the token are
// kept
for (org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal nextFollow : currentFollowSet) {
if (nextFollow.getTerminal().getTokenName().equals(getTokenNames()[nextToken.getType()])) {
// keep this one - it matches
java.util.Collection<org.reuseware.air.language.abstractsyntax.resource.as.util.AsPair<org.reuseware.air.language.abstractsyntax.resource.as.IAsExpectedElement, org.eclipse.emf.ecore.EStructuralFeature[]>> newFollowers = nextFollow.getTerminal().getFollowers();
for (org.reuseware.air.language.abstractsyntax.resource.as.util.AsPair<org.reuseware.air.language.abstractsyntax.resource.as.IAsExpectedElement, org.eclipse.emf.ecore.EStructuralFeature[]> newFollowerPair : newFollowers) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsExpectedElement newFollower = newFollowerPair.getLeft();
org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal newFollowTerminal = new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(newFollower, followSetID, newFollowerPair.getRight());
newFollowSet.add(newFollowTerminal);
expectedElements.add(newFollowTerminal);
}
}
}
currentFollowSet.clear();
currentFollowSet.addAll(newFollowSet);
}
followSetID++;
}
// after the last token in the stream we must set the position for the elements
// that were added during the last iteration of the loop
for (org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal nextFollow : newFollowSet) {
lastTokenIndex = 0;
setPosition(nextFollow, i);
}
return this.expectedElements;
}
public void setPosition(org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal expectedElement, int tokenIndex) {
int currentIndex = java.lang.Math.max(0, tokenIndex);
for (int index = lastTokenIndex; index < currentIndex; index++) {
if (index >= input.size()) {
break;
}
org.antlr.runtime3_2_0.CommonToken tokenAtIndex = (org.antlr.runtime3_2_0.CommonToken) input.get(index);
stopIncludingHiddenTokens = tokenAtIndex.getStopIndex() + 1;
if (tokenAtIndex.getChannel() != 99) {
stopExcludingHiddenTokens = tokenAtIndex.getStopIndex() + 1;
}
}
lastTokenIndex = java.lang.Math.max(0, currentIndex);
expectedElement.setPosition(stopExcludingHiddenTokens, stopIncludingHiddenTokens);
}
public java.lang.Object recoverFromMismatchedToken(org.antlr.runtime3_2_0.IntStream input, int ttype, org.antlr.runtime3_2_0.BitSet follow) throws org.antlr.runtime3_2_0.RecognitionException {
if (!rememberExpectedElements) {
return super.recoverFromMismatchedToken(input, ttype, follow);
} else {
return null;
}
}
protected <ContainerType extends org.eclipse.emf.ecore.EObject, ReferenceType extends org.eclipse.emf.ecore.EObject> void registerContextDependentProxy(final org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<ContainerType, ReferenceType> factory, final ContainerType element, final org.eclipse.emf.ecore.EReference reference, final String id, final org.eclipse.emf.ecore.EObject proxy) {
postParseCommands.add(new org.reuseware.air.language.abstractsyntax.resource.as.IAsCommand<org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource>() {
public boolean execute(org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource) {
if (resource == null) {
// the resource can be null if the parser is used for code completion
return true;
}
resource.registerContextDependentProxy(factory, element, reference, id, proxy);
return true;
}
});
}
/**
* Translates errors thrown by the parser into human readable messages.
*/
public void reportError(final org.antlr.runtime3_2_0.RecognitionException e) {
java.lang.String message = e.getMessage();
if (e instanceof org.antlr.runtime3_2_0.MismatchedTokenException) {
org.antlr.runtime3_2_0.MismatchedTokenException mte = (org.antlr.runtime3_2_0.MismatchedTokenException) e;
java.lang.String tokenName = "<unknown>";
if (mte.expecting == Token.EOF) {
tokenName = "EOF";
} else {
tokenName = getTokenNames()[mte.expecting];
tokenName = org.reuseware.air.language.abstractsyntax.resource.as.util.AsStringUtil.formatTokenName(tokenName);
}
message = "Syntax error on token \"" + e.token.getText() + "\", \"" + tokenName + "\" expected";
} else if (e instanceof org.antlr.runtime3_2_0.MismatchedTreeNodeException) {
org.antlr.runtime3_2_0.MismatchedTreeNodeException mtne = (org.antlr.runtime3_2_0.MismatchedTreeNodeException) e;
java.lang.String tokenName = "<unknown>";
if (mtne.expecting == Token.EOF) {
tokenName = "EOF";
} else {
tokenName = getTokenNames()[mtne.expecting];
}
message = "mismatched tree node: " + "xxx" + "; expecting " + tokenName;
} else if (e instanceof org.antlr.runtime3_2_0.NoViableAltException) {
message = "Syntax error on token \"" + e.token.getText() + "\", check following tokens";
} else if (e instanceof org.antlr.runtime3_2_0.EarlyExitException) {
message = "Syntax error on token \"" + e.token.getText() + "\", delete this token";
} else if (e instanceof org.antlr.runtime3_2_0.MismatchedSetException) {
org.antlr.runtime3_2_0.MismatchedSetException mse = (org.antlr.runtime3_2_0.MismatchedSetException) e;
message = "mismatched token: " + e.token + "; expecting set " + mse.expecting;
} else if (e instanceof org.antlr.runtime3_2_0.MismatchedNotSetException) {
org.antlr.runtime3_2_0.MismatchedNotSetException mse = (org.antlr.runtime3_2_0.MismatchedNotSetException) e;
message = "mismatched token: " + e.token + "; expecting set " + mse.expecting;
} else if (e instanceof org.antlr.runtime3_2_0.FailedPredicateException) {
org.antlr.runtime3_2_0.FailedPredicateException fpe = (org.antlr.runtime3_2_0.FailedPredicateException) e;
message = "rule " + fpe.ruleName + " failed predicate: {" + fpe.predicateText + "}?";
}
// the resource may be null if the parse is used for code completion
final java.lang.String finalMessage = message;
if (e.token instanceof org.antlr.runtime3_2_0.CommonToken) {
final org.antlr.runtime3_2_0.CommonToken ct = (org.antlr.runtime3_2_0.CommonToken) e.token;
addErrorToResource(finalMessage, ct.getCharPositionInLine(), ct.getLine(), ct.getStartIndex(), ct.getStopIndex());
} else {
addErrorToResource(finalMessage, e.token.getCharPositionInLine(), e.token.getLine(), 1, 5);
}
}
/**
* Translates errors thrown by the lexer into human readable messages.
*/
public void reportLexicalError(final org.antlr.runtime3_2_0.RecognitionException e) {
java.lang.String message = "";
if (e instanceof org.antlr.runtime3_2_0.MismatchedTokenException) {
org.antlr.runtime3_2_0.MismatchedTokenException mte = (org.antlr.runtime3_2_0.MismatchedTokenException) e;
message = "Syntax error on token \"" + ((char) e.c) + "\", \"" + (char) mte.expecting + "\" expected";
} else if (e instanceof org.antlr.runtime3_2_0.NoViableAltException) {
message = "Syntax error on token \"" + ((char) e.c) + "\", delete this token";
} else if (e instanceof org.antlr.runtime3_2_0.EarlyExitException) {
org.antlr.runtime3_2_0.EarlyExitException eee = (org.antlr.runtime3_2_0.EarlyExitException) e;
message ="required (...)+ loop (decision=" + eee.decisionNumber + ") did not match anything; on line " + e.line + ":" + e.charPositionInLine + " char=" + ((char) e.c) + "'";
} else if (e instanceof org.antlr.runtime3_2_0.MismatchedSetException) {
org.antlr.runtime3_2_0.MismatchedSetException mse = (org.antlr.runtime3_2_0.MismatchedSetException) e;
message ="mismatched char: '" + ((char) e.c) + "' on line " + e.line + ":" + e.charPositionInLine + "; expecting set " + mse.expecting;
} else if (e instanceof org.antlr.runtime3_2_0.MismatchedNotSetException) {
org.antlr.runtime3_2_0.MismatchedNotSetException mse = (org.antlr.runtime3_2_0.MismatchedNotSetException) e;
message ="mismatched char: '" + ((char) e.c) + "' on line " + e.line + ":" + e.charPositionInLine + "; expecting set " + mse.expecting;
} else if (e instanceof org.antlr.runtime3_2_0.MismatchedRangeException) {
org.antlr.runtime3_2_0.MismatchedRangeException mre = (org.antlr.runtime3_2_0.MismatchedRangeException) e;
message ="mismatched char: '" + ((char) e.c) + "' on line " + e.line + ":" + e.charPositionInLine + "; expecting set '" + (char) mre.a + "'..'" + (char) mre.b + "'";
} else if (e instanceof org.antlr.runtime3_2_0.FailedPredicateException) {
org.antlr.runtime3_2_0.FailedPredicateException fpe = (org.antlr.runtime3_2_0.FailedPredicateException) e;
message ="rule " + fpe.ruleName + " failed predicate: {" + fpe.predicateText + "}?";
}
addErrorToResource(message, e.index, e.line, lexerExceptionsPosition.get(lexerExceptions.indexOf(e)), lexerExceptionsPosition.get(lexerExceptions.indexOf(e)));
}
public void setOptions(java.util.Map<?,?> options) {
this.options = options;
}
public void terminate() {
terminateParsing = true;
}
protected void completedElement(java.lang.Object object, boolean isContainment) {
if (isContainment && !this.incompleteObjects.isEmpty()) {
this.incompleteObjects.pop();
}
if (object instanceof org.eclipse.emf.ecore.EObject) {
this.tokenIndexOfLastCompleteElement = getTokenStream().index();
this.expectedElementsIndexOfLastCompleteElement = expectedElements.size() - 1;
}
}
/**
* Creates a dynamic Java proxy that mimics the interface of the given class.
*/
@SuppressWarnings("unchecked")
public <T> T createDynamicProxy(java.lang.Class<T> clazz) {
java.lang.Object proxy = java.lang.reflect.Proxy.newProxyInstance(this.getClass().getClassLoader(), new java.lang.Class<?>[]{clazz, org.eclipse.emf.ecore.EObject.class, org.eclipse.emf.ecore.InternalEObject.class}, new java.lang.reflect.InvocationHandler() {
private org.eclipse.emf.ecore.EObject dummyObject = new org.eclipse.emf.ecore.impl.EObjectImpl() {};
public java.lang.Object invoke(java.lang.Object object, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable {
// search in dummyObject for the requested method
java.lang.reflect.Method[] methodsInDummy = dummyObject.getClass().getMethods();
for (java.lang.reflect.Method methodInDummy : methodsInDummy) {
boolean matches = true;
if (methodInDummy.getName().equals(method.getName())) {
java.lang.Class<?>[] parameterTypes = method.getParameterTypes();
java.lang.Class<?>[] parameterTypesInDummy = methodInDummy.getParameterTypes();
if (parameterTypes.length == parameterTypesInDummy.length) {
for (int p = 0; p < parameterTypes.length; p++) {
java.lang.Class<?> parameterType = parameterTypes[p];
java.lang.Class<?> parameterTypeInDummy = parameterTypesInDummy[p];
if (!parameterType.equals(parameterTypeInDummy)) {
matches = false;
}
}
} else {
matches = false;
}
} else {
matches = false;
}
if (matches) {
return methodInDummy.invoke(dummyObject, args);
}
}
return null;
}
});
return (T) proxy;
}
protected void retrieveLayoutInformation(org.eclipse.emf.ecore.EObject element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsSyntaxElement syntaxElement, java.lang.Object object) {
if (!(syntaxElement instanceof org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsPlaceholder) && !(syntaxElement instanceof org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsKeyword)) {
return;
}
int currentPos = getTokenStream().index();
if (currentPos == 0) {
return;
}
int endPos = currentPos - 1;
for (; endPos >= this.lastPosition2; endPos--) {
org.antlr.runtime3_2_0.Token token = getTokenStream().get(endPos);
int _channel = token.getChannel();
if (_channel != 99) {
break;
}
}
java.lang.StringBuilder hiddenTokenText = new java.lang.StringBuilder();
java.lang.StringBuilder visibleTokenText = new java.lang.StringBuilder();
org.antlr.runtime3_2_0.CommonToken firstToken = null;
for (int pos = this.lastPosition2; pos <= endPos; pos++) {
org.antlr.runtime3_2_0.Token token = getTokenStream().get(pos);
if (firstToken == null) {
firstToken = (org.antlr.runtime3_2_0.CommonToken) token;
}
int _channel = token.getChannel();
if (_channel == 99) {
hiddenTokenText.append(token.getText());
} else {
visibleTokenText.append(token.getText());
}
}
int offset = -1;
if (firstToken != null) {
offset = firstToken.getStartIndex();
}
org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsLayoutInformationAdapter layoutInformationAdapter = getLayoutInformationAdapter(element);
layoutInformationAdapter.addLayoutInformation(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsLayoutInformation(syntaxElement, object, offset, hiddenTokenText.toString(), visibleTokenText.toString()));
this.lastPosition2 = (endPos < 0 ? 0 : endPos + 1);
}
protected org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsLayoutInformationAdapter getLayoutInformationAdapter(org.eclipse.emf.ecore.EObject element) {
for (org.eclipse.emf.common.notify.Adapter adapter : element.eAdapters()) {
if (adapter instanceof org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsLayoutInformationAdapter) {
return (org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsLayoutInformationAdapter) adapter;
}
}
org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsLayoutInformationAdapter newAdapter = new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsLayoutInformationAdapter();
element.eAdapters().add(newAdapter);
return newAdapter;
}
// $ANTLR start "start"
// As.g:662:1: start returns [ org.eclipse.emf.ecore.EObject element = null] : (c0= parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax ) EOF ;
public final org.eclipse.emf.ecore.EObject start() throws RecognitionException {
org.eclipse.emf.ecore.EObject element = null;
int start_StartIndex = input.index();
org.reuseware.air.language.abstractsyntax.AbstractSyntax c0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return element; }
// As.g:663:1: ( (c0= parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax ) EOF )
// As.g:664:2: (c0= parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax ) EOF
{
if ( state.backtracking==0 ) {
// follow set for start rule(s)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_0, 0));
expectedElementsIndexOfLastCompleteElement = expectedElements.size() - 1;
}
// As.g:669:2: (c0= parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax )
// As.g:670:3: c0= parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax_in_start82);
c0=parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c0;
}
}
match(input,EOF,FOLLOW_EOF_in_start89); if (state.failed) return element;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 1, start_StartIndex); }
}
return element;
}
// $ANTLR end "start"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax"
// As.g:675:1: parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax returns [org.reuseware.air.language.abstractsyntax.AbstractSyntax element = null] : a0= 'ABSTRACTSYNTAX' (a1= TEXT ) a2= 'URI' (a3= QUOTED_60_62 ) a4= 'PREFIX' (a5= QNAME ) ( (a6= 'IMPORT' (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )* ) )? (a10_0= parse_org_reuseware_air_language_abstractsyntax_ASUnit ) ;
public final org.reuseware.air.language.abstractsyntax.AbstractSyntax parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.AbstractSyntax element = null;
int parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
Token a3=null;
Token a4=null;
Token a5=null;
Token a6=null;
Token a8=null;
org.reuseware.air.language.abstractsyntax.Import a7_0 = null;
org.reuseware.air.language.abstractsyntax.Import a9_0 = null;
org.reuseware.air.language.abstractsyntax.ASUnit a10_0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return element; }
// As.g:678:1: (a0= 'ABSTRACTSYNTAX' (a1= TEXT ) a2= 'URI' (a3= QUOTED_60_62 ) a4= 'PREFIX' (a5= QNAME ) ( (a6= 'IMPORT' (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )* ) )? (a10_0= parse_org_reuseware_air_language_abstractsyntax_ASUnit ) )
// As.g:679:2: a0= 'ABSTRACTSYNTAX' (a1= TEXT ) a2= 'URI' (a3= QUOTED_60_62 ) a4= 'PREFIX' (a5= QNAME ) ( (a6= 'IMPORT' (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )* ) )? (a10_0= parse_org_reuseware_air_language_abstractsyntax_ASUnit )
{
a0=(Token)match(input,10,FOLLOW_10_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax112); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a0, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_1, 1));
}
// As.g:693:2: (a1= TEXT )
// As.g:694:3: a1= TEXT
{
a1=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax130); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
}
if (a1 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NAME), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a1).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a1).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a1).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a1).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NAME), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_1, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a1, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_2, 2));
}
a2=(Token)match(input,11,FOLLOW_11_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax151); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_3, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a2, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_3, 3));
}
// As.g:741:2: (a3= QUOTED_60_62 )
// As.g:742:3: a3= QUOTED_60_62
{
a3=(Token)match(input,QUOTED_60_62,FOLLOW_QUOTED_60_62_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax169); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
}
if (a3 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QUOTED_60_62");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a3.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSURI), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a3).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a3).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a3).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a3).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSURI), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_4, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a3, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_4, 4));
}
a4=(Token)match(input,12,FOLLOW_12_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax190); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_6, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a4, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_5, 5));
}
// As.g:789:2: (a5= QNAME )
// As.g:790:3: a5= QNAME
{
a5=(Token)match(input,QNAME,FOLLOW_QNAME_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax208); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
}
if (a5 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QNAME");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a5.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSPREFIX), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a5).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a5).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a5).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a5).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSPREFIX), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_7, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a5, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_6, 6));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 6, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 6, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
}
// As.g:825:2: ( (a6= 'IMPORT' (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )* ) )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==13) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// As.g:826:3: (a6= 'IMPORT' (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )* )
{
// As.g:826:3: (a6= 'IMPORT' (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )* )
// As.g:827:4: a6= 'IMPORT' (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )*
{
a6=(Token)match(input,13,FOLLOW_13_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax238); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_9_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a6, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_9, 7, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_2));
}
// As.g:841:4: (a7_0= parse_org_reuseware_air_language_abstractsyntax_Import )
// As.g:842:5: a7_0= parse_org_reuseware_air_language_abstractsyntax_Import
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Import_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax264);
a7_0=parse_org_reuseware_air_language_abstractsyntax_Import();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
}
if (a7_0 != null) {
if (a7_0 != null) {
addObjectToList(element, org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__IMPORT, a7_0);
completedElement(a7_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_9_0_0_1, a7_0);
copyLocalizationInfos(a7_0, element); }
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_10, 8));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 8, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 8, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
}
// As.g:866:4: ( (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) ) )*
loop1:
do {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==14) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// As.g:867:5: (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) )
{
// As.g:867:5: (a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import ) )
// As.g:868:6: a8= ',' (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import )
{
a8=(Token)match(input,14,FOLLOW_14_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax305); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_9_0_0_2_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a8, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_9, 9, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_2));
}
// As.g:882:6: (a9_0= parse_org_reuseware_air_language_abstractsyntax_Import )
// As.g:883:7: a9_0= parse_org_reuseware_air_language_abstractsyntax_Import
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Import_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax339);
a9_0=parse_org_reuseware_air_language_abstractsyntax_Import();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
}
if (a9_0 != null) {
if (a9_0 != null) {
addObjectToList(element, org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__IMPORT, a9_0);
completedElement(a9_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_9_0_0_2_0_0_1, a9_0);
copyLocalizationInfos(a9_0, element); }
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_10, 10));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 10, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 10, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
}
}
}
break;
default :
break loop1;
}
} while (true);
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_10, 11));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 11, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 11, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 12, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 12, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
}
// As.g:924:2: (a10_0= parse_org_reuseware_air_language_abstractsyntax_ASUnit )
// As.g:925:3: a10_0= parse_org_reuseware_air_language_abstractsyntax_ASUnit
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ASUnit_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax417);
a10_0=parse_org_reuseware_air_language_abstractsyntax_ASUnit();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAbstractSyntax();
}
if (a10_0 != null) {
if (a10_0 != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__UNIT), a10_0);
completedElement(a10_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_0_0_0_10, a10_0);
copyLocalizationInfos(a10_0, element); }
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 2, parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_Import"
// As.g:948:1: parse_org_reuseware_air_language_abstractsyntax_Import returns [org.reuseware.air.language.abstractsyntax.Import element = null] : (a0= QUOTED_60_62 ) a1= 'AS' (a2= TEXT ) ;
public final org.reuseware.air.language.abstractsyntax.Import parse_org_reuseware_air_language_abstractsyntax_Import() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.Import element = null;
int parse_org_reuseware_air_language_abstractsyntax_Import_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return element; }
// As.g:951:1: ( (a0= QUOTED_60_62 ) a1= 'AS' (a2= TEXT ) )
// As.g:952:2: (a0= QUOTED_60_62 ) a1= 'AS' (a2= TEXT )
{
// As.g:952:2: (a0= QUOTED_60_62 )
// As.g:953:3: a0= QUOTED_60_62
{
a0=(Token)match(input,QUOTED_60_62,FOLLOW_QUOTED_60_62_in_parse_org_reuseware_air_language_abstractsyntax_Import454); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createImport();
}
if (a0 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QUOTED_60_62");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__EPACKAGE), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a0).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStopIndex());
}
String resolved = (String) resolvedObject;
org.eclipse.emf.ecore.EPackage proxy = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEPackage();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.Import, org.eclipse.emf.ecore.EPackage>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getImportEPackageReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__EPACKAGE), resolved, proxy);
if (proxy != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__EPACKAGE), proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_1_0_0_0, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a0, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a0, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_11, 14));
}
a1=(Token)match(input,15,FOLLOW_15_in_parse_org_reuseware_air_language_abstractsyntax_Import475); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createImport();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_1_0_0_1, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a1, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_12, 15));
}
// As.g:1004:2: (a2= TEXT )
// As.g:1005:3: a2= TEXT
{
a2=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Import493); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createImport();
}
if (a2 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__PREFIX), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a2).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__PREFIX), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_1_0_0_2, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_10, 16));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 16, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 16, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_1));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 3, parse_org_reuseware_air_language_abstractsyntax_Import_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_Import"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_ASProgram"
// As.g:1042:1: parse_org_reuseware_air_language_abstractsyntax_ASProgram returns [org.reuseware.air.language.abstractsyntax.ASProgram element = null] : ( (a0_0= parse_org_reuseware_air_language_abstractsyntax_ASStatement ) )+ ;
public final org.reuseware.air.language.abstractsyntax.ASProgram parse_org_reuseware_air_language_abstractsyntax_ASProgram() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.ASProgram element = null;
int parse_org_reuseware_air_language_abstractsyntax_ASProgram_StartIndex = input.index();
org.reuseware.air.language.abstractsyntax.ASStatement a0_0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return element; }
// As.g:1045:1: ( ( (a0_0= parse_org_reuseware_air_language_abstractsyntax_ASStatement ) )+ )
// As.g:1046:2: ( (a0_0= parse_org_reuseware_air_language_abstractsyntax_ASStatement ) )+
{
// As.g:1046:2: ( (a0_0= parse_org_reuseware_air_language_abstractsyntax_ASStatement ) )+
int cnt3=0;
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==TEXT) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// As.g:1047:3: (a0_0= parse_org_reuseware_air_language_abstractsyntax_ASStatement )
{
// As.g:1047:3: (a0_0= parse_org_reuseware_air_language_abstractsyntax_ASStatement )
// As.g:1048:4: a0_0= parse_org_reuseware_air_language_abstractsyntax_ASStatement
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ASStatement_in_parse_org_reuseware_air_language_abstractsyntax_ASProgram538);
a0_0=parse_org_reuseware_air_language_abstractsyntax_ASStatement();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createASProgram();
}
if (a0_0 != null) {
if (a0_0 != null) {
addObjectToList(element, org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.AS_PROGRAM__STATEMENT, a0_0);
completedElement(a0_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_2_0_0_1, a0_0);
copyLocalizationInfos(a0_0, element); }
}
}
}
break;
default :
if ( cnt3 >= 1 ) break loop3;
if (state.backtracking>0) {state.failed=true; return element;}
EarlyExitException eee =
new EarlyExitException(3, input);
throw eee;
}
cnt3++;
} while (true);
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 17, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 17, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 4, parse_org_reuseware_air_language_abstractsyntax_ASProgram_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_ASProgram"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition"
// As.g:1074:1: parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition returns [org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition element = null] : (a0= TEXT ) ( (a1= '==>' (a2= QNAME ) ) )? ( (a3= '=' (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )* ) )? a7= ';' ;
public final org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition element = null;
int parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
Token a3=null;
Token a5=null;
Token a7=null;
org.reuseware.air.language.abstractsyntax.NodeFeature a4_0 = null;
org.reuseware.air.language.abstractsyntax.NodeFeature a6_0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return element; }
// As.g:1077:1: ( (a0= TEXT ) ( (a1= '==>' (a2= QNAME ) ) )? ( (a3= '=' (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )* ) )? a7= ';' )
// As.g:1078:2: (a0= TEXT ) ( (a1= '==>' (a2= QNAME ) ) )? ( (a3= '=' (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )* ) )? a7= ';'
{
// As.g:1078:2: (a0= TEXT )
// As.g:1079:3: a0= TEXT
{
a0=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition583); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
}
if (a0 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__NAME), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a0).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__NAME), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_0, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a0, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_13, 18));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_14, 18));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 18));
}
// As.g:1114:2: ( (a1= '==>' (a2= QNAME ) ) )?
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==16) ) {
alt4=1;
}
switch (alt4) {
case 1 :
// As.g:1115:3: (a1= '==>' (a2= QNAME ) )
{
// As.g:1115:3: (a1= '==>' (a2= QNAME ) )
// As.g:1116:4: a1= '==>' (a2= QNAME )
{
a1=(Token)match(input,16,FOLLOW_16_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition613); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_1_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a1, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_16, 19));
}
// As.g:1130:4: (a2= QNAME )
// As.g:1131:5: a2= QNAME
{
a2=(Token)match(input,QNAME,FOLLOW_QNAME_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition639); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
}
if (a2 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QNAME");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__ESUPER_CLASS), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a2).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStopIndex());
}
String resolved = (String) resolvedObject;
org.eclipse.emf.ecore.EClass proxy = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEClass();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition, org.eclipse.emf.ecore.EClass>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getConcreteNodeDefinitionESuperClassReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__ESUPER_CLASS), resolved, proxy);
if (proxy != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__ESUPER_CLASS), proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_1_0_0_1, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_14, 20));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 20));
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_14, 21));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 21));
}
// As.g:1177:2: ( (a3= '=' (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )* ) )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==17) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// As.g:1178:3: (a3= '=' (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )* )
{
// As.g:1178:3: (a3= '=' (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )* )
// As.g:1179:4: a3= '=' (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )*
{
a3=(Token)match(input,17,FOLLOW_17_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition694); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_2_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a3, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_17, 22, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_18, 22, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_19, 22, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_20, 22, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
}
// As.g:1196:4: (a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature )
// As.g:1197:5: a4_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_NodeFeature_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition720);
a4_0=parse_org_reuseware_air_language_abstractsyntax_NodeFeature();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
}
if (a4_0 != null) {
if (a4_0 != null) {
addObjectToList(element, org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__MEMBERS, a4_0);
completedElement(a4_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_2_0_0_1, a4_0);
copyLocalizationInfos(a4_0, element); }
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 23));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 23));
}
// As.g:1220:4: ( (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) ) )*
loop5:
do {
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==14) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// As.g:1221:5: (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) )
{
// As.g:1221:5: (a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature ) )
// As.g:1222:6: a5= ',' (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature )
{
a5=(Token)match(input,14,FOLLOW_14_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition761); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_2_0_0_2_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a5, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_17, 24, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_18, 24, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_19, 24, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_20, 24, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_3));
}
// As.g:1239:6: (a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature )
// As.g:1240:7: a6_0= parse_org_reuseware_air_language_abstractsyntax_NodeFeature
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_NodeFeature_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition795);
a6_0=parse_org_reuseware_air_language_abstractsyntax_NodeFeature();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
}
if (a6_0 != null) {
if (a6_0 != null) {
addObjectToList(element, org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__MEMBERS, a6_0);
completedElement(a6_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_2_0_0_2_0_0_1, a6_0);
copyLocalizationInfos(a6_0, element); }
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 25));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 25));
}
}
}
break;
default :
break loop5;
}
} while (true);
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 26));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 26));
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 27));
}
a7=(Token)match(input,18,FOLLOW_18_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition869); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_3_0_0_3, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a7, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 28, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 28, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 5, parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition"
// As.g:1295:1: parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition returns [org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition element = null] : (a0= TEXT ) a1= '=' (a2= TEXT ) ( (a3= '|' (a4= TEXT ) ) )* a5= ';' ;
public final org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition element = null;
int parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
Token a3=null;
Token a4=null;
Token a5=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return element; }
// As.g:1298:1: ( (a0= TEXT ) a1= '=' (a2= TEXT ) ( (a3= '|' (a4= TEXT ) ) )* a5= ';' )
// As.g:1299:2: (a0= TEXT ) a1= '=' (a2= TEXT ) ( (a3= '|' (a4= TEXT ) ) )* a5= ';'
{
// As.g:1299:2: (a0= TEXT )
// As.g:1300:3: a0= TEXT
{
a0=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition902); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInterfaceNodeDefinition();
}
if (a0 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__NAME), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a0).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__NAME), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_4_0_0_0, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a0, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_22, 29));
}
a1=(Token)match(input,17,FOLLOW_17_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition923); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInterfaceNodeDefinition();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_4_0_0_1, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a1, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_23, 30));
}
// As.g:1347:2: (a2= TEXT )
// As.g:1348:3: a2= TEXT
{
a2=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition941); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInterfaceNodeDefinition();
}
if (a2 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a2).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStopIndex());
}
String resolved = (String) resolvedObject;
org.reuseware.air.language.abstractsyntax.Definition proxy = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition, org.reuseware.air.language.abstractsyntax.Definition>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInterfaceNodeDefinitionOptionsReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS), resolved, proxy);
if (proxy != null) {
addObjectToList(element, org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS, proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_4_0_0_2, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_24, 31));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_25, 31));
}
// As.g:1386:2: ( (a3= '|' (a4= TEXT ) ) )*
loop7:
do {
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==19) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// As.g:1387:3: (a3= '|' (a4= TEXT ) )
{
// As.g:1387:3: (a3= '|' (a4= TEXT ) )
// As.g:1388:4: a3= '|' (a4= TEXT )
{
a3=(Token)match(input,19,FOLLOW_19_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition971); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInterfaceNodeDefinition();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_4_0_0_3_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a3, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_26, 32));
}
// As.g:1402:4: (a4= TEXT )
// As.g:1403:5: a4= TEXT
{
a4=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition997); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInterfaceNodeDefinition();
}
if (a4 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a4.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a4).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a4).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a4).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a4).getStopIndex());
}
String resolved = (String) resolvedObject;
org.reuseware.air.language.abstractsyntax.Definition proxy = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition, org.reuseware.air.language.abstractsyntax.Definition>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInterfaceNodeDefinitionOptionsReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS), resolved, proxy);
if (proxy != null) {
addObjectToList(element, org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS, proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_4_0_0_3_0_0_1, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a4, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a4, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_24, 33));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_25, 33));
}
}
}
break;
default :
break loop7;
}
} while (true);
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_24, 34));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_25, 34));
}
a5=(Token)match(input,18,FOLLOW_18_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition1043); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInterfaceNodeDefinition();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_4_0_0_4, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a5, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_7, 35, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_8, 35, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_0));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 6, parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_Attribute"
// As.g:1466:1: parse_org_reuseware_air_language_abstractsyntax_Attribute returns [org.reuseware.air.language.abstractsyntax.Attribute element = null] : a0= '@' (a1= TEXT ) a2= ':' (a3= TEXT ) ( (a4_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? ;
public final org.reuseware.air.language.abstractsyntax.Attribute parse_org_reuseware_air_language_abstractsyntax_Attribute() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.Attribute element = null;
int parse_org_reuseware_air_language_abstractsyntax_Attribute_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
Token a3=null;
org.reuseware.air.language.abstractsyntax.Cardinality a4_0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return element; }
// As.g:1469:1: (a0= '@' (a1= TEXT ) a2= ':' (a3= TEXT ) ( (a4_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? )
// As.g:1470:2: a0= '@' (a1= TEXT ) a2= ':' (a3= TEXT ) ( (a4_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
{
a0=(Token)match(input,20,FOLLOW_20_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1072); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAttribute();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_5_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a0, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_27, 36));
}
// As.g:1484:2: (a1= TEXT )
// As.g:1485:3: a1= TEXT
{
a1=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1090); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAttribute();
}
if (a1 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__NAME), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a1).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a1).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a1).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a1).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__NAME), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_5_0_0_1, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a1, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_28, 37));
}
a2=(Token)match(input,21,FOLLOW_21_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1111); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAttribute();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_5_0_0_2, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a2, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_29, 38));
}
// As.g:1532:2: (a3= TEXT )
// As.g:1533:3: a3= TEXT
{
a3=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1129); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAttribute();
}
if (a3 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a3.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__TYPE), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a3).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a3).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a3).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a3).getStopIndex());
}
String resolved = (String) resolvedObject;
org.eclipse.emf.ecore.EDataType proxy = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEDataType();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.Attribute, org.eclipse.emf.ecore.EDataType>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getAttributeTypeReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__TYPE), resolved, proxy);
if (proxy != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__TYPE), proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_5_0_0_3, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a3, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a3, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_30, 39, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_31, 39, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_32, 39, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 39));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 39));
}
// As.g:1574:2: ( (a4_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
int alt8=2;
int LA8_0 = input.LA(1);
if ( ((LA8_0>=24 && LA8_0<=26)) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// As.g:1575:3: (a4_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
{
// As.g:1575:3: (a4_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
// As.g:1576:4: a4_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1159);
a4_0=parse_org_reuseware_air_language_abstractsyntax_Cardinality();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createAttribute();
}
if (a4_0 != null) {
if (a4_0 != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__CARDINALITY), a4_0);
completedElement(a4_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_5_0_0_4, a4_0);
copyLocalizationInfos(a4_0, element); }
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 40));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 40));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 7, parse_org_reuseware_air_language_abstractsyntax_Attribute_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_Attribute"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_Containment"
// As.g:1602:1: parse_org_reuseware_air_language_abstractsyntax_Containment returns [org.reuseware.air.language.abstractsyntax.Containment element = null] : (a0= TEXT ) a1= ':' (a2= TEXT ) ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? ;
public final org.reuseware.air.language.abstractsyntax.Containment parse_org_reuseware_air_language_abstractsyntax_Containment() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.Containment element = null;
int parse_org_reuseware_air_language_abstractsyntax_Containment_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
org.reuseware.air.language.abstractsyntax.Cardinality a3_0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return element; }
// As.g:1605:1: ( (a0= TEXT ) a1= ':' (a2= TEXT ) ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? )
// As.g:1606:2: (a0= TEXT ) a1= ':' (a2= TEXT ) ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
{
// As.g:1606:2: (a0= TEXT )
// As.g:1607:3: a0= TEXT
{
a0=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Containment1204); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createContainment();
}
if (a0 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__NAME), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a0).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__NAME), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_6_0_0_0, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a0, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_33, 41));
}
a1=(Token)match(input,21,FOLLOW_21_in_parse_org_reuseware_air_language_abstractsyntax_Containment1225); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createContainment();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_6_0_0_1, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a1, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_34, 42));
}
// As.g:1654:2: (a2= TEXT )
// As.g:1655:3: a2= TEXT
{
a2=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Containment1243); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createContainment();
}
if (a2 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__TYPE), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a2).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStopIndex());
}
String resolved = (String) resolvedObject;
org.reuseware.air.language.abstractsyntax.Definition proxy = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.Containment, org.reuseware.air.language.abstractsyntax.Definition>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getContainmentTypeReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__TYPE), resolved, proxy);
if (proxy != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__TYPE), proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_6_0_0_2, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_30, 43, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_31, 43, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_32, 43, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 43));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 43));
}
// As.g:1696:2: ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( ((LA9_0>=24 && LA9_0<=26)) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// As.g:1697:3: (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
{
// As.g:1697:3: (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
// As.g:1698:4: a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_Containment1273);
a3_0=parse_org_reuseware_air_language_abstractsyntax_Cardinality();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createContainment();
}
if (a3_0 != null) {
if (a3_0 != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__CARDINALITY), a3_0);
completedElement(a3_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_6_0_0_3, a3_0);
copyLocalizationInfos(a3_0, element); }
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 44));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 44));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 8, parse_org_reuseware_air_language_abstractsyntax_Containment_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_Containment"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_InternalReference"
// As.g:1724:1: parse_org_reuseware_air_language_abstractsyntax_InternalReference returns [org.reuseware.air.language.abstractsyntax.InternalReference element = null] : (a0= TEXT ) a1= '::' (a2= TEXT ) ( (a3= '->' (a4= TEXT ) ) )? ( (a5_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? ;
public final org.reuseware.air.language.abstractsyntax.InternalReference parse_org_reuseware_air_language_abstractsyntax_InternalReference() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.InternalReference element = null;
int parse_org_reuseware_air_language_abstractsyntax_InternalReference_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
Token a3=null;
Token a4=null;
org.reuseware.air.language.abstractsyntax.Cardinality a5_0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return element; }
// As.g:1727:1: ( (a0= TEXT ) a1= '::' (a2= TEXT ) ( (a3= '->' (a4= TEXT ) ) )? ( (a5_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? )
// As.g:1728:2: (a0= TEXT ) a1= '::' (a2= TEXT ) ( (a3= '->' (a4= TEXT ) ) )? ( (a5_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
{
// As.g:1728:2: (a0= TEXT )
// As.g:1729:3: a0= TEXT
{
a0=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1318); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInternalReference();
}
if (a0 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__NAME), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a0).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__NAME), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_7_0_0_0, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a0, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_35, 45));
}
a1=(Token)match(input,22,FOLLOW_22_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1339); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInternalReference();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_7_0_0_1, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a1, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_36, 46));
}
// As.g:1776:2: (a2= TEXT )
// As.g:1777:3: a2= TEXT
{
a2=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1357); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInternalReference();
}
if (a2 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__TYPE), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a2).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStopIndex());
}
String resolved = (String) resolvedObject;
org.reuseware.air.language.abstractsyntax.Definition proxy = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createConcreteNodeDefinition();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.InternalReference, org.reuseware.air.language.abstractsyntax.Definition>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInternalReferenceTypeReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__TYPE), resolved, proxy);
if (proxy != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__TYPE), proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_7_0_0_2, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_37, 47));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_30, 47, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_31, 47, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_32, 47, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 47));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 47));
}
// As.g:1819:2: ( (a3= '->' (a4= TEXT ) ) )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==23) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// As.g:1820:3: (a3= '->' (a4= TEXT ) )
{
// As.g:1820:3: (a3= '->' (a4= TEXT ) )
// As.g:1821:4: a3= '->' (a4= TEXT )
{
a3=(Token)match(input,23,FOLLOW_23_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1387); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInternalReference();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_7_0_0_3_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a3, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_38, 48));
}
// As.g:1835:4: (a4= TEXT )
// As.g:1836:5: a4= TEXT
{
a4=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1413); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInternalReference();
}
if (a4 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a4.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__OPPOSITE), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a4).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a4).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a4).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a4).getStopIndex());
}
String resolved = (String) resolvedObject;
org.reuseware.air.language.abstractsyntax.InternalReference proxy = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInternalReference();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.InternalReference, org.reuseware.air.language.abstractsyntax.InternalReference>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInternalReferenceOppositeReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__OPPOSITE), resolved, proxy);
if (proxy != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__OPPOSITE), proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_7_0_0_3_0_0_1, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a4, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a4, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_30, 49, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_31, 49, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_32, 49, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 49));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 49));
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_30, 50, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_31, 50, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_32, 50, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 50));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 50));
}
// As.g:1888:2: ( (a5_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
int alt11=2;
int LA11_0 = input.LA(1);
if ( ((LA11_0>=24 && LA11_0<=26)) ) {
alt11=1;
}
switch (alt11) {
case 1 :
// As.g:1889:3: (a5_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
{
// As.g:1889:3: (a5_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
// As.g:1890:4: a5_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1468);
a5_0=parse_org_reuseware_air_language_abstractsyntax_Cardinality();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createInternalReference();
}
if (a5_0 != null) {
if (a5_0 != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__CARDINALITY), a5_0);
completedElement(a5_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_7_0_0_4, a5_0);
copyLocalizationInfos(a5_0, element); }
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 51));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 51));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 9, parse_org_reuseware_air_language_abstractsyntax_InternalReference_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_InternalReference"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_ExternalReference"
// As.g:1916:1: parse_org_reuseware_air_language_abstractsyntax_ExternalReference returns [org.reuseware.air.language.abstractsyntax.ExternalReference element = null] : (a0= TEXT ) a1= '::' (a2= QNAME ) ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? ;
public final org.reuseware.air.language.abstractsyntax.ExternalReference parse_org_reuseware_air_language_abstractsyntax_ExternalReference() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.ExternalReference element = null;
int parse_org_reuseware_air_language_abstractsyntax_ExternalReference_StartIndex = input.index();
Token a0=null;
Token a1=null;
Token a2=null;
org.reuseware.air.language.abstractsyntax.Cardinality a3_0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return element; }
// As.g:1919:1: ( (a0= TEXT ) a1= '::' (a2= QNAME ) ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )? )
// As.g:1920:2: (a0= TEXT ) a1= '::' (a2= QNAME ) ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
{
// As.g:1920:2: (a0= TEXT )
// As.g:1921:3: a0= TEXT
{
a0=(Token)match(input,TEXT,FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1513); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createExternalReference();
}
if (a0 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("TEXT");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__NAME), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a0).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a0).getStopIndex());
}
java.lang.String resolved = (java.lang.String)resolvedObject;
if (resolved != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__NAME), resolved);
completedElement(resolved, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_8_0_0_0, resolved);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a0, element);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_39, 52));
}
a1=(Token)match(input,22,FOLLOW_22_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1534); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createExternalReference();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_8_0_0_1, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a1, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_40, 53));
}
// As.g:1968:2: (a2= QNAME )
// As.g:1969:3: a2= QNAME
{
a2=(Token)match(input,QNAME,FOLLOW_QNAME_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1552); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createExternalReference();
}
if (a2 != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QNAME");
tokenResolver.setOptions(getOptions());
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolveResult result = getFreshTokenResolveResult();
tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__TYPE), result);
java.lang.Object resolvedObject = result.getResolvedToken();
if (resolvedObject == null) {
addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_2_0.CommonToken) a2).getLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getCharPositionInLine(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStartIndex(), ((org.antlr.runtime3_2_0.CommonToken) a2).getStopIndex());
}
String resolved = (String) resolvedObject;
org.eclipse.emf.ecore.EClass proxy = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEClass();
collectHiddenTokens(element);
registerContextDependentProxy(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsContextDependentURIFragmentFactory<org.reuseware.air.language.abstractsyntax.ExternalReference, org.eclipse.emf.ecore.EClass>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getExternalReferenceTypeReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__TYPE), resolved, proxy);
if (proxy != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__TYPE), proxy);
completedElement(proxy, false);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_8_0_0_2, proxy);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, element);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken) a2, proxy);
}
}
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_30, 54, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_31, 54, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_32, 54, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.FEATURE_4));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 54));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 54));
}
// As.g:2010:2: ( (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality ) )?
int alt12=2;
int LA12_0 = input.LA(1);
if ( ((LA12_0>=24 && LA12_0<=26)) ) {
alt12=1;
}
switch (alt12) {
case 1 :
// As.g:2011:3: (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
{
// As.g:2011:3: (a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality )
// As.g:2012:4: a3_0= parse_org_reuseware_air_language_abstractsyntax_Cardinality
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1582);
a3_0=parse_org_reuseware_air_language_abstractsyntax_Cardinality();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
if (terminateParsing) {
throw new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTerminateParsingException();
}
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createExternalReference();
}
if (a3_0 != null) {
if (a3_0 != null) {
element.eSet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__CARDINALITY), a3_0);
completedElement(a3_0, true);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_8_0_0_3, a3_0);
copyLocalizationInfos(a3_0, element); }
}
}
}
break;
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 55));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 55));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 10, parse_org_reuseware_air_language_abstractsyntax_ExternalReference_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_ExternalReference"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_PLUS"
// As.g:2038:1: parse_org_reuseware_air_language_abstractsyntax_PLUS returns [org.reuseware.air.language.abstractsyntax.PLUS element = null] : a0= '+' ;
public final org.reuseware.air.language.abstractsyntax.PLUS parse_org_reuseware_air_language_abstractsyntax_PLUS() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.PLUS element = null;
int parse_org_reuseware_air_language_abstractsyntax_PLUS_StartIndex = input.index();
Token a0=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return element; }
// As.g:2041:1: (a0= '+' )
// As.g:2042:2: a0= '+'
{
a0=(Token)match(input,24,FOLLOW_24_in_parse_org_reuseware_air_language_abstractsyntax_PLUS1623); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createPLUS();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_9_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a0, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 56));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 56));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 11, parse_org_reuseware_air_language_abstractsyntax_PLUS_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_PLUS"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_STAR"
// As.g:2059:1: parse_org_reuseware_air_language_abstractsyntax_STAR returns [org.reuseware.air.language.abstractsyntax.STAR element = null] : a0= '*' ;
public final org.reuseware.air.language.abstractsyntax.STAR parse_org_reuseware_air_language_abstractsyntax_STAR() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.STAR element = null;
int parse_org_reuseware_air_language_abstractsyntax_STAR_StartIndex = input.index();
Token a0=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return element; }
// As.g:2062:1: (a0= '*' )
// As.g:2063:2: a0= '*'
{
a0=(Token)match(input,25,FOLLOW_25_in_parse_org_reuseware_air_language_abstractsyntax_STAR1652); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createSTAR();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_10_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a0, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 57));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 57));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 12, parse_org_reuseware_air_language_abstractsyntax_STAR_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_STAR"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK"
// As.g:2080:1: parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK returns [org.reuseware.air.language.abstractsyntax.QUESTIONMARK element = null] : a0= '?' ;
public final org.reuseware.air.language.abstractsyntax.QUESTIONMARK parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.QUESTIONMARK element = null;
int parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK_StartIndex = input.index();
Token a0=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return element; }
// As.g:2083:1: (a0= '?' )
// As.g:2084:2: a0= '?'
{
a0=(Token)match(input,26,FOLLOW_26_in_parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK1681); if (state.failed) return element;
if ( state.backtracking==0 ) {
if (element == null) {
element = org.reuseware.air.language.abstractsyntax.AbstractsyntaxFactory.eINSTANCE.createQUESTIONMARK();
incompleteObjects.push(element);
}
collectHiddenTokens(element);
retrieveLayoutInformation(element, org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsGrammarInformationProvider.AS_11_0_0_0, null);
copyLocalizationInfos((org.antlr.runtime3_2_0.CommonToken)a0, element);
}
if ( state.backtracking==0 ) {
// expected elements (follow set)
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_21, 58));
addExpectedElement(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsExpectedTerminal(org.reuseware.air.language.abstractsyntax.resource.as.grammar.AsFollowSetProvider.TERMINAL_15, 58));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 13, parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_ASUnit"
// As.g:2101:1: parse_org_reuseware_air_language_abstractsyntax_ASUnit returns [org.reuseware.air.language.abstractsyntax.ASUnit element = null] : c0= parse_org_reuseware_air_language_abstractsyntax_ASProgram ;
public final org.reuseware.air.language.abstractsyntax.ASUnit parse_org_reuseware_air_language_abstractsyntax_ASUnit() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.ASUnit element = null;
int parse_org_reuseware_air_language_abstractsyntax_ASUnit_StartIndex = input.index();
org.reuseware.air.language.abstractsyntax.ASProgram c0 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return element; }
// As.g:2102:1: (c0= parse_org_reuseware_air_language_abstractsyntax_ASProgram )
// As.g:2103:2: c0= parse_org_reuseware_air_language_abstractsyntax_ASProgram
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ASProgram_in_parse_org_reuseware_air_language_abstractsyntax_ASUnit1706);
c0=parse_org_reuseware_air_language_abstractsyntax_ASProgram();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c0; /* this is a subclass or primitive expression choice */
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 14, parse_org_reuseware_air_language_abstractsyntax_ASUnit_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_ASUnit"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_ASStatement"
// As.g:2107:1: parse_org_reuseware_air_language_abstractsyntax_ASStatement returns [org.reuseware.air.language.abstractsyntax.ASStatement element = null] : (c0= parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition | c1= parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition );
public final org.reuseware.air.language.abstractsyntax.ASStatement parse_org_reuseware_air_language_abstractsyntax_ASStatement() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.ASStatement element = null;
int parse_org_reuseware_air_language_abstractsyntax_ASStatement_StartIndex = input.index();
org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition c0 = null;
org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition c1 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return element; }
// As.g:2108:1: (c0= parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition | c1= parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition )
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==TEXT) ) {
int LA13_1 = input.LA(2);
if ( (LA13_1==16||LA13_1==18) ) {
alt13=1;
}
else if ( (LA13_1==17) ) {
int LA13_3 = input.LA(3);
if ( (LA13_3==TEXT) ) {
int LA13_4 = input.LA(4);
if ( ((LA13_4>=21 && LA13_4<=22)) ) {
alt13=1;
}
else if ( ((LA13_4>=18 && LA13_4<=19)) ) {
alt13=2;
}
else {
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 13, 4, input);
throw nvae;
}
}
else if ( (LA13_3==20) ) {
alt13=1;
}
else {
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 13, 3, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 13, 1, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// As.g:2109:2: c0= parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_in_parse_org_reuseware_air_language_abstractsyntax_ASStatement1727);
c0=parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c0; /* this is a subclass or primitive expression choice */
}
}
break;
case 2 :
// As.g:2110:4: c1= parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition_in_parse_org_reuseware_air_language_abstractsyntax_ASStatement1737);
c1=parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c1; /* this is a subclass or primitive expression choice */
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 15, parse_org_reuseware_air_language_abstractsyntax_ASStatement_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_ASStatement"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_NodeFeature"
// As.g:2114:1: parse_org_reuseware_air_language_abstractsyntax_NodeFeature returns [org.reuseware.air.language.abstractsyntax.NodeFeature element = null] : (c0= parse_org_reuseware_air_language_abstractsyntax_Attribute | c1= parse_org_reuseware_air_language_abstractsyntax_Containment | c2= parse_org_reuseware_air_language_abstractsyntax_InternalReference | c3= parse_org_reuseware_air_language_abstractsyntax_ExternalReference );
public final org.reuseware.air.language.abstractsyntax.NodeFeature parse_org_reuseware_air_language_abstractsyntax_NodeFeature() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.NodeFeature element = null;
int parse_org_reuseware_air_language_abstractsyntax_NodeFeature_StartIndex = input.index();
org.reuseware.air.language.abstractsyntax.Attribute c0 = null;
org.reuseware.air.language.abstractsyntax.Containment c1 = null;
org.reuseware.air.language.abstractsyntax.InternalReference c2 = null;
org.reuseware.air.language.abstractsyntax.ExternalReference c3 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return element; }
// As.g:2115:1: (c0= parse_org_reuseware_air_language_abstractsyntax_Attribute | c1= parse_org_reuseware_air_language_abstractsyntax_Containment | c2= parse_org_reuseware_air_language_abstractsyntax_InternalReference | c3= parse_org_reuseware_air_language_abstractsyntax_ExternalReference )
int alt14=4;
int LA14_0 = input.LA(1);
if ( (LA14_0==20) ) {
alt14=1;
}
else if ( (LA14_0==TEXT) ) {
int LA14_2 = input.LA(2);
if ( (LA14_2==22) ) {
int LA14_3 = input.LA(3);
if ( (LA14_3==QNAME) ) {
alt14=4;
}
else if ( (LA14_3==TEXT) ) {
alt14=3;
}
else {
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 14, 3, input);
throw nvae;
}
}
else if ( (LA14_2==21) ) {
alt14=2;
}
else {
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 14, 2, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 14, 0, input);
throw nvae;
}
switch (alt14) {
case 1 :
// As.g:2116:2: c0= parse_org_reuseware_air_language_abstractsyntax_Attribute
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Attribute_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1758);
c0=parse_org_reuseware_air_language_abstractsyntax_Attribute();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c0; /* this is a subclass or primitive expression choice */
}
}
break;
case 2 :
// As.g:2117:4: c1= parse_org_reuseware_air_language_abstractsyntax_Containment
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Containment_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1768);
c1=parse_org_reuseware_air_language_abstractsyntax_Containment();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c1; /* this is a subclass or primitive expression choice */
}
}
break;
case 3 :
// As.g:2118:4: c2= parse_org_reuseware_air_language_abstractsyntax_InternalReference
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_InternalReference_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1778);
c2=parse_org_reuseware_air_language_abstractsyntax_InternalReference();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c2; /* this is a subclass or primitive expression choice */
}
}
break;
case 4 :
// As.g:2119:4: c3= parse_org_reuseware_air_language_abstractsyntax_ExternalReference
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ExternalReference_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1788);
c3=parse_org_reuseware_air_language_abstractsyntax_ExternalReference();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c3; /* this is a subclass or primitive expression choice */
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 16, parse_org_reuseware_air_language_abstractsyntax_NodeFeature_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_NodeFeature"
// $ANTLR start "parse_org_reuseware_air_language_abstractsyntax_Cardinality"
// As.g:2123:1: parse_org_reuseware_air_language_abstractsyntax_Cardinality returns [org.reuseware.air.language.abstractsyntax.Cardinality element = null] : (c0= parse_org_reuseware_air_language_abstractsyntax_PLUS | c1= parse_org_reuseware_air_language_abstractsyntax_STAR | c2= parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK );
public final org.reuseware.air.language.abstractsyntax.Cardinality parse_org_reuseware_air_language_abstractsyntax_Cardinality() throws RecognitionException {
org.reuseware.air.language.abstractsyntax.Cardinality element = null;
int parse_org_reuseware_air_language_abstractsyntax_Cardinality_StartIndex = input.index();
org.reuseware.air.language.abstractsyntax.PLUS c0 = null;
org.reuseware.air.language.abstractsyntax.STAR c1 = null;
org.reuseware.air.language.abstractsyntax.QUESTIONMARK c2 = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return element; }
// As.g:2124:1: (c0= parse_org_reuseware_air_language_abstractsyntax_PLUS | c1= parse_org_reuseware_air_language_abstractsyntax_STAR | c2= parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK )
int alt15=3;
switch ( input.LA(1) ) {
case 24:
{
alt15=1;
}
break;
case 25:
{
alt15=2;
}
break;
case 26:
{
alt15=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return element;}
NoViableAltException nvae =
new NoViableAltException("", 15, 0, input);
throw nvae;
}
switch (alt15) {
case 1 :
// As.g:2125:2: c0= parse_org_reuseware_air_language_abstractsyntax_PLUS
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_PLUS_in_parse_org_reuseware_air_language_abstractsyntax_Cardinality1809);
c0=parse_org_reuseware_air_language_abstractsyntax_PLUS();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c0; /* this is a subclass or primitive expression choice */
}
}
break;
case 2 :
// As.g:2126:4: c1= parse_org_reuseware_air_language_abstractsyntax_STAR
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_STAR_in_parse_org_reuseware_air_language_abstractsyntax_Cardinality1819);
c1=parse_org_reuseware_air_language_abstractsyntax_STAR();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c1; /* this is a subclass or primitive expression choice */
}
}
break;
case 3 :
// As.g:2127:4: c2= parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK
{
pushFollow(FOLLOW_parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK_in_parse_org_reuseware_air_language_abstractsyntax_Cardinality1829);
c2=parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK();
state._fsp--;
if (state.failed) return element;
if ( state.backtracking==0 ) {
element = c2; /* this is a subclass or primitive expression choice */
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
if ( state.backtracking>0 ) { memoize(input, 17, parse_org_reuseware_air_language_abstractsyntax_Cardinality_StartIndex); }
}
return element;
}
// $ANTLR end "parse_org_reuseware_air_language_abstractsyntax_Cardinality"
// Delegated rules
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax_in_start82 = new BitSet(new long[]{0x0000000000000000L});
public static final BitSet FOLLOW_EOF_in_start89 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_10_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax112 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax130 = new BitSet(new long[]{0x0000000000000800L});
public static final BitSet FOLLOW_11_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax151 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_QUOTED_60_62_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax169 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_12_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax190 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_QNAME_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax208 = new BitSet(new long[]{0x0000000000002010L});
public static final BitSet FOLLOW_13_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax238 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Import_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax264 = new BitSet(new long[]{0x0000000000006010L});
public static final BitSet FOLLOW_14_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax305 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Import_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax339 = new BitSet(new long[]{0x0000000000006010L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ASUnit_in_parse_org_reuseware_air_language_abstractsyntax_AbstractSyntax417 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_QUOTED_60_62_in_parse_org_reuseware_air_language_abstractsyntax_Import454 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_15_in_parse_org_reuseware_air_language_abstractsyntax_Import475 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Import493 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ASStatement_in_parse_org_reuseware_air_language_abstractsyntax_ASProgram538 = new BitSet(new long[]{0x0000000000002012L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition583 = new BitSet(new long[]{0x0000000000070000L});
public static final BitSet FOLLOW_16_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition613 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_QNAME_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition639 = new BitSet(new long[]{0x0000000000060000L});
public static final BitSet FOLLOW_17_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition694 = new BitSet(new long[]{0x0000000000100010L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_NodeFeature_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition720 = new BitSet(new long[]{0x0000000000044000L});
public static final BitSet FOLLOW_14_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition761 = new BitSet(new long[]{0x0000000000100010L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_NodeFeature_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition795 = new BitSet(new long[]{0x0000000000044000L});
public static final BitSet FOLLOW_18_in_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition869 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition902 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_17_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition923 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition941 = new BitSet(new long[]{0x00000000000C0000L});
public static final BitSet FOLLOW_19_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition971 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition997 = new BitSet(new long[]{0x00000000000C0000L});
public static final BitSet FOLLOW_18_in_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition1043 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_20_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1072 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1090 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_21_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1111 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1129 = new BitSet(new long[]{0x0000000007000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_Attribute1159 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Containment1204 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_21_in_parse_org_reuseware_air_language_abstractsyntax_Containment1225 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_Containment1243 = new BitSet(new long[]{0x0000000007000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_Containment1273 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1318 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_22_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1339 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1357 = new BitSet(new long[]{0x0000000007800002L});
public static final BitSet FOLLOW_23_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1387 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1413 = new BitSet(new long[]{0x0000000007000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_InternalReference1468 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TEXT_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1513 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_22_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1534 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_QNAME_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1552 = new BitSet(new long[]{0x0000000007000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Cardinality_in_parse_org_reuseware_air_language_abstractsyntax_ExternalReference1582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_24_in_parse_org_reuseware_air_language_abstractsyntax_PLUS1623 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_25_in_parse_org_reuseware_air_language_abstractsyntax_STAR1652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_26_in_parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK1681 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ASProgram_in_parse_org_reuseware_air_language_abstractsyntax_ASUnit1706 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_in_parse_org_reuseware_air_language_abstractsyntax_ASStatement1727 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition_in_parse_org_reuseware_air_language_abstractsyntax_ASStatement1737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Attribute_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1758 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_Containment_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1768 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_InternalReference_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1778 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_ExternalReference_in_parse_org_reuseware_air_language_abstractsyntax_NodeFeature1788 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_PLUS_in_parse_org_reuseware_air_language_abstractsyntax_Cardinality1809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_STAR_in_parse_org_reuseware_air_language_abstractsyntax_Cardinality1819 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parse_org_reuseware_air_language_abstractsyntax_QUESTIONMARK_in_parse_org_reuseware_air_language_abstractsyntax_Cardinality1829 = new BitSet(new long[]{0x0000000000000002L});
}