Expressions.ecore 11 KB

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