Expressions.ecore 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="expressions" nsURI="http://www.yakindu.org/base/expressions/Expressions"
  4. nsPrefix="expressions">
  5. <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true"/>
  6. <eClassifiers xsi:type="ecore:EClass" name="BinaryExpression" abstract="true" eSuperTypes="#//Expression">
  7. <eOperations name="getOperator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEnumerator"/>
  8. <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Expression"
  9. containment="true"/>
  10. <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Expression"
  11. containment="true"/>
  12. </eClassifiers>
  13. <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" abstract="true" eSuperTypes="#//Expression">
  14. <eOperations name="getOperator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEnumerator"/>
  15. <eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="#//Expression"
  16. containment="true"/>
  17. </eClassifiers>
  18. <eClassifiers xsi:type="ecore:EClass" name="ArgumentExpression" abstract="true"
  19. eSuperTypes="#//Expression">
  20. <eOperations name="getArgs" upperBound="-1" eType="#//Expression"/>
  21. <eOperations name="getExpressions" upperBound="-1" eType="#//Expression"/>
  22. <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
  23. eType="#//Argument" containment="true"/>
  24. </eClassifiers>
  25. <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
  26. <eClassifiers xsi:type="ecore:EClass" name="BoolLiteral" eSuperTypes="#//Literal">
  27. <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  28. </eClassifiers>
  29. <eClassifiers xsi:type="ecore:EClass" name="IntLiteral" eSuperTypes="#//Literal">
  30. <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
  31. </eClassifiers>
  32. <eClassifiers xsi:type="ecore:EClass" name="DoubleLiteral" eSuperTypes="#//Literal">
  33. <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
  34. </eClassifiers>
  35. <eClassifiers xsi:type="ecore:EClass" name="FloatLiteral" eSuperTypes="#//Literal">
  36. <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
  37. </eClassifiers>
  38. <eClassifiers xsi:type="ecore:EClass" name="HexLiteral" eSuperTypes="#//Literal">
  39. <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
  40. </eClassifiers>
  41. <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Literal">
  42. <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  43. </eClassifiers>
  44. <eClassifiers xsi:type="ecore:EClass" name="NullLiteral" eSuperTypes="#//Literal"/>
  45. <eClassifiers xsi:type="ecore:EEnum" name="AssignmentOperator">
  46. <eLiterals name="assign" literal="="/>
  47. <eLiterals name="multAssign" value="1" literal="*="/>
  48. <eLiterals name="divAssign" value="2" literal="/="/>
  49. <eLiterals name="modAssign" value="3" literal="%="/>
  50. <eLiterals name="addAssign" value="4" literal="+="/>
  51. <eLiterals name="subAssign" value="5" literal="-="/>
  52. <eLiterals name="leftShiftAssign" value="6" literal="&lt;&lt;="/>
  53. <eLiterals name="rightShiftAssign" value="7" literal=">>="/>
  54. <eLiterals name="andAssign" value="8" literal="&amp;="/>
  55. <eLiterals name="xorAssign" value="9" literal="^="/>
  56. <eLiterals name="orAssign" value="10" literal="|="/>
  57. </eClassifiers>
  58. <eClassifiers xsi:type="ecore:EEnum" name="ShiftOperator">
  59. <eLiterals name="left" literal="&lt;&lt;"/>
  60. <eLiterals name="right" value="1" literal=">>"/>
  61. </eClassifiers>
  62. <eClassifiers xsi:type="ecore:EEnum" name="AdditiveOperator">
  63. <eLiterals name="plus" literal="+"/>
  64. <eLiterals name="minus" value="1" literal="-"/>
  65. </eClassifiers>
  66. <eClassifiers xsi:type="ecore:EEnum" name="MultiplicativeOperator">
  67. <eLiterals name="mul" literal="*"/>
  68. <eLiterals name="div" value="1" literal="/"/>
  69. <eLiterals name="mod" value="2" literal="%"/>
  70. </eClassifiers>
  71. <eClassifiers xsi:type="ecore:EEnum" name="UnaryOperator">
  72. <eLiterals name="positive" literal="+"/>
  73. <eLiterals name="negative" value="1" literal="-"/>
  74. <eLiterals name="complement" value="2" literal="~"/>
  75. </eClassifiers>
  76. <eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
  77. <eLiterals name="smaller" literal="&lt;"/>
  78. <eLiterals name="smallerEqual" value="1" literal="&lt;="/>
  79. <eLiterals name="greater" value="2" literal=">"/>
  80. <eLiterals name="greaterEqual" value="3" literal=">="/>
  81. <eLiterals name="equals" value="4" literal="=="/>
  82. <eLiterals name="notEquals" value="5" literal="!="/>
  83. </eClassifiers>
  84. <eClassifiers xsi:type="ecore:EEnum" name="LogicalOperator">
  85. <eLiterals name="and" literal="&amp;&amp;"/>
  86. <eLiterals name="or" value="1" literal="||"/>
  87. <eLiterals name="not" value="2" literal="!"/>
  88. </eClassifiers>
  89. <eClassifiers xsi:type="ecore:EEnum" name="BitwiseOperator">
  90. <eLiterals name="xor" literal="^"/>
  91. <eLiterals name="and" value="1" literal="&amp;"/>
  92. <eLiterals name="or" value="2" literal="|"/>
  93. </eClassifiers>
  94. <eClassifiers xsi:type="ecore:EClass" name="AssignmentExpression" eSuperTypes="#//Expression">
  95. <eStructuralFeatures xsi:type="ecore:EReference" name="varRef" eType="#//Expression"
  96. containment="true"/>
  97. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//AssignmentOperator"/>
  98. <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Expression"
  99. containment="true"/>
  100. </eClassifiers>
  101. <eClassifiers xsi:type="ecore:EClass" name="ConditionalExpression" eSuperTypes="#//Expression">
  102. <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
  103. containment="true"/>
  104. <eStructuralFeatures xsi:type="ecore:EReference" name="trueCase" eType="#//Expression"
  105. containment="true"/>
  106. <eStructuralFeatures xsi:type="ecore:EReference" name="falseCase" eType="#//Expression"
  107. containment="true"/>
  108. </eClassifiers>
  109. <eClassifiers xsi:type="ecore:EClass" name="LogicalOrExpression" eSuperTypes="#//BinaryExpression"/>
  110. <eClassifiers xsi:type="ecore:EClass" name="LogicalAndExpression" eSuperTypes="#//BinaryExpression"/>
  111. <eClassifiers xsi:type="ecore:EClass" name="LogicalNotExpression" eSuperTypes="#//UnaryExpression"/>
  112. <eClassifiers xsi:type="ecore:EClass" name="BitwiseXorExpression" eSuperTypes="#//BinaryExpression"/>
  113. <eClassifiers xsi:type="ecore:EClass" name="BitwiseOrExpression" eSuperTypes="#//BinaryExpression"/>
  114. <eClassifiers xsi:type="ecore:EClass" name="BitwiseAndExpression" eSuperTypes="#//BinaryExpression"/>
  115. <eClassifiers xsi:type="ecore:EClass" name="LogicalRelationExpression" eSuperTypes="#//BinaryExpression">
  116. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//RelationalOperator"/>
  117. </eClassifiers>
  118. <eClassifiers xsi:type="ecore:EClass" name="ShiftExpression" eSuperTypes="#//BinaryExpression">
  119. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//ShiftOperator"/>
  120. </eClassifiers>
  121. <eClassifiers xsi:type="ecore:EClass" name="NumericalAddSubtractExpression" eSuperTypes="#//BinaryExpression">
  122. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//AdditiveOperator"/>
  123. </eClassifiers>
  124. <eClassifiers xsi:type="ecore:EClass" name="NumericalMultiplyDivideExpression" eSuperTypes="#//BinaryExpression">
  125. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//MultiplicativeOperator"/>
  126. </eClassifiers>
  127. <eClassifiers xsi:type="ecore:EClass" name="NumericalUnaryExpression" eSuperTypes="#//UnaryExpression">
  128. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="#//UnaryOperator"/>
  129. </eClassifiers>
  130. <eClassifiers xsi:type="ecore:EClass" name="PrimitiveValueExpression" eSuperTypes="#//Expression">
  131. <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Literal"
  132. containment="true"/>
  133. </eClassifiers>
  134. <eClassifiers xsi:type="ecore:EClass" name="FeatureCall" eSuperTypes="#//ArgumentExpression">
  135. <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Expression"
  136. containment="true"/>
  137. <eStructuralFeatures xsi:type="ecore:EReference" name="feature" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
  138. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operationCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  139. <eStructuralFeatures xsi:type="ecore:EReference" name="arraySelector" upperBound="-1"
  140. eType="#//Expression" containment="true"/>
  141. <eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayAccess" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  142. </eClassifiers>
  143. <eClassifiers xsi:type="ecore:EClass" name="ElementReferenceExpression" eSuperTypes="#//ArgumentExpression">
  144. <eStructuralFeatures xsi:type="ecore:EReference" name="reference" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
  145. <eStructuralFeatures xsi:type="ecore:EAttribute" name="operationCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  146. <eStructuralFeatures xsi:type="ecore:EReference" name="arraySelector" upperBound="-1"
  147. eType="#//Expression" containment="true"/>
  148. <eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayAccess" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  149. </eClassifiers>
  150. <eClassifiers xsi:type="ecore:EClass" name="ParenthesizedExpression" eSuperTypes="#//Expression">
  151. <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Expression"
  152. containment="true"/>
  153. </eClassifiers>
  154. <eClassifiers xsi:type="ecore:EClass" name="TypeCastExpression" eSuperTypes="#//Expression">
  155. <eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="#//Expression"
  156. containment="true"/>
  157. <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Type"/>
  158. </eClassifiers>
  159. <eClassifiers xsi:type="ecore:EClass" name="Argument">
  160. <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="ecore:EClass ../../org.yakindu.base.types/model/types.ecore#//Parameter"/>
  161. <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expression"
  162. containment="true"/>
  163. </eClassifiers>
  164. </ecore:EPackage>