blob: 28619df8c967614b1f045a719621aec9767919ba [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="expressions" nsURI="http://www.yakindu.org/base/expressions/Expressions"
nsPrefix="expressions">
<eClassifiers xsi:type="ecore:EClass" name="BinaryExpression" abstract="true" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eOperations name="getOperator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEnumerator"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" abstract="true" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eOperations name="getOperator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEnumerator"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArgumentExpression" abstract="true"
eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eOperations name="getArgs" upperBound="-1" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"/>
<eOperations name="getExpressions" upperBound="-1" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
eType="#//Argument" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="BoolLiteral" eSuperTypes="#//Literal">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IntLiteral" eSuperTypes="#//Literal">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DoubleLiteral" eSuperTypes="#//Literal">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FloatLiteral" eSuperTypes="#//Literal">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="HexLiteral" eSuperTypes="#//IntLiteral"/>
<eClassifiers xsi:type="ecore:EClass" name="BinaryLiteral" eSuperTypes="#//HexLiteral"/>
<eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Literal">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NullLiteral" eSuperTypes="#//Literal"/>
<eClassifiers xsi:type="ecore:EEnum" name="AssignmentOperator">
<eLiterals name="assign" literal="="/>
<eLiterals name="multAssign" value="1" literal="*="/>
<eLiterals name="divAssign" value="2" literal="/="/>
<eLiterals name="modAssign" value="3" literal="%="/>
<eLiterals name="addAssign" value="4" literal="+="/>
<eLiterals name="subAssign" value="5" literal="-="/>
<eLiterals name="leftShiftAssign" value="6" literal="&lt;&lt;="/>
<eLiterals name="rightShiftAssign" value="7" literal=">>="/>
<eLiterals name="andAssign" value="8" literal="&amp;="/>
<eLiterals name="xorAssign" value="9" literal="^="/>
<eLiterals name="orAssign" value="10" literal="|="/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ShiftOperator">
<eLiterals name="left" literal="&lt;&lt;"/>
<eLiterals name="right" value="1" literal=">>"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="AdditiveOperator">
<eLiterals name="plus" literal="+"/>
<eLiterals name="minus" value="1" literal="-"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MultiplicativeOperator">
<eLiterals name="mul" literal="*"/>
<eLiterals name="div" value="1" literal="/"/>
<eLiterals name="mod" value="2" literal="%"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="UnaryOperator">
<eLiterals name="positive" literal="+"/>
<eLiterals name="negative" value="1" literal="-"/>
<eLiterals name="complement" value="2" literal="~"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
<eLiterals name="smaller" literal="&lt;"/>
<eLiterals name="smallerEqual" value="1" literal="&lt;="/>
<eLiterals name="greater" value="2" literal=">"/>
<eLiterals name="greaterEqual" value="3" literal=">="/>
<eLiterals name="equals" value="4" literal="=="/>
<eLiterals name="notEquals" value="5" literal="!="/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="LogicalOperator">
<eLiterals name="and" literal="&amp;&amp;"/>
<eLiterals name="or" value="1" literal="||"/>
<eLiterals name="not" value="2" literal="!"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BitwiseOperator">
<eLiterals name="xor" literal="^"/>
<eLiterals name="and" value="1" literal="&amp;"/>
<eLiterals name="or" value="2" literal="|"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PostFixOperator">
<eLiterals name="increment" literal="++"/>
<eLiterals name="decrement" value="1" literal="--"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AssignmentExpression" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eStructuralFeatures xsi:type="ecore:EReference" name="varRef" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//AssignmentOperator"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConditionalExpression" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="trueCase" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="falseCase" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LogicalOrExpression" eSuperTypes="#//BinaryExpression"/>
<eClassifiers xsi:type="ecore:EClass" name="LogicalAndExpression" eSuperTypes="#//BinaryExpression"/>
<eClassifiers xsi:type="ecore:EClass" name="LogicalNotExpression" eSuperTypes="#//UnaryExpression"/>
<eClassifiers xsi:type="ecore:EClass" name="BitwiseXorExpression" eSuperTypes="#//BinaryExpression"/>
<eClassifiers xsi:type="ecore:EClass" name="BitwiseOrExpression" eSuperTypes="#//BinaryExpression"/>
<eClassifiers xsi:type="ecore:EClass" name="BitwiseAndExpression" eSuperTypes="#//BinaryExpression"/>
<eClassifiers xsi:type="ecore:EClass" name="LogicalRelationExpression" eSuperTypes="#//BinaryExpression">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//RelationalOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ShiftExpression" eSuperTypes="#//BinaryExpression">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//ShiftOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NumericalAddSubtractExpression" eSuperTypes="#//BinaryExpression">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//AdditiveOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NumericalMultiplyDivideExpression" eSuperTypes="#//BinaryExpression">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//MultiplicativeOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NumericalUnaryExpression" eSuperTypes="#//UnaryExpression">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//UnaryOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PostFixUnaryExpression" eSuperTypes="#//UnaryExpression">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//PostFixOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrimitiveValueExpression" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Literal"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FeatureCall" eSuperTypes="#//ArgumentExpression">
<eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="feature" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Declaration"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operationCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="arraySelector" upperBound="-1"
eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayAccess" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MetaCall" eSuperTypes="#//FeatureCall"/>
<eClassifiers xsi:type="ecore:EClass" name="ElementReferenceExpression" eSuperTypes="#//ArgumentExpression">
<eStructuralFeatures xsi:type="ecore:EReference" name="reference" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operationCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="arraySelector" upperBound="-1"
eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayAccess" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParenthesizedExpression" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypeCastExpression" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Expression">
<eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Type"
changeable="false" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="typeSpecifier" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//TypeSpecifier"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Argument">
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Parameter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Expression"
containment="true"/>
</eClassifiers>
</ecore:EPackage>