blob: c5eefb5de2357e17538a96866d156fb9d939d120 [file] [log] [blame]
/**
* 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: QVTrParser.java,v 1.19 2010/07/10 09:34:46 ewillink Exp $
*/
package org.eclipse.qvt.declarative.parser.qvtrelation;
import lpg.runtime.*;
import org.eclipse.qvt.declarative.parser.qvt.cst.*;
import org.eclipse.qvt.declarative.parser.qvtrelation.cst.*;
import org.eclipse.qvt.declarative.parser.environment.ICSTFileEnvironment;
import org.eclipse.ocl.parser.AbstractOCLParser;
import org.eclipse.ocl.parser.backtracking.OCLParserErrors;
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;
public class QVTrParser extends AbstractOCLParser implements RuleAction
{
private DerivedPrsStream prsStream = null;
private boolean unimplementedSymbolsWarning = false;
private static ParseTable prsTable = new QVTrParserprs();
@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")
@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):");
for (int i = 0; i < unimplemented_symbols.size(); i++)
{
Integer id = (Integer) unimplemented_symbols.get(i);
System.out.println(" " + QVTrParsersym.orderedTerminalSymbols[id.intValue()]);
}
System.out.println();
}
}
catch(UndefinedEofSymbolException e)
{
throw new Error(new UndefinedEofSymbolException
("The Lexer does not implement the Eof symbol " +
QVTrParsersym.orderedTerminalSymbols[prsTable.getEoftSymbol()]));
}
}
@SuppressWarnings("nls")
public QVTrParser(QVTrLexer lexer)
{
super(lexer);
try
{
btParser = new BacktrackingParser(prsStream, prsTable, this);
}
catch (NotBacktrackParseTableException e)
{
throw new Error(new NotBacktrackParseTableException
("Regenerate QVTrParserprs.java with -BACKTRACK option"));
}
catch (BadParseSymFileException e)
{
throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- QVTrParsersym.java"));
}
ILexStream lexStream = lexer.getILexStream();
if (lexStream != null) {
reset(lexStream);
}
}
@Override
public int numTokenKinds() { return QVTrParsersym.numTokenKinds; }
@Override
public String[] orderedTerminalSymbols() { return QVTrParsersym.orderedTerminalSymbols; }
public String getTokenKindName(int kind) { return QVTrParsersym.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 ICSTFileEnvironment getOCLEnvironment() {
return getLexer().getOCLEnvironment();
}
@Override
public QVTrLexer getLexer() {
return (QVTrLexer) super.getLexer();
}
// Some methods for backwards compatibility
/**
* <p>
* Before 3.0, this method was used with the now-deprecated "dollar"getToken macro (which
* 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>
* 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
* 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>
* 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));
}
// Some methods for backwards compatibility
/**
* Report error message for given error_token.
*
* @param error_token
* the error taken index
* @param msg
* the message to report
*
* @since 1.3
*/
protected final void reportErrorTokenMessage(int error_token, String msg) {
getIPrsStream().reportErrorTokenMessage(error_token, msg);
}
protected IdentifierCS createIdentifierCS(int argumentNumber) {
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
result.setValue(getRhsTokenText(argumentNumber));
setOffsets(result, getRhsIToken(argumentNumber));
return result;
}
protected IdentifierCS createIdentifierCS(SimpleNameCS simpleName) {
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
result.setValue(simpleName.getValue());
setOffsets(result, simpleName);
return result;
}
private int _uniqueNameCount = 0;
protected IdentifierCS createUniqueIdentifierCS(int argumentNumber) {
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
result.setValue("_unique" + _uniqueNameCount++);
setOffsets(result, getRhsIToken(argumentNumber));
return result;
}
@SuppressWarnings("unchecked")
public void ruleAction(int ruleNumber)
{
switch (ruleNumber)
{
//
// Rule 16: conceptualOperationNameCS ::= conceptualOperationName
//
case 16: {
//#line 296 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS simpleName = (SimpleNameCS)getRhsSym(1);
PathNameCS result = createPathNameCS(simpleName);
setOffsets(result, simpleName);
setResult(result);
break;
}
//
// Rule 41: pathNameCS ::= pathNameCS :: unreservedSimpleNameCS
//
case 41: {
//#line 394 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.BOOLEAN_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 43: primitiveTypeCS ::= Integer
//
case 43: {
//#line 417 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.INTEGER_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 44: primitiveTypeCS ::= Real
//
case 44: {
//#line 427 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.REAL_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 45: primitiveTypeCS ::= String
//
case 45: {
//#line 437 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.STRING_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 46: primitiveTypeCS ::= UnlimitedNatural
//
case 46: {
//#line 447 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.UNLIMITED_NATURAL_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 47: primitiveTypeCS ::= OclAny
//
case 47: {
//#line 458 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.OCL_ANY_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 48: primitiveTypeCS ::= OclInvalid
//
case 48: {
//#line 468 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.OCL_INVALID_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 49: primitiveTypeCS ::= OclVoid
//
case 49: {
//#line 478 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PrimitiveTypeCS result = createPrimitiveTypeCS(
SimpleTypeEnum.OCL_VOID_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 50: CollectionTypeIdentifierCS ::= Set
//
case 50: {
//#line 489 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS result = createCollectionTypeCS(
CollectionTypeIdentifierEnum.SET_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 51: CollectionTypeIdentifierCS ::= Bag
//
case 51: {
//#line 499 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS result = createCollectionTypeCS(
CollectionTypeIdentifierEnum.BAG_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 52: CollectionTypeIdentifierCS ::= Sequence
//
case 52: {
//#line 509 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS result = createCollectionTypeCS(
CollectionTypeIdentifierEnum.SEQUENCE_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 53: CollectionTypeIdentifierCS ::= Collection
//
case 53: {
//#line 519 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS result = createCollectionTypeCS(
CollectionTypeIdentifierEnum.COLLECTION_LITERAL,
getRhsTokenText(1)
);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 54: CollectionTypeIdentifierCS ::= OrderedSet
//
case 54: {
//#line 529 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TupleTypeCS result = createTupleTypeCS((EList<VariableCS>)getRhsSym(3));
setOffsets(result, getRhsIToken(1), getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 61: tupleTypePartsCSopt ::= $Empty
//
case 61: {
//#line 562 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
setResult(new BasicEList<VariableCS>());
break;
}
//
// Rule 63: tupleTypePartsCS ::= typedUninitializedVariableCS
//
case 63: {
//#line 569 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<VariableCS> result = new BasicEList<VariableCS>();
result.add((VariableCS)getRhsSym(1));
setResult(result);
break;
}
//
// Rule 64: tupleTypePartsCS ::= tupleTypePartsCS , typedUninitializedVariableCS
//
case 64: {
//#line 576 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<VariableCS> result = (EList<VariableCS>)getRhsSym(1);
result.add((VariableCS)getRhsSym(3));
setResult(result);
break;
}
//
// Rule 65: untypedUninitializedVariableCS ::= simpleNameCS
//
case 65: {
//#line 587 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 81: CollectionLiteralExpCS ::= CollectionTypeIdentifierCS { CollectionLiteralPartsCSopt }
//
case 81: {
//#line 649 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
CollectionTypeCS typeCS = (CollectionTypeCS)getRhsSym(1);
CollectionLiteralExpCS result = createCollectionLiteralExpCS(
typeCS,
(EList<CollectionLiteralPartCS>)getRhsSym(3)
);
setOffsets(result, typeCS, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 82: CollectionLiteralExpCS ::= collectionTypeCS { CollectionLiteralPartsCSopt }
//
case 82: {
//#line 660 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
CollectionTypeCS typeCS = (CollectionTypeCS)getRhsSym(1);
CollectionLiteralExpCS result = createCollectionLiteralExpCS(
typeCS,
(EList<CollectionLiteralPartCS>)getRhsSym(3)
);
setOffsets(result, typeCS, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 83: CollectionLiteralPartsCSopt ::= $Empty
//
case 83: {
//#line 672 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
setResult(new BasicEList<CollectionLiteralPartCS>());
break;
}
//
// Rule 85: CollectionLiteralPartsCS ::= CollectionLiteralPartCS
//
case 85: {
//#line 679 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<CollectionLiteralPartCS> result = new BasicEList<CollectionLiteralPartCS>();
result.add((CollectionLiteralPartCS)getRhsSym(1));
setResult(result);
break;
}
//
// Rule 86: CollectionLiteralPartsCS ::= CollectionLiteralPartsCS , CollectionLiteralPartCS
//
case 86: {
//#line 686 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<CollectionLiteralPartCS> result = (EList<CollectionLiteralPartCS>)getRhsSym(1);
result.add((CollectionLiteralPartCS)getRhsSym(3));
setResult(result);
break;
}
//
// Rule 88: CollectionLiteralPartCS ::= OclExpressionCS
//
case 88: {
//#line 695 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
CollectionLiteralPartCS result = createCollectionLiteralPartCS(
(OCLExpressionCS)getRhsSym(1)
);
setOffsets(result, (CSTNode)getRhsSym(1));
setResult(result);
break;
}
//
// Rule 89: CollectionRangeCS ::= OclExpressionCS .. OclExpressionCS
//
case 89: {
//#line 705 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
CollectionLiteralPartCS result = createCollectionRangeCS(
(OCLExpressionCS)getRhsSym(1),
(OCLExpressionCS)getRhsSym(3)
);
setOffsets(result, (CSTNode)getRhsSym(1), (CSTNode)getRhsSym(3));
setResult(result);
break;
}
//
// Rule 97: TupleLiteralExpCS ::= Tuple { TupleLiteralPartsCS }
//
case 97: {
//#line 724 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TupleLiteralExpCS result = createTupleLiteralExpCS((EList<VariableCS>)getRhsSym(3));
setOffsets(result, getRhsIToken(1), getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 98: TupleLiteralPartsCS ::= initializedVariableCS
//
case 98: {
//#line 732 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<VariableCS> result = new BasicEList<VariableCS>();
result.add((VariableCS)getRhsSym(1));
setResult(result);
break;
}
//
// Rule 99: TupleLiteralPartsCS ::= TupleLiteralPartsCS , initializedVariableCS
//
case 99: {
//#line 739 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<VariableCS> result = (EList<VariableCS>)getRhsSym(1);
result.add((VariableCS)getRhsSym(3));
setResult(result);
break;
}
//
// Rule 100: IntegerLiteralExpCS ::= INTEGER_LITERAL
//
case 100: {
//#line 747 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IntegerLiteralExpCS result = createIntegerLiteralExpCS(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 101: RealLiteralExpCS ::= REAL_LITERAL
//
case 101: {
//#line 755 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
RealLiteralExpCS result = createRealLiteralExpCS(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 102: StringLiteralExpCS ::= STRING_LITERAL
//
case 102: {
//#line 763 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IToken literalToken = getRhsIToken(1);
StringLiteralExpCS result = createStringLiteralExpCS(literalToken);
setOffsets(result, literalToken);
setResult(result);
break;
}
//
// Rule 103: StringLiteralExpCS ::= StringLiteralExpCS STRING_LITERAL
//
case 103: {
//#line 771 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
StringLiteralExpCS string = (StringLiteralExpCS)getRhsSym(1);
IToken literalToken = getRhsIToken(2);
StringLiteralExpCS result = extendStringLiteralExpCS(string, literalToken);
setOffsets(result, string, literalToken);
setResult(result);
break;
}
//
// Rule 104: BooleanLiteralExpCS ::= true
//
case 104: {
//#line 781 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BooleanLiteralExpCS result = createBooleanLiteralExpCS(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 105: BooleanLiteralExpCS ::= false
//
case 105: {
//#line 788 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BooleanLiteralExpCS result = createBooleanLiteralExpCS(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 106: UnlimitedNaturalLiteralExpCS ::= *
//
case 106: {
//#line 796 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
UnlimitedNaturalLiteralExpCS result = createUnlimitedNaturalLiteralExpCS(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 107: InvalidLiteralExpCS ::= invalid
//
case 107: {
//#line 804 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
InvalidLiteralExpCS result = createInvalidLiteralExpCS(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 108: NullLiteralExpCS ::= null
//
case 108: {
//#line 812 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
NullLiteralExpCS result = createNullLiteralExpCS(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 109: TypeLiteralExpCS ::= primitiveTypeCS
//
case 109:
//
// Rule 110: TypeLiteralExpCS ::= collectionTypeCS
//
case 110:
//
// Rule 111: TypeLiteralExpCS ::= tupleTypeCS
//
case 111: {
//#line 826 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(1);
VariableExpCS result = createVariableExpCS(
simpleNameCS,
new BasicEList<OCLExpressionCS>(),
null
);
setOffsets(result, simpleNameCS);
setResult(result);
break;
}
//
// Rule 116: IteratorExpCS ::= primaryExpCS -> simpleNameCS ( uninitializedVariableCS | OclExpressionCS )
//
case 116: {
//#line 851 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 117: IteratorExpCS ::= primaryExpCS -> simpleNameCS ( simpleNameCS , uninitializedVariableCS | OclExpressionCS )
//
case 117: {
//#line 868 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 118: IteratorExpCS ::= primaryExpCS -> simpleNameCS ( typedUninitializedVariableCS , uninitializedVariableCS | OclExpressionCS )
//
case 118: {
//#line 888 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 119: IterateExpCS ::= primaryExpCS -> simpleNameCS ( typedInitializedVariableCS | OclExpressionCS )
//
case 119: {
//#line 909 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 120: IterateExpCS ::= primaryExpCS -> simpleNameCS ( uninitializedVariableCS ; typedInitializedVariableCS | OclExpressionCS )
//
case 120: {
//#line 925 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 124: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( )
//
case 124: {
//#line 947 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 125: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( OclExpressionCS )
//
case 125: {
//#line 961 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 126: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( notNameExpressionCS , argumentsCS )
//
case 126: {
//#line 991 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 127: OperationCallExpCS ::= primaryExpCS -> simpleNameCS ( simpleNameCS , argumentsCS )
//
case 127: {
//#line 1007 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 128: OperationCallExpCS ::= primaryExpCS . conceptualOperationNameCS isMarkedPreCSopt ( argumentsCSopt )
//
case 128:
//
// Rule 129: OperationCallExpCS ::= primaryExpCS . simpleNameCS isMarkedPreCSopt ( argumentsCSopt )
//
case 129: {
//#line 1033 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 130: OperationCallExpCS ::= simpleNameCS isMarkedPreCSopt ( argumentsCSopt )
//
case 130: {
//#line 1049 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 131: OperationCallExpCS ::= pathNameCS :: unreservedSimpleNameCS ( argumentsCSopt )
//
case 131: {
//#line 1063 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 132: OperationCallExpCS ::= primaryExpCS . pathNameCS :: unreservedSimpleNameCS isMarkedPreCSopt ( argumentsCSopt )
//
case 132: {
//#line 1081 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 134: PropertyCallExpCS ::= pathNameCS :: unreservedSimpleNameCS isMarkedPreCSopt
//
case 134: {
//#line 1105 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 135: PropertyCallExpCS ::= primaryExpCS . pathNameCS :: unreservedSimpleNameCS isMarkedPreCSopt
//
case 135: {
//#line 1126 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 136: AssociationClassCallExpCS ::= primaryExpCS . simpleNameCS isMarkedPreCSopt
//
case 136: {
//#line 1149 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 137: AssociationClassCallExpCS ::= primaryExpCS . simpleNameCS [ argumentsCS ] isMarkedPreCSopt
//
case 137: {
//#line 1170 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
OCLExpressionCS source = (OCLExpressionCS)getRhsSym(1);
SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(3);
IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)getRhsSym(7);
FeatureCallExpCS result = createFeatureCallExpCS(
source,
null,
simpleNameCS,
(EList<OCLExpressionCS>)getRhsSym(5),
isMarkedPreCS
);
if (isMarkedPreCS != null) {
setOffsets(result, source, isMarkedPreCS);
} else {
setOffsets(result, source, getRhsIToken(6));
}
setResult(result);
break;
}
//
// Rule 138: AssociationClassCallExpCS ::= simpleNameCS [ argumentsCS ] isMarkedPreCSopt
//
case 138: {
//#line 1193 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(1);
IsMarkedPreCS isMarkedPreCS = (IsMarkedPreCS)getRhsSym(5);
VariableExpCS result = createVariableExpCS(
simpleNameCS,
(EList<OCLExpressionCS>)getRhsSym(3),
isMarkedPreCS
);
if (isMarkedPreCS != null) {
setOffsets(result, simpleNameCS, isMarkedPreCS);
} else {
setOffsets(result, simpleNameCS, getRhsIToken(4));
}
setResult(result);
break;
}
//
// Rule 139: isMarkedPreCSopt ::= $Empty
//
case 139: {
//#line 1211 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
setResult(null);
break;
}
//
// Rule 140: argumentsCSopt ::= $Empty
//
case 140: {
//#line 1217 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
setResult(new BasicEList<OCLExpressionCS>());
break;
}
//
// Rule 142: argumentsCS ::= OclExpressionCS
//
case 142: {
//#line 1224 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<OCLExpressionCS> result = new BasicEList<OCLExpressionCS>();
result.add((OCLExpressionCS)getRhsSym(1));
setResult(result);
break;
}
//
// Rule 143: argumentsCS ::= argumentsCS , OclExpressionCS
//
case 143: {
//#line 1231 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<OCLExpressionCS> result = (EList<OCLExpressionCS>)getRhsSym(1);
result.add((OCLExpressionCS)getRhsSym(3));
setResult(result);
break;
}
//
// Rule 146: VariableExpCS ::= selfKeywordCS
//
case 146: {
//#line 1256 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(1);
VariableExpCS result = createVariableExpCS(
simpleNameCS,
new BasicEList<OCLExpressionCS>(),
null
);
setOffsets(result, simpleNameCS);
setResult(result);
break;
}
//
// Rule 147: SimpleNameExpCS ::= simpleNameCS
//
case 147: {
//#line 1271 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
SimpleNameCS simpleNameCS = (SimpleNameCS)getRhsSym(1);
VariableExpCS result = createVariableExpCS(
simpleNameCS,
new BasicEList<OCLExpressionCS>(),
null
);
setOffsets(result, simpleNameCS);
setResult(result);
break;
}
//
// Rule 153: impliesNotNameNotLetCS ::= impliesNotLetCS implies xorNotLetCS
//
case 153:
//
// Rule 155: impliesWithLetCS ::= impliesNotLetCS implies xorWithLetCS
//
case 155:
//
// Rule 159: xorNotNameNotLetCS ::= xorNotLetCS xor orNotLetCS
//
case 159:
//
// Rule 161: xorWithLetCS ::= xorNotLetCS xor orWithLetCS
//
case 161:
//
// Rule 165: orNotNameNotLetCS ::= orNotLetCS or andNotLetCS
//
case 165:
//
// Rule 167: orWithLetCS ::= orNotLetCS or andWithLetCS
//
case 167:
//
// Rule 171: andNotNameNotLetCS ::= andNotLetCS and equalityNotLetCS
//
case 171:
//
// Rule 173: andWithLetCS ::= andNotLetCS and equalityWithLetCS
//
case 173:
//
// Rule 177: equalityNotNameNotLetCS ::= equalityNotLetCS = relationalNotLetCS
//
case 177:
//
// Rule 178: equalityNotNameNotLetCS ::= equalityNotLetCS <> relationalNotLetCS
//
case 178:
//
// Rule 180: equalityWithLetCS ::= equalityNotLetCS = relationalWithLetCS
//
case 180:
//
// Rule 181: equalityWithLetCS ::= equalityNotLetCS <> relationalWithLetCS
//
case 181:
//
// Rule 185: relationalNotNameNotLetCS ::= relationalNotLetCS > additiveNotLetCS
//
case 185:
//
// Rule 186: relationalNotNameNotLetCS ::= relationalNotLetCS < additiveNotLetCS
//
case 186:
//
// Rule 187: relationalNotNameNotLetCS ::= relationalNotLetCS >= additiveNotLetCS
//
case 187:
//
// Rule 188: relationalNotNameNotLetCS ::= relationalNotLetCS <= additiveNotLetCS
//
case 188:
//
// Rule 190: relationalWithLetCS ::= relationalNotLetCS > additiveWithLetCS
//
case 190:
//
// Rule 191: relationalWithLetCS ::= relationalNotLetCS < additiveWithLetCS
//
case 191:
//
// Rule 192: relationalWithLetCS ::= relationalNotLetCS >= additiveWithLetCS
//
case 192:
//
// Rule 193: relationalWithLetCS ::= relationalNotLetCS <= additiveWithLetCS
//
case 193:
//
// Rule 197: additiveNotNameNotLetCS ::= additiveNotLetCS + multiplicativeNotLetCS
//
case 197:
//
// Rule 198: additiveNotNameNotLetCS ::= additiveNotLetCS - multiplicativeNotLetCS
//
case 198:
//
// Rule 200: additiveWithLetCS ::= additiveNotLetCS + multiplicativeWithLetCS
//
case 200:
//
// Rule 201: additiveWithLetCS ::= additiveNotLetCS - multiplicativeWithLetCS
//
case 201:
//
// Rule 205: multiplicativeNotNameNotLetCS ::= multiplicativeNotLetCS * unaryNotLetCS
//
case 205:
//
// Rule 206: multiplicativeNotNameNotLetCS ::= multiplicativeNotLetCS / unaryNotLetCS
//
case 206:
//
// Rule 208: multiplicativeWithLetCS ::= multiplicativeNotLetCS * unaryWithLetCS
//
case 208:
//
// Rule 209: multiplicativeWithLetCS ::= multiplicativeNotLetCS / unaryWithLetCS
//
case 209: {
//#line 1380 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 213: unaryNotNameNotLetCS ::= - unaryNotLetCS
//
case 213:
//
// Rule 214: unaryNotNameNotLetCS ::= not unaryNotLetCS
//
case 214:
//
// Rule 216: unaryWithLetCS ::= - unaryWithLetCS
//
case 216:
//
// Rule 217: unaryWithLetCS ::= not unaryWithLetCS
//
case 217: {
//#line 1411 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
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 224: primaryNotNameCS ::= ( OclExpressionCS )
//
case 224: {
//#line 1437 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
OCLExpressionCS result = (OCLExpressionCS)getRhsSym(2);
if (result instanceof OperationCallExpCS) {
((OperationCallExpCS)result).setIsAtomic(true);
}
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 225: IfExpCS ::= if OclExpressionCS then OclExpressionCS else OclExpressionCS endif
//
case 225: {
//#line 1448 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IfExpCS result = createIfExpCS(
(OCLExpressionCS)getRhsSym(2),
(OCLExpressionCS)getRhsSym(4),
(OCLExpressionCS)getRhsSym(6)
);
setOffsets(result, getRhsIToken(1), getRhsIToken(7));
setResult(result);
break;
}
//
// Rule 226: LetExpCS ::= let letVariablesCS in OclExpressionCS
//
case 226: {
//#line 1460 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
OCLExpressionCS expr = (OCLExpressionCS)getRhsSym(4);
LetExpCS result = createLetExpCS(
(EList<VariableCS>)getRhsSym(2),
expr
);
setOffsets(result, getRhsIToken(1), expr);
setResult(result);
break;
}
//
// Rule 227: letVariablesCS ::= typedInitializedVariableCS
//
case 227: {
//#line 1472 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<VariableCS> result = new BasicEList<VariableCS>();
result.add((VariableCS)getRhsSym(1));
setResult(result);
break;
}
//
// Rule 228: letVariablesCS ::= letVariablesCS , typedInitializedVariableCS
//
case 228: {
//#line 1479 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EList<VariableCS> result = (EList<VariableCS>)getRhsSym(1);
result.add((VariableCS)getRhsSym(3));
setResult(result);
break;
}
//
// Rule 229: ERROR_Colon ::= ERROR_TOKEN
//
case 229: {
//#line 48 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(1), OCLParserErrors.MISSING_COLON);
break;
}
//
// Rule 230: ERROR_Empty ::= ERROR_TOKEN
//
case 230: {
//#line 53 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(1), OCLParserErrors.EXTRA_TOKENS);
break;
}
//
// Rule 231: ERROR_SimpleNameCS ::= ERROR_TOKEN
//
case 231: {
//#line 63 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(1), OCLParserErrors.MISSING_SIMPLE_NAME);
IToken iToken = getRhsIToken(1);
SimpleNameCS result = createSimpleNameCS(
SimpleTypeEnum.IDENTIFIER_LITERAL,
iToken
);
setOffsets(result, iToken);
setResult(result);
break;
}
//
// Rule 233: collectionTypeCS ::= CollectionTypeIdentifierCS ( typeCS ERROR_TOKEN
//
case 233: {
//#line 82 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(4), OCLParserErrors.MISSING_RPAREN);
CollectionTypeCS result = (CollectionTypeCS)getRhsSym(1);
result.setTypeCS((TypeCS)getRhsSym(3));
setOffsets(result, result, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 234: TupleLiteralExpCS ::= Tuple ERROR_TOKEN
//
case 234: {
//#line 116 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), OCLParserErrors.MISSING_LBRACE);
TupleLiteralExpCS result = createTupleLiteralExpCS((EList<VariableCS>)getRhsSym(3));
setOffsets(result, getRhsIToken(1), getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 235: TupleLiteralPartsCS ::= ERROR_TOKEN
//
case 235: {
//#line 125 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(1), OCLParserErrors.MISSING_VARIABLES);
EList<VariableCS> result = new BasicEList<VariableCS>();
setResult(result);
break;
}
//
// Rule 236: AssociationClassCallExpCS ::= simpleNameCS [ argumentsCS ERROR_TOKEN
//
case 236: {
//#line 136 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(4), OCLParserErrors.MISSING_RBRACK);
VariableExpCS result = createVariableExpCS(
(SimpleNameCS)getRhsSym(1),
(EList<OCLExpressionCS>)getRhsSym(3),
null
);
setOffsets(result, (CSTNode)getRhsSym(1), getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 237: IfExpCS ::= if OclExpressionCS then OclExpressionCS else OclExpressionCS ERROR_TOKEN
//
case 237: {
//#line 152 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(7), OCLParserErrors.MISSING_ENDIF);
IfExpCS result = createIfExpCS(
(OCLExpressionCS)getRhsSym(2),
(OCLExpressionCS)getRhsSym(4),
(OCLExpressionCS)getRhsSym(6)
);
setOffsets(result, getRhsIToken(1), getRhsIToken(7));
setResult(result);
break;
}
//
// Rule 238: IfExpCS ::= if OclExpressionCS then OclExpressionCS ERROR_TOKEN
//
case 238: {
//#line 164 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(5), OCLParserErrors.MISSING_ELSE_ENDIF);
IfExpCS result = createIfExpCS(
(OCLExpressionCS)getRhsSym(2),
(OCLExpressionCS)getRhsSym(4),
createInvalidLiteralExpCS(getRhsTokenText(5))
);
setOffsets(result, getRhsIToken(1), getRhsIToken(5));
setResult(result);
break;
}
//
// Rule 239: IfExpCS ::= if OclExpressionCS ERROR_TOKEN
//
case 239: {
//#line 176 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(3), OCLParserErrors.MISSING_THEN_ELSE_ENDIF);
IfExpCS result = createIfExpCS(
(OCLExpressionCS)getRhsSym(2),
createInvalidLiteralExpCS(getRhsTokenText(3)),
createInvalidLiteralExpCS(getRhsTokenText(3))
);
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 240: IfExpCS ::= if ERROR_TOKEN endif
//
case 240: {
//#line 188 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(3), OCLParserErrors.MISSING_THEN_ELSE);
IfExpCS result = createIfExpCS(
createInvalidLiteralExpCS(getRhsTokenText(2)),
createInvalidLiteralExpCS(getRhsTokenText(2)),
createInvalidLiteralExpCS(getRhsTokenText(2))
);
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 241: primaryExpCS ::= ( OclExpressionCS ERROR_TOKEN
//
case 241: {
//#line 201 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(3), OCLParserErrors.MISSING_RPAREN);
OCLExpressionCS result = (OCLExpressionCS)getRhsSym(2);
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 242: topLevelCS_0_ ::= $Empty
//
case 242: {
//#line 113 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TopLevelCS result = QVTrCSTFactory.eINSTANCE.createTopLevelCS();
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 243: topLevelCS_0_ ::= topLevelCS_0_ import unitCS ;
//
case 243: {
//#line 120 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TopLevelCS result = (TopLevelCS)getRhsSym(1);
result.getImportClause().add((UnitCS)getRhsSym(3));
setOffsets(result, result, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 244: topLevelCS_0_ ::= topLevelCS_0_ ERROR_TOKEN
//
case 244: {
//#line 128 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_TOPLEVEL);
break;
}
//
// Rule 245: topLevelCS_1_ ::= topLevelCS transformationCS
//
case 245: {
//#line 133 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TransformationCS transformationCS = (TransformationCS)getRhsSym(2);
TopLevelCS result = (TopLevelCS)getRhsSym(1);
result.getTransformation().add(transformationCS);
setOffsets(result, result, transformationCS);
setResult(result);
break;
}
//
// Rule 246: topLevelCS_1_ ::= topLevelCS_1_ ERROR_TOKEN
//
case 246: {
//#line 142 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_TRANSFORMATION);
break;
}
//
// Rule 249: unitCS ::= identifierCS
//
case 249: {
//#line 151 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
UnitCS result = QVTrCSTFactory.eINSTANCE.createUnitCS();
result.getIdentifier().add(identifierCS);
setOffsets(result, identifierCS);
setResult(result);
break;
}
//
// Rule 250: unitCS ::= unitCS . identifierCS
//
case 250: {
//#line 160 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(3);
UnitCS result = (UnitCS)getRhsSym(1);
result.getIdentifier().add(identifierCS);
setOffsets(result, result, identifierCS);
setResult(result);
break;
}
//
// Rule 251: transformationCS_0_ ::= transformation identifierCS ( modelDeclCS
//
case 251: {
//#line 174 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(2);
ModelDeclCS modelDeclCS = (ModelDeclCS)getRhsSym(4);
TransformationCS result = QVTrCSTFactory.eINSTANCE.createTransformationCS();
result.setIdentifier(identifierCS);
result.getModelDecl().add(modelDeclCS);
setOffsets(result, getRhsIToken(1), modelDeclCS);
setResult(result);
break;
}
//
// Rule 252: transformationCS_0_ ::= transformationCS_0_ , modelDeclCS
//
case 252: {
//#line 185 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
ModelDeclCS modelDeclCS = (ModelDeclCS)getRhsSym(3);
TransformationCS result = (TransformationCS)getRhsSym(1);
result.getModelDecl().add(modelDeclCS);
setOffsets(result, result, modelDeclCS);
setResult(result);
break;
}
//
// Rule 253: transformationCS_0_ ::= transformationCS_0_ ERROR_TOKEN
//
case 253: {
//#line 194 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_MODELDECL);
break;
}
//
// Rule 254: transformationCS_1_ ::= transformationCS_0_ )
//
case 254: {
//#line 199 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TransformationCS result = (TransformationCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 256: transformationCS_2_ ::= transformationCS_1_ extends identifierCS
//
case 256: {
//#line 207 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(3);
TransformationCS result = (TransformationCS)getRhsSym(1);
result.setExtends(identifierCS);
setOffsets(result, result, identifierCS);
setResult(result);
break;
}
//
// Rule 258: transformationCS_3_ ::= transformationCS_3_ keyDeclCS
//
case 258: {
//#line 217 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
KeyDeclCS keyDeclCS = (KeyDeclCS)getRhsSym(2);
TransformationCS result = (TransformationCS)getRhsSym(1);
result.getKeyDecl().add(keyDeclCS);
setOffsets(result, result, keyDeclCS);
setResult(result);
break;
}
//
// Rule 260: transformationCS_4_ ::= transformationCS_4_ queryCS
//
case 260: {
//#line 227 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
QueryCS queryCS =(QueryCS)getRhsSym(2);
TransformationCS result = (TransformationCS)getRhsSym(1);
result.getQuery().add(queryCS);
setOffsets(result, result, queryCS);
setResult(result);
break;
}
//
// Rule 261: transformationCS_4_ ::= transformationCS_4_ relationCS
//
case 261: {
//#line 236 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
RelationCS relationCS = (RelationCS)getRhsSym(2);
TransformationCS result = (TransformationCS)getRhsSym(1);
result.getRelation().add(relationCS);
setOffsets(result, result, relationCS);
setResult(result);
break;
}
//
// Rule 262: transformationCS_4_ ::= transformationCS_4_ ERROR_TOKEN
//
case 262: {
//#line 245 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_TRANSFORMATION_ELEMENT);
break;
}
//
// Rule 263: transformationCS ::= transformationCS_4_ }
//
case 263: {
//#line 250 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TransformationCS result = (TransformationCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 264: modelDeclCS_0_ ::= modelIdCS :
//
case 264: {
//#line 260 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS modelIdCS = (IdentifierCS)getRhsSym(1);
ModelDeclCS result = QVTrCSTFactory.eINSTANCE.createModelDeclCS();
result.setModelId(modelIdCS);
setOffsets(result, modelIdCS, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 267: modelDeclCS_2_ ::= modelDeclCS_1_ metaModelIdCS
//
case 267:
//
// Rule 268: modelDeclCS ::= modelDeclCS_0_ metaModelIdCS
//
case 268: {
//#line 273 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS metaModelIdCS = (IdentifierCS)getRhsSym(2);
ModelDeclCS result = (ModelDeclCS)getRhsSym(1);
result.getMetaModelId().add(metaModelIdCS);
setOffsets(result, result, metaModelIdCS);
setResult(result);
break;
}
//
// Rule 269: modelDeclCS_2_ ::= modelDeclCS_1_ ERROR_TOKEN
//
case 269:
//
// Rule 270: modelDeclCS ::= modelDeclCS_0_ ERROR_TOKEN
//
case 270: {
//#line 284 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_MODELDECL_ELEMENT);
break;
}
//
// Rule 271: modelDeclCS ::= modelDeclCS_2_ }
//
case 271: {
//#line 289 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
ModelDeclCS result = (ModelDeclCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 274: keyDeclCS_0_ ::= key classIdCS {
//
case 274: {
//#line 304 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
PathNameCS classIdCS = (PathNameCS)getRhsSym(2);
KeyDeclCS result = QVTrCSTFactory.eINSTANCE.createKeyDeclCS();
result.setClassId(classIdCS);
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 276: keyDeclCS_1_ ::= keyDeclCS_0_ propertyIdCS
//
case 276: {
//#line 314 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifiedCS propertyIdCS = (IdentifiedCS)getRhsSym(2);
KeyDeclCS result = (KeyDeclCS)getRhsSym(1);
result.getPropertyId().add(propertyIdCS);
setOffsets(result, result, propertyIdCS);
setResult(result);
break;
}
//
// Rule 277: keyDeclCS_1_ ::= keyDeclCS_0_ ERROR_TOKEN
//
case 277: {
//#line 323 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_KEYDECL_ELEMENT);
break;
}
//
// Rule 278: keyDeclCS ::= keyDeclCS_1_ } ;
//
case 278: {
//#line 328 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
KeyDeclCS result = (KeyDeclCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 280: propertyIdCS ::= identifierCS
//
case 280: {
//#line 340 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
IdentifiedCS result = QVTCSTFactory.eINSTANCE.createIdentifiedCS();
result.setIdentifier(identifierCS);
setOffsets(result, identifierCS);
setResult(result);
break;
}
//
// Rule 281: relationCS_withName ::= relation identifierCS
//
case 281: {
//#line 359 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(2);
RelationCS result = QVTrCSTFactory.eINSTANCE.createRelationCS();
result.setIdentifier(identifierCS);
setOffsets(result, getRhsIToken(1), identifierCS);
setResult(result);
break;
}
//
// Rule 283: relationCS_postName ::= top relationCS_withName
//
case 283: {
//#line 369 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
RelationCS result = (RelationCS)getRhsSym(2);
result.setTop(true);
setOffsets(result, getRhsIToken(1), result);
setResult(result);
break;
}
//
// Rule 285: relationCS_postOverrides ::= relationCS_postName overrides identifierCS
//
case 285: {
//#line 378 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(3);
RelationCS result = (RelationCS)getRhsSym(1);
result.setOverrides(identifierCS);
setOffsets(result, result, identifierCS);
setResult(result);
break;
}
//
// Rule 287: relationCS_postVariable ::= relationCS_postVariable varDeclarationCS
//
case 287: {
//#line 388 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
VarDeclarationCS varDeclarationCS = (VarDeclarationCS)getRhsSym(2);
RelationCS result = (RelationCS)getRhsSym(1);
result.getVarDeclaration().add(varDeclarationCS);
setOffsets(result, result, varDeclarationCS);
setResult(result);
break;
}
//
// Rule 288: relationCS_postDomain ::= relationCS_postVariable domainCS
//
case 288:
//
// Rule 289: relationCS_postDomain ::= relationCS_postDomain domainCS
//
case 289: {
//#line 399 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
AbstractDomainCS domainCS = (AbstractDomainCS)getRhsSym(2);
RelationCS result = (RelationCS)getRhsSym(1);
result.getDomain().add(domainCS);
setOffsets(result, result, domainCS);
setResult(result);
break;
}
//
// Rule 291: relationCS_postWhen ::= relationCS_postDomain whenCS
//
case 291: {
//#line 409 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
RelationCS result = (RelationCS)getRhsSym(1);
WhenCS whenCS = (WhenCS)getRhsSym(2);
result.setWhen(whenCS);
setOffsets(result, result, whenCS);
setResult(result);
break;
}
//
// Rule 293: relationCS_postWhere ::= relationCS_postWhen whereCS
//
case 293: {
//#line 419 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
RelationCS result = (RelationCS)getRhsSym(1);
WhereCS whereCS = (WhereCS)getRhsSym(2);
result.setWhere(whereCS);
setOffsets(result, result, whereCS);
setResult(result);
break;
}
//
// Rule 294: relationCS ::= relationCS_postWhere }
//
case 294: {
//#line 428 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
RelationCS result = (RelationCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 295: whenCS_0 ::= when {
//
case 295: {
//#line 436 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
WhenCS result = QVTrCSTFactory.eINSTANCE.createWhenCS();
setOffsets(result, getRhsIToken(1), getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 296: whenCS_0 ::= when ERROR_TOKEN
//
case 296: {
//#line 443 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_WHEN);
break;
}
//
// Rule 298: whenCS_1 ::= whenCS_1 OclExpressionCS ;
//
case 298: {
//#line 449 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
WhenCS result = (WhenCS)getRhsSym(1);
OCLExpressionCS OclExpressionCS = (OCLExpressionCS)getRhsSym(2);
result.getExpr().add(OclExpressionCS);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 299: whenCS ::= whenCS_1 }
//
case 299: {
//#line 458 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
WhenCS result = (WhenCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 300: whereCS_0 ::= where {
//
case 300: {
//#line 467 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
WhereCS result = QVTrCSTFactory.eINSTANCE.createWhereCS();
setOffsets(result, getRhsIToken(1), getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 301: whereCS_0 ::= where ERROR_TOKEN
//
case 301: {
//#line 474 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_WHERE);
break;
}
//
// Rule 303: whereCS_1 ::= whereCS_1 OclExpressionCS ;
//
case 303: {
//#line 480 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
WhereCS result = (WhereCS)getRhsSym(1);
OCLExpressionCS OclExpressionCS = (OCLExpressionCS)getRhsSym(2);
result.getExpr().add(OclExpressionCS);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 304: whereCS ::= whereCS_1 }
//
case 304: {
//#line 489 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
WhereCS result = (WhereCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 305: varDeclarationCS_0 ::= identifierCS
//
case 305: {
//#line 499 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
VarDeclarationCS result = QVTrCSTFactory.eINSTANCE.createVarDeclarationCS();
result.getVarDeclarationId().add(identifierCS);
setOffsets(result, identifierCS);
setResult(result);
break;
}
//
// Rule 306: varDeclarationCS_0 ::= varDeclarationCS_0 , identifierCS
//
case 306: {
//#line 508 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(3);
VarDeclarationCS result = (VarDeclarationCS)getRhsSym(1);
result.getVarDeclarationId().add(identifierCS);
setOffsets(result, result, identifierCS);
setResult(result);
break;
}
//
// Rule 307: varDeclarationCS ::= varDeclarationCS_0 : typeCS ;
//
case 307: {
//#line 517 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
VarDeclarationCS result = (VarDeclarationCS)getRhsSym(1);
result.setType((TypeCS)getRhsSym(3));
setOffsets(result, result, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 308: domainCS_0_ ::= domain modelIdCS templateCS
//
case 308: {
//#line 531 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(2);
TemplateCS templateCS = (TemplateCS)getRhsSym(3);
DomainCS result = QVTrCSTFactory.eINSTANCE.createDomainCS();
result.setModelId(identifierCS);
result.setTemplate(templateCS);
setOffsets(result, getRhsIToken(1), templateCS);
setResult(result);
break;
}
//
// Rule 310: domainCS_1_ ::= checkonly domainCS_0_
//
case 310: {
//#line 543 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(2);
result.setCheckonly(true);
setOffsets(result, getRhsIToken(1), result);
setResult(result);
break;
}
//
// Rule 311: domainCS_1_ ::= enforce domainCS_0_
//
case 311: {
//#line 551 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(2);
result.setEnforce(true);
setOffsets(result, getRhsIToken(1), result);
setResult(result);
break;
}
//
// Rule 312: domainCS_1_ ::= replace domainCS_0_
//
case 312: {
//#line 559 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(2);
result.setReplace(true);
setOffsets(result, getRhsIToken(1), result);
setResult(result);
break;
}
//
// Rule 314: domainCS_postImplementedby ::= domainCS_1_ implementedby OperationCallExpCS
//
case 314: {
//#line 568 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(1);
OperationCallExpCS operationCallExpCS =(OperationCallExpCS)getRhsSym(3);
result.setImplementedBy(operationCallExpCS);
setOffsets(result, result, operationCallExpCS);
setResult(result);
break;
}
//
// Rule 316: domainCS_preDefaultValue ::= domainCS_preDefaultValue defaultValueCS
//
case 316: {
//#line 578 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(1);
DefaultValueCS defaultValueCS = (DefaultValueCS)getRhsSym(2);
result.getDefaultValue().add(defaultValueCS);
setOffsets(result, result, defaultValueCS);
setResult(result);
break;
}
//
// Rule 318: domainCS_postDefaultValues ::= domainCS_preDefaultValue }
//
case 318: {
//#line 588 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 319: domainCS ::= domainCS_postDefaultValues ;
//
case 319: {
//#line 595 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 320: domainCS ::= primitive domain identifierCS : typeCS ;
//
case 320: {
//#line 604 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(3);
TypeCS typeCS = (TypeCS)getRhsSym(5);
PrimitiveTypeDomainCS result = QVTrCSTFactory.eINSTANCE.createPrimitiveTypeDomainCS();
result.setIdentifier(identifierCS);
result.setType(typeCS);
setOffsets(result, getRhsIToken(1), getRhsIToken(6));
setResult(result);
break;
}
//
// Rule 324: templateCS ::= templateCS_0_ { OclExpressionCS }
//
case 324: {
//#line 621 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TemplateCS result = (TemplateCS)getRhsSym(1);
OCLExpressionCS OclExpressionCS = (OCLExpressionCS)getRhsSym(3);
result.setGuardExpression(OclExpressionCS);
setOffsets(result, result, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 328: objectTemplateCS_prePropertyTemplates ::= simpleNameCS : notCollectionTypeCS {
//
case 328: {
//#line 654 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = createIdentifierCS(1);
TypeCS typeCS = (TypeCS)getRhsSym(3);
ObjectTemplateCS result = QVTrCSTFactory.eINSTANCE.createObjectTemplateCS();
result.setType(typeCS);
result.setIdentifier(identifierCS);
setOffsets(result, identifierCS, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 329: objectTemplateCS_prePropertyTemplates ::= : pathNameCS {
//
case 329: {
//#line 665 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
ObjectTemplateCS result = QVTrCSTFactory.eINSTANCE.createObjectTemplateCS();
result.setIdentifier(createUniqueIdentifierCS(1));
result.setType((TypeCS)getRhsSym(2));
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 332: objectTemplateCS_postPropertyTemplate ::= objectTemplateCS_prePropertyTemplate propertyTemplateCS
//
case 332: {
//#line 676 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
ObjectTemplateCS result = (ObjectTemplateCS)getRhsSym(1);
PropertyTemplateCS propertyTemplateCS = (PropertyTemplateCS)getRhsSym(2);
result.getPropertyTemplate().add(propertyTemplateCS);
setOffsets(result, result, propertyTemplateCS);
setResult(result);
break;
}
//
// Rule 333: objectTemplateCS ::= objectTemplateCS_prePropertyTemplates }
//
case 333:
//
// Rule 334: objectTemplateCS ::= objectTemplateCS_postPropertyTemplate }
//
case 334: {
//#line 687 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
ObjectTemplateCS result = (ObjectTemplateCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 335: propertyTemplateCS ::= propertyIdCS = OclExpressionCS
//
case 335: {
//#line 696 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifiedCS propertyIdCS = (IdentifiedCS)getRhsSym(1);
PropertyTemplateCS result = QVTrCSTFactory.eINSTANCE.createPropertyTemplateCS();
OCLExpressionCS OclExpressionCS = (OCLExpressionCS)getRhsSym(3);
result.setPropertyId(propertyIdCS);
result.setOclExpression(OclExpressionCS);
setOffsets(result, propertyIdCS, OclExpressionCS);
setResult(result);
break;
}
//
// Rule 336: collectionTemplateCS_1_ ::= : collectionTypeCS
//
case 336: {
//#line 714 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
CollectionTypeCS collectionTypeCS = (CollectionTypeCS)getRhsSym(2);
CollectionTemplateCS result = QVTrCSTFactory.eINSTANCE.createCollectionTemplateCS();
result.setType(collectionTypeCS);
result.setIdentifier(createUniqueIdentifierCS(1));
setOffsets(result, getRhsIToken(1), collectionTypeCS);
setResult(result);
break;
}
//
// Rule 337: collectionTemplateCS_1_ ::= simpleNameCS : collectionTypeCS
//
case 337: {
//#line 730 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = createIdentifierCS(1);
CollectionTypeCS collectionTypeCS = (CollectionTypeCS)getRhsSym(3);
CollectionTemplateCS result = QVTrCSTFactory.eINSTANCE.createCollectionTemplateCS();
result.setType(collectionTypeCS);
result.setIdentifier(identifierCS);
setOffsets(result, identifierCS, collectionTypeCS);
setResult(result);
break;
}
//
// Rule 341: collectionTemplateCS_postMemberSelection ::= collectionTemplateCS_preMemberSelection memberSelectorCS
//
case 341: {
//#line 744 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifiedCS memberSelectorCS = (IdentifiedCS)getRhsSym(2);
CollectionTemplateCS result = (CollectionTemplateCS)getRhsSym(1);
result.getMemberIdentifier().add(memberSelectorCS);
setOffsets(result, result, memberSelectorCS);
setResult(result);
break;
}
//
// Rule 342: collectionTemplateCS ::= collectionTemplateCS_postMemberSelection PLUS_PLUS identifierCS }
//
case 342: {
//#line 753 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS restIdentifier = (IdentifierCS)getRhsSym(3);
CollectionTemplateCS result = (CollectionTemplateCS)getRhsSym(1);
result.setRestIdentifier(restIdentifier);
setOffsets(result, result, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 343: collectionTemplateCS ::= collectionTemplateCS_postMemberSelection ERROR_TOKEN }
//
case 343: {
//#line 762 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_REST);
IdentifierCS restIdentifier = createUniqueIdentifierCS(2);
CollectionTemplateCS result = (CollectionTemplateCS)getRhsSym(1);
result.setRestIdentifier(restIdentifier);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 344: collectionTemplateCS ::= collectionTemplateCS_preMemberSelections }
//
case 344: {
//#line 772 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
CollectionTemplateCS result = (CollectionTemplateCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 345: memberSelectorCS ::= identifierCS
//
case 345: {
//#line 781 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
IdentifiedCS result = QVTCSTFactory.eINSTANCE.createIdentifiedCS();
result.setIdentifier(identifierCS);
setOffsets(result, identifierCS);
setResult(result);
break;
}
//
// Rule 347: defaultValueCS ::= identifierCS = OclExpressionCS ;
//
case 347: {
//#line 793 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
OCLExpressionCS OclExpressionCS = (OCLExpressionCS)getRhsSym(3);
DefaultValueCS result = QVTrCSTFactory.eINSTANCE.createDefaultValueCS();
result.setIdentifier(identifierCS);
result.setInitialiser(OclExpressionCS);
setOffsets(result, identifierCS, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 348: queryCS_preParamDeclaration ::= query pathNameCS (
//
case 348: {
//#line 809 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
QueryCS result = QVTrCSTFactory.eINSTANCE.createQueryCS();
result.setPathName((PathNameCS)getRhsSym(2));
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 350: queryCS_postParamDeclaration ::= queryCS_preParamDeclaration paramDeclarationCS
//
case 350: {
//#line 818 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
ParamDeclarationCS paramDeclarationCS = (ParamDeclarationCS)getRhsSym(2);
QueryCS result = (QueryCS)getRhsSym(1);
result.getInputParamDeclaration().add(paramDeclarationCS);
setOffsets(result, result, paramDeclarationCS);
setResult(result);
break;
}
//
// Rule 351: queryCS_postType ::= queryCS_postParamDeclaration ) : typeCS
//
case 351: {
//#line 827 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TypeCS typeCS = (TypeCS)getRhsSym(4);
QueryCS result = (QueryCS)getRhsSym(1);
result.setType(typeCS);
setOffsets(result, result, typeCS);
setResult(result);
break;
}
//
// Rule 352: queryCS ::= queryCS_postType ;
//
case 352: {
//#line 836 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
QueryCS result = (QueryCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 353: queryCS ::= queryCS_postType { OclExpressionCS }
//
case 353: {
//#line 843 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
QueryCS result = (QueryCS)getRhsSym(1);
result.setOclExpression((OCLExpressionCS)getRhsSym(3));
setOffsets(result, result, getRhsIToken(4));
setResult(result);
break;
}
//
// Rule 354: paramDeclarationCS ::= identifierCS : typeCS
//
case 354: {
//#line 853 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
TypeCS typeCS = (TypeCS)getRhsSym(3);
ParamDeclarationCS result = QVTrCSTFactory.eINSTANCE.createParamDeclarationCS();
result.setIdentifier(identifierCS);
result.setType(typeCS);
setOffsets(result, identifierCS, typeCS);
setResult(result);
break;
}
//
// Rule 355: paramDeclarationCS ::= identifierCS ERROR_TOKEN
//
case 355: {
//#line 864 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(2), QVTrParserErrors.INCOMPLETE_PARAM_DECLARATION);
break;
}
//
// Rule 375: identifierCS ::= IDENTIFIER
//
case 375:
//
// Rule 376: identifierCS ::= relationIdentifier
//
case 376:
//
// Rule 377: identifierCS ::= self
//
case 377: {
//#line 904 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS result = createIdentifierCS(1);
setResult(result);
break;
}
//
// Rule 378: identifierCS ::= QuotedSimpleNameCS
//
case 378: {
//#line 910 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS result = createIdentifierCS((SimpleNameCS)getRhsSym(1));
setResult(result);
break;
}
default:
break;
}
return;
}
}