/
fl.ecore
51 lines (51 loc) · 3.15 KB
/
fl.ecore
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?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="fl"
nsURI="http://hub.metrik.lang.fl/1.0" nsPrefix="hub.metrik.lang.fl">
<eClassifiers xsi:type="ecore:EClass" name="Program">
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
upperBound="-1" eType="#//Function" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Function">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
eType="#//Argument" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="definition" lowerBound="1"
eType="#//Exp" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Argument">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Exp" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="LiteralExp" eSuperTypes="#//Exp">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArgumentExp" eSuperTypes="#//Exp">
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" lowerBound="1"
eType="#//Argument"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IfThenElseExp" eSuperTypes="#//Exp">
<eStructuralFeatures xsi:type="ecore:EReference" name="if" lowerBound="1" eType="#//Exp"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="then" lowerBound="1" eType="#//Exp"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="else" lowerBound="1" eType="#//Exp"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ApplyExp" eSuperTypes="#//Exp">
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
eType="#//Function"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
eType="#//Exp" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BinaryExp" abstract="true" eSuperTypes="#//Exp">
<eStructuralFeatures xsi:type="ecore:EReference" name="left" lowerBound="1" eType="#//Exp"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="right" lowerBound="1" eType="#//Exp"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PlusExp" eSuperTypes="#//BinaryExp"/>
<eClassifiers xsi:type="ecore:EClass" name="MinusExp" eSuperTypes="#//BinaryExp"/>
<eClassifiers xsi:type="ecore:EClass" name="EqualExp" eSuperTypes="#//BinaryExp"/>
</ecore:EPackage>