Expressions.ecore 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ecore:EPackage
  3. xmi:version="2.0"
  4. xmlns:xmi="http://www.omg.org/XMI"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
  7. name="expressions"
  8. nsURI="http://www.yakindu.org/base/expressions/Expressions"
  9. nsPrefix="expressions">
  10. <eClassifiers
  11. xsi:type="ecore:EClass"
  12. name="Expression"
  13. abstract="true"/>
  14. <eClassifiers
  15. xsi:type="ecore:EClass"
  16. name="Literal"
  17. abstract="true"/>
  18. <eClassifiers
  19. xsi:type="ecore:EClass"
  20. name="BoolLiteral"
  21. eSuperTypes="#//Literal">
  22. <eStructuralFeatures
  23. xsi:type="ecore:EAttribute"
  24. name="value"
  25. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  26. </eClassifiers>
  27. <eClassifiers
  28. xsi:type="ecore:EClass"
  29. name="IntLiteral"
  30. eSuperTypes="#//Literal">
  31. <eStructuralFeatures
  32. xsi:type="ecore:EAttribute"
  33. name="value"
  34. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
  35. </eClassifiers>
  36. <eClassifiers
  37. xsi:type="ecore:EClass"
  38. name="RealLiteral"
  39. eSuperTypes="#//Literal">
  40. <eStructuralFeatures
  41. xsi:type="ecore:EAttribute"
  42. name="value"
  43. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
  44. </eClassifiers>
  45. <eClassifiers
  46. xsi:type="ecore:EClass"
  47. name="HexLiteral"
  48. eSuperTypes="#//Literal">
  49. <eStructuralFeatures
  50. xsi:type="ecore:EAttribute"
  51. name="value"
  52. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
  53. </eClassifiers>
  54. <eClassifiers
  55. xsi:type="ecore:EClass"
  56. name="StringLiteral"
  57. eSuperTypes="#//Literal">
  58. <eStructuralFeatures
  59. xsi:type="ecore:EAttribute"
  60. name="value"
  61. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  62. </eClassifiers>
  63. <eClassifiers
  64. xsi:type="ecore:EClass"
  65. name="NullLiteral"
  66. eSuperTypes="#//Literal"/>
  67. <eClassifiers
  68. xsi:type="ecore:EEnum"
  69. name="AssignmentOperator">
  70. <eLiterals
  71. name="assign"
  72. literal="="/>
  73. <eLiterals
  74. name="multAssign"
  75. value="1"
  76. literal="*="/>
  77. <eLiterals
  78. name="divAssign"
  79. value="2"
  80. literal="/="/>
  81. <eLiterals
  82. name="modAssign"
  83. value="3"
  84. literal="%="/>
  85. <eLiterals
  86. name="addAssign"
  87. value="4"
  88. literal="+="/>
  89. <eLiterals
  90. name="subAssign"
  91. value="5"
  92. literal="-="/>
  93. <eLiterals
  94. name="leftShiftAssign"
  95. value="6"
  96. literal="&lt;&lt;="/>
  97. <eLiterals
  98. name="rightShiftAssign"
  99. value="7"
  100. literal=">>="/>
  101. <eLiterals
  102. name="andAssign"
  103. value="8"
  104. literal="&amp;="/>
  105. <eLiterals
  106. name="xorAssign"
  107. value="9"
  108. literal="^="/>
  109. <eLiterals
  110. name="orAssign"
  111. value="10"
  112. literal="|="/>
  113. </eClassifiers>
  114. <eClassifiers
  115. xsi:type="ecore:EEnum"
  116. name="ShiftOperator">
  117. <eLiterals
  118. name="left"
  119. literal="&lt;&lt;"/>
  120. <eLiterals
  121. name="right"
  122. value="1"
  123. literal=">>"/>
  124. </eClassifiers>
  125. <eClassifiers
  126. xsi:type="ecore:EEnum"
  127. name="AdditiveOperator">
  128. <eLiterals
  129. name="plus"
  130. literal="+"/>
  131. <eLiterals
  132. name="minus"
  133. value="1"
  134. literal="-"/>
  135. </eClassifiers>
  136. <eClassifiers
  137. xsi:type="ecore:EEnum"
  138. name="MultiplicativeOperator">
  139. <eLiterals
  140. name="mul"
  141. literal="*"/>
  142. <eLiterals
  143. name="div"
  144. value="1"
  145. literal="/"/>
  146. <eLiterals
  147. name="mod"
  148. value="2"
  149. literal="%"/>
  150. </eClassifiers>
  151. <eClassifiers
  152. xsi:type="ecore:EEnum"
  153. name="UnaryOperator">
  154. <eLiterals
  155. name="positive"
  156. literal="+"/>
  157. <eLiterals
  158. name="negative"
  159. value="1"
  160. literal="-"/>
  161. <eLiterals
  162. name="complement"
  163. value="2"
  164. literal="~"/>
  165. </eClassifiers>
  166. <eClassifiers
  167. xsi:type="ecore:EEnum"
  168. name="RelationalOperator">
  169. <eLiterals
  170. name="smaller"
  171. literal="&lt;"/>
  172. <eLiterals
  173. name="smallerEqual"
  174. value="1"
  175. literal="&lt;="/>
  176. <eLiterals
  177. name="greater"
  178. value="2"
  179. literal=">"/>
  180. <eLiterals
  181. name="greaterEqual"
  182. value="3"
  183. literal=">="/>
  184. <eLiterals
  185. name="equals"
  186. value="4"
  187. literal="=="/>
  188. <eLiterals
  189. name="notEquals"
  190. value="5"
  191. literal="!="/>
  192. </eClassifiers>
  193. <eClassifiers
  194. xsi:type="ecore:EClass"
  195. name="AssignmentExpression"
  196. eSuperTypes="#//Expression">
  197. <eStructuralFeatures
  198. xsi:type="ecore:EReference"
  199. name="varRef"
  200. eType="#//Expression"
  201. containment="true"/>
  202. <eStructuralFeatures
  203. xsi:type="ecore:EAttribute"
  204. name="operator"
  205. eType="#//AssignmentOperator"/>
  206. <eStructuralFeatures
  207. xsi:type="ecore:EReference"
  208. name="expression"
  209. eType="#//Expression"
  210. containment="true"/>
  211. </eClassifiers>
  212. <eClassifiers
  213. xsi:type="ecore:EClass"
  214. name="ConditionalExpression"
  215. eSuperTypes="#//Expression">
  216. <eStructuralFeatures
  217. xsi:type="ecore:EReference"
  218. name="condition"
  219. eType="#//Expression"
  220. containment="true"/>
  221. <eStructuralFeatures
  222. xsi:type="ecore:EReference"
  223. name="trueCase"
  224. eType="#//Expression"
  225. containment="true"/>
  226. <eStructuralFeatures
  227. xsi:type="ecore:EReference"
  228. name="falseCase"
  229. eType="#//Expression"
  230. containment="true"/>
  231. </eClassifiers>
  232. <eClassifiers
  233. xsi:type="ecore:EClass"
  234. name="LogicalOrExpression"
  235. eSuperTypes="#//Expression">
  236. <eStructuralFeatures
  237. xsi:type="ecore:EReference"
  238. name="leftOperand"
  239. eType="#//Expression"
  240. containment="true"/>
  241. <eStructuralFeatures
  242. xsi:type="ecore:EReference"
  243. name="rightOperand"
  244. eType="#//Expression"
  245. containment="true"/>
  246. </eClassifiers>
  247. <eClassifiers
  248. xsi:type="ecore:EClass"
  249. name="LogicalAndExpression"
  250. eSuperTypes="#//Expression">
  251. <eStructuralFeatures
  252. xsi:type="ecore:EReference"
  253. name="leftOperand"
  254. eType="#//Expression"
  255. containment="true"/>
  256. <eStructuralFeatures
  257. xsi:type="ecore:EReference"
  258. name="rightOperand"
  259. eType="#//Expression"
  260. containment="true"/>
  261. </eClassifiers>
  262. <eClassifiers
  263. xsi:type="ecore:EClass"
  264. name="LogicalNotExpression"
  265. eSuperTypes="#//Expression">
  266. <eStructuralFeatures
  267. xsi:type="ecore:EReference"
  268. name="operand"
  269. eType="#//Expression"
  270. containment="true"/>
  271. </eClassifiers>
  272. <eClassifiers
  273. xsi:type="ecore:EClass"
  274. name="BitwiseXorExpression"
  275. eSuperTypes="#//Expression">
  276. <eStructuralFeatures
  277. xsi:type="ecore:EReference"
  278. name="leftOperand"
  279. eType="#//Expression"
  280. containment="true"/>
  281. <eStructuralFeatures
  282. xsi:type="ecore:EReference"
  283. name="rightOperand"
  284. eType="#//Expression"
  285. containment="true"/>
  286. </eClassifiers>
  287. <eClassifiers
  288. xsi:type="ecore:EClass"
  289. name="BitwiseOrExpression"
  290. eSuperTypes="#//Expression">
  291. <eStructuralFeatures
  292. xsi:type="ecore:EReference"
  293. name="leftOperand"
  294. eType="#//Expression"
  295. containment="true"/>
  296. <eStructuralFeatures
  297. xsi:type="ecore:EReference"
  298. name="rightOperand"
  299. eType="#//Expression"
  300. containment="true"/>
  301. </eClassifiers>
  302. <eClassifiers
  303. xsi:type="ecore:EClass"
  304. name="BitwiseAndExpression"
  305. eSuperTypes="#//Expression">
  306. <eStructuralFeatures
  307. xsi:type="ecore:EReference"
  308. name="leftOperand"
  309. eType="#//Expression"
  310. containment="true"/>
  311. <eStructuralFeatures
  312. xsi:type="ecore:EReference"
  313. name="rightOperand"
  314. eType="#//Expression"
  315. containment="true"/>
  316. </eClassifiers>
  317. <eClassifiers
  318. xsi:type="ecore:EClass"
  319. name="LogicalRelationExpression"
  320. eSuperTypes="#//Expression">
  321. <eStructuralFeatures
  322. xsi:type="ecore:EReference"
  323. name="leftOperand"
  324. eType="#//Expression"
  325. containment="true"/>
  326. <eStructuralFeatures
  327. xsi:type="ecore:EAttribute"
  328. name="operator"
  329. eType="#//RelationalOperator"/>
  330. <eStructuralFeatures
  331. xsi:type="ecore:EReference"
  332. name="rightOperand"
  333. eType="#//Expression"
  334. containment="true"/>
  335. </eClassifiers>
  336. <eClassifiers
  337. xsi:type="ecore:EClass"
  338. name="ShiftExpression"
  339. eSuperTypes="#//Expression">
  340. <eStructuralFeatures
  341. xsi:type="ecore:EReference"
  342. name="leftOperand"
  343. eType="#//Expression"
  344. containment="true"/>
  345. <eStructuralFeatures
  346. xsi:type="ecore:EAttribute"
  347. name="operator"
  348. eType="#//ShiftOperator"/>
  349. <eStructuralFeatures
  350. xsi:type="ecore:EReference"
  351. name="rightOperand"
  352. eType="#//Expression"
  353. containment="true"/>
  354. </eClassifiers>
  355. <eClassifiers
  356. xsi:type="ecore:EClass"
  357. name="NumericalAddSubtractExpression"
  358. eSuperTypes="#//Expression">
  359. <eStructuralFeatures
  360. xsi:type="ecore:EReference"
  361. name="leftOperand"
  362. eType="#//Expression"
  363. containment="true"/>
  364. <eStructuralFeatures
  365. xsi:type="ecore:EAttribute"
  366. name="operator"
  367. eType="#//AdditiveOperator"/>
  368. <eStructuralFeatures
  369. xsi:type="ecore:EReference"
  370. name="rightOperand"
  371. eType="#//Expression"
  372. containment="true"/>
  373. </eClassifiers>
  374. <eClassifiers
  375. xsi:type="ecore:EClass"
  376. name="NumericalMultiplyDivideExpression"
  377. eSuperTypes="#//Expression">
  378. <eStructuralFeatures
  379. xsi:type="ecore:EReference"
  380. name="leftOperand"
  381. eType="#//Expression"
  382. containment="true"/>
  383. <eStructuralFeatures
  384. xsi:type="ecore:EAttribute"
  385. name="operator"
  386. eType="#//MultiplicativeOperator"/>
  387. <eStructuralFeatures
  388. xsi:type="ecore:EReference"
  389. name="rightOperand"
  390. eType="#//Expression"
  391. containment="true"/>
  392. </eClassifiers>
  393. <eClassifiers
  394. xsi:type="ecore:EClass"
  395. name="NumericalUnaryExpression"
  396. eSuperTypes="#//Expression">
  397. <eStructuralFeatures
  398. xsi:type="ecore:EAttribute"
  399. name="operator"
  400. eType="#//UnaryOperator"/>
  401. <eStructuralFeatures
  402. xsi:type="ecore:EReference"
  403. name="operand"
  404. eType="#//Expression"
  405. containment="true"/>
  406. </eClassifiers>
  407. <eClassifiers
  408. xsi:type="ecore:EClass"
  409. name="PrimitiveValueExpression"
  410. eSuperTypes="#//Expression">
  411. <eStructuralFeatures
  412. xsi:type="ecore:EReference"
  413. name="value"
  414. eType="#//Literal"
  415. containment="true"/>
  416. </eClassifiers>
  417. <eClassifiers
  418. xsi:type="ecore:EClass"
  419. name="FeatureCall"
  420. eSuperTypes="#//Expression">
  421. <eStructuralFeatures
  422. xsi:type="ecore:EReference"
  423. name="owner"
  424. eType="#//Expression"
  425. containment="true"/>
  426. <eStructuralFeatures
  427. xsi:type="ecore:EReference"
  428. name="feature"
  429. eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
  430. <eStructuralFeatures
  431. xsi:type="ecore:EAttribute"
  432. name="operationCall"
  433. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  434. <eStructuralFeatures
  435. xsi:type="ecore:EReference"
  436. name="args"
  437. upperBound="-1"
  438. eType="#//Expression"
  439. containment="true"/>
  440. <eStructuralFeatures
  441. xsi:type="ecore:EAttribute"
  442. name="arrayAccess"
  443. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  444. <eStructuralFeatures
  445. xsi:type="ecore:EReference"
  446. name="arraySelector"
  447. upperBound="-1"
  448. eType="#//Expression"
  449. containment="true"/>
  450. </eClassifiers>
  451. <eClassifiers
  452. xsi:type="ecore:EClass"
  453. name="ElementReferenceExpression"
  454. eSuperTypes="#//Expression">
  455. <eStructuralFeatures
  456. xsi:type="ecore:EReference"
  457. name="reference"
  458. eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
  459. <eStructuralFeatures
  460. xsi:type="ecore:EAttribute"
  461. name="operationCall"
  462. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  463. <eStructuralFeatures
  464. xsi:type="ecore:EReference"
  465. name="args"
  466. upperBound="-1"
  467. eType="#//Expression"
  468. containment="true"/>
  469. <eStructuralFeatures
  470. xsi:type="ecore:EReference"
  471. name="arraySelector"
  472. upperBound="-1"
  473. eType="#//Expression"
  474. containment="true"/>
  475. <eStructuralFeatures
  476. xsi:type="ecore:EAttribute"
  477. name="arrayAccess"
  478. eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  479. </eClassifiers>
  480. <eClassifiers
  481. xsi:type="ecore:EClass"
  482. name="ParenthesizedExpression"
  483. eSuperTypes="#//Expression">
  484. <eStructuralFeatures
  485. xsi:type="ecore:EReference"
  486. name="expression"
  487. eType="#//Expression"
  488. containment="true"/>
  489. </eClassifiers>
  490. <eClassifiers
  491. xsi:type="ecore:EClass"
  492. name="ArrayInitializationExpression"
  493. eSuperTypes="#//Expression">
  494. <eStructuralFeatures
  495. xsi:type="ecore:EReference"
  496. name="values"
  497. upperBound="-1"
  498. eType="#//Literal"
  499. containment="true"/>
  500. <eStructuralFeatures
  501. xsi:type="ecore:EReference"
  502. name="dim"
  503. upperBound="-1"
  504. eType="#//Expression"
  505. containment="true"/>
  506. </eClassifiers>
  507. </ecore:EPackage>