blob: 4b04a24eb5a42f272cf67c69120d82f6bc50f57d [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: QVTcParser.java,v 1.17 2010/07/10 09:34:36 ewillink Exp $
*/
package org.eclipse.qvt.declarative.parser.qvtcore;
import lpg.runtime.*;
import org.eclipse.qvt.declarative.parser.qvt.cst.*;
import org.eclipse.qvt.declarative.parser.qvtcore.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 QVTcParser extends AbstractOCLParser implements RuleAction
{
private DerivedPrsStream prsStream = null;
private boolean unimplementedSymbolsWarning = false;
private static ParseTable prsTable = new QVTcParserprs();
@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(" " + QVTcParsersym.orderedTerminalSymbols[id.intValue()]);
}
System.out.println();
}
}
catch(UndefinedEofSymbolException e)
{
throw new Error(new UndefinedEofSymbolException
("The Lexer does not implement the Eof symbol " +
QVTcParsersym.orderedTerminalSymbols[prsTable.getEoftSymbol()]));
}
}
@SuppressWarnings("nls")
public QVTcParser(QVTcLexer lexer)
{
super(lexer);
try
{
btParser = new BacktrackingParser(prsStream, prsTable, this);
}
catch (NotBacktrackParseTableException e)
{
throw new Error(new NotBacktrackParseTableException
("Regenerate QVTcParserprs.java with -BACKTRACK option"));
}
catch (BadParseSymFileException e)
{
throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- QVTcParsersym.java"));
}
ILexStream lexStream = lexer.getILexStream();
if (lexStream != null) {
reset(lexStream);
}
}
@Override
public int numTokenKinds() { return QVTcParsersym.numTokenKinds; }
@Override
public String[] orderedTerminalSymbols() { return QVTcParsersym.orderedTerminalSymbols; }
public String getTokenKindName(int kind) { return QVTcParsersym.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 QVTcLexer getLexer() {
return (QVTcLexer) 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(SimpleNameCS simpleName) {
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
result.setValue(simpleName.getValue());
setOffsets(result, simpleName);
return result;
}
private int _uniqueNameCount = 0;
protected String createUniqueIdentifier() {
return "_unique" + _uniqueNameCount++;
}
protected IdentifierCS createUniqueIdentifierCS(int token) {
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
result.setValue(createUniqueIdentifier());
setOffsets(result, getIToken(token));
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 ::= $Empty
//
case 242: {
//#line 105 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TopLevelCS result = QVTcCSTFactory.eINSTANCE.createTopLevelCS();
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 243: TopLevelCS ::= TopLevelCS MappingCS
//
case 243: {
//#line 112 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TopLevelCS result = (TopLevelCS)getRhsSym(1);
MappingCS mappingCS = (MappingCS)getRhsSym(2);
result.getMappings().add(mappingCS);
setOffsets(result, result, mappingCS);
setResult(result);
break;
}
//
// Rule 244: TopLevelCS ::= TopLevelCS TransformationCS
//
case 244: {
//#line 121 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TopLevelCS result = (TopLevelCS)getRhsSym(1);
TransformationCS transformationCS = (TransformationCS)getRhsSym(2);
result.getTransformations().add(transformationCS);
setOffsets(result, result, transformationCS);
setResult(result);
break;
}
//
// Rule 245: TopLevelCS ::= TopLevelCS QueryCS
//
case 245: {
//#line 130 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TopLevelCS result = (TopLevelCS)getRhsSym(1);
QueryCS queryCS = (QueryCS)getRhsSym(2);
result.getQueries().add(queryCS);
setOffsets(result, result, queryCS);
setResult(result);
break;
}
//
// Rule 246: TransformationCS_0_ ::= transformation TransformationNameCS {
//
case 246: {
//#line 144 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TransformationCS result = QVTcCSTFactory.eINSTANCE.createTransformationCS();
result.setPathName((PathNameCS)getRhsSym(2));
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 247: TransformationCS_0_ ::= TransformationCS_0_ DirectionCS ;
//
case 247: {
//#line 152 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TransformationCS result = (TransformationCS)getRhsSym(1);
DirectionCS directionCS = (DirectionCS)getRhsSym(2);
result.getDirections().add(directionCS);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 248: TransformationCS ::= TransformationCS_0_ }
//
case 248: {
//#line 161 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
TransformationCS result = (TransformationCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 249: DirectionCS_0_ ::= DirectionNameCS
//
case 249: {
//#line 171 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS directionNameCS = (IdentifierCS)getRhsSym(1);
DirectionCS result = QVTcCSTFactory.eINSTANCE.createDirectionCS();
result.setIdentifier(directionNameCS);
setOffsets(result, directionNameCS);
setResult(result);
break;
}
//
// Rule 252: DirectionCS_2_ ::= DirectionCS_1_ PackageNameCS
//
case 252: {
//#line 182 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DirectionCS result = (DirectionCS)getRhsSym(1);
PathNameCS pathNameCS = (PathNameCS)getRhsSym(2);
result.getImports().add(pathNameCS);
setOffsets(result, result, pathNameCS);
setResult(result);
break;
}
//
// Rule 257: DirectionCS_5_ ::= DirectionCS_4_ DirectionNameCS
//
case 257: {
//#line 195 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DirectionCS result = (DirectionCS)getRhsSym(1);
IdentifierCS directionNameCS = (IdentifierCS)getRhsSym(2);
result.getUses().add(directionNameCS);
setOffsets(result, result, directionNameCS);
setResult(result);
break;
}
//
// Rule 260: MappingCS_1_ ::= map
//
case 260: {
//#line 211 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = QVTcCSTFactory.eINSTANCE.createMappingCS();
// IdentifierCS identifierCS = createUniqueIdentifierCS(getRhsTokenIndex(1));
// result.setIdentifier(identifierCS);
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 261: MappingCS_1_ ::= map MappingNameCS
//
case 261: {
//#line 220 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = QVTcCSTFactory.eINSTANCE.createMappingCS();
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(2);
result.setIdentifier(identifierCS);
setOffsets(result, getRhsIToken(1), identifierCS);
setResult(result);
break;
}
//
// Rule 263: MappingCS_2_ ::= MappingCS_1_ in TransformationNameCS
//
case 263: {
//#line 230 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
PathNameCS identifierCS = (PathNameCS)getRhsSym(3);
result.setIn(identifierCS);
setOffsets(result, result, identifierCS);
setResult(result);
break;
}
//
// Rule 265: MappingCS_3_ ::= MappingCS_2_ refines MappingNameCS
//
case 265: {
//#line 240 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(3);
result.getRefines().add(identifierCS);
setOffsets(result, result, identifierCS);
setResult(result);
break;
}
//
// Rule 266: MappingCS_3_ ::= MappingCS_3_ , MappingNameCS
//
case 266: {
//#line 249 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(3);
result.getRefines().add(identifierCS);
setOffsets(result, result, identifierCS);
setResult(result);
break;
}
//
// Rule 268: MappingCS_4_ ::= MappingCS_4_ DomainCS
//
case 268: {
//#line 259 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
DomainCS domainCS = (DomainCS)getRhsSym(2);
result.getDomains().add(domainCS);
setOffsets(result, result, domainCS);
setResult(result);
break;
}
//
// Rule 269: MappingCS_8 ::= MappingCS_4_ where DomainCS_0_
//
case 269: {
//#line 268 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
IdentifierCS directionNameCS = QVTCSTFactory.eINSTANCE.createIdentifierCS();
directionNameCS.setValue("");
setOffsets(directionNameCS, getRhsIToken(2));
DomainCS domainCS = (DomainCS)getRhsSym(3);
domainCS.setIdentifier(directionNameCS);
setOffsets(domainCS, directionNameCS, domainCS);
result.setMiddle(domainCS);
setOffsets(result, result, domainCS);
setResult(result);
break;
}
//
// Rule 270: MappingCS_8 ::= MappingCS_4_ where DirectionNameCS DomainCS_0_
//
case 270: {
//#line 282 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
IdentifierCS directionNameCS = (IdentifierCS)getRhsSym(3);
setOffsets(directionNameCS, getRhsIToken(2), directionNameCS);
DomainCS domainCS = (DomainCS)getRhsSym(4);
domainCS.setIdentifier(directionNameCS);
setOffsets(domainCS, directionNameCS, domainCS);
result.setMiddle(domainCS);
setOffsets(result, result, domainCS);
setResult(result);
break;
}
//
// Rule 271: MappingCS_8 ::= MappingCS_8 ComposedMappingCS
//
case 271: {
//#line 295 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
MappingCS composedMappingCS = (MappingCS)getRhsSym(2);
result.getComposedMappings().add(composedMappingCS);
setOffsets(result, result, composedMappingCS);
setResult(result);
break;
}
//
// Rule 272: MappingCS ::= MappingCS_8 }
//
case 272: {
//#line 304 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
MappingCS result = (MappingCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 273: DomainCS_0_ ::= ( DomainGuardPatternCS ) { DomainBottomPatternCS }
//
case 273: {
//#line 312 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
GuardPatternCS guardPatternCS = (GuardPatternCS)getRhsSym(2);
BottomPatternCS bottomPatternCS = (BottomPatternCS)getRhsSym(5);
DomainCS result = QVTcCSTFactory.eINSTANCE.createDomainCS();
result.setGuardPattern(guardPatternCS);
result.setBottomPattern(bottomPatternCS);
setOffsets(result, getRhsIToken(1), getRhsIToken(6));
setResult(result);
break;
}
//
// Rule 274: DomainCS_1_ ::= DirectionNameCS DomainCS_0_
//
case 274: {
//#line 323 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
DomainCS result = (DomainCS)getRhsSym(2);
result.setIdentifier(identifierCS);
setOffsets(result, identifierCS, result);
setResult(result);
break;
}
//
// Rule 276: DomainCS_2_ ::= enforce DomainCS_1_
//
case 276: {
//#line 333 "../../../../../../../../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 278: DomainCS ::= check DomainCS_2_
//
case 278: {
//#line 342 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
DomainCS result = (DomainCS)getRhsSym(2);
result.setCheck(true);
setOffsets(result, getRhsIToken(1), result);
setResult(result);
break;
}
//
// Rule 284: GuardPatternCS_1_ ::= UnrealizedVariableCS
//
case 284: {
//#line 363 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
GuardPatternCS result = QVTcCSTFactory.eINSTANCE.createGuardPatternCS();
UnrealizedVariableCS unrealizedVariableCS = (UnrealizedVariableCS)getRhsSym(1);
result.getUnrealizedVariables().add(unrealizedVariableCS);
setOffsets(result, unrealizedVariableCS);
setResult(result);
break;
}
//
// Rule 285: GuardPatternCS_1_ ::= GuardPatternCS_1_ , UnrealizedVariableCS
//
case 285: {
//#line 372 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
GuardPatternCS result = (GuardPatternCS)getRhsSym(1);
UnrealizedVariableCS unrealizedVariableCS = (UnrealizedVariableCS)getRhsSym(3);
result.getUnrealizedVariables().add(unrealizedVariableCS);
setOffsets(result, result, unrealizedVariableCS);
setResult(result);
break;
}
//
// Rule 287: GuardPatternCS_2_ ::= ConstraintCS ;
//
case 287: {
//#line 382 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
GuardPatternCS result = QVTcCSTFactory.eINSTANCE.createGuardPatternCS();
OCLExpressionCS constraintCS = (OCLExpressionCS)getRhsSym(1);
result.getConstraints().add(constraintCS);
setOffsets(result, constraintCS);
setResult(result);
break;
}
//
// Rule 288: GuardPatternCS_2_ ::= GuardPatternCS_2_ ConstraintCS ;
//
case 288: {
//#line 391 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
GuardPatternCS result = (GuardPatternCS)getRhsSym(1);
OCLExpressionCS constraintCS = (OCLExpressionCS)getRhsSym(2);
result.getConstraints().add(constraintCS);
setOffsets(result, result, constraintCS);
setResult(result);
break;
}
//
// Rule 291: GuardPatternCS ::= $Empty
//
case 291: {
//#line 402 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
GuardPatternCS result = QVTcCSTFactory.eINSTANCE.createGuardPatternCS();
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 292: BottomPatternCS_1_ ::= UnrealizedVariableCS
//
case 292: {
//#line 411 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = QVTcCSTFactory.eINSTANCE.createBottomPatternCS();
UnrealizedVariableCS unrealizedVariableCS = (UnrealizedVariableCS)getRhsSym(1);
result.getUnrealizedVariables().add(unrealizedVariableCS);
setOffsets(result, result, unrealizedVariableCS);
setResult(result);
break;
}
//
// Rule 293: BottomPatternCS_1_ ::= BottomPatternCS_1_ , UnrealizedVariableCS
//
case 293: {
//#line 420 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = (BottomPatternCS)getRhsSym(1);
UnrealizedVariableCS unrealizedVariableCS = (UnrealizedVariableCS)getRhsSym(3);
result.getUnrealizedVariables().add(unrealizedVariableCS);
setOffsets(result, result, unrealizedVariableCS);
setResult(result);
break;
}
//
// Rule 294: BottomPatternCS_1_ ::= RealizedVariableCS
//
case 294: {
//#line 429 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = QVTcCSTFactory.eINSTANCE.createBottomPatternCS();
RealizedVariableCS realizedVariableCS = (RealizedVariableCS)getRhsSym(1);
result.getRealizedVariables().add(realizedVariableCS);
setOffsets(result, realizedVariableCS);
setResult(result);
break;
}
//
// Rule 295: BottomPatternCS_1_ ::= BottomPatternCS_1_ , RealizedVariableCS
//
case 295: {
//#line 438 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = (BottomPatternCS)getRhsSym(1);
RealizedVariableCS realizedVariableCS = (RealizedVariableCS)getRhsSym(3);
result.getRealizedVariables().add(realizedVariableCS);
setOffsets(result, realizedVariableCS);
setResult(result);
break;
}
//
// Rule 297: BottomPatternCS_2_ ::= ConstraintCS ;
//
case 297: {
//#line 448 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = QVTcCSTFactory.eINSTANCE.createBottomPatternCS();
OCLExpressionCS constraintCS = (OCLExpressionCS)getRhsSym(1);
result.getConstraints().add(constraintCS);
setOffsets(result, constraintCS, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 298: BottomPatternCS_2_ ::= EnforcementOperationCS
//
case 298: {
//#line 457 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = QVTcCSTFactory.eINSTANCE.createBottomPatternCS();
EnforcementOperationCS enforcementOperationCS = (EnforcementOperationCS)getRhsSym(1);
result.getEnforcementOperations().add(enforcementOperationCS);
setOffsets(result, enforcementOperationCS);
setResult(result);
break;
}
//
// Rule 299: BottomPatternCS_2_ ::= BottomPatternCS_2_ ConstraintCS ;
//
case 299: {
//#line 466 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = (BottomPatternCS)getRhsSym(1);
OCLExpressionCS constraintCS = (OCLExpressionCS)getRhsSym(2);
result.getConstraints().add(constraintCS);
setOffsets(result, result, getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 300: BottomPatternCS_2_ ::= BottomPatternCS_2_ EnforcementOperationCS
//
case 300: {
//#line 475 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = (BottomPatternCS)getRhsSym(1);
EnforcementOperationCS enforcementOperationCS = (EnforcementOperationCS)getRhsSym(2);
result.getEnforcementOperations().add(enforcementOperationCS);
setOffsets(result, result, enforcementOperationCS);
setResult(result);
break;
}
//
// Rule 303: BottomPatternCS ::= $Empty
//
case 303: {
//#line 486 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
BottomPatternCS result = QVTcCSTFactory.eINSTANCE.createBottomPatternCS();
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 304: EnforcementOperationCS_1_ ::= primaryExpCS
//
case 304: {
//#line 494 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
OperationCallExpCS operationCallCS = (OperationCallExpCS)getRhsSym(1);
EnforcementOperationCS result = QVTcCSTFactory.eINSTANCE.createEnforcementOperationCS();
result.setOperationCall(operationCallCS);
setOffsets(result, operationCallCS, operationCallCS);
setResult(result);
break;
}
//
// Rule 305: EnforcementOperationCS ::= creation EnforcementOperationCS_1_ ;
//
case 305: {
//#line 503 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EnforcementOperationCS result = (EnforcementOperationCS)getRhsSym(2);
result.setDeletion(false);
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 306: EnforcementOperationCS ::= deletion EnforcementOperationCS_1_ ;
//
case 306: {
//#line 511 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
EnforcementOperationCS result = (EnforcementOperationCS)getRhsSym(2);
result.setDeletion(true);
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 307: UnrealizedVariableCS ::= VariableNameCS : typeCS
//
case 307: {
//#line 521 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
TypeCS type = (TypeCS)getRhsSym(3);
UnrealizedVariableCS result = QVTcCSTFactory.eINSTANCE.createUnrealizedVariableCS();
result.setIdentifier(identifierCS);
result.setType(type);
setOffsets(result, identifierCS, type);
setResult(result);
break;
}
//
// Rule 308: RealizedVariableCS ::= realize VariableNameCS : typeCS
//
case 308: {
//#line 534 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(2);
TypeCS type = (TypeCS)getRhsSym(4);
RealizedVariableCS result = QVTcCSTFactory.eINSTANCE.createRealizedVariableCS();
result.setIdentifier(identifierCS);
result.setType(type);
setOffsets(result, getRhsIToken(1), type);
setResult(result);
break;
}
//
// Rule 312: AssignmentCS_0_ ::= OclExpressionCS := OclExpressionCS
//
case 312: {
//#line 554 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
OCLExpressionCS target = (OCLExpressionCS)getRhsSym(1);
OCLExpressionCS initialiser = (OCLExpressionCS)getRhsSym(3);
AssignmentCS result = QVTcCSTFactory.eINSTANCE.createAssignmentCS();
result.setTarget(target);
result.setInitialiser(initialiser);
setOffsets(result, target, initialiser);
setResult(result);
break;
}
//
// Rule 314: AssignmentCS ::= default AssignmentCS_0_
//
case 314: {
//#line 566 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
AssignmentCS result = (AssignmentCS)getRhsSym(2);
result.setDefault(true);
setOffsets(result, getRhsIToken(1), result);
setResult(result);
break;
}
//
// Rule 323: QueryCS_preParamDeclaration ::= query QueryNameCS (
//
case 323: {
//#line 589 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
QueryCS result = QVTcCSTFactory.eINSTANCE.createQueryCS();
result.setPathName((PathNameCS)getRhsSym(2));
setOffsets(result, getRhsIToken(1), getRhsIToken(3));
setResult(result);
break;
}
//
// Rule 325: QueryCS_postParamDeclaration ::= QueryCS_preParamDeclaration paramDeclarationCS
//
case 325: {
//#line 598 "../../../../../../../../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 326: QueryCS_postType ::= QueryCS_postParamDeclaration ) : typeCS
//
case 326: {
//#line 607 "../../../../../../../../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 327: QueryCS ::= QueryCS_postType ;
//
case 327: {
//#line 616 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
QueryCS result = (QueryCS)getRhsSym(1);
setOffsets(result, result, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 328: QueryCS ::= QueryCS_postType { OclExpressionCS }
//
case 328: {
//#line 623 "../../../../../../../../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 329: paramDeclarationCS ::= ERROR_identifierCS : typeCS
//
case 329:
//
// Rule 330: paramDeclarationCS ::= identifierCS : typeCS
//
case 330: {
//#line 635 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
TypeCS typeCS = (TypeCS)getRhsSym(3);
ParamDeclarationCS result = QVTcCSTFactory.eINSTANCE.createParamDeclarationCS();
result.setIdentifier(identifierCS);
result.setType(typeCS);
setOffsets(result, identifierCS, typeCS);
setResult(result);
break;
}
//
// Rule 331: paramDeclarationCS ::= identifierCS ERROR_Colon
//
case 331: {
//#line 646 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS identifierCS = (IdentifierCS)getRhsSym(1);
ParamDeclarationCS result = QVTcCSTFactory.eINSTANCE.createParamDeclarationCS();
result.setIdentifier(identifierCS);
setOffsets(result, identifierCS, getRhsIToken(2));
setResult(result);
break;
}
//
// Rule 343: ERROR_identifierCS ::= ERROR_TOKEN
//
case 343: {
//#line 672 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
reportErrorTokenMessage(getRhsTokenIndex(1), QVTcParserErrors.MISSING_IDENTIFIER);
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
result.setValue(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 344: identifierCS ::= IDENTIFIER
//
case 344: {
//#line 681 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
result.setValue(getRhsTokenText(1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 345: identifierCS ::= STRING_LITERAL
//
case 345: {
//#line 689 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS result = QVTCSTFactory.eINSTANCE.createIdentifierCS();
String string = getRhsTokenText(1);
result.setValue(string.substring(1, string.length()-1));
setOffsets(result, getRhsIToken(1));
setResult(result);
break;
}
//
// Rule 346: identifierCS ::= QuotedSimpleNameCS
//
case 346: {
//#line 698 "../../../../../../../../org.eclipse.ocl/src/org/eclipse/ocl/lpg/btParserTemplateF.gi"
IdentifierCS result = createIdentifierCS((SimpleNameCS)getRhsSym(1));
setResult(result);
break;
}
default:
break;
}
return;
}
}