| /** |
| * Essential OCL Grammar |
| * <copyright> |
| * |
| * Copyright (c) 2005, 2010 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM - Initial API and implementation |
| * E.D.Willink - Elimination of some shift-reduce conflicts |
| * E.D.Willink - Remove unnecessary warning suppression |
| * E.D.Willink - Bugs 184048, 225493, 243976, 259818, 282882, 287993, 288040, 292112, 295166 |
| * Borland - Bug 242880 |
| * Adolfo Sanchez-Barbudo Herrera (Open Canarias): |
| * - 242153: LPG v 2.0.17 adoption. |
| * - 299396: Introducing new LPG templates |
| * - 300534: Removing the use of deprecated macros. |
| * </copyright> |
| * |
| * $Id: EssentialOCL.gi,v 1.5 2010/02/11 15:40:41 sboyko Exp $ |
| */ |
| /** |
| * <copyright> |
| * |
| * Copyright (c) 2006, 2013 Borland Inc. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Borland - Initial API and implementation |
| * Adolfo Sanchez-Barbudo Herrera (Open Canarias) - LPG v 2.0.17 adoption (297966) |
| * Alex Paperno - bugs 314443, 274105, 274505, 419299 |
| * |
| * </copyright> |
| * |
| */ |
| /** |
| * <copyright> |
| * |
| * Copyright (c) 2006, 2013 Borland Inc. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Borland - Initial API and implementation |
| * Adolfo Sanchez-Barbudo Herrera (Open Canarias) - LPG v 2.0.17 adoption (297966) |
| * Alex Paperno - bugs 392429, 419299 |
| * |
| * </copyright> |
| * |
| */ |
| |
| package org.eclipse.m2m.internal.qvt.oml.cst.completion.parser; |
| |
| import lpg.runtime.*; |
| import org.eclipse.emf.common.util.BasicEList; |
| import org.eclipse.emf.common.util.EList; |
| import org.eclipse.ocl.cst.BooleanLiteralExpCS; |
| import org.eclipse.ocl.cst.CSTNode; |
| import org.eclipse.ocl.cst.CallExpCS; |
| import org.eclipse.ocl.cst.CollectionLiteralExpCS; |
| import org.eclipse.ocl.cst.CollectionLiteralPartCS; |
| import org.eclipse.ocl.cst.CollectionTypeCS; |
| import org.eclipse.ocl.cst.CollectionTypeIdentifierEnum; |
| import org.eclipse.ocl.cst.FeatureCallExpCS; |
| import org.eclipse.ocl.cst.IfExpCS; |
| import org.eclipse.ocl.cst.IntegerLiteralExpCS; |
| import org.eclipse.ocl.cst.InvalidLiteralExpCS; |
| import org.eclipse.ocl.cst.IsMarkedPreCS; |
| import org.eclipse.ocl.cst.IterateExpCS; |
| import org.eclipse.ocl.cst.IteratorExpCS; |
| import org.eclipse.ocl.cst.LetExpCS; |
| import org.eclipse.ocl.cst.NullLiteralExpCS; |
| import org.eclipse.ocl.cst.OCLExpressionCS; |
| import org.eclipse.ocl.cst.OperationCallExpCS; |
| import org.eclipse.ocl.cst.PathNameCS; |
| import org.eclipse.ocl.cst.PrimitiveTypeCS; |
| import org.eclipse.ocl.cst.RealLiteralExpCS; |
| import org.eclipse.ocl.cst.SimpleNameCS; |
| import org.eclipse.ocl.cst.SimpleTypeEnum; |
| import org.eclipse.ocl.cst.StringLiteralExpCS; |
| import org.eclipse.ocl.cst.TupleLiteralExpCS; |
| import org.eclipse.ocl.cst.TupleTypeCS; |
| import org.eclipse.ocl.cst.TypeCS; |
| import org.eclipse.ocl.cst.UnlimitedNaturalLiteralExpCS; |
| import org.eclipse.ocl.cst.VariableCS; |
| import org.eclipse.ocl.cst.VariableExpCS; |
| import org.eclipse.ocl.lpg.DerivedPrsStream; |
| |
| import lpg.runtime.BadParseException; |
| import lpg.runtime.BadParseSymFileException; |
| import lpg.runtime.DiagnoseParser; |
| import lpg.runtime.ErrorToken; |
| import lpg.runtime.IToken; |
| import lpg.runtime.ILexStream; |
| import lpg.runtime.Monitor; |
| import lpg.runtime.NullExportedSymbolsException; |
| import lpg.runtime.NullTerminalSymbolsException; |
| import lpg.runtime.ParseTable; |
| import lpg.runtime.RuleAction; |
| import lpg.runtime.UndefinedEofSymbolException; |
| import lpg.runtime.UnimplementedTerminalsException; |
| |
| import org.eclipse.ocl.ParserException; |
| import lpg.runtime.Token; |
| import lpg.runtime.BacktrackingParser; |
| import lpg.runtime.PrsStream; |
| import lpg.runtime.NotBacktrackParseTableException; |
| import lpg.runtime.NullExportedSymbolsException; |
| import lpg.runtime.NullTerminalSymbolsException; |
| import lpg.runtime.UndefinedEofSymbolException; |
| import lpg.runtime.UnimplementedTerminalsException; |
| import org.eclipse.m2m.internal.qvt.oml.cst.AssertExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.AssignStatementCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.LogExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.BlockExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ReturnExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.SwitchAltExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ScopedNameCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ForExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ImperativeIterateExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.SwitchExpCS; |
| |
| import org.eclipse.m2m.internal.qvt.oml.cst.CompleteSignatureCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.DictLiteralPartCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.DirectionKindCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.DirectionKindEnum; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingBodyCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingDeclarationCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingEndCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingInitCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingExtensionCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingModuleCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingRuleCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingQueryCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ConstructorCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MappingSectionsCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ModuleUsageCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ObjectExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ModelTypeCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.SimpleSignatureCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ResolveOpArgsExpCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ModuleKindEnum; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ModuleKindCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ModuleRefCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ImportKindEnum; |
| import org.eclipse.m2m.internal.qvt.oml.cst.ParameterDeclarationCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.TransformationRefineCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.TransformationHeaderCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.TypeSpecCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.MultiplicityDefCS; |
| import org.eclipse.m2m.internal.qvt.oml.cst.OppositePropertyCS; |
| import org.eclipse.ocl.cst.PrimitiveLiteralExpCS; |
| import org.eclipse.ocl.cst.LiteralExpCS; |
| import org.eclipse.ocl.cst.DotOrArrowEnum; |
| import org.eclipse.ocl.util.OCLStandardLibraryUtil; |
| import org.eclipse.ocl.utilities.PredefinedType; |
| import org.eclipse.ocl.Environment; |
| |
| import org.eclipse.m2m.internal.qvt.oml.cst.parser.QVTOParserprs; |
| import org.eclipse.m2m.internal.qvt.oml.cst.parser.QVTOParsersym; |
| import org.eclipse.m2m.internal.qvt.oml.cst.parser.QVTOLexer; |
| import org.eclipse.m2m.internal.qvt.oml.cst.parser.AbstractQVTParser; |
| |
| public class LightweightTypeParser extends AbstractQVTParser implements RuleAction |
| { |
| private DerivedPrsStream prsStream = null; |
| |
| private boolean unimplementedSymbolsWarning = false; |
| |
| private static ParseTable prsTable = new LightweightTypeParserprs(); |
| @Override |
| public ParseTable getParseTable() { return prsTable; } |
| |
| private BacktrackingParser btParser = null; |
| public BacktrackingParser getParser() { return btParser; } |
| |
| @Override |
| protected void setResult(Object object) { btParser.setSym1(object); } |
| @Override |
| protected Object getRhsSym(int i) { return btParser.getSym(i); } |
| |
| @Override |
| protected int getRhsTokenIndex(int i) { return btParser.getToken(i); } |
| @Override |
| protected IToken getRhsIToken(int i) { return prsStream.getIToken(getRhsTokenIndex(i)); } |
| |
| @Override |
| protected int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } |
| @Override |
| protected IToken getRhsFirstIToken(int i) { return prsStream.getIToken(getRhsFirstTokenIndex(i)); } |
| |
| @Override |
| protected int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } |
| @Override |
| protected IToken getRhsLastIToken(int i) { return prsStream.getIToken(getRhsLastTokenIndex(i)); } |
| |
| @Override |
| protected int getLeftSpan() { return btParser.getFirstToken(); } |
| @Override |
| protected IToken getLeftIToken() { return prsStream.getIToken(getLeftSpan()); } |
| |
| @Override |
| protected int getRightSpan() { return btParser.getLastToken(); } |
| @Override |
| protected IToken getRightIToken() { return prsStream.getIToken(getRightSpan()); } |
| |
| @Override |
| protected int getRhsErrorTokenIndex(int i) |
| { |
| int index = btParser.getToken(i); |
| IToken err = prsStream.getIToken(index); |
| return (err instanceof ErrorToken ? index : 0); |
| } |
| @Override |
| protected ErrorToken getRhsErrorIToken(int i) |
| { |
| int index = btParser.getToken(i); |
| IToken err = prsStream.getIToken(index); |
| return (ErrorToken) (err instanceof ErrorToken ? err : null); |
| } |
| |
| @SuppressWarnings("nls") //$NON-NLS-1$ |
| @Override |
| public void reset(ILexStream lexStream) |
| { |
| prsStream = new DerivedPrsStream(getEnvironment(), lexStream); |
| btParser.reset(prsStream); |
| |
| try |
| { |
| prsStream.remapTerminalSymbols(orderedTerminalSymbols(), prsTable.getEoftSymbol()); |
| } |
| catch(NullExportedSymbolsException e) { |
| } |
| catch(NullTerminalSymbolsException e) { |
| } |
| catch(UnimplementedTerminalsException e) |
| { |
| if (unimplementedSymbolsWarning) { |
| java.util.ArrayList<?> unimplemented_symbols = e.getSymbols(); |
| System.out.println("The Lexer will not scan the following token(s):"); //$NON-NLS-1$ |
| for (int i = 0; i < unimplemented_symbols.size(); i++) |
| { |
| Integer id = (Integer) unimplemented_symbols.get(i); |
| System.out.println(" " + LightweightTypeParsersym.orderedTerminalSymbols[id.intValue()]); //$NON-NLS-1$ |
| } |
| System.out.println(); |
| } |
| } |
| catch(UndefinedEofSymbolException e) |
| { |
| throw new Error(new UndefinedEofSymbolException |
| ("The Lexer does not implement the Eof symbol " + //$NON-NLS-1$ |
| LightweightTypeParsersym.orderedTerminalSymbols[prsTable.getEoftSymbol()])); |
| } |
| } |
| |
| @SuppressWarnings("nls") //$NON-NLS-1$ |
| public LightweightTypeParser(QVTOLexer lexer) |
| { |
| super(lexer); |
| try |
| { |
| btParser = new BacktrackingParser(prsStream, prsTable, this); |
| } |
| catch (NotBacktrackParseTableException e) |
| { |
| throw new Error(new NotBacktrackParseTableException |
| ("Regenerate LightweightTypeParserprs.java with -BACKTRACK option")); //$NON-NLS-1$ |
| } |
| catch (BadParseSymFileException e) |
| { |
| throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- LightweightTypeParsersym.java")); //$NON-NLS-1$ |
| } |
| |
| ILexStream lexStream = lexer.getILexStream(); |
| if (lexStream != null) { |
| reset(lexStream); |
| } |
| } |
| |
| @Override |
| public int numTokenKinds() { return LightweightTypeParsersym.numTokenKinds; } |
| @Override |
| public String[] orderedTerminalSymbols() { return LightweightTypeParsersym.orderedTerminalSymbols; } |
| public String getTokenKindName(int kind) { return LightweightTypeParsersym.orderedTerminalSymbols[kind]; } |
| public int getEOFTokenKind() { return prsTable.getEoftSymbol(); } |
| @Override |
| public DerivedPrsStream getIPrsStream() { return prsStream; } |
| |
| @Override |
| public CSTNode parser() |
| { |
| return parser(null, getDefaultRepairCount()); |
| } |
| |
| @Override |
| public CSTNode parser(Monitor monitor) |
| { |
| return parser(monitor, getDefaultRepairCount()); |
| } |
| |
| @Override |
| public CSTNode parser(int error_repair_count) |
| { |
| return parser(null, error_repair_count); |
| } |
| |
| @Override |
| public CSTNode parser(Monitor monitor, int error_repair_count) |
| { |
| btParser.setMonitor(monitor); |
| |
| try |
| { |
| if (error_repair_count > 0) |
| return (CSTNode) btParser.fuzzyParse(error_repair_count); |
| else |
| return (CSTNode) btParser.parse(error_repair_count); |
| } |
| catch (BadParseException e) |
| { |
| prsStream.reset(e.error_token); // point to error token |
| |
| DiagnoseParser diagnoseParser = new DiagnoseParser(prsStream, prsTable); |
| diagnoseParser.diagnose(e.error_token); |
| } |
| |
| return null; |
| } |
| |
| // |
| // Additional entry points, if any |
| // |
| |
| |
| |
| public Environment<?,?,?,?,?,?,?,?,?,?,?,?> getOCLEnvironment() { |
| return getLexer().getOCLEnvironment(); |
| } |
| |
| @Override |
| public QVTOLexer getLexer() { |
| return (QVTOLexer) super.getLexer(); |
| } |
| |
| |
| |
| // Some methods for backwards compatibility |
| /** |
| * <p> |
| * Before 3.0, this method was used with the now-deprecated "dollar"getToken macro (which //$NON-NLS-1$ |
| * provided token index in the prsStream) to obtain an IToken f a rule given the index of the |
| * right hand side token in the said rule. In 3.0 a convenience method has been introduced |
| * in order to directly return the IToken, given the index of the right hand side token in the rule. |
| * </p> |
| * |
| * <p> |
| * In an action-block of a rule, instead of doing <code>getIToken("dollar"getToken(i))</code> //$NON-NLS-1$ |
| * you should do <code>getRhsTokenText(i)</code> |
| * </p> |
| * @param i the right hand side token index |
| * @return the correspondent IToken. |
| * |
| * @since 3.0 |
| */ |
| @Deprecated |
| protected IToken getIToken(int i) { |
| return prsStream.getIToken(i); |
| } |
| |
| /** |
| * <p> |
| * Before 3.0, this method was used with the now-deprecated "dollar"getToken macro (which //$NON-NLS-1$ |
| * provided token index in the prsStream) to obtain an IToken f a rule given the index of the |
| * right hand side token in the said rule. In 3.0 a convenience method has been introduced |
| * in order to directly return the IToken, given the index of the right hand side token in the rule. |
| * </p> |
| * |
| * <p> |
| * In an action-block of a rule, instead of doing <code>getTokenText("dollar"getToken(i))</code> //$NON-NLS-1$ |
| * you should do <code>getRhsTokenText(i)</code> |
| * </p> |
| * @param i the right hand side token index |
| * @result the text of the correspondent right hand side IToken. |
| */ |
| @Deprecated |
| protected String getTokenText(int i) { |
| return prsStream.getTokenText(i); |
| } |
| |
| /** |
| * A convenience method to obtain the text of a right hand side IToken. |
| * |
| * @param i the right hand side token index |
| * @result the text of the correspondent right hand side IToken. |
| * |
| * @since 3.0 |
| */ |
| protected String getRhsTokenText(int i) { |
| return prsStream.getTokenText(getRhsTokenIndex(i)); |
| } |
| |
| private static final EList ourEmptyEList = new BasicEList.UnmodifiableEList(0, new Object[0]); |
| |
| |
| private void diagnozeErrorToken(int token_index) { |
| //IToken token = getIToken(token_index); |
| //if (token instanceof lpg.runtime.ErrorToken) { |
| // token = ((lpg.runtime.ErrorToken) token).getErrorToken(); |
| //} |
| //reportError(lpg.runtime.ParseErrorCodes.MISPLACED_CODE, token.getTokenIndex(), token.getTokenIndex(), |
| // "'" + //$NON-NLS-1$ |
| // token.toString() + "'"); //$NON-NLS-1$ |
| |
| prsStream.reset(token_index); // point to error token |
| DiagnoseParser diagnoseParser = new DiagnoseParser(prsStream, prsTable); |
| diagnoseParser.diagnose(token_index); |
| setResult(null); |
| } |
| |
| @SuppressWarnings("unchecked") |
| public void ruleAction(int ruleNumber) |
| { |
| switch (ruleNumber) |
| { |
| |
| // |
| // Rule 16: conceptualOperationNameCS ::= conceptualOperationName |
| // |
| case 16: { |
| //#line 296 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken iToken = getRhsIToken(1); |
| SimpleNameCS result = createConceptualOperationNameCS(iToken); |
| setOffsets(result, iToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 28: tupleKeywordCS ::= Tuple |
| // |
| |
| case 28: |
| |
| // |
| // Rule 29: reservedKeywordCS ::= reservedKeyword |
| // |
| case 29: { |
| //#line 319 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken iToken = getRhsIToken(1); |
| SimpleNameCS result = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| iToken |
| ); |
| setOffsets(result, iToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 33: selfKeywordCS ::= self |
| // |
| case 33: { |
| //#line 338 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken iToken = getRhsIToken(1); |
| SimpleNameCS result = createSimpleNameCS( |
| SimpleTypeEnum.SELF_LITERAL, |
| iToken |
| ); |
| setOffsets(result, iToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 34: simpleNameCS ::= IDENTIFIER |
| // |
| case 34: { |
| //#line 350 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken iToken = getRhsIToken(1); |
| SimpleNameCS result = createSimpleNameCS( |
| SimpleTypeEnum.IDENTIFIER_LITERAL, |
| iToken |
| ); |
| setOffsets(result, iToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 36: QuotedSimpleNameCS ::= QUOTED_IDENTIFIER |
| // |
| case 36: { |
| //#line 362 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken iToken = getRhsIToken(1); |
| SimpleNameCS result = createQuotedSimpleNameCS( |
| SimpleTypeEnum.IDENTIFIER_LITERAL, |
| iToken |
| ); |
| setOffsets(result, iToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 37: QuotedSimpleNameCS ::= QuotedSimpleNameCS STRING_LITERAL |
| // |
| case 37: { |
| //#line 373 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS string = (SimpleNameCS)getRhsSym(1); |
| IToken literalToken = getRhsIToken(2); |
| SimpleNameCS result = extendQuotedSimpleNameCS(string, literalToken); |
| setOffsets(result, string, literalToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 40: pathNameCS ::= simpleNameCS |
| // |
| case 40: { |
| //#line 386 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleName = (SimpleNameCS)getRhsSym(1); |
| PathNameCS result = createPathNameCS(simpleName); |
| setOffsets(result, simpleName); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 41: pathNameCS ::= pathNameCS :: unreservedSimpleNameCS |
| // |
| case 41: { |
| //#line 394 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS result = (PathNameCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| result = extendPathNameCS(result, simpleNameCS); |
| setOffsets(result, result, simpleNameCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 42: primitiveTypeCS ::= Boolean |
| // |
| case 42: { |
| //#line 407 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.BOOLEAN_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 43: primitiveTypeCS ::= Integer |
| // |
| case 43: { |
| //#line 417 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.INTEGER_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 44: primitiveTypeCS ::= Real |
| // |
| case 44: { |
| //#line 427 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.REAL_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 45: primitiveTypeCS ::= String |
| // |
| case 45: { |
| //#line 437 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.STRING_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 46: primitiveTypeCS ::= UnlimitedNatural |
| // |
| case 46: { |
| //#line 447 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.UNLIMITED_NATURAL_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 47: primitiveTypeCS ::= OclAny |
| // |
| case 47: { |
| //#line 458 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.OCL_ANY_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 48: primitiveTypeCS ::= OclInvalid |
| // |
| case 48: { |
| //#line 468 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.OCL_INVALID_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 49: primitiveTypeCS ::= OclVoid |
| // |
| case 49: { |
| //#line 478 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveTypeCS result = createPrimitiveTypeCS( |
| SimpleTypeEnum.OCL_VOID_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 50: CollectionTypeIdentifierCS ::= Set |
| // |
| case 50: { |
| //#line 489 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS result = createCollectionTypeCS( |
| CollectionTypeIdentifierEnum.SET_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 51: CollectionTypeIdentifierCS ::= Bag |
| // |
| case 51: { |
| //#line 499 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS result = createCollectionTypeCS( |
| CollectionTypeIdentifierEnum.BAG_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 52: CollectionTypeIdentifierCS ::= Sequence |
| // |
| case 52: { |
| //#line 509 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS result = createCollectionTypeCS( |
| CollectionTypeIdentifierEnum.SEQUENCE_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 53: CollectionTypeIdentifierCS ::= Collection |
| // |
| case 53: { |
| //#line 519 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS result = createCollectionTypeCS( |
| CollectionTypeIdentifierEnum.COLLECTION_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 54: CollectionTypeIdentifierCS ::= OrderedSet |
| // |
| case 54: { |
| //#line 529 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS result = createCollectionTypeCS( |
| CollectionTypeIdentifierEnum.ORDERED_SET_LITERAL, |
| getRhsTokenText(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 59: collectionTypeCS ::= CollectionTypeIdentifierCS ( typeCS ) |
| // |
| case 59: { |
| //#line 545 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CollectionTypeCS result = (CollectionTypeCS)getRhsSym(1); |
| result.setTypeCS((TypeCS)getRhsSym(3)); |
| setOffsets(result, result, getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 60: tupleTypeCS ::= Tuple ( tupleTypePartsCSopt ) |
| // |
| case 60: { |
| //#line 554 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| TupleTypeCS result = createTupleTypeCS((EList<VariableCS>)getRhsSym(3)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 61: tupleTypePartsCSopt ::= $Empty |
| // |
| case 61: { |
| //#line 562 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(new BasicEList<VariableCS>()); |
| break; |
| } |
| |
| // |
| // Rule 63: tupleTypePartsCS ::= typedUninitializedVariableCS |
| // |
| case 63: { |
| //#line 569 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<VariableCS> result = new BasicEList<VariableCS>(); |
| result.add((VariableCS)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 64: tupleTypePartsCS ::= tupleTypePartsCS , typedUninitializedVariableCS |
| // |
| case 64: { |
| //#line 576 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<VariableCS> result = (EList<VariableCS>)getRhsSym(1); |
| result.add((VariableCS)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 65: untypedUninitializedVariableCS ::= simpleNameCS |
| // |
| case 65: { |
| //#line 587 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS name = (SimpleNameCS)getRhsSym(1); |
| VariableCS result = createVariableCS(name, null, null); |
| setOffsets(result, name); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 66: typedUninitializedVariableCS ::= simpleNameCS : typeCS |
| // |
| case 66: { |
| //#line 596 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS name = (SimpleNameCS)getRhsSym(1); |
| TypeCS type = (TypeCS)getRhsSym(3); |
| VariableCS result = createVariableCS(name, type, null); |
| setOffsets(result, name, type); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 67: untypedInitializedVariableCS ::= simpleNameCS = OclExpressionCS |
| // |
| case 67: { |
| //#line 606 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS name = (SimpleNameCS)getRhsSym(1); |
| OCLExpressionCS initExpression = (OCLExpressionCS)getRhsSym(3); |
| VariableCS result = createVariableCS(name, null, initExpression); |
| setOffsets(result, name, initExpression); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 68: typedInitializedVariableCS ::= simpleNameCS : typeCS = OclExpressionCS |
| // |
| case 68: { |
| //#line 616 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS name = (SimpleNameCS)getRhsSym(1); |
| TypeCS type = (TypeCS)getRhsSym(3); |
| OCLExpressionCS initExpression = (OCLExpressionCS)getRhsSym(5); |
| VariableCS result = createVariableCS(name, type, initExpression); |
| setOffsets(result, name, initExpression); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 80: CollectionLiteralExpCS ::= CollectionTypeIdentifierCS { CollectionLiteralPartsCSopt } |
| // |
| case 80: { |
| //#line 649 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CollectionTypeCS typeCS = (CollectionTypeCS)getRhsSym(1); |
| CollectionLiteralExpCS result = createCollectionLiteralExpCS( |
| typeCS, |
| (EList<CollectionLiteralPartCS>)getRhsSym(3) |
| ); |
| setOffsets(result, typeCS, getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 81: CollectionLiteralPartsCSopt ::= $Empty |
| // |
| case 81: { |
| //#line 672 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(new BasicEList<CollectionLiteralPartCS>()); |
| break; |
| } |
| |
| // |
| // Rule 83: CollectionLiteralPartsCS ::= CollectionLiteralPartCS |
| // |
| case 83: { |
| //#line 679 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<CollectionLiteralPartCS> result = new BasicEList<CollectionLiteralPartCS>(); |
| result.add((CollectionLiteralPartCS)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 84: CollectionLiteralPartsCS ::= CollectionLiteralPartsCS , CollectionLiteralPartCS |
| // |
| case 84: { |
| //#line 686 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<CollectionLiteralPartCS> result = (EList<CollectionLiteralPartCS>)getRhsSym(1); |
| result.add((CollectionLiteralPartCS)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 86: CollectionLiteralPartCS ::= OclExpressionCS |
| // |
| case 86: { |
| //#line 695 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CollectionLiteralPartCS result = createCollectionLiteralPartCS( |
| (OCLExpressionCS)getRhsSym(1) |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 87: CollectionRangeCS ::= OclExpressionCS .. OclExpressionCS |
| // |
| case 87: { |
| //#line 705 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CollectionLiteralPartCS result = createCollectionRangeCS( |
| (OCLExpressionCS)getRhsSym(1), |
| (OCLExpressionCS)getRhsSym(3) |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 95: TupleLiteralExpCS ::= Tuple { TupleLiteralPartsCS } |
| // |
| case 95: { |
| //#line 724 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| TupleLiteralExpCS result = createTupleLiteralExpCS((EList<VariableCS>)getRhsSym(3)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 96: TupleLiteralPartsCS ::= initializedVariableCS |
| // |
| case 96: { |
| //#line 732 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<VariableCS> result = new BasicEList<VariableCS>(); |
| result.add((VariableCS)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 97: TupleLiteralPartsCS ::= TupleLiteralPartsCS , initializedVariableCS |
| // |
| case 97: { |
| //#line 739 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<VariableCS> result = (EList<VariableCS>)getRhsSym(1); |
| result.add((VariableCS)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 98: IntegerLiteralExpCS ::= INTEGER_LITERAL |
| // |
| case 98: { |
| //#line 747 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IntegerLiteralExpCS result = createIntegerLiteralExpCS(getRhsTokenText(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 99: RealLiteralExpCS ::= REAL_LITERAL |
| // |
| case 99: { |
| //#line 755 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| RealLiteralExpCS result = createRealLiteralExpCS(getRhsTokenText(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 100: StringLiteralExpCS ::= STRING_LITERAL |
| // |
| case 100: { |
| //#line 763 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken literalToken = getRhsIToken(1); |
| StringLiteralExpCS result = createStringLiteralExpCS(literalToken); |
| setOffsets(result, literalToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 101: StringLiteralExpCS ::= StringLiteralExpCS STRING_LITERAL |
| // |
| case 101: { |
| //#line 771 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| StringLiteralExpCS string = (StringLiteralExpCS)getRhsSym(1); |
| IToken literalToken = getRhsIToken(2); |
| StringLiteralExpCS result = extendStringLiteralExpCS(string, literalToken); |
| setOffsets(result, string, literalToken); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 102: BooleanLiteralExpCS ::= true |
| // |
| case 102: { |
| //#line 781 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BooleanLiteralExpCS result = createBooleanLiteralExpCS(getRhsTokenText(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 103: BooleanLiteralExpCS ::= false |
| // |
| case 103: { |
| //#line 788 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BooleanLiteralExpCS result = createBooleanLiteralExpCS(getRhsTokenText(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 104: UnlimitedNaturalLiteralExpCS ::= * |
| // |
| case 104: { |
| //#line 796 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| UnlimitedNaturalLiteralExpCS result = createUnlimitedNaturalLiteralExpCS(getRhsTokenText(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 105: InvalidLiteralExpCS ::= invalid |
| // |
| case 105: { |
| //#line 804 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| InvalidLiteralExpCS result = createInvalidLiteralExpCS(getRhsTokenText(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 106: NullLiteralExpCS ::= null |
| // |
| case 106: { |
| //#line 812 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| NullLiteralExpCS result = createNullLiteralExpCS(getRhsTokenText(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 107: TypeLiteralExpCS ::= primitiveTypeCS |
| // |
| |
| case 107: |
| |
| // |
| // Rule 108: TypeLiteralExpCS ::= collectionTypeCS |
| // |
| |
| case 108: |
| |
| // |
| // Rule 109: TypeLiteralExpCS ::= tupleTypeCS |
| // |
| case 109: { |
| //#line 826 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(1); |
| VariableExpCS result = createVariableExpCS( |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>(), |
| null |
| ); |
| setOffsets(result, simpleNameCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 114: IteratorExpCS ::= primaryExpCS -> simpleNameCS ( uninitializedVariableCS | OclExpressionCS ) |
| // |
| case 114: { |
| //#line 851 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| IteratorExpCS result = createIteratorExpCS( |
| source, |
| simpleNameCS, |
| (VariableCS)getRhsSym(5), |
| null, |
| (OCLExpressionCS)getRhsSym(7) |
| ); |
| setOffsets(result, source, getRhsIToken(8)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 115: IteratorExpCS ::= primaryExpCS -> simpleNameCS ( simpleNameCS , uninitializedVariableCS | OclExpressionCS ) |
| // |
| case 115: { |
| //#line 868 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS name = (SimpleNameCS)getRhsSym(5); |
| VariableCS variableCS = createVariableCS(name, null, null); |
| setOffsets(variableCS, name); |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| IteratorExpCS result = createIteratorExpCS( |
| source, |
| simpleNameCS, |
| variableCS, |
| (VariableCS)getRhsSym(7), |
| (OCLExpressionCS)getRhsSym(9) |
| ); |
| setOffsets(result, source, getRhsIToken(10)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 116: IteratorExpCS ::= primaryExpCS -> simpleNameCS ( typedUninitializedVariableCS , uninitializedVariableCS | OclExpressionCS ) |
| // |
| case 116: { |
| //#line 888 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| IteratorExpCS result = createIteratorExpCS( |
| source, |
| simpleNameCS, |
| (VariableCS)getRhsSym(5), |
| (VariableCS)getRhsSym(7), |
| (OCLExpressionCS)getRhsSym(9) |
| ); |
| setOffsets(result, source, getRhsIToken(10)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 117: IterateExpCS ::= primaryExpCS -> simpleNameCS ( typedInitializedVariableCS | OclExpressionCS ) |
| // |
| case 117: { |
| //#line 909 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| IterateExpCS result = createIterateExpCS( |
| source, |
| simpleNameCS, |
| (VariableCS)getRhsSym(5), |
| null, |
| (OCLExpressionCS)getRhsSym(7) |
| ); |
| setOffsets(result, source, getRhsIToken(8)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 118: IterateExpCS ::= primaryExpCS -> simpleNameCS ( uninitializedVariableCS ; typedInitializedVariableCS | OclExpressionCS ) |
| // |
| case 118: { |
| //#line 925 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| IterateExpCS result = createIterateExpCS( |
| source, |
| simpleNameCS, |
| (VariableCS)getRhsSym(5), |
| (VariableCS)getRhsSym(7), |
| (OCLExpressionCS)getRhsSym(9) |
| ); |
| setOffsets(result, source, getRhsIToken(10)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 122: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( ) |
| // |
| case 122: { |
| //#line 947 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| OperationCallExpCS result = createArrowOperationCallExpCS( |
| source, |
| (SimpleNameCS)getRhsSym(3), |
| null, |
| new BasicEList<OCLExpressionCS>() |
| ); |
| setOffsets(result, source, getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 123: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( OclExpressionCS ) |
| // |
| case 123: { |
| //#line 961 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| OCLExpressionCS arg = (OCLExpressionCS)getRhsSym(5); |
| OCLExpressionCS result; |
| if (isIterator(simpleNameCS.getValue())) { |
| result = createIteratorExpCS( |
| source, |
| simpleNameCS, |
| null, |
| null, |
| arg |
| ); |
| } |
| else { |
| EList<OCLExpressionCS> args = new BasicEList<OCLExpressionCS>(); |
| args.add(arg); |
| result = createArrowOperationCallExpCS( |
| source, |
| simpleNameCS, |
| null, |
| args |
| ); |
| } |
| setOffsets(result, source, getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 124: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( notNameExpressionCS , argumentsCS ) |
| // |
| case 124: { |
| //#line 991 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<OCLExpressionCS> args = (EList<OCLExpressionCS>)getRhsSym(7); |
| args.add(0, (OCLExpressionCS)getRhsSym(5)); |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| OperationCallExpCS result = createArrowOperationCallExpCS( |
| source, |
| (SimpleNameCS)getRhsSym(3), |
| null, |
| args |
| ); |
| setOffsets(result, source, getRhsIToken(8)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 125: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( simpleNameCS , argumentsCS ) |
| // |
| case 125: { |
| //#line 1007 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(5); |
| OCLExpressionCS variableExpCS = createVariableExpCS( |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>(), |
| null |
| ); |
| setOffsets(variableExpCS, simpleNameCS); |
| EList<OCLExpressionCS> args = (EList<OCLExpressionCS>)getRhsSym(7); |
| args.add(0, variableExpCS); |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| OperationCallExpCS result = createArrowOperationCallExpCS( |
| source, |
| (SimpleNameCS)getRhsSym(3), |
| null, |
| args |
| ); |
| setOffsets(result, source, getRhsIToken(8)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 126: OperationCallExpCS ::= primaryExpCS . conceptualOperationNameCS isMarkedPreCSopt ( argumentsCSopt ) |
| // |
| |
| case 126: |
| |
| // |
| // Rule 127: OperationCallExpCS ::= primaryExpCS . simpleNameCS isMarkedPreCSopt ( argumentsCSopt ) |
| // |
| case 127: { |
| //#line 1033 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| CallExpCS result = createDotOperationCallExpCS( |
| source, |
| null, |
| simpleNameCS, |
| (IsMarkedPreCS)getRhsSym(4), |
| (EList<OCLExpressionCS>)getRhsSym(6) |
| ); |
| setOffsets(result, source, getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 128: OperationCallExpCS ::= simpleNameCS isMarkedPreCSopt ( argumentsCSopt ) |
| // |
| case 128: { |
| //#line 1049 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OperationCallExpCS result = createDotOperationCallExpCS( |
| null, |
| null, |
| (SimpleNameCS)getRhsSym(1), |
| (IsMarkedPreCS)getRhsSym(2), |
| (EList<OCLExpressionCS>)getRhsSym(4) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 129: OperationCallExpCS ::= pathNameCS :: unreservedSimpleNameCS ( argumentsCSopt ) |
| // |
| case 129: { |
| //#line 1063 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS pathNameCS = (PathNameCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| OperationCallExpCS result = createDotOperationCallExpCS( |
| null, |
| pathNameCS, |
| simpleNameCS, |
| null, |
| (EList<OCLExpressionCS>)getRhsSym(5) |
| ); |
| setOffsets(result, pathNameCS, getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 130: OperationCallExpCS ::= primaryExpCS . pathNameCS :: unreservedSimpleNameCS isMarkedPreCSopt ( argumentsCSopt ) |
| // |
| case 130: { |
| //#line 1081 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS pathNameCS = (PathNameCS)getRhsSym(3); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(5); |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| CallExpCS result = createDotOperationCallExpCS( |
| source, |
| pathNameCS, |
| simpleNameCS, |
| (IsMarkedPreCS)getRhsSym(6), |
| (EList<OCLExpressionCS>)getRhsSym(8) |
| ); |
| setOffsets(result, source, getRhsIToken(9)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 132: PropertyCallExpCS ::= pathNameCS :: unreservedSimpleNameCS isMarkedPreCSopt |
| // |
| case 132: { |
| //#line 1105 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS pathNameCS = (PathNameCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)getRhsSym(4); |
| FeatureCallExpCS result = createFeatureCallExpCS( |
| null, |
| pathNameCS, |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>(), |
| isMarkedPreCS |
| ); |
| if (isMarkedPreCS != null) { |
| setOffsets(result, pathNameCS, isMarkedPreCS); |
| } else { |
| setOffsets(result, pathNameCS, simpleNameCS); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 133: PropertyCallExpCS ::= primaryExpCS . pathNameCS :: unreservedSimpleNameCS isMarkedPreCSopt |
| // |
| case 133: { |
| //#line 1126 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| PathNameCS pathNameCS = (PathNameCS)getRhsSym(3); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(5); |
| IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)getRhsSym(6); |
| FeatureCallExpCS result = createFeatureCallExpCS( |
| source, |
| pathNameCS, |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>(), |
| isMarkedPreCS |
| ); |
| if (isMarkedPreCS != null) { |
| setOffsets(result, source, isMarkedPreCS); |
| } else { |
| setOffsets(result, source, simpleNameCS); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 134: AssociationClassCallExpCS ::= primaryExpCS . simpleNameCS isMarkedPreCSopt |
| // |
| case 134: { |
| //#line 1149 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)getRhsSym(4); |
| FeatureCallExpCS result = createFeatureCallExpCS( |
| source, |
| null, |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>(), |
| isMarkedPreCS |
| ); |
| if (isMarkedPreCS != null) { |
| setOffsets(result, source, isMarkedPreCS); |
| } else { |
| setOffsets(result, source, simpleNameCS); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 135: isMarkedPreCSopt ::= $Empty |
| // |
| case 135: { |
| //#line 1211 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(null); |
| break; |
| } |
| |
| // |
| // Rule 136: argumentsCSopt ::= $Empty |
| // |
| case 136: { |
| //#line 1217 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(new BasicEList<OCLExpressionCS>()); |
| break; |
| } |
| |
| // |
| // Rule 138: argumentsCS ::= OclExpressionCS |
| // |
| case 138: { |
| //#line 1224 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<OCLExpressionCS> result = new BasicEList<OCLExpressionCS>(); |
| result.add((OCLExpressionCS)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 139: argumentsCS ::= argumentsCS , OclExpressionCS |
| // |
| case 139: { |
| //#line 1231 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<OCLExpressionCS> result = (EList<OCLExpressionCS>)getRhsSym(1); |
| result.add((OCLExpressionCS)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 142: VariableExpCS ::= selfKeywordCS |
| // |
| case 142: { |
| //#line 1256 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(1); |
| VariableExpCS result = createVariableExpCS( |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>(), |
| null |
| ); |
| setOffsets(result, simpleNameCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 143: SimpleNameExpCS ::= simpleNameCS |
| // |
| case 143: { |
| //#line 1271 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(1); |
| VariableExpCS result = createVariableExpCS( |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>(), |
| null |
| ); |
| setOffsets(result, simpleNameCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 149: impliesNotNameNotLetCS ::= impliesNotLetCS implies xorNotLetCS |
| // |
| |
| case 149: |
| |
| // |
| // Rule 151: impliesWithLetCS ::= impliesNotLetCS implies xorWithLetCS |
| // |
| |
| case 151: |
| |
| // |
| // Rule 155: xorNotNameNotLetCS ::= xorNotLetCS xor orNotLetCS |
| // |
| |
| case 155: |
| |
| // |
| // Rule 157: xorWithLetCS ::= xorNotLetCS xor orWithLetCS |
| // |
| |
| case 157: |
| |
| // |
| // Rule 161: orNotNameNotLetCS ::= orNotLetCS or andNotLetCS |
| // |
| |
| case 161: |
| |
| // |
| // Rule 163: orWithLetCS ::= orNotLetCS or andWithLetCS |
| // |
| |
| case 163: |
| |
| // |
| // Rule 167: andNotNameNotLetCS ::= andNotLetCS and equalityNotLetCS |
| // |
| |
| case 167: |
| |
| // |
| // Rule 169: andWithLetCS ::= andNotLetCS and equalityWithLetCS |
| // |
| |
| case 169: |
| |
| // |
| // Rule 173: equalityNotNameNotLetCS ::= equalityNotLetCS = relationalNotLetCS |
| // |
| |
| case 173: |
| |
| // |
| // Rule 174: equalityNotNameNotLetCS ::= equalityNotLetCS <> relationalNotLetCS |
| // |
| |
| case 174: |
| |
| // |
| // Rule 176: equalityWithLetCS ::= equalityNotLetCS = relationalWithLetCS |
| // |
| |
| case 176: |
| |
| // |
| // Rule 177: equalityWithLetCS ::= equalityNotLetCS <> relationalWithLetCS |
| // |
| |
| case 177: |
| |
| // |
| // Rule 181: relationalNotNameNotLetCS ::= relationalNotLetCS > additiveNotLetCS |
| // |
| |
| case 181: |
| |
| // |
| // Rule 182: relationalNotNameNotLetCS ::= relationalNotLetCS < additiveNotLetCS |
| // |
| |
| case 182: |
| |
| // |
| // Rule 183: relationalNotNameNotLetCS ::= relationalNotLetCS >= additiveNotLetCS |
| // |
| |
| case 183: |
| |
| // |
| // Rule 184: relationalNotNameNotLetCS ::= relationalNotLetCS <= additiveNotLetCS |
| // |
| |
| case 184: |
| |
| // |
| // Rule 186: relationalWithLetCS ::= relationalNotLetCS > additiveWithLetCS |
| // |
| |
| case 186: |
| |
| // |
| // Rule 187: relationalWithLetCS ::= relationalNotLetCS < additiveWithLetCS |
| // |
| |
| case 187: |
| |
| // |
| // Rule 188: relationalWithLetCS ::= relationalNotLetCS >= additiveWithLetCS |
| // |
| |
| case 188: |
| |
| // |
| // Rule 189: relationalWithLetCS ::= relationalNotLetCS <= additiveWithLetCS |
| // |
| |
| case 189: |
| |
| // |
| // Rule 193: additiveNotNameNotLetCS ::= additiveNotLetCS + multiplicativeNotLetCS |
| // |
| |
| case 193: |
| |
| // |
| // Rule 194: additiveNotNameNotLetCS ::= additiveNotLetCS - multiplicativeNotLetCS |
| // |
| |
| case 194: |
| |
| // |
| // Rule 196: additiveWithLetCS ::= additiveNotLetCS + multiplicativeWithLetCS |
| // |
| |
| case 196: |
| |
| // |
| // Rule 197: additiveWithLetCS ::= additiveNotLetCS - multiplicativeWithLetCS |
| // |
| |
| case 197: |
| |
| // |
| // Rule 201: multiplicativeNotNameNotLetCS ::= multiplicativeNotLetCS * unaryNotLetCS |
| // |
| |
| case 201: |
| |
| // |
| // Rule 202: multiplicativeNotNameNotLetCS ::= multiplicativeNotLetCS / unaryNotLetCS |
| // |
| |
| case 202: |
| |
| // |
| // Rule 204: multiplicativeWithLetCS ::= multiplicativeNotLetCS * unaryWithLetCS |
| // |
| |
| case 204: |
| |
| // |
| // Rule 205: multiplicativeWithLetCS ::= multiplicativeNotLetCS / unaryWithLetCS |
| // |
| case 205: { |
| //#line 1380 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| getRhsIToken(2) |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(2)); |
| OCLExpressionCS left = (OCLExpressionCS)getRhsSym(1); |
| OCLExpressionCS right = (OCLExpressionCS)getRhsSym(3); |
| EList<OCLExpressionCS> args = new BasicEList<OCLExpressionCS>(); |
| args.add(right); |
| OperationCallExpCS result = createOperationCallExpCS( |
| left, |
| simpleNameCS, |
| args |
| ); |
| setOffsets(result, left, right); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 209: unaryNotNameNotLetCS ::= - unaryNotLetCS |
| // |
| |
| case 209: |
| |
| // |
| // Rule 210: unaryNotNameNotLetCS ::= not unaryNotLetCS |
| // |
| |
| case 210: |
| |
| // |
| // Rule 212: unaryWithLetCS ::= - unaryWithLetCS |
| // |
| |
| case 212: |
| |
| // |
| // Rule 213: unaryWithLetCS ::= not unaryWithLetCS |
| // |
| case 213: { |
| //#line 1411 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| getRhsIToken(1) |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(1)); |
| OCLExpressionCS expr = (OCLExpressionCS)getRhsSym(2); |
| OperationCallExpCS result = createOperationCallExpCS( |
| expr, |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>() |
| ); |
| setOffsets(result, simpleNameCS, expr); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 220: primaryNotNameCS ::= ( OclExpressionCS ) |
| // |
| case 220: { |
| //#line 1437 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS result = (OCLExpressionCS)getRhsSym(2); |
| if (result instanceof OperationCallExpCS) { |
| ((OperationCallExpCS)result).setIsAtomic(true); |
| } |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 221: LetExpCS ::= let letVariablesCS in OclExpressionCS |
| // |
| case 221: { |
| //#line 1460 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS expr = (OCLExpressionCS)getRhsSym(4); |
| LetExpCS result = createLetExpCS( |
| (EList<VariableCS>)getRhsSym(2), |
| expr |
| ); |
| setOffsets(result, getRhsIToken(1), expr); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 222: letVariablesCS ::= typedInitializedVariableCS |
| // |
| case 222: { |
| //#line 1472 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<VariableCS> result = new BasicEList<VariableCS>(); |
| result.add((VariableCS)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 223: letVariablesCS ::= letVariablesCS , typedInitializedVariableCS |
| // |
| case 223: { |
| //#line 1479 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<VariableCS> result = (EList<VariableCS>)getRhsSym(1); |
| result.add((VariableCS)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 229: listTypeCS ::= List ( typeCS ) |
| // |
| case 229: { |
| //#line 168 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createListTypeCS( |
| (TypeCS)getRhsSym(3) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 230: listLiteralCS ::= List { CollectionLiteralPartsCSopt } |
| // |
| case 230: { |
| //#line 178 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createListLiteralExpCS((EList)getRhsSym(3)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 232: dictTypeCS ::= Dict ( typeCS , typeCS ) |
| // |
| case 232: { |
| //#line 187 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createDictTypeCS((TypeCS)getRhsSym(3), (TypeCS)getRhsSym(5)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 233: dictLiteralCS ::= Dict { dictLiteralPartListCSopt } |
| // |
| case 233: { |
| //#line 195 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createDictLiteralExpCS((EList<DictLiteralPartCS>)getRhsSym(3)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 237: dictLiteralPartCS ::= literalSimpleCS = OclExpressionCS |
| // |
| case 237: { |
| //#line 207 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createDictLiteralPartCS((LiteralExpCS)getRhsSym(1), (OCLExpressionCS)getRhsSym(3)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 239: dictLiteralPartListCSopt ::= $Empty |
| // |
| |
| case 239: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 240: dictLiteralPartListCS ::= dictLiteralPartCS |
| // |
| case 240: { |
| //#line 219 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 241: dictLiteralPartListCS ::= dictLiteralPartListCS , dictLiteralPartCS |
| // |
| case 241: { |
| //#line 226 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 242: dictLiteralPartListCS ::= dictLiteralPartListCS qvtErrorToken |
| // |
| case 242: { |
| //#line 233 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 245: RaiseExpCS ::= raise pathNameCS raise_arg_opt |
| // |
| case 245: { |
| //#line 244 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createRaiseExpCS((TypeCS)getRhsSym(2), (OCLExpressionCS)getRhsSym(3)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 246: RaiseExpCS ::= raise StringLiteralExpCS |
| // |
| case 246: { |
| //#line 252 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createRaiseExpCS(null, (OCLExpressionCS)getRhsSym(2)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 248: raise_arg_opt ::= $Empty |
| // |
| case 248: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 249: raise_arg ::= ( oclExpressionCSOpt ) |
| // |
| case 249: { |
| //#line 264 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 250: TryExpCS ::= try expression_block CatchExp_list |
| // |
| case 250: { |
| //#line 271 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createTryExpCS( |
| (BlockExpCS)getRhsSym(2), |
| (EList)getRhsSym(3) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 251: CatchExp_list ::= CatchExp |
| // |
| case 251: { |
| //#line 282 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 252: CatchExp_list ::= CatchExp_list CatchExp |
| // |
| case 252: { |
| //#line 289 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 253: CatchExp ::= except ( except_type_list_opt ) expression_block |
| // |
| case 253: { |
| //#line 297 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createCatchExpCS( |
| null, |
| (EList)getRhsSym(3), |
| (BlockExpCS)getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 254: CatchExp ::= except ( IDENTIFIER : type_list ) expression_block |
| // |
| case 254: { |
| //#line 309 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createCatchExpCS( |
| getRhsIToken(3), |
| (EList)getRhsSym(5), |
| (BlockExpCS)getRhsSym(7) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 256: except_type_list_opt ::= $Empty |
| // |
| |
| case 256: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 258: returnExpCS ::= return oclExpressionCSOpt |
| // |
| case 258: { |
| //#line 327 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| ReturnExpCS returnExpCS = createReturnExpCS((OCLExpressionCS)getRhsSym(2)); |
| CSTNode result = createExpressionStatementCS(returnExpCS); |
| if(returnExpCS.getValue() != null) { |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(2)); |
| } else { |
| setOffsets(result, getRhsIToken(1)); |
| } |
| setOffsets(returnExpCS, result); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 260: oclExpressionCSOpt ::= $Empty |
| // |
| case 260: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 262: var_init_group_exp ::= var var_init_declarator_list |
| // |
| case 262: { |
| //#line 347 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 263: var_init_group_exp ::= var ( var_init_declarator_list ) |
| // |
| case 263: { |
| //#line 353 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(3)); |
| break; |
| } |
| |
| // |
| // Rule 264: var_init_group_exp ::= var ( var_init_declarator_list qvtErrorToken |
| // |
| case 264: { |
| //#line 359 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(3)); |
| break; |
| } |
| |
| // |
| // Rule 266: var_init_exp ::= var var_init_declarator |
| // |
| case 266: { |
| //#line 367 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 267: var_init_exp ::= var ( var_init_declarator ) |
| // |
| case 267: { |
| //#line 373 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(3)); |
| break; |
| } |
| |
| // |
| // Rule 268: var_init_exp ::= var ( var_init_declarator qvtErrorToken |
| // |
| case 268: { |
| //#line 379 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(3)); |
| break; |
| } |
| |
| // |
| // Rule 269: var_init_exp ::= var qvtErrorToken |
| // |
| case 269: { |
| //#line 385 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(ourEmptyEList); |
| break; |
| } |
| |
| // |
| // Rule 270: var_init_declarator_list ::= var_init_declarator , var_init_declarator |
| // |
| case 270: { |
| //#line 391 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 271: var_init_declarator_list ::= var_init_declarator_list , var_init_declarator |
| // |
| case 271: { |
| //#line 399 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList) getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 272: var_init_declarator ::= IDENTIFIER : typeCS var_init_op OclExpressionCS |
| // |
| case 272: { |
| //#line 408 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableInitializationCS( |
| getRhsIToken(1), |
| (TypeCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| (Boolean)getRhsSym(4) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 273: var_init_declarator ::= IDENTIFIER : typeCS var_init_op qvtErrorToken |
| // |
| case 273: { |
| //#line 420 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableInitializationCS( |
| getRhsIToken(1), |
| (TypeCS)getRhsSym(3), |
| null, |
| (Boolean)getRhsSym(4) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 274: var_init_declarator ::= IDENTIFIER var_init_op OclExpressionCS |
| // |
| case 274: { |
| //#line 432 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableInitializationCS( |
| getRhsIToken(1), |
| null, |
| (OCLExpressionCS)getRhsSym(3), |
| (Boolean)getRhsSym(2) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 275: var_init_declarator ::= IDENTIFIER var_init_op qvtErrorToken |
| // |
| case 275: { |
| //#line 444 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableInitializationCS( |
| getRhsIToken(1), |
| null, |
| null, |
| (Boolean)getRhsSym(2) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 276: var_init_declarator ::= IDENTIFIER : typeCS |
| // |
| case 276: { |
| //#line 456 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableInitializationCS( |
| getRhsIToken(1), |
| (TypeCS)getRhsSym(3), |
| null, |
| false |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 277: var_init_declarator ::= IDENTIFIER : qvtErrorToken |
| // |
| case 277: { |
| //#line 468 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableInitializationCS( |
| getRhsIToken(1), |
| null, |
| null, |
| false |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 278: var_init_op ::= = |
| // |
| |
| case 278: |
| |
| // |
| // Rule 279: var_init_op ::= := |
| // |
| case 279: { |
| //#line 483 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(false); |
| break; |
| } |
| |
| // |
| // Rule 280: var_init_op ::= ::= |
| // |
| case 280: { |
| //#line 488 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(true); |
| break; |
| } |
| |
| // |
| // Rule 282: assignStatementCS ::= primaryExpCS := OclExpressionCS |
| // |
| case 282: { |
| //#line 496 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createAssignStatementCS( |
| (OCLExpressionCS)getRhsSym(1), |
| (OCLExpressionCS)getRhsSym(3), |
| false |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 283: assignStatementCS ::= primaryExpCS := qvtErrorToken |
| // |
| case 283: { |
| //#line 507 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createAssignStatementCS( |
| (OCLExpressionCS)getRhsSym(1), |
| createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, (IToken) null), |
| false |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 284: assignStatementCS ::= primaryExpCS += OclExpressionCS |
| // |
| case 284: { |
| //#line 519 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createAssignStatementCS( |
| (OCLExpressionCS)getRhsSym(1), |
| (OCLExpressionCS)getRhsSym(3), |
| true |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 285: assignStatementCS ::= primaryExpCS += qvtErrorToken |
| // |
| case 285: { |
| //#line 530 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createAssignStatementCS( |
| (OCLExpressionCS)getRhsSym(1), |
| createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, (IToken) null), |
| true |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 287: whileExpCS ::= while ( declarator1 ; OclExpressionCS ) whileBodyCS |
| // |
| case 287: { |
| //#line 546 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createWhileExpCS( |
| (VariableCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| (BlockExpCS)getRhsSym(7) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 288: whileExpCS ::= while ( assignStatementCS ; OclExpressionCS ) whileBodyCS |
| // |
| case 288: { |
| //#line 558 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| AssignStatementCS assignment = (AssignStatementCS)getRhsSym(3); |
| CSTNode result = createWhileExpCS( |
| getVariableFromAssignment(assignment), |
| (OCLExpressionCS)getRhsSym(5), |
| (BlockExpCS)getRhsSym(7) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 289: whileExpCS ::= while ( OclExpressionCS ) whileBodyCS |
| // |
| case 289: { |
| //#line 571 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createWhileExpCS( |
| null, |
| (OCLExpressionCS)getRhsSym(3), |
| (BlockExpCS)getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 290: IteratorExpCS ::= primaryExpCS -> forExpCS |
| // |
| case 290: { |
| //#line 585 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| ForExpCS forExpCS = (ForExpCS)getRhsSym(3); |
| forExpCS.setSource(source); |
| setOffsets(forExpCS, source, forExpCS); |
| setResult(forExpCS); |
| break; |
| } |
| |
| // |
| // Rule 291: IteratorExpCS ::= primaryExpCS -> simpleNameCS ( qvtErrorToken |
| // |
| case 291: { |
| //#line 595 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3); |
| OCLExpressionCS invalidBody = createInvalidLiteralExpCS(""); //$NON-NLS-1$ |
| setOffsets(invalidBody, getRhsIToken(4), getRhsIToken(5)); |
| CSTNode result = createIteratorExpCS( |
| source, |
| simpleNameCS, |
| null, |
| null, |
| invalidBody |
| ); |
| setOffsets(result, source, getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 292: argumentsCS ::= qvtErrorToken |
| // |
| |
| case 292: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 296: forExpDeclaratorList ::= IDENTIFIER |
| // |
| case 296: { |
| //#line 621 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 297: forExpDeclaratorList ::= forExpDeclaratorList , IDENTIFIER |
| // |
| case 297: { |
| //#line 628 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 298: forExpConditionOpt ::= $Empty |
| // |
| case 298: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 299: forExpConditionOpt ::= | OclExpressionCS |
| // |
| case 299: { |
| //#line 640 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult((OCLExpressionCS)getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 300: forExpConditionOpt ::= | qvtErrorToken |
| // |
| case 300: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 301: forExpCS ::= forOpCode ( forExpDeclaratorList forExpConditionOpt ) expression_block |
| // |
| case 301: { |
| //#line 649 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createForExpCS( |
| getRhsIToken(1), |
| (EList)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(4), |
| (BlockExpCS)getRhsSym(6) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 302: forExpCS ::= forOpCode qvtErrorToken |
| // |
| case 302: { |
| //#line 662 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createForExpCS( |
| getRhsIToken(1), |
| null, |
| null, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 309: ifElseOpt ::= $Empty |
| // |
| case 309: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 310: ifElseOpt ::= else ifExpBodyCS |
| // |
| case 310: { |
| //#line 692 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = (CSTNode) getRhsSym(2); |
| setOffsets(result, getRhsIToken(1), result); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 311: ifElif_listOpt ::= $Empty |
| // |
| |
| case 311: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 313: ifElif_listElem ::= elif OclExpressionCS then ifExpBodyCS |
| // |
| case 313: { |
| //#line 704 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchAltExpCS( |
| (OCLExpressionCS) getRhsSym(2), |
| (OCLExpressionCS) getRhsSym(4) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 314: ifElif_list ::= ifElif_listElem |
| // |
| case 314: { |
| //#line 715 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| Object element = getRhsSym(1); |
| if (element instanceof EList) { |
| result.addAll((EList) element); |
| } else { |
| result.add(element); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 315: ifElif_list ::= ifElif_list ifElif_listElem |
| // |
| case 315: { |
| //#line 727 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| Object element = getRhsSym(2); |
| if (element instanceof EList) { |
| result.addAll((EList) element); |
| } else { |
| result.add(element); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 316: ifElif_list ::= ifElif_list qvtErrorToken |
| // |
| case 316: { |
| //#line 739 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 317: IfExpCS ::= if OclExpressionCS then ifExpBodyCS ifElif_listOpt ifElseOpt endif |
| // |
| case 317: { |
| //#line 747 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList elifPart = (EList)getRhsSym(5); |
| CSTNode result = null; |
| |
| if (elifPart.isEmpty()) { |
| result = createIfExpCS( |
| (OCLExpressionCS)getRhsSym(2), |
| (OCLExpressionCS)getRhsSym(4), |
| (OCLExpressionCS)getRhsSym(6) |
| ); |
| } |
| else { |
| result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(2), |
| (OCLExpressionCS)getRhsSym(4), |
| elifPart, |
| (OCLExpressionCS)getRhsSym(6) |
| ); |
| } |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 318: IfExpCS ::= if OclExpressionCS then ifExpBodyCS else ifElsePart |
| // |
| case 318: { |
| //#line 772 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(2), |
| (OCLExpressionCS)getRhsSym(4), |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 319: IfExpCS ::= if OclExpressionCS then ifThenPart |
| // |
| case 319: { |
| //#line 785 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(2), |
| null, |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 320: IfExpCS ::= if ifExpression |
| // |
| case 320: { |
| //#line 798 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS invalidCondition = createInvalidLiteralExpCS(""); //$NON-NLS-1$ |
| invalidCondition.setStartOffset(getRhsIToken(1).getEndOffset()); |
| invalidCondition.setEndOffset(getRhsIToken(1).getEndOffset()); |
| CSTNode result = createIfExpCSExt( |
| invalidCondition, |
| null, |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 321: IfExpCS_ext ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS |
| // |
| case 321: { |
| //#line 815 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 322: IfExpCS_ext ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full endif |
| // |
| case 322: { |
| //#line 827 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 323: IfExpCS_ext ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full ifElif_ext_list endifOpt |
| // |
| case 323: { |
| //#line 839 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| (EList)getRhsSym(6), |
| null |
| ); |
| |
| EList listElif = (EList)getRhsSym(6); |
| CSTNode lastElif = (CSTNode)listElif.get(listElif.size()-1); |
| CSTNode endifOptCS = (CSTNode)getRhsSym(7); |
| CSTNode end = endifOptCS != null ? endifOptCS : lastElif; |
| |
| setOffsets(result, getRhsIToken(1), end); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 324: IfExpCS_ext ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full else notUMinus_ifExpBodyCS endifOptOpt |
| // |
| case 324: { |
| //#line 857 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| ourEmptyEList, |
| (OCLExpressionCS)getRhsSym(7) |
| ); |
| |
| CSTNode endifOptCS = (CSTNode)getRhsSym(8); |
| CSTNode end = endifOptCS != null ? endifOptCS : (CSTNode)getRhsSym(7); |
| |
| setOffsets(result, getRhsIToken(1), end); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 325: IfExpCS_ext ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full ifElif_ext_list else notUMinus_ifExpBodyCS endifOptOpt |
| // |
| case 325: { |
| //#line 873 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| (EList)getRhsSym(6), |
| (OCLExpressionCS)getRhsSym(8) |
| ); |
| |
| CSTNode endifOptCS = (CSTNode)getRhsSym(9); |
| CSTNode end = endifOptCS != null ? endifOptCS : (CSTNode)getRhsSym(8); |
| |
| setOffsets(result, getRhsIToken(1), end); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 326: mandatory_elsePart ::= else notUMinus_ifExpBodyCS_full endifOptOpt |
| // |
| case 326: { |
| //#line 890 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = (CSTNode) getRhsSym(2); |
| |
| CSTNode endifOptCS = (CSTNode)getRhsSym(3); |
| CSTNode end = endifOptCS != null ? endifOptCS : (CSTNode)getRhsSym(2); |
| |
| setOffsets(result, getRhsIToken(1), end); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 327: IfExpCS_ext_full ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full mandatory_elsePart |
| // |
| case 327: { |
| //#line 902 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| ourEmptyEList, |
| (OCLExpressionCS)getRhsSym(6) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 328: IfExpCS_ext_full ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full ifElif_ext_list mandatory_elsePart |
| // |
| case 328: { |
| //#line 914 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| (EList)getRhsSym(6), |
| (OCLExpressionCS)getRhsSym(7) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 329: IfExpCS_ext_full ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full endif |
| // |
| case 329: { |
| //#line 926 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 330: IfExpCS_ext_full ::= if ( OclExpressionCS ) notUMinus_ifExpBodyCS_full ifElif_ext_list endif |
| // |
| case 330: { |
| //#line 938 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIfExpCSExt( |
| (OCLExpressionCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5), |
| (EList)getRhsSym(6), |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 332: ifElif_ext_listElem ::= elif ( OclExpressionCS ) notUMinus_ifExpBodyCS_full |
| // |
| case 332: { |
| //#line 954 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchAltExpCS( |
| (OCLExpressionCS) getRhsSym(3), |
| (OCLExpressionCS) getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 333: ifElif_ext_list ::= ifElif_ext_listElem |
| // |
| case 333: { |
| //#line 965 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| Object element = getRhsSym(1); |
| if (element instanceof EList) { |
| result.addAll((EList) element); |
| } else { |
| result.add(element); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 334: ifElif_ext_list ::= ifElif_ext_list ifElif_ext_listElem |
| // |
| case 334: { |
| //#line 977 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| Object element = getRhsSym(2); |
| if (element instanceof EList) { |
| result.addAll((EList) element); |
| } else { |
| result.add(element); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 335: endifOpt ::= $Empty |
| // |
| case 335: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 336: endifOpt ::= endif |
| // |
| case 336: { |
| //#line 998 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS result = createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, getRhsIToken(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 355: notUMinus_impliesNotNameNotLetCS ::= notUMinus_impliesNotLetCS implies notUMinus_xorNotLetCS |
| // |
| |
| case 355: |
| |
| // |
| // Rule 357: notUMinus_impliesWithLetCS ::= notUMinus_impliesNotLetCS implies notUMinus_xorWithLetCS |
| // |
| |
| case 357: |
| |
| // |
| // Rule 361: notUMinus_xorNotNameNotLetCS ::= notUMinus_xorNotLetCS xor notUMinus_orNotLetCS |
| // |
| |
| case 361: |
| |
| // |
| // Rule 363: notUMinus_xorWithLetCS ::= notUMinus_xorNotLetCS xor notUMinus_orWithLetCS |
| // |
| |
| case 363: |
| |
| // |
| // Rule 367: notUMinus_orNotNameNotLetCS ::= notUMinus_orNotLetCS or notUMinus_andNotLetCS |
| // |
| |
| case 367: |
| |
| // |
| // Rule 369: notUMinus_orWithLetCS ::= notUMinus_orNotLetCS or notUMinus_andWithLetCS |
| // |
| |
| case 369: |
| |
| // |
| // Rule 373: notUMinus_andNotNameNotLetCS ::= notUMinus_andNotLetCS and notUMinus_equalityNotLetCS |
| // |
| |
| case 373: |
| |
| // |
| // Rule 375: notUMinus_andWithLetCS ::= notUMinus_andNotLetCS and notUMinus_equalityWithLetCS |
| // |
| |
| case 375: |
| |
| // |
| // Rule 379: notUMinus_equalityNotNameNotLetCS ::= notUMinus_equalityNotLetCS = notUMinus_relationalNotLetCS |
| // |
| |
| case 379: |
| |
| // |
| // Rule 380: notUMinus_equalityNotNameNotLetCS ::= notUMinus_equalityNotLetCS <> notUMinus_relationalNotLetCS |
| // |
| |
| case 380: |
| |
| // |
| // Rule 382: notUMinus_equalityWithLetCS ::= notUMinus_equalityNotLetCS = notUMinus_relationalWithLetCS |
| // |
| |
| case 382: |
| |
| // |
| // Rule 383: notUMinus_equalityWithLetCS ::= notUMinus_equalityNotLetCS <> notUMinus_relationalWithLetCS |
| // |
| |
| case 383: |
| |
| // |
| // Rule 387: notUMinus_relationalNotNameNotLetCS ::= notUMinus_relationalNotLetCS > notUMinus_additiveNotLetCS |
| // |
| |
| case 387: |
| |
| // |
| // Rule 388: notUMinus_relationalNotNameNotLetCS ::= notUMinus_relationalNotLetCS < notUMinus_additiveNotLetCS |
| // |
| |
| case 388: |
| |
| // |
| // Rule 389: notUMinus_relationalNotNameNotLetCS ::= notUMinus_relationalNotLetCS >= notUMinus_additiveNotLetCS |
| // |
| |
| case 389: |
| |
| // |
| // Rule 390: notUMinus_relationalNotNameNotLetCS ::= notUMinus_relationalNotLetCS <= notUMinus_additiveNotLetCS |
| // |
| |
| case 390: |
| |
| // |
| // Rule 392: notUMinus_relationalWithLetCS ::= notUMinus_relationalNotLetCS > notUMinus_additiveWithLetCS |
| // |
| |
| case 392: |
| |
| // |
| // Rule 393: notUMinus_relationalWithLetCS ::= notUMinus_relationalNotLetCS < notUMinus_additiveWithLetCS |
| // |
| |
| case 393: |
| |
| // |
| // Rule 394: notUMinus_relationalWithLetCS ::= notUMinus_relationalNotLetCS >= notUMinus_additiveWithLetCS |
| // |
| |
| case 394: |
| |
| // |
| // Rule 395: notUMinus_relationalWithLetCS ::= notUMinus_relationalNotLetCS <= notUMinus_additiveWithLetCS |
| // |
| |
| case 395: |
| |
| // |
| // Rule 399: notUMinus_additiveNotNameNotLetCS ::= notUMinus_additiveNotLetCS + notUMinus_multiplicativeNotLetCS |
| // |
| |
| case 399: |
| |
| // |
| // Rule 400: notUMinus_additiveNotNameNotLetCS ::= notUMinus_additiveNotLetCS - notUMinus_multiplicativeNotLetCS |
| // |
| |
| case 400: |
| |
| // |
| // Rule 402: notUMinus_additiveWithLetCS ::= notUMinus_additiveNotLetCS + notUMinus_multiplicativeWithLetCS |
| // |
| |
| case 402: |
| |
| // |
| // Rule 403: notUMinus_additiveWithLetCS ::= notUMinus_additiveNotLetCS - notUMinus_multiplicativeWithLetCS |
| // |
| |
| case 403: |
| |
| // |
| // Rule 407: notUMinus_multiplicativeNotNameNotLetCS ::= notUMinus_multiplicativeNotLetCS * notUMinus_unaryNotLetCS |
| // |
| |
| case 407: |
| |
| // |
| // Rule 408: notUMinus_multiplicativeNotNameNotLetCS ::= notUMinus_multiplicativeNotLetCS / notUMinus_unaryNotLetCS |
| // |
| |
| case 408: |
| |
| // |
| // Rule 410: notUMinus_multiplicativeWithLetCS ::= notUMinus_multiplicativeNotLetCS * notUMinus_unaryWithLetCS |
| // |
| |
| case 410: |
| |
| // |
| // Rule 411: notUMinus_multiplicativeWithLetCS ::= notUMinus_multiplicativeNotLetCS / notUMinus_unaryWithLetCS |
| // |
| case 411: { |
| //#line 1127 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| getRhsIToken(2) |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(2)); |
| OCLExpressionCS left = (OCLExpressionCS)getRhsSym(1); |
| OCLExpressionCS right = (OCLExpressionCS)getRhsSym(3); |
| EList<OCLExpressionCS> args = new BasicEList<OCLExpressionCS>(); |
| args.add(right); |
| OperationCallExpCS result = createOperationCallExpCS( |
| left, |
| simpleNameCS, |
| args |
| ); |
| setOffsets(result, left, right); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 415: notUMinus_unaryNotNameNotLetCS ::= not notUMinus_unaryNotLetCS |
| // |
| |
| case 415: |
| |
| // |
| // Rule 417: notUMinus_unaryWithLetCS ::= not notUMinus_unaryWithLetCS |
| // |
| case 417: { |
| //#line 1156 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| getRhsIToken(1) |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(1)); |
| OCLExpressionCS expr = (OCLExpressionCS)getRhsSym(2); |
| OperationCallExpCS result = createOperationCallExpCS( |
| expr, |
| simpleNameCS, |
| new BasicEList<OCLExpressionCS>() |
| ); |
| setOffsets(result, simpleNameCS, expr); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 422: notUMinus_primaryNotNameCS ::= ( OclExpressionCS ) |
| // |
| case 422: { |
| //#line 1179 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS result = (OCLExpressionCS)getRhsSym(2); |
| if (result instanceof OperationCallExpCS) { |
| ((OperationCallExpCS)result).setIsAtomic(true); |
| } |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 439: blockExpCS ::= do expression_block |
| // |
| case 439: { |
| //#line 1218 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(2); |
| setOffsets(blockExpCS, getRhsIToken(1), blockExpCS); |
| setResult(blockExpCS); |
| break; |
| } |
| |
| // |
| // Rule 441: switchExpCS ::= switch switchBodyExpCS |
| // |
| case 441: { |
| //#line 1231 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] switchBody = (Object[]) getRhsSym(2); |
| |
| CSTNode result = createSwitchExpCS( |
| (EList<SwitchAltExpCS>) switchBody[0], |
| (OCLExpressionCS) switchBody[1] |
| ); |
| if (switchBody[2] instanceof IToken) { // In case of correct and incorrect syntax |
| setOffsets(result, getRhsIToken(1), (IToken) switchBody[2]); |
| } else { // In case of errors in switchBody |
| setOffsets(result, getRhsIToken(1), (CSTNode) switchBody[2]); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 443: switchDeclaratorCS ::= IDENTIFIER |
| // |
| case 443: { |
| //#line 1250 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableCS( |
| getRhsIToken(1), |
| null, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 444: switchDeclaratorCS ::= IDENTIFIER = OclExpressionCS |
| // |
| case 444: { |
| //#line 1262 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableCS( |
| getRhsIToken(1), |
| null, |
| (OCLExpressionCS)getRhsSym(3) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 445: IterateExpCS ::= primaryExpCS -> object ( uninitializedVariableCS ) objectDeclCS expression_block |
| // |
| case 445: { |
| //#line 1276 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(8); |
| ObjectExpCS objectExpCS = setupOutExpCS( |
| (ObjectExpCS) getRhsSym(7), |
| blockExpCS.getBodyExpressions(), |
| // passing body positions |
| blockExpCS.getStartOffset(), |
| blockExpCS.getEndOffset() |
| ); |
| setOffsets(objectExpCS, getRhsIToken(3), blockExpCS); |
| |
| EList<VariableCS> iterators = new BasicEList<VariableCS>(); |
| iterators.add((VariableCS) getRhsSym(5)); |
| CallExpCS result = createImperativeIterateExpCS( |
| createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, "xcollect"), //$NON-NLS-1$ |
| iterators, |
| null, |
| objectExpCS, |
| null |
| ); |
| |
| result.setSource((OCLExpressionCS) getRhsSym(1)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(8)); |
| |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 446: IterateExpCS ::= primaryExpCS -> switch ( switchDeclaratorCS ) switchBodyExpCS |
| // |
| case 446: { |
| //#line 1308 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] switchBody = (Object[]) getRhsSym(7); |
| |
| OCLExpressionCS switchExpCS = (OCLExpressionCS) createSwitchExpCS( |
| (EList<SwitchAltExpCS>) switchBody[0], |
| (OCLExpressionCS) switchBody[1] |
| ); |
| if (switchBody[2] instanceof IToken) { // In case of correct and incorrect syntax |
| setOffsets(switchExpCS, getRhsIToken(3), (IToken) switchBody[2]); |
| } else if (switchBody[2] instanceof CSTNode) { // In case of errors in switchBody |
| setOffsets(switchExpCS, getRhsIToken(3), (CSTNode) switchBody[2]); |
| } else { // In case of errors in switchBody |
| setOffsets(switchExpCS, getRhsIToken(3), getRhsIToken(6)); |
| } |
| |
| EList<VariableCS> iterators = new BasicEList<VariableCS>(); |
| iterators.add((VariableCS) getRhsSym(5)); |
| CallExpCS result = createImperativeIterateExpCS( |
| createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, "xcollect"), //$NON-NLS-1$ |
| iterators, |
| null, |
| switchExpCS, |
| null |
| ); |
| |
| result.setSource((OCLExpressionCS) getRhsSym(1)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 447: switchExpCS ::= switch qvtErrorToken |
| // |
| case 447: { |
| //#line 1341 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchExpCS( |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 448: switchBodyExpCS ::= { switchAltExpCSList switchElseExpCSOpt } |
| // |
| case 448: { |
| //#line 1352 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] result = new Object[] {getRhsSym(2), getRhsSym(3), getRhsIToken(4)}; |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 449: switchBodyExpCS ::= { switchAltExpCSList switchElseExpCSOpt qvtErrorToken |
| // |
| case 449: { |
| //#line 1359 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] result = new Object[] {getRhsSym(2), getRhsSym(3), getRhsSym(3)}; |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 450: switchBodyExpCS ::= { qvtErrorToken |
| // |
| case 450: { |
| //#line 1366 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] result = new Object[] {ourEmptyEList, null, getRhsIToken(1)}; |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 451: switchAltExpCSList ::= switchAltExpCS |
| // |
| case 451: { |
| //#line 1373 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 452: switchAltExpCSList ::= switchAltExpCSList switchAltExpCS |
| // |
| case 452: { |
| //#line 1380 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 453: switchAltExpCS ::= case ( OclExpressionCS ) expression_statement |
| // |
| case 453: { |
| //#line 1388 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchAltExpCS( |
| (OCLExpressionCS) getRhsSym(3), |
| (OCLExpressionCS) getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 454: switchAltExpCS ::= case ( OclExpressionCS ) qvtErrorToken |
| // |
| case 454: { |
| //#line 1398 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchAltExpCS( |
| (OCLExpressionCS) getRhsSym(3), |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 455: switchElseExpCSOpt ::= $Empty |
| // |
| case 455: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 457: switchElseExpCS ::= else expression_statement |
| // |
| case 457: { |
| //#line 1413 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult((CSTNode)getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 458: switchElseExpCS ::= else qvtErrorToken |
| // |
| case 458: { |
| //#line 1418 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(null); |
| break; |
| } |
| |
| // |
| // Rule 459: OclExpressionCS ::= primaryOCLExpressionCS |
| // |
| case 459: { |
| //#line 1426 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createExpressionStatementCS( |
| (OCLExpressionCS)getRhsSym(1) |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 461: logWhenExp ::= when OclExpressionCS |
| // |
| case 461: { |
| //#line 1440 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS condition = (OCLExpressionCS) getRhsSym(2); |
| setResult(condition); |
| break; |
| } |
| |
| // |
| // Rule 463: logWhenExpOpt ::= $Empty |
| // |
| case 463: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 464: logExpCS ::= log ( argumentsCSopt ) logWhenExpOpt |
| // |
| case 464: { |
| //#line 1451 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS condition = (OCLExpressionCS) getRhsSym(5); |
| LogExpCS result = (LogExpCS)createLogExpCS((EList<OCLExpressionCS>)getRhsSym(3), condition); |
| if(condition != null) { |
| setOffsets(result, getRhsIToken(1), condition); |
| } else { |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 466: severityKindCS ::= simpleNameCS |
| // |
| case 466: { |
| //#line 1467 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(1)); |
| break; |
| } |
| |
| // |
| // Rule 468: severityKindCSOpt ::= $Empty |
| // |
| case 468: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 469: assertWithLogExp ::= with logExpCS |
| // |
| case 469: { |
| //#line 1479 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| LogExpCS logExp = (LogExpCS) getRhsSym(2); |
| setOffsets(logExp, getRhsIToken(2), logExp); |
| setResult(logExp); |
| break; |
| } |
| |
| // |
| // Rule 471: assertWithLogExpOpt ::= $Empty |
| // |
| case 471: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 472: assertExpCS ::= assert severityKindCSOpt ( OclExpressionCS ) assertWithLogExpOpt |
| // |
| case 472: { |
| //#line 1491 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| LogExpCS logExpCS = (LogExpCS)getRhsSym(6); |
| OCLExpressionCS condition = (OCLExpressionCS)getRhsSym(4); |
| AssertExpCS result = (AssertExpCS)createAssertExpCS(condition, (SimpleNameCS)getRhsSym(2), logExpCS); |
| |
| CSTNode end = logExpCS != null ? logExpCS : condition; |
| setOffsets(result, getRhsIToken(1), end); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 473: computeExpCS ::= compute ( declarator ) expression_block |
| // |
| case 473: { |
| //#line 1506 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createComputeExpCS( |
| (VariableCS) getRhsSym(3), |
| (OCLExpressionCS) getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 475: IterateExpCS ::= primaryExpCS -> imperativeIterateExpCS |
| // |
| case 475: { |
| //#line 1524 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| ImperativeIterateExpCS iterateExpCS = (ImperativeIterateExpCS) getRhsSym(3); |
| iterateExpCS.setSource(source); |
| setOffsets(iterateExpCS, source, iterateExpCS); |
| setResult(iterateExpCS); |
| break; |
| } |
| |
| // |
| // Rule 484: imperativeIterateExpCS ::= imperativeIteratorExpCSToken12 ( imperativeIterContents12 ) |
| // |
| |
| case 484: |
| |
| // |
| // Rule 485: imperativeIterateExpCS ::= imperativeIteratorExpCSToken3 ( imperativeIterContents3 ) |
| // |
| case 485: { |
| //#line 1553 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| String opCode = getRhsTokenText(1); |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| getRhsIToken(1) |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(1)); |
| Object[] iterContents = (Object[]) getRhsSym(3); |
| OCLExpressionCS bodyCS = null; |
| OCLExpressionCS conditionCS = null; |
| if ("xcollect".equals(opCode) //$NON-NLS-1$ |
| || "collectOne".equals(opCode)) { //$NON-NLS-1$ |
| bodyCS = (OCLExpressionCS) iterContents[2]; |
| } else { |
| conditionCS = (OCLExpressionCS) iterContents[2]; |
| } |
| CSTNode result = createImperativeIterateExpCS( |
| simpleNameCS, |
| (EList<VariableCS>)iterContents[0], |
| (VariableCS)iterContents[1], |
| bodyCS, |
| conditionCS |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 486: imperativeIterateExpCS ::= imperativeIteratorExpCSToken qvtErrorToken |
| // |
| case 486: { |
| //#line 1582 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| getRhsIToken(1) |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(1)); |
| CSTNode result = createImperativeIterateExpCS( |
| simpleNameCS, |
| ourEmptyEList, |
| null, |
| null, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 487: imperativeIterContents12 ::= OclExpressionCS |
| // |
| case 487: { |
| //#line 1602 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(new Object[] { |
| ourEmptyEList, |
| null, |
| getRhsSym(1) |
| }); |
| break; |
| } |
| |
| // |
| // Rule 488: imperativeIterContents12 ::= uninitializedVariableCS | OclExpressionCS |
| // |
| case 488: { |
| //#line 1612 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> iters = new BasicEList<Object>(); |
| iters.add(getRhsSym(1)); |
| |
| setResult(new Object[] { |
| iters, |
| null, |
| getRhsSym(3) |
| }); |
| break; |
| } |
| |
| // |
| // Rule 489: imperativeIterContents12 ::= simpleNameCS , variableDeclarationListCS | OclExpressionCS |
| // |
| case 489: { |
| //#line 1625 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS name = (SimpleNameCS)getRhsSym(1); |
| CSTNode variableCS = createVariableCS(name, null, null); |
| setOffsets(variableCS, name); |
| |
| EList iters = (EList) getRhsSym(3); |
| iters.add(0, variableCS); |
| |
| setResult(new Object[] { |
| iters, |
| null, |
| getRhsSym(5) |
| }); |
| break; |
| } |
| |
| // |
| // Rule 490: imperativeIterContents3 ::= variableDeclarationListCS ; initializedVariableCS | OclExpressionCS |
| // |
| case 490: { |
| //#line 1642 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(new Object[] { |
| getRhsSym(1), |
| getRhsSym(3), |
| getRhsSym(5) |
| }); |
| break; |
| } |
| |
| // |
| // Rule 491: variableDeclarationListCS ::= uninitializedVariableCS |
| // |
| case 491: { |
| //#line 1652 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 492: variableDeclarationListCS ::= variableDeclarationListCS , uninitializedVariableCS |
| // |
| case 492: { |
| //#line 1659 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 493: exclamationOpt ::= $Empty |
| // |
| case 493: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 495: declarator_vsep ::= IDENTIFIER | |
| // |
| case 495: { |
| //#line 1675 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableCS( |
| getRhsIToken(1), |
| null, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 496: declarator_vsepOpt ::= $Empty |
| // |
| case 496: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 498: IterateExpCS ::= primaryExpCS exclamationOpt [ declarator_vsepOpt OclExpressionCS ] |
| // |
| case 498: { |
| //#line 1692 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| if (source instanceof ImperativeIterateExpCS |
| && "xcollect".equals(((ImperativeIterateExpCS)source).getSimpleNameCS().getValue())) { //$NON-NLS-1$ |
| String opCode = isTokenOfType(getRhsIToken(2), LightweightTypeParsersym.TK_EXCLAMATION_MARK) |
| ? "collectselectOne" //$NON-NLS-1$ |
| : "collectselect"; //$NON-NLS-1$ |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| opCode |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(3), getRhsIToken(6)); |
| |
| ImperativeIterateExpCS result = (ImperativeIterateExpCS) source; |
| result.setSimpleNameCS(simpleNameCS); |
| |
| VariableCS variableCS = (VariableCS) getRhsSym(4); |
| if (variableCS != null) { |
| result.setTarget(variableCS); |
| } |
| result.setCondition((OCLExpressionCS) getRhsSym(5)); |
| |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| } |
| else { |
| String opCode = isTokenOfType(getRhsIToken(2), LightweightTypeParsersym.TK_EXCLAMATION_MARK) |
| ? "selectOne" //$NON-NLS-1$ |
| : "xselect"; //$NON-NLS-1$ |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.KEYWORD_LITERAL, |
| opCode |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(3), getRhsIToken(6)); |
| |
| EList<VariableCS> iterators = new BasicEList<VariableCS>(); |
| iterators.add((VariableCS) getRhsSym(4)); |
| |
| CallExpCS result = createImperativeIterateExpCS( |
| simpleNameCS, |
| iterators, |
| null, |
| null, |
| (OCLExpressionCS) getRhsSym(5) |
| ); |
| result.setSource(source); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| } |
| break; |
| } |
| |
| // |
| // Rule 499: IterateExpCS ::= primaryExpCS -> simpleNameCS |
| // |
| case 499: { |
| //#line 1746 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| SimpleNameCS featureNameCS = (SimpleNameCS)getRhsSym(3); |
| VariableExpCS variableCS = createVariableExpCS( |
| featureNameCS, |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(variableCS, featureNameCS); |
| |
| ImperativeIterateExpCS result = createImperativeIterateExpCS( |
| createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, "xcollect"), //$NON-NLS-1 //$NON-NLS-1$ |
| ourEmptyEList, |
| null, |
| variableCS, |
| null |
| ); |
| result.setSource(source); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 501: newExpCS ::= new typespec ( argumentsCSopt ) |
| // |
| case 501: { |
| //#line 1772 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS result = createNewRuleCallExpCS((TypeSpecCS) getRhsSym(2), (EList) getRhsSym(4)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 502: breakExpCS ::= break |
| // |
| case 502: { |
| //#line 1783 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS result = createBreakCS(); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 503: continueExpCS ::= continue |
| // |
| case 503: { |
| //#line 1791 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS result = createContinueCS(); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 508: declarator1 ::= IDENTIFIER : typeCS |
| // |
| case 508: { |
| //#line 1809 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableCS( |
| getRhsIToken(1), |
| (TypeCS)getRhsSym(3), |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 509: declarator1 ::= IDENTIFIER : typeCS = OclExpressionCS |
| // |
| case 509: { |
| //#line 1821 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableCS( |
| getRhsIToken(1), |
| (TypeCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 510: declarator1 ::= IDENTIFIER : typeCS := OclExpressionCS |
| // |
| case 510: { |
| //#line 1833 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableCS( |
| getRhsIToken(1), |
| (TypeCS)getRhsSym(3), |
| (OCLExpressionCS)getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 511: declarator2 ::= IDENTIFIER := OclExpressionCS |
| // |
| case 511: { |
| //#line 1845 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createVariableCS( |
| getRhsIToken(1), |
| null, |
| (OCLExpressionCS)getRhsSym(3) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 514: expression_listOpt ::= $Empty |
| // |
| |
| case 514: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 518: expression_semi_list ::= expression_semi_list_element |
| // |
| case 518: { |
| //#line 1868 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| Object element = getRhsSym(1); |
| if (element instanceof EList) { |
| result.addAll((EList) element); |
| } else { |
| result.add(element); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 519: expression_semi_list ::= expression_semi_list ; expression_semi_list_element |
| // |
| case 519: { |
| //#line 1880 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| Object element = getRhsSym(3); |
| if (element instanceof EList) { |
| result.addAll((EList) element); |
| } else { |
| result.add(element); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 520: expression_semi_list ::= expression_semi_list qvtErrorToken |
| // |
| case 520: { |
| //#line 1892 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 521: expression_block ::= { expression_listOpt } |
| // |
| case 521: { |
| //#line 1899 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList bodyList = (EList) getRhsSym(2); |
| CSTNode result = createBlockExpCS( |
| bodyList |
| ); |
| |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 522: expression_block ::= { qvtErrorToken |
| // |
| case 522: { |
| //#line 1910 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createBlockExpCS( |
| ourEmptyEList |
| ); |
| |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 525: qvtErrorToken ::= ERROR_TOKEN |
| // |
| case 525: { |
| //#line 1924 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| diagnozeErrorToken(getRhsTokenIndex(1)); |
| break; |
| } |
| |
| // |
| // Rule 526: switchAltExpCS ::= ( OclExpressionCS ) ? OclExpressionCS ; |
| // |
| case 526: { |
| //#line 1934 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchAltExpCSDeprecated( |
| (OCLExpressionCS) getRhsSym(2), |
| (OCLExpressionCS) getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 527: switchAltExpCS ::= ( OclExpressionCS ) qvtErrorToken |
| // |
| case 527: { |
| //#line 1944 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchAltExpCSDeprecated( |
| (OCLExpressionCS) getRhsSym(2), |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 528: switchAltExpCS ::= ( qvtErrorToken |
| // |
| case 528: { |
| //#line 1954 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSwitchAltExpCSDeprecated( |
| null, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 529: switchElseExpCS ::= else ? OclExpressionCS ; |
| // |
| case 529: { |
| //#line 1965 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| int startOffset = getRhsIToken(1).getStartOffset(); |
| int endOffset = getRhsIToken(4).getEndOffset(); |
| reportWarning(org.eclipse.m2m.internal.qvt.oml.cst.parser.NLS.bind(org.eclipse.m2m.internal.qvt.oml.cst.parser.Messages.AbstractQVTParser_DeprecatedSwitchElseExp, null), startOffset, endOffset); |
| |
| setResult((CSTNode)getRhsSym(3)); |
| break; |
| } |
| |
| // |
| // Rule 530: switchElseExpCS ::= else ? OclExpressionCS qvtErrorToken |
| // |
| case 530: { |
| //#line 1974 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| int startOffset = getRhsIToken(1).getStartOffset(); |
| int endOffset = getRhsIToken(3).getEndOffset(); |
| reportWarning(org.eclipse.m2m.internal.qvt.oml.cst.parser.NLS.bind(org.eclipse.m2m.internal.qvt.oml.cst.parser.Messages.AbstractQVTParser_DeprecatedSwitchElseExp, null), startOffset, endOffset); |
| |
| setResult((CSTNode)getRhsSym(3)); |
| break; |
| } |
| |
| // |
| // Rule 531: topLevel ::= unit_elementList |
| // |
| case 531: { |
| //#line 189 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<CSTNode> unitElements = (EList<CSTNode>)getRhsSym(1); |
| setResult(setupTopLevel(unitElements)); |
| break; |
| } |
| |
| // |
| // Rule 533: _import ::= import unit ; |
| // |
| case 533: { |
| //#line 198 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createImportCS( |
| (PathNameCS)getRhsSym(2) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 535: _import ::= import importDeclaration |
| // |
| case 535: { |
| //#line 210 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createLibraryImportCS( |
| createPathNameCS() |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 537: unit_elementList ::= unit_elementList unit_element |
| // |
| case 537: { |
| //#line 224 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList list = (EList)getRhsSym(1); |
| list.add(getRhsSym(2)); |
| setResult(list); |
| break; |
| } |
| |
| // |
| // Rule 538: unit_elementList ::= $Empty |
| // |
| |
| case 538: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 549: unit_element ::= qvtErrorToken |
| // |
| case 549: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 552: transformation_decl ::= transformation_h ; |
| // |
| case 552: { |
| //#line 253 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| TransformationHeaderCS headerCS = (TransformationHeaderCS) getRhsSym(1); |
| setOffsets(headerCS, headerCS, getRhsIToken(2)); |
| MappingModuleCS moduleCS = createMappingModuleCS(headerCS, ourEmptyEList); |
| setOffsets(moduleCS, headerCS); |
| setResult(moduleCS); |
| break; |
| } |
| |
| // |
| // Rule 553: transformation_def ::= transformation_h { module_elementList } semicolonOpt |
| // |
| case 553: { |
| //#line 263 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| TransformationHeaderCS headerCS = (TransformationHeaderCS) getRhsSym(1); |
| MappingModuleCS moduleCS = createMappingModuleCS(headerCS, (EList) getRhsSym(3)); |
| setOffsets(moduleCS, headerCS, getRhsIToken(4)); |
| setResult(moduleCS); |
| break; |
| } |
| |
| // |
| // Rule 556: library_decl ::= library_h ; |
| // |
| case 556: { |
| //#line 275 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| TransformationHeaderCS headerCS = (TransformationHeaderCS) getRhsSym(1); |
| setOffsets(headerCS, headerCS, getRhsIToken(2)); |
| MappingModuleCS moduleCS = createLibraryCS(headerCS, ourEmptyEList); |
| setOffsets(moduleCS, headerCS); |
| setResult(moduleCS); |
| break; |
| } |
| |
| // |
| // Rule 557: library_def ::= library_h { module_elementList } semicolonOpt |
| // |
| case 557: { |
| //#line 285 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| TransformationHeaderCS headerCS = (TransformationHeaderCS) getRhsSym(1); |
| MappingModuleCS moduleCS = createLibraryCS(headerCS, (EList) getRhsSym(3)); |
| setOffsets(moduleCS, headerCS, getRhsIToken(4)); |
| setResult(moduleCS); |
| break; |
| } |
| |
| // |
| // Rule 558: transformation_h ::= qualifierList transformation qualifiedNameCS transformation_signature transformation_usage_refineOpt |
| // |
| case 558: { |
| //#line 297 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList transfUsages = ourEmptyEList; |
| TransformationRefineCS transfRefine = null; |
| Object transformation_usage_refineOpt = getRhsSym(5); |
| if (transformation_usage_refineOpt instanceof TransformationRefineCS) { |
| transfRefine = (TransformationRefineCS) transformation_usage_refineOpt; |
| } else if (transformation_usage_refineOpt instanceof EList) { |
| transfUsages = (EList) transformation_usage_refineOpt; |
| } |
| CSTNode result = createTransformationHeaderCS( |
| (EList) getRhsSym(1), |
| (PathNameCS)getRhsSym(3), |
| (SimpleSignatureCS)getRhsSym(4), |
| transfUsages, |
| transfRefine |
| ); |
| setOffsets(result, getRhsIToken(2)); |
| |
| if (transfRefine == null) { |
| if (transfUsages.isEmpty()) { |
| setOffsets(result, result, (SimpleSignatureCS)getRhsSym(4)); |
| } |
| else { |
| setOffsets(result, result, (CSTNode) transfUsages.get(transfUsages.size()-1)); |
| } |
| } else { |
| setOffsets(result, result, transfRefine); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 559: transformation_usage_refineOpt ::= $Empty |
| // |
| case 559: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 564: transformation_refine ::= refines moduleref |
| // |
| case 564: { |
| //#line 340 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createTransformationRefineCS( |
| (ModuleRefCS)getRhsSym(2) |
| ); |
| setOffsets(result, (ModuleRefCS)getRhsSym(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 565: library_h ::= library qualifiedNameCS library_signatureOpt module_usageListOpt |
| // |
| case 565: { |
| //#line 353 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS name = (PathNameCS)getRhsSym(2); |
| SimpleSignatureCS signature = (getRhsSym(3) == null) ? createSimpleSignatureCS(ourEmptyEList) : (SimpleSignatureCS)getRhsSym(3); |
| EList<ModuleUsageCS> moduleUsages = (EList<ModuleUsageCS>)getRhsSym(4); |
| CSTNode result = createTransformationHeaderCS( |
| ourEmptyEList, |
| name, |
| signature, |
| moduleUsages, |
| null |
| ); |
| CSTNode rightNode = name; |
| if (!moduleUsages.isEmpty()) { |
| rightNode = moduleUsages.get(moduleUsages.size() - 1); |
| } else if (getRhsSym(3) != null) { |
| rightNode = signature; |
| } |
| setOffsets(result, getRhsIToken(1), rightNode); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 567: library_h ::= library libraryDeclaration |
| // |
| case 567: { |
| //#line 378 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createTransformationHeaderCS( |
| ourEmptyEList, |
| createPathNameCS(), |
| createSimpleSignatureCS(ourEmptyEList), |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 568: library_signatureOpt ::= $Empty |
| // |
| case 568: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 571: module_usageList ::= module_usage |
| // |
| case 571: { |
| //#line 400 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 572: module_usageList ::= module_usageList module_usage |
| // |
| case 572: { |
| //#line 407 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList) getRhsSym(1); |
| result.add(getRhsSym(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 573: module_usageListOpt ::= $Empty |
| // |
| |
| case 573: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 577: access_usage ::= access module_kindOpt moduleref_list |
| // |
| case 577: { |
| //#line 422 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList moduleRefList = (EList)getRhsSym(3); |
| CSTNode result = createModuleUsageCS( |
| ImportKindEnum.ACCESS, |
| (ModuleKindCS)getRhsSym(2), |
| moduleRefList |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)moduleRefList.get(moduleRefList.size()-1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 578: extends_usage ::= extends module_kindOpt moduleref_list |
| // |
| case 578: { |
| //#line 434 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList moduleRefList = (EList)getRhsSym(3); |
| CSTNode result = createModuleUsageCS( |
| ImportKindEnum.EXTENSION, |
| (ModuleKindCS)getRhsSym(2), |
| moduleRefList |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)moduleRefList.get(moduleRefList.size()-1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 579: module_kindOpt ::= $Empty |
| // |
| case 579: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 581: module_kind ::= transformation |
| // |
| case 581: { |
| //#line 451 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createModuleKindCS( |
| ModuleKindEnum.TRANSFORMATION |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 582: module_kind ::= library |
| // |
| case 582: { |
| //#line 460 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createModuleKindCS( |
| ModuleKindEnum.LIBRARY |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 583: moduleref_list ::= moduleref |
| // |
| case 583: { |
| //#line 470 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 584: moduleref_list ::= moduleref_list , moduleref |
| // |
| case 584: { |
| //#line 477 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList) getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 585: moduleref_list ::= moduleref_list qvtErrorToken |
| // |
| case 585: { |
| //#line 484 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList) getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 586: moduleref ::= pathNameCS simple_signatureOpt |
| // |
| case 586: { |
| //#line 491 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleSignatureCS signature = (SimpleSignatureCS)getRhsSym(2); |
| CSTNode result = createModuleRefCS( |
| (PathNameCS)getRhsSym(1), |
| signature |
| ); |
| CSTNode rightNode = (signature == null) ? (CSTNode)getRhsSym(1) : signature; |
| setOffsets(result, (CSTNode)getRhsSym(1), rightNode); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 587: module_elementList ::= module_elementList module_element |
| // |
| case 587: { |
| //#line 506 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList list = (EList)getRhsSym(1); |
| list.add(getRhsSym(2)); |
| setResult(list); |
| break; |
| } |
| |
| // |
| // Rule 588: module_elementList ::= $Empty |
| // |
| |
| case 588: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 596: module_element ::= qvtErrorToken |
| // |
| case 596: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 597: _modeltype ::= modeltype IDENTIFIER compliance_kindOpt uses packageref_list modeltype_whereOpt ; |
| // |
| case 597: { |
| //#line 529 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList whereList = (EList)getRhsSym(6); |
| EList packageRefList = (EList)getRhsSym(5); |
| ModelTypeCS result = createModelTypeCS( |
| getRhsIToken(2), |
| (StringLiteralExpCS)getRhsSym(3), |
| packageRefList, |
| whereList |
| ); |
| if (whereList.isEmpty()) { |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| } |
| else { |
| CSTNode lastPackageRefCS = (CSTNode)packageRefList.get(packageRefList.size()-1); |
| setOffsets(result, getRhsIToken(1), lastPackageRefCS); |
| setBodyOffsets(result, lastPackageRefCS, getRhsIToken(7)); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 599: _modeltype ::= modeltype modeltypeDeclaration |
| // |
| case 599: { |
| //#line 553 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| ModelTypeCS result = createModelTypeCS( |
| new Token(0, 0, 0), |
| null, |
| ourEmptyEList, |
| ourEmptyEList |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 600: modeltype_whereOpt ::= $Empty |
| // |
| |
| case 600: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 602: modeltype_where ::= where expression_block |
| // |
| case 602: { |
| //#line 570 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(2); |
| setResult(blockExpCS.getBodyExpressions()); |
| break; |
| } |
| |
| // |
| // Rule 603: packageref_list ::= packageref |
| // |
| case 603: { |
| //#line 577 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 604: packageref_list ::= packageref_list , packageref |
| // |
| case 604: { |
| //#line 584 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 605: packageref_list ::= packageref_list qvtErrorToken |
| // |
| case 605: { |
| //#line 591 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 606: packageref ::= pathNameCS |
| // |
| case 606: { |
| //#line 598 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createPackageRefCS( |
| (PathNameCS)getRhsSym(1), |
| null |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 607: packageref ::= pathNameCS ( uri ) |
| // |
| case 607: { |
| //#line 608 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createPackageRefCS( |
| (PathNameCS)getRhsSym(1), |
| (StringLiteralExpCS)getRhsSym(3) |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 608: packageref ::= uri |
| // |
| case 608: { |
| //#line 618 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createPackageRefCS( |
| null, |
| (StringLiteralExpCS)getRhsSym(1) |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 609: compliance_kindOpt ::= $Empty |
| // |
| case 609: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 613: classifierDefCS ::= intermediate class qvtIdentifierCS classifierExtensionOpt { classifierFeatureListOpt } semicolonOpt |
| // |
| case 613: { |
| //#line 641 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createIntermediateClassDefCS( |
| getRhsIToken(3), |
| (EList) getRhsSym(4), |
| (EList) getRhsSym(6) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 614: classifierDefCS ::= exception qvtIdentifierCS classifierExtensionOpt { classifierFeatureListOpt } semicolonOpt |
| // |
| case 614: { |
| //#line 653 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createExceptionDefCS( |
| getRhsIToken(2), |
| (EList) getRhsSym(3), |
| (EList) getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 615: classifierExtensionOpt ::= $Empty |
| // |
| |
| case 615: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 616: classifierExtensionOpt ::= extends type_list |
| // |
| case 616: { |
| //#line 667 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(2); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 617: type_list ::= typeCS |
| // |
| case 617: { |
| //#line 673 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 618: type_list ::= type_list , typeCS |
| // |
| case 618: { |
| //#line 680 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 619: type_list ::= type_list qvtErrorToken |
| // |
| case 619: { |
| //#line 687 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 620: classifierFeatureListOpt ::= $Empty |
| // |
| |
| case 620: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 622: classifierFeatureList ::= classifierFeatureCS |
| // |
| case 622: { |
| //#line 698 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 623: classifierFeatureList ::= classifierFeatureList ; classifierFeatureCS |
| // |
| case 623: { |
| //#line 705 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 624: classifierFeatureList ::= classifierFeatureList qvtErrorToken |
| // |
| case 624: { |
| //#line 712 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 625: classifierFeatureCS ::= stereotype_qualifier_list feature_key_list qvtIdentifierCS : typeCS multiplicityOpt ordered_prop opposite_propertyOpt init_partOpt |
| // |
| case 625: { |
| //#line 719 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList stereotypeQualifiers = (EList) getRhsSym(1); |
| EList featureKeys = (EList) getRhsSym(2); |
| MultiplicityDefCS multiplicityDef = (MultiplicityDefCS) getRhsSym(6); |
| OppositePropertyCS oppositeProperty = (OppositePropertyCS) getRhsSym(8); |
| OCLExpressionCS initExpression = (OCLExpressionCS) getRhsSym(9); |
| CSTNode result = createClassifierPropertyCS( |
| stereotypeQualifiers, |
| featureKeys, |
| getRhsIToken(3), |
| (TypeCS) getRhsSym(5), |
| ((BooleanLiteralExpCS) getRhsSym(7)).getBooleanSymbol().booleanValue(), |
| initExpression, |
| multiplicityDef, |
| oppositeProperty |
| ); |
| |
| int startOffset = getRhsIToken(3).getStartOffset(); |
| if (!featureKeys.isEmpty()) { |
| startOffset = ((CSTNode) featureKeys.get(0)).getStartOffset(); |
| } |
| if (!stereotypeQualifiers.isEmpty()) { |
| startOffset = ((IToken) stereotypeQualifiers.get(0)).getStartOffset(); |
| } |
| |
| CSTNode lastToken = (CSTNode) getRhsSym(5); |
| if (initExpression != null) { |
| lastToken = initExpression; |
| } |
| if (multiplicityDef != null) { |
| lastToken = multiplicityDef; |
| } |
| if (oppositeProperty != null) { |
| lastToken = oppositeProperty; |
| } |
| |
| setOffsets(result, lastToken); |
| result.setStartOffset(startOffset); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 627: init_partOpt ::= $Empty |
| // |
| case 627: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 628: init_partOpt ::= = OclExpressionCS |
| // |
| case 628: { |
| //#line 765 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = (CSTNode) getRhsSym(2); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 629: stereotype_qualifier_list ::= $Empty |
| // |
| |
| case 629: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 630: stereotype_qualifier_list ::= STEREOTYPE_QUALIFIER_OPEN identifier_list STEREOTYPE_QUALIFIER_CLOSE |
| // |
| case 630: { |
| //#line 774 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(2); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 631: identifier_list ::= qvtIdentifierCS |
| // |
| case 631: { |
| //#line 781 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 632: identifier_list ::= identifier_list , qvtIdentifierCS |
| // |
| case 632: { |
| //#line 788 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList) getRhsSym(1); |
| result.add(getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 633: identifier_list ::= identifier_list qvtErrorToken |
| // |
| case 633: { |
| //#line 795 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 634: feature_key_list ::= $Empty |
| // |
| |
| case 634: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 635: feature_key_list ::= feature_key_list feature_key |
| // |
| case 635: { |
| //#line 804 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList) getRhsSym(1); |
| result.add(getRhsSym(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 636: feature_key_list ::= feature_key_list qvtErrorToken |
| // |
| case 636: { |
| //#line 811 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 637: feature_key ::= composes |
| // |
| |
| case 637: |
| |
| // |
| // Rule 638: feature_key ::= references |
| // |
| |
| case 638: |
| |
| // |
| // Rule 639: feature_key ::= readonly |
| // |
| |
| case 639: |
| |
| // |
| // Rule 640: feature_key ::= derived |
| // |
| |
| case 640: |
| |
| // |
| // Rule 641: feature_key ::= static |
| // |
| case 641: { |
| //#line 826 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSimpleNameCS(SimpleTypeEnum.KEYWORD_LITERAL, getRhsIToken(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 642: multiplicityOpt ::= $Empty |
| // |
| case 642: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 643: multiplicityOpt ::= LBRACKET multiplicity_range RBRACKET |
| // |
| case 643: { |
| //#line 836 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = (CSTNode) getRhsSym(2); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 644: multiplicity_range ::= IntegerLiteralExpCS |
| // |
| case 644: { |
| //#line 843 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMultiplicityDefCS( |
| (PrimitiveLiteralExpCS) getRhsSym(1), |
| (PrimitiveLiteralExpCS) getRhsSym(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 645: multiplicity_range ::= UnlimitedNaturalLiteralExpCS |
| // |
| case 645: { |
| //#line 853 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PrimitiveLiteralExpCS lowerBound = createIntegerLiteralExpCS(Integer.toString(0)); |
| setOffsets(lowerBound, getRhsIToken(1)); |
| CSTNode result = createMultiplicityDefCS( |
| lowerBound, |
| (PrimitiveLiteralExpCS) getRhsSym(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 646: multiplicity_range ::= IntegerLiteralExpCS MULTIPLICITY_RANGE IntegerLiteralExpCS |
| // |
| |
| case 646: |
| |
| // |
| // Rule 647: multiplicity_range ::= IntegerLiteralExpCS DOTDOT IntegerLiteralExpCS |
| // |
| |
| case 647: |
| |
| // |
| // Rule 648: multiplicity_range ::= IntegerLiteralExpCS MULTIPLICITY_RANGE UnlimitedNaturalLiteralExpCS |
| // |
| |
| case 648: |
| |
| // |
| // Rule 649: multiplicity_range ::= IntegerLiteralExpCS DOTDOT UnlimitedNaturalLiteralExpCS |
| // |
| case 649: { |
| //#line 871 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMultiplicityDefCS( |
| (PrimitiveLiteralExpCS) getRhsSym(1), |
| (PrimitiveLiteralExpCS) getRhsSym(3) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 650: ordered_prop ::= ordered |
| // |
| case 650: { |
| //#line 882 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createBooleanLiteralExpCS(Boolean.TRUE.toString()); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 651: ordered_prop ::= $Empty |
| // |
| case 651: { |
| //#line 889 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createBooleanLiteralExpCS(Boolean.FALSE.toString()); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 652: opposite_propertyOpt ::= $Empty |
| // |
| case 652: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 653: opposite_propertyOpt ::= opposites navigable_prop qvtIdentifierCS multiplicityOpt |
| // |
| case 653: { |
| //#line 898 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MultiplicityDefCS multiplicityDef = (MultiplicityDefCS) getRhsSym(4); |
| CSTNode result = createOppositePropertyCS( |
| getRhsIToken(3), |
| ((BooleanLiteralExpCS) getRhsSym(2)).getBooleanSymbol().booleanValue(), |
| multiplicityDef |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| if (multiplicityDef != null) { |
| result.setEndOffset(multiplicityDef.getEndOffset()); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 654: navigable_prop ::= ~ |
| // |
| case 654: { |
| //#line 914 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createBooleanLiteralExpCS(Boolean.FALSE.toString()); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 655: navigable_prop ::= $Empty |
| // |
| case 655: { |
| //#line 921 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createBooleanLiteralExpCS(Boolean.TRUE.toString()); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 656: _property ::= configuration property qvtIdentifierCS : typeCS ; |
| // |
| case 656: { |
| //#line 930 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createConfigPropertyCS( |
| getRhsIToken(3), |
| (TypeCS)getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 657: _property ::= configuration property qvtIdentifierCS : typeCS qvtErrorToken |
| // |
| case 657: { |
| //#line 940 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createConfigPropertyCS( |
| getRhsIToken(3), |
| (TypeCS)getRhsSym(5) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 658: _property ::= property qvtIdentifierCS : typeCS = OclExpressionCS ; |
| // |
| case 658: { |
| //#line 950 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createLocalPropertyCS( |
| getRhsIToken(2), |
| (TypeCS)getRhsSym(4), |
| (OCLExpressionCS)getRhsSym(6) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 659: _property ::= property qvtIdentifierCS = OclExpressionCS ; |
| // |
| case 659: { |
| //#line 961 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createLocalPropertyCS( |
| getRhsIToken(2), |
| null, |
| (OCLExpressionCS)getRhsSym(4) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 660: _property ::= property qvtIdentifierCS : typeCS ; |
| // |
| case 660: { |
| //#line 972 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createLocalPropertyCS( |
| getRhsIToken(2), |
| (TypeCS)getRhsSym(4), |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 661: _property ::= intermediate property scoped_identifier : typeCS ; |
| // |
| case 661: { |
| //#line 983 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createContextualPropertyCS( |
| (ScopedNameCS)getRhsSym(3), |
| (TypeCS)getRhsSym(5), |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 662: _property ::= intermediate property scoped_identifier : typeCS = OclExpressionCS ; |
| // |
| case 662: { |
| //#line 994 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createContextualPropertyCS( |
| (ScopedNameCS)getRhsSym(3), |
| (TypeCS)getRhsSym(5), |
| (OCLExpressionCS)getRhsSym(7) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(8)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 666: helper_header ::= helper_info scoped_identifier complete_signature |
| // |
| case 666: { |
| //#line 1012 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CompleteSignatureCS completeSignature = (CompleteSignatureCS)getRhsSym(3); |
| Object[] helperInfo = (Object[])getRhsSym(1); |
| MappingDeclarationCS mappingDeclarationCS = createMappingDeclarationCS( |
| null, |
| (ScopedNameCS)getRhsSym(2), |
| completeSignature.getSimpleSignature().getParams(), |
| completeSignature.getResultParams() |
| ); |
| setOffsets(mappingDeclarationCS, (CSTNode)getRhsSym(2), (CSTNode)getRhsSym(3)); |
| |
| EList<SimpleNameCS> qualifiers = (EList<SimpleNameCS>) helperInfo[0]; |
| if(!qualifiers.isEmpty()) { |
| mappingDeclarationCS.getQualifiers().addAll(createQualifiersListCS(qualifiers)); |
| } |
| |
| IToken helperKind = (IToken) helperInfo[1]; |
| mappingDeclarationCS.setIsQuery(helperKind.getKind() == LightweightTypeParsersym.TK_query); |
| mappingDeclarationCS.setStartOffset(helperKind.getStartOffset()); |
| |
| setResult(mappingDeclarationCS); |
| break; |
| } |
| |
| // |
| // Rule 667: helper_header ::= helper_info qvtErrorToken |
| // |
| case 667: { |
| //#line 1037 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] helperInfo = (Object[])getRhsSym(1); |
| MappingDeclarationCS mappingDeclarationCS = createMappingDeclarationCS( |
| null, |
| createScopedNameCS(null, ""), //$NON-NLS-1$ |
| ourEmptyEList, |
| ourEmptyEList |
| ); |
| setOffsets(mappingDeclarationCS, (IToken) helperInfo[1]); |
| |
| EList<SimpleNameCS> qualifiers = (EList<SimpleNameCS>) helperInfo[0]; |
| if(!qualifiers.isEmpty()) { |
| mappingDeclarationCS.getQualifiers().addAll(createQualifiersListCS(qualifiers)); |
| } |
| |
| IToken helperKind = (IToken) helperInfo[1]; |
| mappingDeclarationCS.setIsQuery(helperKind.getKind() == LightweightTypeParsersym.TK_query); |
| mappingDeclarationCS.setStartOffset(helperKind.getStartOffset()); |
| |
| setResult(mappingDeclarationCS); |
| break; |
| } |
| |
| // |
| // Rule 668: helper_info ::= qualifierList helper_kind |
| // |
| case 668: { |
| //#line 1061 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(new Object[] {getRhsSym(1), getRhsIToken(2)}); |
| break; |
| } |
| |
| // |
| // Rule 671: helper_decl ::= helper_header ; |
| // |
| case 671: { |
| //#line 1070 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS)getRhsSym(1); |
| MappingQueryCS result = createMappingQueryCS( |
| false, |
| mappingDecl, |
| null |
| ); |
| setOffsets(result, mappingDecl, getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 672: helper_decl ::= helper_header qvtErrorToken |
| // |
| case 672: { |
| //#line 1083 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS)getRhsSym(1); |
| MappingQueryCS result = createMappingQueryCS( |
| false, |
| mappingDecl, |
| null |
| ); |
| setOffsets(result, mappingDecl); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 673: helper_simple_def ::= helper_header = OclExpressionCS ; |
| // |
| case 673: { |
| //#line 1096 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS)getRhsSym(1); |
| OCLExpressionCS expression = (OCLExpressionCS)getRhsSym(3); |
| EList<OCLExpressionCS> expressionList = new BasicEList<OCLExpressionCS>(); |
| expressionList.add(expression); |
| BlockExpCS blockExpCS = createBlockExpCS(expressionList); |
| setOffsets(blockExpCS, getRhsIToken(2), getRhsIToken(4)); |
| MappingQueryCS result = createMappingQueryCS( |
| false, |
| mappingDecl, |
| blockExpCS |
| ); |
| result.setIsSimpleDefinition(true); |
| setOffsets(result, mappingDecl, getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 674: helper_compound_def ::= helper_header expression_block semicolonOpt |
| // |
| case 674: { |
| //#line 1115 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS)getRhsSym(1); |
| BlockExpCS blockExpCS = (BlockExpCS)getRhsSym(2); |
| CSTNode result = createMappingQueryCS( |
| false, |
| mappingDecl, |
| blockExpCS |
| ); |
| setOffsets(result, mappingDecl, blockExpCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 677: constructor_header ::= qualifierList constructor scoped_identifier simple_signature |
| // |
| case 677: { |
| //#line 1134 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleSignatureCS signature = (SimpleSignatureCS) getRhsSym(4); |
| MappingDeclarationCS mappingDeclarationCS = createMappingDeclarationCS( |
| null, |
| (ScopedNameCS) getRhsSym(3), |
| signature.getParams(), |
| null |
| ); |
| setOffsets(mappingDeclarationCS, getRhsIToken(2), signature); |
| |
| EList<SimpleNameCS> qualifiers = (EList<SimpleNameCS>) getRhsSym(1); |
| if (!qualifiers.isEmpty()) { |
| mappingDeclarationCS.getQualifiers().addAll(createQualifiersListCS(qualifiers)); |
| } |
| |
| setResult(mappingDeclarationCS); |
| break; |
| } |
| |
| // |
| // Rule 678: constructor_decl ::= constructor_header ; |
| // |
| case 678: { |
| //#line 1154 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS) getRhsSym(1); |
| ConstructorCS result = createConstructorCS( |
| mappingDecl, |
| null |
| ); |
| setOffsets(result, mappingDecl, getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 679: constructor_decl ::= constructor_header qvtErrorToken |
| // |
| case 679: { |
| //#line 1166 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS) getRhsSym(1); |
| ConstructorCS result = createConstructorCS( |
| mappingDecl, |
| null |
| ); |
| setOffsets(result, mappingDecl); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 680: constructor_def ::= constructor_header expression_block semicolonOpt |
| // |
| case 680: { |
| //#line 1178 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS) getRhsSym(1); |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(2); |
| ConstructorCS result = createConstructorCS( |
| mappingDecl, |
| blockExpCS |
| ); |
| setOffsets(result, mappingDecl, blockExpCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 683: entry_header ::= main simple_signature |
| // |
| case 683: { |
| //#line 1197 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken nameToken = getRhsIToken(1); |
| ScopedNameCS nameCS = createScopedNameCS(null, getRhsTokenText(1)); |
| nameCS.setStartOffset(nameToken.getStartOffset()); |
| nameCS.setEndOffset(nameToken.getEndOffset()); |
| |
| SimpleSignatureCS signature = (SimpleSignatureCS)getRhsSym(2); |
| CSTNode result = createMappingDeclarationCS( |
| null, |
| nameCS, |
| signature.getParams(), |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), signature); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 684: entry_header ::= main qvtErrorToken |
| // |
| case 684: { |
| //#line 1216 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMappingDeclarationCS( |
| null, |
| createScopedNameCS(null, getRhsTokenText(1)), |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 685: entry_decl ::= entry_header ; |
| // |
| case 685: { |
| //#line 1229 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS)getRhsSym(1); |
| MappingQueryCS result = createMappingQueryCS( |
| true, |
| mappingDecl, |
| null |
| ); |
| setOffsets(result, mappingDecl, getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 686: entry_def ::= entry_header expression_block semicolonOpt |
| // |
| case 686: { |
| //#line 1242 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDecl = (MappingDeclarationCS)getRhsSym(1); |
| BlockExpCS blockExpCS = (BlockExpCS)getRhsSym(2); |
| CSTNode result = createMappingQueryCS( |
| true, |
| mappingDecl, |
| blockExpCS |
| ); |
| setOffsets(result, mappingDecl, blockExpCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 687: _tag ::= tag StringLiteralExpCS scoped_identifier tag_valueOpt |
| // |
| case 687: { |
| //#line 1260 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS valueExpression = (OCLExpressionCS) getRhsSym(4); |
| CSTNode result = createTagCS( |
| (StringLiteralExpCS) getRhsSym(2), |
| (ScopedNameCS) getRhsSym(3), |
| valueExpression |
| ); |
| setOffsets(result, getRhsIToken(1), valueExpression != null ? valueExpression : (CSTNode) getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 688: tag_valueOpt ::= $Empty |
| // |
| case 688: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 689: tag_valueOpt ::= = OclExpressionCS |
| // |
| case 689: { |
| //#line 1275 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 692: mapping_decl ::= mapping_full_header ; |
| // |
| case 692: { |
| //#line 1288 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] mappingFullHeader = (Object[])getRhsSym(1); |
| MappingRuleCS result = createMappingRuleCS( |
| (MappingDeclarationCS)mappingFullHeader[0], |
| (EList)mappingFullHeader[1], |
| null |
| ); |
| setOffsets(result, (MappingDeclarationCS)mappingFullHeader[0], getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 693: mapping_def ::= mapping_full_header { mapping_body } semicolonOpt |
| // |
| case 693: { |
| //#line 1301 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingSectionsCS mappingSections = (MappingSectionsCS)getRhsSym(3); |
| setOffsets(mappingSections, getRhsIToken(2), getRhsIToken(4)); |
| |
| MappingBodyCS mappingBodyCS = mappingSections.getMappingBodyCS(); |
| if (mappingBodyCS != null) { |
| if (mappingBodyCS.getStartOffset() < 0) { |
| mappingBodyCS.setStartOffset(mappingSections.getStartOffset()); |
| } |
| if (mappingBodyCS.getEndOffset() < 0) { |
| mappingBodyCS.setEndOffset(mappingSections.getEndOffset()); |
| } |
| } |
| |
| Object[] mappingFullHeader = (Object[])getRhsSym(1); |
| MappingRuleCS result = createMappingRuleCS( |
| (MappingDeclarationCS)mappingFullHeader[0], |
| (EList)mappingFullHeader[1], |
| mappingSections |
| ); |
| setOffsets(result, (MappingDeclarationCS)mappingFullHeader[0], getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 694: mapping_def ::= mapping_full_header { qvtErrorToken |
| // |
| case 694: { |
| //#line 1327 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| Object[] mappingFullHeader = (Object[])getRhsSym(1); |
| MappingRuleCS result = createMappingRuleCS( |
| (MappingDeclarationCS)mappingFullHeader[0], |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, (MappingDeclarationCS)mappingFullHeader[0], getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 695: mapping_full_header ::= mapping_header _whenOpt |
| // |
| case 695: { |
| //#line 1340 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(new Object[] {getRhsSym(1), getRhsSym(2)}); |
| break; |
| } |
| |
| // |
| // Rule 696: mapping_header ::= qualifierList mapping param_directionOpt scoped_identifier complete_signature mapping_extraList |
| // |
| case 696: { |
| //#line 1346 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| DirectionKindCS directionKind = (DirectionKindCS)getRhsSym(3); |
| CompleteSignatureCS completeSignature = (CompleteSignatureCS)getRhsSym(5); |
| MappingDeclarationCS mappingDeclarationCS = createMappingDeclarationCS( |
| directionKind, |
| (ScopedNameCS)getRhsSym(4), |
| completeSignature.getSimpleSignature().getParams(), |
| completeSignature.getResultParams() |
| ); |
| |
| mappingDeclarationCS.setStartOffset(directionKind == null ? getRhsIToken(2).getStartOffset() : directionKind.getStartOffset()); |
| mappingDeclarationCS.setEndOffset(completeSignature.getEndOffset()); |
| |
| EList<SimpleNameCS> qualifiers = (EList<SimpleNameCS>)getRhsSym(1); |
| if(!qualifiers.isEmpty()) { |
| mappingDeclarationCS.getQualifiers().addAll(createQualifiersListCS(qualifiers)); |
| } |
| |
| mappingDeclarationCS.getMappingExtension().addAll(((EList<MappingExtensionCS>)getRhsSym(6))); |
| |
| setResult(mappingDeclarationCS); |
| break; |
| } |
| |
| // |
| // Rule 697: mapping_header ::= qualifierList mapping param_directionOpt scoped_identifier qvtErrorToken |
| // |
| case 697: { |
| //#line 1371 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| DirectionKindCS directionKind = (DirectionKindCS)getRhsSym(3); |
| MappingDeclarationCS mappingDeclarationCS = createMappingDeclarationCS( |
| directionKind, |
| (ScopedNameCS)getRhsSym(4), |
| ourEmptyEList, |
| ourEmptyEList |
| ); |
| |
| mappingDeclarationCS.setStartOffset(directionKind == null ? getRhsIToken(2).getStartOffset() : directionKind.getStartOffset()); |
| mappingDeclarationCS.setEndOffset(((CSTNode)getRhsSym(4)).getEndOffset()); |
| |
| EList<SimpleNameCS> qualifiers = (EList<SimpleNameCS>)getRhsSym(1); |
| if(!qualifiers.isEmpty()) { |
| mappingDeclarationCS.getQualifiers().addAll(createQualifiersListCS(qualifiers)); |
| } |
| |
| setResult(mappingDeclarationCS); |
| break; |
| } |
| |
| // |
| // Rule 698: mapping_header ::= qualifierList mapping qvtErrorToken |
| // |
| case 698: { |
| //#line 1393 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingDeclarationCS mappingDeclarationCS = createMappingDeclarationCS( |
| null, |
| createScopedNameCS(null, ""), //$NON-NLS-1$ |
| ourEmptyEList, |
| ourEmptyEList |
| ); |
| |
| setOffsets(mappingDeclarationCS, getRhsIToken(2), getRhsIToken(2)); |
| |
| EList<SimpleNameCS> qualifiers = (EList<SimpleNameCS>)getRhsSym(1); |
| if(!qualifiers.isEmpty()) { |
| mappingDeclarationCS.getQualifiers().addAll(createQualifiersListCS(qualifiers)); |
| } |
| |
| setResult(mappingDeclarationCS); |
| break; |
| } |
| |
| // |
| // Rule 699: mapping_extraList ::= mapping_extraList mapping_extra |
| // |
| case 699: { |
| //#line 1414 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<MappingExtensionCS> extensionList = (EList<MappingExtensionCS>)getRhsSym(1); |
| extensionList.add((MappingExtensionCS)getRhsSym(2)); |
| setResult(extensionList); |
| break; |
| } |
| |
| // |
| // Rule 700: mapping_extraList ::= $Empty |
| // |
| |
| case 700: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 702: mapping_extension ::= mapping_extension_key scoped_identifier_list |
| // |
| case 702: { |
| //#line 1427 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingExtensionCS result = createMappingExtension(getRhsTokenText(1), (EList<ScopedNameCS>)getRhsSym(2)); |
| |
| result.setStartOffset(getRhsIToken(1).getStartOffset()); |
| result.setEndOffset(getEndOffset(getRhsIToken(1), (EList<ScopedNameCS>)getRhsSym(2))); |
| |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 707: _whenOpt ::= $Empty |
| // |
| |
| case 707: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 708: _when ::= when expression_block |
| // |
| case 708: { |
| //#line 1446 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(2); |
| setResult(blockExpCS.getBodyExpressions()); |
| break; |
| } |
| |
| // |
| // Rule 709: _when ::= when qvtErrorToken |
| // |
| |
| case 709: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 710: mapping_body ::= init_sectionOpt population_sectionOpt end_sectionOpt |
| // |
| case 710: { |
| //#line 1455 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingInitCS mappingInitCS = (MappingInitCS)getRhsSym(1); |
| MappingBodyCS mappingBodyCS = (MappingBodyCS)getRhsSym(2); |
| MappingEndCS mappingEndCS = (MappingEndCS)getRhsSym(3); |
| |
| if (mappingBodyCS != null) { |
| if ((mappingBodyCS.getStartOffset() < 0) && (mappingInitCS != null)) { |
| mappingBodyCS.setStartOffset(mappingInitCS.getEndOffset() + 1); |
| } |
| if ((mappingBodyCS.getEndOffset() < 0) && (mappingEndCS != null)) { |
| mappingBodyCS.setEndOffset(mappingEndCS.getStartOffset() - 1); |
| } |
| if (mappingBodyCS.getStartOffset() > mappingBodyCS.getEndOffset()) { |
| mappingBodyCS.setEndOffset(mappingBodyCS.getStartOffset()); |
| } |
| } |
| |
| CSTNode result = createMappingSectionsCS( |
| mappingInitCS, |
| mappingBodyCS, |
| mappingEndCS |
| ); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 711: init_sectionOpt ::= $Empty |
| // |
| case 711: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 713: init_section ::= init expression_block |
| // |
| case 713: { |
| //#line 1486 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(2); |
| CSTNode result = createMappingInitCS( |
| blockExpCS.getBodyExpressions(), |
| blockExpCS.getStartOffset(), |
| blockExpCS.getEndOffset() |
| ); |
| setOffsets(result, getRhsIToken(1), blockExpCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 714: init_section ::= init qvtErrorToken |
| // |
| case 714: { |
| //#line 1499 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMappingInitCS( |
| ourEmptyEList, |
| getRhsIToken(1).getEndOffset(), |
| getRhsIToken(1).getStartOffset() |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 715: population_sectionOpt ::= $Empty |
| // |
| case 715: { |
| //#line 1512 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| MappingBodyCS result = createMappingBodyCS( |
| ourEmptyEList, |
| false |
| ); |
| // offsets will be updated further in parent non-terminals |
| result.setStartOffset(-1); |
| result.setEndOffset(-1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 717: population_section ::= expression_list |
| // |
| case 717: { |
| //#line 1526 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<OCLExpressionCS> expressionList = (EList<OCLExpressionCS>) getRhsSym(1); |
| MappingBodyCS result = createMappingBodyCS( |
| expressionList, |
| false |
| ); |
| if (expressionList.isEmpty()) { |
| // offsets will be updated further in parent non-terminals |
| result.setStartOffset(-1); |
| result.setEndOffset(-1); |
| } else { |
| CSTNode startExp = expressionList.get(0); |
| CSTNode endExp = expressionList.get(expressionList.size() - 1); |
| setOffsets(result, startExp, endExp); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 718: population_section ::= population expression_block |
| // |
| case 718: { |
| //#line 1546 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(2); |
| MappingBodyCS result = createMappingBodyCS( |
| blockExpCS.getBodyExpressions(), |
| true |
| ); |
| setOffsets(result, getRhsIToken(1), blockExpCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 719: population_section ::= population qvtErrorToken |
| // |
| case 719: { |
| //#line 1558 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMappingBodyCS( |
| ourEmptyEList, |
| true |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 720: end_sectionOpt ::= $Empty |
| // |
| case 720: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 722: end_section ::= end expression_block |
| // |
| case 722: { |
| //#line 1573 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(2); |
| CSTNode result = createMappingEndCS( |
| blockExpCS.getBodyExpressions(), |
| blockExpCS.getStartOffset(), |
| blockExpCS.getEndOffset() |
| ); |
| setOffsets(result, getRhsIToken(1), blockExpCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 723: end_section ::= end qvtErrorToken |
| // |
| case 723: { |
| //#line 1586 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMappingEndCS( |
| ourEmptyEList, |
| getRhsIToken(1).getEndOffset(), |
| getRhsIToken(1).getStartOffset() |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 724: typespecOpt ::= $Empty |
| // |
| case 724: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 726: objectDeclCS ::= typespec |
| // |
| case 726: { |
| //#line 1604 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createOutExpCS(null, (TypeSpecCS)getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 730: objectDeclCS ::= objectIdentifierCS : typespecOpt |
| // |
| case 730: { |
| //#line 1615 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS varName = createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, getRhsIToken(1)); |
| setOffsets(varName, getRhsIToken(1)); |
| CSTNode result = createOutExpCS(varName,(TypeSpecCS)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 731: outExpCS ::= object objectDeclCS expression_block |
| // |
| case 731: { |
| //#line 1624 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| BlockExpCS blockExpCS = (BlockExpCS) getRhsSym(3); |
| CSTNode result = setupOutExpCS( |
| (ObjectExpCS) getRhsSym(2), |
| blockExpCS.getBodyExpressions(), |
| // passing body positions |
| blockExpCS.getStartOffset(), |
| blockExpCS.getEndOffset() |
| ); |
| setOffsets(result, getRhsIToken(1), blockExpCS); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 732: outExpCS ::= object objectDeclCS qvtErrorToken |
| // |
| case 732: { |
| //#line 1638 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| ObjectExpCS objectDeclCS = ((ObjectExpCS) getRhsSym(2)); |
| CSTNode result = createOutExpCS( |
| objectDeclCS.getSimpleNameCS(), |
| objectDeclCS.getTypeSpecCS() |
| ); |
| if (objectDeclCS == null) { |
| setOffsets(result, getRhsIToken(1), getRhsIToken(1)); |
| } else { |
| setOffsets(result, getRhsIToken(1), objectDeclCS); |
| } |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 733: featureMappingCallExpCS ::= map simpleNameCS ( argumentsCSopt ) |
| // |
| case 733: { |
| //#line 1654 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createFeatureMappingCallExpCS( |
| null, |
| (SimpleNameCS)getRhsSym(2), |
| (EList)getRhsSym(4), |
| false |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 734: featureMappingCallExpCS ::= xmap simpleNameCS ( argumentsCSopt ) |
| // |
| case 734: { |
| //#line 1666 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createFeatureMappingCallExpCS( |
| null, |
| (SimpleNameCS)getRhsSym(2), |
| (EList)getRhsSym(4), |
| true |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 735: featureMappingCallExpCS ::= map simpleNameCS :: simpleNameCS ( argumentsCSopt ) |
| // |
| case 735: { |
| //#line 1679 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createFeatureMappingCallExpCS( |
| (SimpleNameCS)getRhsSym(2), |
| (SimpleNameCS)getRhsSym(4), |
| (EList)getRhsSym(6), |
| false |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 736: featureMappingCallExpCS ::= xmap simpleNameCS :: simpleNameCS ( argumentsCSopt ) |
| // |
| case 736: { |
| //#line 1691 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createFeatureMappingCallExpCS( |
| (SimpleNameCS)getRhsSym(2), |
| (SimpleNameCS)getRhsSym(4), |
| (EList)getRhsSym(6), |
| true |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 737: mappingCallExpCS ::= map pathNameCS ( argumentsCSopt ) |
| // |
| case 737: { |
| //#line 1704 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMappingCallExpCS( |
| (PathNameCS)getRhsSym(2), |
| (EList)getRhsSym(4), |
| false |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 738: mappingCallExpCS ::= xmap pathNameCS ( argumentsCSopt ) |
| // |
| case 738: { |
| //#line 1715 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createMappingCallExpCS( |
| (PathNameCS)getRhsSym(2), |
| (EList)getRhsSym(4), |
| true |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 739: resolveConditionOpt ::= $Empty |
| // |
| case 739: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 740: resolveConditionOpt ::= | OclExpressionCS |
| // |
| case 740: { |
| //#line 1732 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult((OCLExpressionCS)getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 741: resolveConditionOpt ::= | qvtErrorToken |
| // |
| case 741: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 742: IDENTIFIEROpt ::= $Empty |
| // |
| case 742: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 743: IDENTIFIEROpt ::= IDENTIFIER : |
| // |
| case 743: { |
| //#line 1744 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsIToken(1)); |
| break; |
| } |
| |
| // |
| // Rule 744: resolveOpArgsExpCSOpt ::= $Empty |
| // |
| case 744: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 746: resolveOpArgsExpCS ::= IDENTIFIEROpt typeCS resolveConditionOpt |
| // |
| case 746: { |
| //#line 1755 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveOpArgsExpCS( |
| getRhsIToken(1), // target_type_variable? |
| (TypeCS)getRhsSym(2), // type? |
| (OCLExpressionCS)getRhsSym(3)); // condition? |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 751: lateOpt ::= $Empty |
| // |
| case 751: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 753: resolveExpCS ::= lateOpt resolveOp ( resolveOpArgsExpCSOpt ) |
| // |
| case 753: { |
| //#line 1775 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| (ResolveOpArgsExpCS)getRhsSym(4)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 754: resolveExpCS ::= lateOpt resolveOp ( resolveOpArgsExpCSOpt qvtErrorToken |
| // |
| case 754: { |
| //#line 1786 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| (ResolveOpArgsExpCS)getRhsSym(4)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 755: resolveExpCS ::= lateOpt resolveOp qvtErrorToken |
| // |
| case 755: { |
| //#line 1797 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| null); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 756: resolveExpCS ::= late qvtErrorToken |
| // |
| case 756: { |
| //#line 1808 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| IToken lateToken = getRhsIToken(1); |
| CSTNode result = createResolveExpCS( |
| lateToken, |
| new Token(lateToken.getEndOffset(), lateToken.getEndOffset(), LightweightTypeParsersym.TK_resolve), |
| null); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 761: resolveInExpCS ::= lateOpt resolveInOp ( scoped_identifier , resolveOpArgsExpCS ) |
| // |
| case 761: { |
| //#line 1825 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveInExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| (ScopedNameCS)getRhsSym(4), |
| (ResolveOpArgsExpCS)getRhsSym(6)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 762: resolveInExpCS ::= lateOpt resolveInOp ( scoped_identifier ) |
| // |
| case 762: { |
| //#line 1837 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveInExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| (ScopedNameCS)getRhsSym(4), |
| null); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(5)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 763: resolveInExpCS ::= lateOpt resolveInOp ( scoped_identifier , resolveOpArgsExpCSOpt qvtErrorToken |
| // |
| case 763: { |
| //#line 1850 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveInExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| (ScopedNameCS)getRhsSym(4), |
| (ResolveOpArgsExpCS)getRhsSym(6)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(6)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 764: resolveInExpCS ::= lateOpt resolveInOp ( scoped_identifier qvtErrorToken |
| // |
| case 764: { |
| //#line 1862 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveInExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| (ScopedNameCS)getRhsSym(4), |
| null); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 765: resolveInExpCS ::= lateOpt resolveInOp ( qvtErrorToken |
| // |
| case 765: { |
| //#line 1874 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveInExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| createScopedNameCS(null, ""), //$NON-NLS-1$ |
| null); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 766: resolveInExpCS ::= lateOpt resolveInOp qvtErrorToken |
| // |
| case 766: { |
| //#line 1886 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createResolveInExpCS( |
| getRhsIToken(1), |
| getRhsIToken(2), |
| createScopedNameCS(null, ""), //$NON-NLS-1$ |
| null); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 769: OperationCallExpCS ::= primaryExpCS -> resolveResolveInExpCS |
| // |
| case 769: { |
| //#line 1902 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| CallExpCS result = (CallExpCS)getRhsSym(3); |
| result.setAccessor(DotOrArrowEnum.ARROW_LITERAL); |
| result.setSource(source); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 770: OperationCallExpCS ::= primaryExpCS . resolveResolveInExpCS |
| // |
| case 770: { |
| //#line 1911 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| CallExpCS result = (CallExpCS)getRhsSym(3); |
| result.setAccessor(DotOrArrowEnum.DOT_LITERAL); |
| result.setSource(source); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 772: OperationCallExpCS ::= primaryExpCS -> featureMappingCallExpCS |
| // |
| case 772: { |
| //#line 1928 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| CallExpCS result = (CallExpCS)getRhsSym(3); |
| result.setAccessor(DotOrArrowEnum.ARROW_LITERAL); |
| result.setSource(source); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 773: OperationCallExpCS ::= primaryExpCS . featureMappingCallExpCS |
| // |
| case 773: { |
| //#line 1937 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1); |
| CallExpCS result = (CallExpCS)getRhsSym(3); |
| result.setAccessor(DotOrArrowEnum.DOT_LITERAL); |
| result.setSource(source); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 776: simpleNameCS ::= this |
| // |
| |
| case 776: |
| |
| // |
| // Rule 777: simpleNameCS ::= result |
| // |
| case 777: { |
| //#line 1953 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSimpleNameCS( |
| SimpleTypeEnum.IDENTIFIER_LITERAL, |
| getRhsIToken(1) |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 778: letExpSubCS3 ::= untypedInitializedVariableCS |
| // |
| case 778: { |
| //#line 1967 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 779: letExpSubCS3 ::= letExpSubCS3 , untypedInitializedVariableCS |
| // |
| case 779: { |
| //#line 1974 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 780: LetExpCS ::= let letExpSubCS3 in OclExpressionCS |
| // |
| case 780: { |
| //#line 1982 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList variables = (EList)getRhsSym(2); |
| CSTNode result = createLetExpCS( |
| variables, |
| (OCLExpressionCS)getRhsSym(4) |
| ); |
| setOffsets(result, getRhsIToken(1), (CSTNode)getRhsSym(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 781: LetExpCS ::= let letExpSubCS3 in qvtErrorToken |
| // |
| case 781: { |
| //#line 1993 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList variables = (EList)getRhsSym(2); |
| CSTNode result = createLetExpCS( |
| variables, |
| createSimpleNameCS(SimpleTypeEnum.IDENTIFIER_LITERAL, (IToken) null) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 782: equalityNotNameNotLetCS ::= equalityNotLetCS != relationalNotLetCS |
| // |
| |
| case 782: |
| |
| // |
| // Rule 783: equalityWithLetCS ::= equalityNotLetCS != relationalWithLetCS |
| // |
| case 783: { |
| //#line 2010 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleNameCS simpleNameCS = createSimpleNameCS( |
| SimpleTypeEnum.STRING_LITERAL, |
| OCLStandardLibraryUtil.getOperationName(PredefinedType.NOT_EQUAL) |
| ); |
| setOffsets(simpleNameCS, getRhsIToken(2)); |
| EList<OCLExpressionCS> args = new BasicEList<OCLExpressionCS>(); |
| args.add((OCLExpressionCS) getRhsSym(3)); |
| CSTNode result = createOperationCallExpCS( |
| (OCLExpressionCS)getRhsSym(1), |
| simpleNameCS, |
| args |
| ); |
| setOffsets(result, (CSTNode)getRhsSym(1), (CSTNode)getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 784: _import ::= import library unit ; |
| // |
| case 784: { |
| //#line 2034 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createLibraryImportCS( |
| (PathNameCS)getRhsSym(3) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(4)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 785: transformation_h ::= qualifierList transformation qualifiedNameCS |
| // |
| case 785: { |
| //#line 2044 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createTransformationHeaderCS( |
| (EList) getRhsSym(1), |
| (PathNameCS)getRhsSym(3), |
| createSimpleSignatureCS(ourEmptyEList), |
| ourEmptyEList, |
| null |
| ); |
| setOffsets(result, getRhsIToken(2), (PathNameCS)getRhsSym(3)); |
| |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 787: renaming ::= rename typeCS . qvtIdentifierCS = StringLiteralExpCS ; |
| // |
| case 787: { |
| //#line 2060 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createRenameCS( |
| (TypeCS)getRhsSym(2), |
| getRhsIToken(4), |
| (StringLiteralExpCS)getRhsSym(6) |
| ); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(7)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 788: qualifierList ::= $Empty |
| // |
| |
| case 788: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 789: qualifierList ::= qualifierList qualifier |
| // |
| case 789: { |
| //#line 2080 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList) getRhsSym(1); |
| result.add(getRhsSym(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 790: qualifier ::= blackbox |
| // |
| |
| case 790: |
| |
| // |
| // Rule 791: qualifier ::= abstract |
| // |
| |
| case 791: |
| |
| // |
| // Rule 792: qualifier ::= static |
| // |
| case 792: { |
| //#line 2092 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSimpleNameCS(SimpleTypeEnum.KEYWORD_LITERAL, getRhsIToken(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 793: colon_param_listOpt ::= $Empty |
| // |
| |
| case 793: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 794: colon_param_listOpt ::= : param_list |
| // |
| case 794: { |
| //#line 2103 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| setResult(getRhsSym(2)); |
| break; |
| } |
| |
| // |
| // Rule 795: complete_signature ::= simple_signature colon_param_listOpt |
| // |
| case 795: { |
| //#line 2109 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| SimpleSignatureCS simpleSignatureCS = (SimpleSignatureCS)getRhsSym(1); |
| EList<ParameterDeclarationCS> resultList = (EList<ParameterDeclarationCS>)getRhsSym(2); |
| CSTNode result = createCompleteSignatureCS(simpleSignatureCS, resultList); |
| result.setStartOffset(simpleSignatureCS.getStartOffset()); |
| result.setEndOffset(getEndOffset(simpleSignatureCS.getEndOffset(), resultList)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 796: simple_signatureOpt ::= $Empty |
| // |
| case 796: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 798: simple_signature ::= ( param_listOpt ) |
| // |
| case 798: { |
| //#line 2124 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createSimpleSignatureCS((EList<ParameterDeclarationCS>)getRhsSym(2)); |
| setOffsets(result, getRhsIToken(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 799: param_listOpt ::= $Empty |
| // |
| |
| case 799: |
| setResult(new BasicEList<Object>()); |
| break; |
| |
| // |
| // Rule 801: param_list ::= param_list , param |
| // |
| case 801: { |
| //#line 2136 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 802: param_list ::= param_list , qvtErrorToken |
| // |
| case 802: { |
| //#line 2143 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 803: param_list ::= param |
| // |
| case 803: { |
| //#line 2149 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 804: param_list ::= qvtErrorToken |
| // |
| case 804: { |
| //#line 2156 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 805: param ::= param_directionOpt IDENTIFIER : typespec |
| // |
| case 805: { |
| //#line 2163 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| DirectionKindCS paramDirectionCS = (DirectionKindCS) getRhsSym(1); |
| CSTNode result = createParameterDeclarationCS( |
| paramDirectionCS, |
| getRhsIToken(2), |
| (TypeSpecCS)getRhsSym(4) |
| ); |
| |
| result.setStartOffset(paramDirectionCS != null ? paramDirectionCS.getStartOffset() : getRhsIToken(2).getStartOffset()); |
| result.setEndOffset(((CSTNode)getRhsSym(4)).getEndOffset()); |
| |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 806: param ::= param_directionOpt typespec |
| // |
| case 806: { |
| //#line 2179 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| DirectionKindCS paramDirectionCS = (DirectionKindCS) getRhsSym(1); |
| TypeSpecCS paramTypeCS = (TypeSpecCS) getRhsSym(2); |
| CSTNode result = createParameterDeclarationCS( |
| paramDirectionCS, |
| null, |
| paramTypeCS |
| ); |
| |
| result.setStartOffset(paramDirectionCS != null ? paramDirectionCS.getStartOffset() : paramTypeCS.getStartOffset()); |
| result.setEndOffset(paramTypeCS.getEndOffset()); |
| |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 807: param_directionOpt ::= $Empty |
| // |
| case 807: |
| setResult(null); |
| break; |
| |
| // |
| // Rule 809: param_direction ::= in |
| // |
| case 809: { |
| //#line 2200 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createDirectionKindCS( |
| DirectionKindEnum.IN |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 810: param_direction ::= out |
| // |
| case 810: { |
| //#line 2209 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createDirectionKindCS( |
| DirectionKindEnum.OUT |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 811: param_direction ::= inout |
| // |
| case 811: { |
| //#line 2218 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createDirectionKindCS( |
| DirectionKindEnum.INOUT |
| ); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 812: typespec ::= typeCS |
| // |
| case 812: { |
| //#line 2229 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createTypeSpecCS( |
| (TypeCS)getRhsSym(1), |
| null |
| ); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 813: typespec ::= typeCS @ IDENTIFIER |
| // |
| case 813: { |
| //#line 2238 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createTypeSpecCS( |
| (TypeCS)getRhsSym(1), |
| getRhsIToken(3) |
| ); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 819: scoped_identifier ::= typeCS2 :: IDENTIFIER |
| // |
| case 819: { |
| //#line 2255 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| ScopedNameCS result = createScopedNameCS((TypeCS)getRhsSym(1), getRhsTokenText(3)); |
| setOffsets(result, (CSTNode) getRhsSym(1), getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 820: scoped_identifier ::= typeCS2 :: qvtErrorToken |
| // |
| case 820: { |
| //#line 2262 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| ScopedNameCS result = createScopedNameCS((TypeCS)getRhsSym(1), ""); //$NON-NLS-1$ |
| setOffsets(result, (CSTNode) getRhsSym(1), getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 821: scoped_identifier ::= scoped_identifier2 |
| // |
| case 821: { |
| //#line 2269 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS pathNameCS = (PathNameCS)getRhsSym(1); |
| String name = pathNameCS.getSimpleNames().remove(pathNameCS.getSimpleNames().size() - 1).getValue(); |
| TypeCS typeCS = pathNameCS.getSimpleNames().isEmpty() ? null : pathNameCS; |
| |
| ScopedNameCS result = createScopedNameCS(typeCS, name); |
| |
| setOffsets(result, pathNameCS); |
| |
| // reduce the region by the removed name element |
| pathNameCS.setEndOffset(pathNameCS.getEndOffset() - (name != null ? name.length() : 0) - 2); |
| |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 822: scoped_identifier2 ::= IDENTIFIER |
| // |
| case 822: { |
| //#line 2285 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createPathNameCS(getRhsIToken(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 823: scoped_identifier2 ::= main |
| // |
| case 823: { |
| //#line 2292 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createPathNameCS(getRhsIToken(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 824: scoped_identifier2 ::= scoped_identifier2 :: IDENTIFIER |
| // |
| case 824: { |
| //#line 2299 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS result = (PathNameCS)getRhsSym(1); |
| result = extendPathNameCS(result, getRhsIToken(3)); |
| setOffsets(result, result, getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 825: scoped_identifier2 ::= scoped_identifier2 :: qvtErrorToken |
| // |
| case 825: { |
| //#line 2307 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS result = (PathNameCS)getRhsSym(1); |
| result = extendPathNameCS(result, getRhsIToken(3)); |
| setOffsets(result, result, getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 826: scoped_identifier_list ::= scoped_identifier |
| // |
| case 826: { |
| //#line 2315 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList<Object> result = new BasicEList<Object>(); |
| result.add(getRhsSym(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 827: scoped_identifier_list ::= scoped_identifier_list , scoped_identifier |
| // |
| case 827: { |
| //#line 2322 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| result.add(getRhsSym(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 828: scoped_identifier_list ::= scoped_identifier_list qvtErrorToken |
| // |
| case 828: { |
| //#line 2329 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| EList result = (EList)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 829: qualifiedNameCS ::= qvtIdentifierCS |
| // |
| case 829: { |
| //#line 2336 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| CSTNode result = createPathNameCS(getRhsIToken(1)); |
| setOffsets(result, getRhsIToken(1)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 830: qualifiedNameCS ::= qualifiedNameCS . qvtIdentifierCS |
| // |
| case 830: { |
| //#line 2343 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS result = (PathNameCS)getRhsSym(1); |
| result = extendPathNameCS(result, getRhsIToken(3)); |
| setOffsets(result, result, getRhsIToken(3)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 831: qualifiedNameCS ::= qualifiedNameCS . qvtErrorToken |
| // |
| case 831: { |
| //#line 2351 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS result = (PathNameCS)getRhsSym(1); |
| result = extendPathNameCS(result, getRhsIToken(3)); |
| setOffsets(result, result, getRhsIToken(2)); |
| setResult(result); |
| break; |
| } |
| |
| // |
| // Rule 832: qualifiedNameCS ::= qualifiedNameCS qvtErrorToken |
| // |
| case 832: { |
| //#line 2359 "../lpg/btParserTemplateF.gi" //$NON-NLS-1$ |
| |
| PathNameCS result = (PathNameCS)getRhsSym(1); |
| setResult(result); |
| break; |
| } |
| |
| |
| default: |
| break; |
| } |
| return; |
| } |
| } |
| |