// $ANTLR 3.4 package org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp; import org.antlr.runtime3_4_0.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; @SuppressWarnings({"all", "warnings", "unchecked"}) public class MtextParser extends MtextANTLRParserBase { public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LINEBREAK", "QUOTED_34_34", "QUOTED_60_62", "TEXT", "WHITESPACE", "','", "'contains'", "'featuremodel'", "'view group'", "'viewmapping'", "'viewmodel'" }; public static final int EOF=-1; public static final int T__9=9; public static final int T__10=10; public static final int T__11=11; public static final int T__12=12; public static final int T__13=13; public static final int T__14=14; public static final int LINEBREAK=4; public static final int QUOTED_34_34=5; public static final int QUOTED_60_62=6; public static final int TEXT=7; public static final int WHITESPACE=8; // delegates public MtextANTLRParserBase[] getDelegates() { return new MtextANTLRParserBase[] {}; } // delegators public MtextParser(TokenStream input) { this(input, new RecognizerSharedState()); } public MtextParser(TokenStream input, RecognizerSharedState state) { super(input, state); this.state.initializeRuleMemo(5 + 1); } public String[] getTokenNames() { return MtextParser.tokenNames; } public String getGrammarFileName() { return "Mtext.g"; } private org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolverFactory tokenResolverFactory = new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextTokenResolverFactory(); /** * the index of the last token that was handled by collectHiddenTokens() */ private int lastPosition; /** * A flag that indicates 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 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.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal> expectedElements = new java.util.ArrayList<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal>(); private int mismatchedTokenRecoveryTries = 0; /** * A helper list to allow a lexer to pass errors to its parser */ protected java.util.List<org.antlr.runtime3_4_0.RecognitionException> lexerExceptions = java.util.Collections.synchronizedList(new java.util.ArrayList<org.antlr.runtime3_4_0.RecognitionException>()); /** * Another helper list to allow a lexer to pass positions of errors to its parser */ protected java.util.List<Integer> lexerExceptionsPosition = java.util.Collections.synchronizedList(new java.util.ArrayList<Integer>()); /** * A stack for incomplete objects. This stack is used filled 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 from * the stack. */ java.util.List<org.eclipse.emf.ecore.EObject> incompleteObjects = new java.util.ArrayList<org.eclipse.emf.ecore.EObject>(); private int stopIncludingHiddenTokens; private int stopExcludingHiddenTokens; private int tokenIndexOfLastCompleteElement; private int expectedElementsIndexOfLastCompleteElement; /** * The offset indicating the cursor position when the parser is used for code * completion by calling parseToExpectedElements(). */ private int cursorOffset; /** * The offset of the first hidden token of the last expected element. This offset * is used to discard expected elements, which are not needed for code completion. */ private int lastStartIncludingHidden; protected void addErrorToResource(final String errorMessage, final int column, final int line, final int startIndex, final int stopIndex) { postParseCommands.add(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextCommand<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource>() { public boolean execute(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource resource) { if (resource == null) { // the resource can be null if the parser is used for code completion return true; } resource.addProblem(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextProblem() { public org.feature.multi.perspective.mapping.viewmapping.resource.mtext.MtextEProblemSeverity getSeverity() { return org.feature.multi.perspective.mapping.viewmapping.resource.mtext.MtextEProblemSeverity.ERROR; } public org.feature.multi.perspective.mapping.viewmapping.resource.mtext.MtextEProblemType getType() { return org.feature.multi.perspective.mapping.viewmapping.resource.mtext.MtextEProblemType.SYNTAX_ERROR; } public String getMessage() { return errorMessage; } public java.util.Collection<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextQuickFix> getQuickFixes() { return null; } }, column, line, startIndex, stopIndex); return true; } }); } public void addExpectedElement(org.eclipse.emf.ecore.EClass eClass, int[] ids) { if (!this.rememberExpectedElements) { return; } int terminalID = ids[0]; int followSetID = ids[1]; org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextExpectedElement terminal = org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextFollowSetProvider.TERMINALS[terminalID]; org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContainedFeature[] containmentFeatures = new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContainedFeature[ids.length - 2]; for (int i = 2; i < ids.length; i++) { containmentFeatures[i - 2] = org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextFollowSetProvider.LINKS[ids[i]]; } org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextContainmentTrace containmentTrace = new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextContainmentTrace(eClass, containmentFeatures); org.eclipse.emf.ecore.EObject container = getLastIncompleteElement(); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal expectedElement = new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal(container, terminal, followSetID, containmentTrace); setPosition(expectedElement, input.index()); int startIncludingHiddenTokens = expectedElement.getStartIncludingHiddenTokens(); if (lastStartIncludingHidden >= 0 && lastStartIncludingHidden < startIncludingHiddenTokens && cursorOffset > startIncludingHiddenTokens) { // clear list of expected elements this.expectedElements.clear(); this.expectedElementsIndexOfLastCompleteElement = 0; } lastStartIncludingHidden = startIncludingHiddenTokens; this.expectedElements.add(expectedElement); } 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) { if (disableLocationMap) { return; } postParseCommands.add(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextCommand<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource>() { public boolean execute(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource resource) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextLocationMap 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_4_0.CommonToken source, final org.eclipse.emf.ecore.EObject target) { if (disableLocationMap) { return; } postParseCommands.add(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextCommand<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource>() { public boolean execute(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource resource) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextLocationMap 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.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextCommand<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource>> postParseCommands , final org.eclipse.emf.ecore.EObject object, final int endChar, final int endLine) { if (disableLocationMap) { return; } postParseCommands.add(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextCommand<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource>() { public boolean execute(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource resource) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextLocationMap 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.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextParser createInstance(java.io.InputStream actualInputStream, String encoding) { try { if (encoding == null) { return new MtextParser(new org.antlr.runtime3_4_0.CommonTokenStream(new MtextLexer(new org.antlr.runtime3_4_0.ANTLRInputStream(actualInputStream)))); } else { return new MtextParser(new org.antlr.runtime3_4_0.CommonTokenStream(new MtextLexer(new org.antlr.runtime3_4_0.ANTLRInputStream(actualInputStream, encoding)))); } } catch (java.io.IOException e) { new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.util.MtextRuntimeUtil().logError("Error while creating parser.", e); return null; } } /** * This default constructor is only used to call createInstance() on it. */ public MtextParser() { super(null); } protected org.eclipse.emf.ecore.EObject doParse() throws org.antlr.runtime3_4_0.RecognitionException { this.lastPosition = 0; // required because the lexer class can not be subclassed ((MtextLexer) getTokenStream().getTokenSource()).lexerExceptions = lexerExceptions; ((MtextLexer) getTokenStream().getTokenSource()).lexerExceptionsPosition = lexerExceptionsPosition; 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.feature.multi.perspective.mapping.viewmapping.MappingModel.class) { return parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel(); } if (type.getInstanceClass() == org.feature.multi.perspective.mapping.viewmapping.Mapping.class) { return parse_org_feature_multi_perspective_mapping_viewmapping_Mapping(); } } throw new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextUnexpectedContentTypeException(typeObject); } public int getMismatchedTokenRecoveryTries() { return mismatchedTokenRecoveryTries; } public Object getMissingSymbol(org.antlr.runtime3_4_0.IntStream arg0, org.antlr.runtime3_4_0.RecognitionException arg1, int arg2, org.antlr.runtime3_4_0.BitSet arg3) { mismatchedTokenRecoveryTries++; return super.getMissingSymbol(arg0, arg1, arg2, arg3); } public Object getParseToIndexTypeObject() { return parseToIndexTypeObject; } protected Object getTypeObject() { Object typeObject = getParseToIndexTypeObject(); if (typeObject != null) { return typeObject; } java.util.Map<?,?> options = getOptions(); if (options != null) { typeObject = options.get(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextOptions.RESOURCE_CONTENT_TYPE); } return typeObject; } /** * Implementation that calls {@link #doParse()} and handles the thrown * RecognitionExceptions. */ public org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextParseResult parse() { terminateParsing = false; postParseCommands = new java.util.ArrayList<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextCommand<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource>>(); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextParseResult parseResult = new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextParseResult(); try { org.eclipse.emf.ecore.EObject result = doParse(); if (lexerExceptions.isEmpty()) { parseResult.setRoot(result); } } catch (org.antlr.runtime3_4_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_4_0.RecognitionException re : lexerExceptions) { reportLexicalError(re); } parseResult.getPostParseCommands().addAll(postParseCommands); return parseResult; } public java.util.List<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal> parseToExpectedElements(org.eclipse.emf.ecore.EClass type, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource dummyResource, int cursorOffset) { this.rememberExpectedElements = true; this.parseToIndexTypeObject = type; this.cursorOffset = cursorOffset; this.lastStartIncludingHidden = -1; final org.antlr.runtime3_4_0.CommonTokenStream tokenStream = (org.antlr.runtime3_4_0.CommonTokenStream) getTokenStream(); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextParseResult result = parse(); for (org.eclipse.emf.ecore.EObject incompleteObject : incompleteObjects) { org.antlr.runtime3_4_0.Lexer lexer = (org.antlr.runtime3_4_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.getContentsInternal().add(root); } for (org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextCommand<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTextResource> 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.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal> currentFollowSet = new java.util.LinkedHashSet<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal>(); java.util.List<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal> newFollowSet = new java.util.ArrayList<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal>(); for (int i = expectedElementsIndexOfLastCompleteElement; i >= 0; i--) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal expectedElementI = expectedElements.get(i); if (expectedElementI.getFollowSetID() == lastFollowSetID) { currentFollowSet.add(expectedElementI); } else { break; } } int followSetID = 17; int i; for (i = tokenIndexOfLastCompleteElement; i < tokenStream.size(); i++) { org.antlr.runtime3_4_0.CommonToken nextToken = (org.antlr.runtime3_4_0.CommonToken) tokenStream.get(i); if (nextToken.getType() < 0) { break; } 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.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal 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.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal nextFollow : currentFollowSet) { if (nextFollow.getTerminal().getTokenNames().contains(getTokenNames()[nextToken.getType()])) { // keep this one - it matches java.util.Collection<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.util.MtextPair<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextExpectedElement, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContainedFeature[]>> newFollowers = nextFollow.getTerminal().getFollowers(); for (org.feature.multi.perspective.mapping.viewmapping.resource.mtext.util.MtextPair<org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextExpectedElement, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContainedFeature[]> newFollowerPair : newFollowers) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextExpectedElement newFollower = newFollowerPair.getLeft(); org.eclipse.emf.ecore.EObject container = getLastIncompleteElement(); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextContainmentTrace containmentTrace = new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextContainmentTrace(null, newFollowerPair.getRight()); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal newFollowTerminal = new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal(container, newFollower, followSetID, containmentTrace); 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.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal nextFollow : newFollowSet) { lastTokenIndex = 0; setPosition(nextFollow, i); } return this.expectedElements; } public void setPosition(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectedTerminal expectedElement, int tokenIndex) { int currentIndex = Math.max(0, tokenIndex); for (int index = lastTokenIndex; index < currentIndex; index++) { if (index >= input.size()) { break; } org.antlr.runtime3_4_0.CommonToken tokenAtIndex = (org.antlr.runtime3_4_0.CommonToken) input.get(index); stopIncludingHiddenTokens = tokenAtIndex.getStopIndex() + 1; if (tokenAtIndex.getChannel() != 99 && !anonymousTokens.contains(tokenAtIndex)) { stopExcludingHiddenTokens = tokenAtIndex.getStopIndex() + 1; } } lastTokenIndex = Math.max(0, currentIndex); expectedElement.setPosition(stopExcludingHiddenTokens, stopIncludingHiddenTokens); } public Object recoverFromMismatchedToken(org.antlr.runtime3_4_0.IntStream input, int ttype, org.antlr.runtime3_4_0.BitSet follow) throws org.antlr.runtime3_4_0.RecognitionException { if (!rememberExpectedElements) { return super.recoverFromMismatchedToken(input, ttype, follow); } else { return null; } } /** * Translates errors thrown by the parser into human readable messages. */ public void reportError(final org.antlr.runtime3_4_0.RecognitionException e) { String message = e.getMessage(); if (e instanceof org.antlr.runtime3_4_0.MismatchedTokenException) { org.antlr.runtime3_4_0.MismatchedTokenException mte = (org.antlr.runtime3_4_0.MismatchedTokenException) e; String expectedTokenName = formatTokenName(mte.expecting); String actualTokenName = formatTokenName(e.token.getType()); message = "Syntax error on token \"" + e.token.getText() + " (" + actualTokenName + ")\", \"" + expectedTokenName + "\" expected"; } else if (e instanceof org.antlr.runtime3_4_0.MismatchedTreeNodeException) { org.antlr.runtime3_4_0.MismatchedTreeNodeException mtne = (org.antlr.runtime3_4_0.MismatchedTreeNodeException) e; String expectedTokenName = formatTokenName(mtne.expecting); message = "mismatched tree node: " + "xxx" + "; tokenName " + expectedTokenName; } else if (e instanceof org.antlr.runtime3_4_0.NoViableAltException) { message = "Syntax error on token \"" + e.token.getText() + "\", check following tokens"; } else if (e instanceof org.antlr.runtime3_4_0.EarlyExitException) { message = "Syntax error on token \"" + e.token.getText() + "\", delete this token"; } else if (e instanceof org.antlr.runtime3_4_0.MismatchedSetException) { org.antlr.runtime3_4_0.MismatchedSetException mse = (org.antlr.runtime3_4_0.MismatchedSetException) e; message = "mismatched token: " + e.token + "; expecting set " + mse.expecting; } else if (e instanceof org.antlr.runtime3_4_0.MismatchedNotSetException) { org.antlr.runtime3_4_0.MismatchedNotSetException mse = (org.antlr.runtime3_4_0.MismatchedNotSetException) e; message = "mismatched token: " + e.token + "; expecting set " + mse.expecting; } else if (e instanceof org.antlr.runtime3_4_0.FailedPredicateException) { org.antlr.runtime3_4_0.FailedPredicateException fpe = (org.antlr.runtime3_4_0.FailedPredicateException) e; message = "rule " + fpe.ruleName + " failed predicate: {" + fpe.predicateText + "}?"; } // the resource may be null if the parser is used for code completion final String finalMessage = message; if (e.token instanceof org.antlr.runtime3_4_0.CommonToken) { final org.antlr.runtime3_4_0.CommonToken ct = (org.antlr.runtime3_4_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_4_0.RecognitionException e) { String message = ""; if (e instanceof org.antlr.runtime3_4_0.MismatchedTokenException) { org.antlr.runtime3_4_0.MismatchedTokenException mte = (org.antlr.runtime3_4_0.MismatchedTokenException) e; message = "Syntax error on token \"" + ((char) e.c) + "\", \"" + (char) mte.expecting + "\" expected"; } else if (e instanceof org.antlr.runtime3_4_0.NoViableAltException) { message = "Syntax error on token \"" + ((char) e.c) + "\", delete this token"; } else if (e instanceof org.antlr.runtime3_4_0.EarlyExitException) { org.antlr.runtime3_4_0.EarlyExitException eee = (org.antlr.runtime3_4_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_4_0.MismatchedSetException) { org.antlr.runtime3_4_0.MismatchedSetException mse = (org.antlr.runtime3_4_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_4_0.MismatchedNotSetException) { org.antlr.runtime3_4_0.MismatchedNotSetException mse = (org.antlr.runtime3_4_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_4_0.MismatchedRangeException) { org.antlr.runtime3_4_0.MismatchedRangeException mre = (org.antlr.runtime3_4_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_4_0.FailedPredicateException) { org.antlr.runtime3_4_0.FailedPredicateException fpe = (org.antlr.runtime3_4_0.FailedPredicateException) e; message = "rule " + fpe.ruleName + " failed predicate: {" + fpe.predicateText + "}?"; } addErrorToResource(message, e.charPositionInLine, e.line, lexerExceptionsPosition.get(lexerExceptions.indexOf(e)), lexerExceptionsPosition.get(lexerExceptions.indexOf(e))); } private void startIncompleteElement(Object object) { if (object instanceof org.eclipse.emf.ecore.EObject) { this.incompleteObjects.add((org.eclipse.emf.ecore.EObject) object); } } private void completedElement(Object object, boolean isContainment) { if (isContainment && !this.incompleteObjects.isEmpty()) { boolean exists = this.incompleteObjects.remove(object); if (!exists) { } } if (object instanceof org.eclipse.emf.ecore.EObject) { this.tokenIndexOfLastCompleteElement = getTokenStream().index(); this.expectedElementsIndexOfLastCompleteElement = expectedElements.size() - 1; } } private org.eclipse.emf.ecore.EObject getLastIncompleteElement() { if (incompleteObjects.isEmpty()) { return null; } return incompleteObjects.get(incompleteObjects.size() - 1); } // $ANTLR start "start" // Mtext.g:502:1: start returns [ org.eclipse.emf.ecore.EObject element = null] : (c0= parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel ) EOF ; public final org.eclipse.emf.ecore.EObject start() throws RecognitionException { org.eclipse.emf.ecore.EObject element = null; int start_StartIndex = input.index(); org.feature.multi.perspective.mapping.viewmapping.MappingModel c0 =null; try { if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return element; } // Mtext.g:503:2: ( (c0= parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel ) EOF ) // Mtext.g:504:2: (c0= parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel ) EOF { if ( state.backtracking==0 ) { // follow set for start rule(s) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[0]); expectedElementsIndexOfLastCompleteElement = 0; } // Mtext.g:509:2: (c0= parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel ) // Mtext.g:510:3: c0= parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel { pushFollow(FOLLOW_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel_in_start82); c0=parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel(); 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; if ( state.backtracking==0 ) { retrieveLayoutInformation(element, null, null, false); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving if ( state.backtracking>0 ) { memoize(input, 1, start_StartIndex); } } return element; } // $ANTLR end "start" // $ANTLR start "parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel" // Mtext.g:518:1: parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel returns [org.feature.multi.perspective.mapping.viewmapping.MappingModel element = null] : a0= 'viewmapping' (a1= 'featuremodel' (a2= QUOTED_60_62 ) ) (a3= 'viewmodel' (a4= QUOTED_60_62 ) ) ( ( (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) )* ) ; public final org.feature.multi.perspective.mapping.viewmapping.MappingModel parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel() throws RecognitionException { org.feature.multi.perspective.mapping.viewmapping.MappingModel element = null; int parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel_StartIndex = input.index(); Token a0=null; Token a1=null; Token a2=null; Token a3=null; Token a4=null; org.feature.multi.perspective.mapping.viewmapping.Mapping a5_0 =null; try { if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return element; } // Mtext.g:521:2: (a0= 'viewmapping' (a1= 'featuremodel' (a2= QUOTED_60_62 ) ) (a3= 'viewmodel' (a4= QUOTED_60_62 ) ) ( ( (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) )* ) ) // Mtext.g:522:2: a0= 'viewmapping' (a1= 'featuremodel' (a2= QUOTED_60_62 ) ) (a3= 'viewmodel' (a4= QUOTED_60_62 ) ) ( ( (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) )* ) { a0=(Token)match(input,13,FOLLOW_13_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel115); if (state.failed) return element; if ( state.backtracking==0 ) { if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMappingModel(); startIncompleteElement(element); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_0_0_0_0, null, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken)a0, element); } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[1]); } // Mtext.g:536:2: (a1= 'featuremodel' (a2= QUOTED_60_62 ) ) // Mtext.g:537:3: a1= 'featuremodel' (a2= QUOTED_60_62 ) { a1=(Token)match(input,11,FOLLOW_11_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel133); if (state.failed) return element; if ( state.backtracking==0 ) { if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMappingModel(); startIncompleteElement(element); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_0_0_0_3_0_0_0, null, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken)a1, element); } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[2]); } // Mtext.g:551:3: (a2= QUOTED_60_62 ) // Mtext.g:552:4: a2= QUOTED_60_62 { a2=(Token)match(input,QUOTED_60_62,FOLLOW_QUOTED_60_62_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel155); if (state.failed) return element; if ( state.backtracking==0 ) { if (terminateParsing) { throw new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextTerminateParsingException(); } if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMappingModel(); startIncompleteElement(element); } if (a2 != null) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QUOTED_60_62"); tokenResolver.setOptions(getOptions()); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolveResult result = getFreshTokenResolveResult(); tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING_MODEL__FEATURE_MODEL), result); Object resolvedObject = result.getResolvedToken(); if (resolvedObject == null) { addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_4_0.CommonToken) a2).getLine(), ((org.antlr.runtime3_4_0.CommonToken) a2).getCharPositionInLine(), ((org.antlr.runtime3_4_0.CommonToken) a2).getStartIndex(), ((org.antlr.runtime3_4_0.CommonToken) a2).getStopIndex()); } String resolved = (String) resolvedObject; org.js.model.feature.FeatureModel proxy = org.js.model.feature.FeatureFactory.eINSTANCE.createFeatureModel(); collectHiddenTokens(element); registerContextDependentProxy(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContextDependentURIFragmentFactory<org.feature.multi.perspective.mapping.viewmapping.MappingModel, org.js.model.feature.FeatureModel>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getMappingModelFeatureModelReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING_MODEL__FEATURE_MODEL), resolved, proxy); if (proxy != null) { Object value = proxy; element.eSet(element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING_MODEL__FEATURE_MODEL), value); completedElement(value, false); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_0_0_0_3_0_0_2, proxy, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a2, element); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a2, proxy); } } } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[3]); } } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[4]); } // Mtext.g:597:2: (a3= 'viewmodel' (a4= QUOTED_60_62 ) ) // Mtext.g:598:3: a3= 'viewmodel' (a4= QUOTED_60_62 ) { a3=(Token)match(input,14,FOLLOW_14_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel193); if (state.failed) return element; if ( state.backtracking==0 ) { if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMappingModel(); startIncompleteElement(element); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_0_0_0_6_0_0_0, null, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken)a3, element); } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[5]); } // Mtext.g:612:3: (a4= QUOTED_60_62 ) // Mtext.g:613:4: a4= QUOTED_60_62 { a4=(Token)match(input,QUOTED_60_62,FOLLOW_QUOTED_60_62_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel215); if (state.failed) return element; if ( state.backtracking==0 ) { if (terminateParsing) { throw new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextTerminateParsingException(); } if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMappingModel(); startIncompleteElement(element); } if (a4 != null) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QUOTED_60_62"); tokenResolver.setOptions(getOptions()); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolveResult result = getFreshTokenResolveResult(); tokenResolver.resolve(a4.getText(), element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING_MODEL__VIEW_MODEL), result); Object resolvedObject = result.getResolvedToken(); if (resolvedObject == null) { addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_4_0.CommonToken) a4).getLine(), ((org.antlr.runtime3_4_0.CommonToken) a4).getCharPositionInLine(), ((org.antlr.runtime3_4_0.CommonToken) a4).getStartIndex(), ((org.antlr.runtime3_4_0.CommonToken) a4).getStopIndex()); } String resolved = (String) resolvedObject; org.feature.multi.perspective.model.viewmodel.GroupModel proxy = org.feature.multi.perspective.model.viewmodel.ViewmodelFactory.eINSTANCE.createGroupModel(); collectHiddenTokens(element); registerContextDependentProxy(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContextDependentURIFragmentFactory<org.feature.multi.perspective.mapping.viewmapping.MappingModel, org.feature.multi.perspective.model.viewmodel.GroupModel>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getMappingModelViewModelReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING_MODEL__VIEW_MODEL), resolved, proxy); if (proxy != null) { Object value = proxy; element.eSet(element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING_MODEL__VIEW_MODEL), value); completedElement(value, false); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_0_0_0_6_0_0_2, proxy, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a4, element); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a4, proxy); } } } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.eINSTANCE.getMappingModel(), org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[6]); } } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.eINSTANCE.getMappingModel(), org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[7]); } // Mtext.g:658:2: ( ( (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) )* ) // Mtext.g:659:3: ( (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) )* { // Mtext.g:659:3: ( (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); if ( (LA1_0==12) ) { alt1=1; } switch (alt1) { case 1 : // Mtext.g:660:4: (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) { // Mtext.g:660:4: (a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping ) // Mtext.g:661:5: a5_0= parse_org_feature_multi_perspective_mapping_viewmapping_Mapping { pushFollow(FOLLOW_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel264); a5_0=parse_org_feature_multi_perspective_mapping_viewmapping_Mapping(); state._fsp--; if (state.failed) return element; if ( state.backtracking==0 ) { if (terminateParsing) { throw new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextTerminateParsingException(); } if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMappingModel(); startIncompleteElement(element); } if (a5_0 != null) { if (a5_0 != null) { Object value = a5_0; addObjectToList(element, org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING_MODEL__MAPPINGS, value); completedElement(value, true); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_0_0_0_9_0_0_0, a5_0, true); copyLocalizationInfos(a5_0, element); } } } } break; default : break loop1; } } while (true); if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.eINSTANCE.getMappingModel(), org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[8]); } } if ( state.backtracking==0 ) { // expected elements (follow set) } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving if ( state.backtracking>0 ) { memoize(input, 2, parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel_StartIndex); } } return element; } // $ANTLR end "parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel" // $ANTLR start "parse_org_feature_multi_perspective_mapping_viewmapping_Mapping" // Mtext.g:694:1: parse_org_feature_multi_perspective_mapping_viewmapping_Mapping returns [org.feature.multi.perspective.mapping.viewmapping.Mapping element = null] : a0= 'view group' (a1= QUOTED_34_34 ) a2= 'contains' (a3= QUOTED_34_34 ) ( (a4= ',' (a5= QUOTED_34_34 ) ) )* ; public final org.feature.multi.perspective.mapping.viewmapping.Mapping parse_org_feature_multi_perspective_mapping_viewmapping_Mapping() throws RecognitionException { org.feature.multi.perspective.mapping.viewmapping.Mapping element = null; int parse_org_feature_multi_perspective_mapping_viewmapping_Mapping_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, 3) ) { return element; } // Mtext.g:697:2: (a0= 'view group' (a1= QUOTED_34_34 ) a2= 'contains' (a3= QUOTED_34_34 ) ( (a4= ',' (a5= QUOTED_34_34 ) ) )* ) // Mtext.g:698:2: a0= 'view group' (a1= QUOTED_34_34 ) a2= 'contains' (a3= QUOTED_34_34 ) ( (a4= ',' (a5= QUOTED_34_34 ) ) )* { a0=(Token)match(input,12,FOLLOW_12_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping319); if (state.failed) return element; if ( state.backtracking==0 ) { if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMapping(); startIncompleteElement(element); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_1_0_0_0, null, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken)a0, element); } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[9]); } // Mtext.g:712:2: (a1= QUOTED_34_34 ) // Mtext.g:713:3: a1= QUOTED_34_34 { a1=(Token)match(input,QUOTED_34_34,FOLLOW_QUOTED_34_34_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping337); if (state.failed) return element; if ( state.backtracking==0 ) { if (terminateParsing) { throw new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextTerminateParsingException(); } if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMapping(); startIncompleteElement(element); } if (a1 != null) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QUOTED_34_34"); tokenResolver.setOptions(getOptions()); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolveResult result = getFreshTokenResolveResult(); tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__VIEWGROUP), result); Object resolvedObject = result.getResolvedToken(); if (resolvedObject == null) { addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_4_0.CommonToken) a1).getLine(), ((org.antlr.runtime3_4_0.CommonToken) a1).getCharPositionInLine(), ((org.antlr.runtime3_4_0.CommonToken) a1).getStartIndex(), ((org.antlr.runtime3_4_0.CommonToken) a1).getStopIndex()); } String resolved = (String) resolvedObject; org.feature.multi.perspective.model.viewmodel.AbstractGroup proxy = org.feature.multi.perspective.model.viewmodel.ViewmodelFactory.eINSTANCE.createAbstractGroup(); collectHiddenTokens(element); registerContextDependentProxy(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContextDependentURIFragmentFactory<org.feature.multi.perspective.mapping.viewmapping.Mapping, org.feature.multi.perspective.model.viewmodel.AbstractGroup>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getMappingViewgroupReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__VIEWGROUP), resolved, proxy); if (proxy != null) { Object value = proxy; element.eSet(element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__VIEWGROUP), value); completedElement(value, false); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_1_0_0_2, proxy, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a1, element); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a1, proxy); } } } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[10]); } a2=(Token)match(input,10,FOLLOW_10_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping358); if (state.failed) return element; if ( state.backtracking==0 ) { if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMapping(); startIncompleteElement(element); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_1_0_0_4, null, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken)a2, element); } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[11]); } // Mtext.g:766:2: (a3= QUOTED_34_34 ) // Mtext.g:767:3: a3= QUOTED_34_34 { a3=(Token)match(input,QUOTED_34_34,FOLLOW_QUOTED_34_34_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping376); if (state.failed) return element; if ( state.backtracking==0 ) { if (terminateParsing) { throw new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextTerminateParsingException(); } if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMapping(); startIncompleteElement(element); } if (a3 != null) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QUOTED_34_34"); tokenResolver.setOptions(getOptions()); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolveResult result = getFreshTokenResolveResult(); tokenResolver.resolve(a3.getText(), element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__FEATURES), result); Object resolvedObject = result.getResolvedToken(); if (resolvedObject == null) { addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_4_0.CommonToken) a3).getLine(), ((org.antlr.runtime3_4_0.CommonToken) a3).getCharPositionInLine(), ((org.antlr.runtime3_4_0.CommonToken) a3).getStartIndex(), ((org.antlr.runtime3_4_0.CommonToken) a3).getStopIndex()); } String resolved = (String) resolvedObject; org.js.model.feature.Feature proxy = org.js.model.feature.FeatureFactory.eINSTANCE.createFeature(); collectHiddenTokens(element); registerContextDependentProxy(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContextDependentURIFragmentFactory<org.feature.multi.perspective.mapping.viewmapping.Mapping, org.js.model.feature.Feature>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getMappingFeaturesReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__FEATURES), resolved, proxy); if (proxy != null) { Object value = proxy; addObjectToList(element, org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__FEATURES, value); completedElement(value, false); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_1_0_0_7, proxy, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a3, element); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a3, proxy); } } } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[12]); addExpectedElement(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.eINSTANCE.getMappingModel(), org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[13]); } // Mtext.g:807:2: ( (a4= ',' (a5= QUOTED_34_34 ) ) )* loop2: do { int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==9) ) { alt2=1; } switch (alt2) { case 1 : // Mtext.g:808:3: (a4= ',' (a5= QUOTED_34_34 ) ) { // Mtext.g:808:3: (a4= ',' (a5= QUOTED_34_34 ) ) // Mtext.g:809:4: a4= ',' (a5= QUOTED_34_34 ) { a4=(Token)match(input,9,FOLLOW_9_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping406); if (state.failed) return element; if ( state.backtracking==0 ) { if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMapping(); startIncompleteElement(element); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_1_0_0_8_0_0_1, null, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken)a4, element); } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[14]); } // Mtext.g:823:4: (a5= QUOTED_34_34 ) // Mtext.g:824:5: a5= QUOTED_34_34 { a5=(Token)match(input,QUOTED_34_34,FOLLOW_QUOTED_34_34_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping432); if (state.failed) return element; if ( state.backtracking==0 ) { if (terminateParsing) { throw new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextTerminateParsingException(); } if (element == null) { element = org.feature.multi.perspective.mapping.viewmapping.ViewmappingFactory.eINSTANCE.createMapping(); startIncompleteElement(element); } if (a5 != null) { org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("QUOTED_34_34"); tokenResolver.setOptions(getOptions()); org.feature.multi.perspective.mapping.viewmapping.resource.mtext.IMtextTokenResolveResult result = getFreshTokenResolveResult(); tokenResolver.resolve(a5.getText(), element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__FEATURES), result); Object resolvedObject = result.getResolvedToken(); if (resolvedObject == null) { addErrorToResource(result.getErrorMessage(), ((org.antlr.runtime3_4_0.CommonToken) a5).getLine(), ((org.antlr.runtime3_4_0.CommonToken) a5).getCharPositionInLine(), ((org.antlr.runtime3_4_0.CommonToken) a5).getStartIndex(), ((org.antlr.runtime3_4_0.CommonToken) a5).getStopIndex()); } String resolved = (String) resolvedObject; org.js.model.feature.Feature proxy = org.js.model.feature.FeatureFactory.eINSTANCE.createFeature(); collectHiddenTokens(element); registerContextDependentProxy(new org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextContextDependentURIFragmentFactory<org.feature.multi.perspective.mapping.viewmapping.Mapping, org.js.model.feature.Feature>(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getMappingFeaturesReferenceResolver()), element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__FEATURES), resolved, proxy); if (proxy != null) { Object value = proxy; addObjectToList(element, org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.MAPPING__FEATURES, value); completedElement(value, false); } collectHiddenTokens(element); retrieveLayoutInformation(element, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.grammar.MtextGrammarInformationProvider.MTEXT_1_0_0_8_0_0_3, proxy, true); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a5, element); copyLocalizationInfos((org.antlr.runtime3_4_0.CommonToken) a5, proxy); } } } if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[15]); addExpectedElement(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.eINSTANCE.getMappingModel(), org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[16]); } } } break; default : break loop2; } } while (true); if ( state.backtracking==0 ) { // expected elements (follow set) addExpectedElement(null, org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[17]); addExpectedElement(org.feature.multi.perspective.mapping.viewmapping.ViewmappingPackage.eINSTANCE.getMappingModel(), org.feature.multi.perspective.mapping.viewmapping.resource.mtext.mopp.MtextExpectationConstants.EXPECTATIONS[18]); } } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { // do for sure before leaving if ( state.backtracking>0 ) { memoize(input, 3, parse_org_feature_multi_perspective_mapping_viewmapping_Mapping_StartIndex); } } return element; } // $ANTLR end "parse_org_feature_multi_perspective_mapping_viewmapping_Mapping" // Delegated rules public static final BitSet FOLLOW_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel_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_13_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel115 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_11_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel133 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_QUOTED_60_62_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel155 = new BitSet(new long[]{0x0000000000004000L}); public static final BitSet FOLLOW_14_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel193 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_QUOTED_60_62_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel215 = new BitSet(new long[]{0x0000000000001002L}); public static final BitSet FOLLOW_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping_in_parse_org_feature_multi_perspective_mapping_viewmapping_MappingModel264 = new BitSet(new long[]{0x0000000000001002L}); public static final BitSet FOLLOW_12_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping319 = new BitSet(new long[]{0x0000000000000020L}); public static final BitSet FOLLOW_QUOTED_34_34_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping337 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_10_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping358 = new BitSet(new long[]{0x0000000000000020L}); public static final BitSet FOLLOW_QUOTED_34_34_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping376 = new BitSet(new long[]{0x0000000000000202L}); public static final BitSet FOLLOW_9_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping406 = new BitSet(new long[]{0x0000000000000020L}); public static final BitSet FOLLOW_QUOTED_34_34_in_parse_org_feature_multi_perspective_mapping_viewmapping_Mapping432 = new BitSet(new long[]{0x0000000000000202L}); }