2020-T-ASE/metamodels/pddl.ecore
2020-05-23 14:50:45 +02:00

396 lines
25 KiB
XML

<?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="pddl" nsURI="platform:/plugin/PDDL/model/pddl.ecore" nsPrefix="pddl">
<eClassifiers xsi:type="ecore:EClass" name="Domain" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="requirements" upperBound="-1"
eType="#//Requirement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="types" upperBound="-1"
eType="#//Type" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="constants" upperBound="-1"
eType="#//Constant" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1"
eType="#//Predicate" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="functions" upperBound="-1"
eType="#//Function" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
eType="#//Structure" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Requirement">
<eLiterals name="STRIPS"/>
<eLiterals name="TYPING" value="1"/>
<eLiterals name="ADL" value="2"/>
<eLiterals name="NUMERIC_FLUENTS" value="3"/>
<eLiterals name="ACTION_COSTS" value="4"/>
<eLiterals name="DURATIVE_ACTIONS" value="5"/>
<eLiterals name="NEGATIVE_PRECONDITIONS" value="6"/>
<eLiterals name="DISJUNCTIVE_PRECONDITIONS" value="7"/>
<eLiterals name="EQUALITY" value="8"/>
<eLiterals name="FLUENTS" value="9"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Type" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Constant" eSuperTypes="#//VariableOrConstantOrObjectDeclaration">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamedElement">
<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="Predicate" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//VariableOrConstantOrObjectDeclaration">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Structure" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="Action" eSuperTypes="#//Structure #//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="precondition" eType="#//PreGD"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//Effect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DurativeAction" eSuperTypes="#//Structure #//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="duration" lowerBound="1"
eType="#//DurationConstraint" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//DaGD"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//DaEffect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PreGD" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="PrefGD" abstract="true" eSuperTypes="#//PreGD"/>
<eClassifiers xsi:type="ecore:EClass" name="GD" abstract="true" eSuperTypes="#//PrefGD"/>
<eClassifiers xsi:type="ecore:EClass" name="PreferenceGD" eSuperTypes="#//NamedElement #//PrefGD">
<eStructuralFeatures xsi:type="ecore:EReference" name="goalDescription" lowerBound="1"
eType="#//GD" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AndPreGD" eSuperTypes="#//PreGD">
<eStructuralFeatures xsi:type="ecore:EReference" name="ands" upperBound="-1" eType="#//PreGD"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ForAllPreGD" eSuperTypes="#//PreGD">
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="goalDecription" lowerBound="1"
eType="#//PreGD" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AtomicFormulaGD" abstract="true" eSuperTypes="#//GD"/>
<eClassifiers xsi:type="ecore:EClass" name="PredicateGD" eSuperTypes="#//AtomicFormulaGD">
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//VariableOrConstantOrObjectDeclaration"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="predicate" lowerBound="1"
eType="#//Predicate"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EqualityGD" eSuperTypes="#//AtomicFormulaGD">
<eStructuralFeatures xsi:type="ecore:EReference" name="a" lowerBound="1" eType="#//Variable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="b" lowerBound="1" eType="#//Variable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AndGD" eSuperTypes="#//GD">
<eStructuralFeatures xsi:type="ecore:EReference" name="ands" upperBound="-1" eType="#//GD"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OrGD" eSuperTypes="#//GD">
<eStructuralFeatures xsi:type="ecore:EReference" name="ors" upperBound="-1" eType="#//GD"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NotGD" eSuperTypes="#//GD">
<eStructuralFeatures xsi:type="ecore:EReference" name="not" lowerBound="1" eType="#//GD"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ImplyGD" eSuperTypes="#//GD">
<eStructuralFeatures xsi:type="ecore:EReference" name="antecedent" lowerBound="1"
eType="#//GD" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="consequent" lowerBound="1"
eType="#//GD" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExistsGD" eSuperTypes="#//GD">
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="criterion" lowerBound="1"
eType="#//GD" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ForAllGD" eSuperTypes="#//GD">
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="goalDescription" lowerBound="1"
eType="#//GD" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Effect" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="PEffect" abstract="true" eSuperTypes="#//CondEffect #//CEffect"/>
<eClassifiers xsi:type="ecore:EClass" name="ForAllEffect" eSuperTypes="#//CEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="effect" lowerBound="1"
eType="#//Effect" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WhenEffect" eSuperTypes="#//CEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="when" lowerBound="1" eType="#//GD"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="then" lowerBound="1" eType="#//CondEffect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PredicateEffect" eSuperTypes="#//AtomicFormulaEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="predicate" lowerBound="1"
eType="#//Predicate"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//VariableOrConstantOrObjectDeclaration"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CondEffect" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="AndCondEffect" eSuperTypes="#//CondEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="ands" upperBound="-1" eType="#//PEffect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CEffect" eSuperTypes="#//Effect"/>
<eClassifiers xsi:type="ecore:EClass" name="AndEffect" eSuperTypes="#//Effect">
<eStructuralFeatures xsi:type="ecore:EReference" name="ands" upperBound="-1" eType="#//CEffect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DaGD" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="PrefTimedGD" abstract="true" eSuperTypes="#//DaGD"/>
<eClassifiers xsi:type="ecore:EClass" name="TimedGD" abstract="true" eSuperTypes="#//PrefTimedGD"/>
<eClassifiers xsi:type="ecore:EEnum" name="TimeSpecifier">
<eLiterals name="START"/>
<eLiterals name="END" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DurationConstraint" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="DaEffect" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="SimpleDurationConstraint" abstract="true"
eSuperTypes="#//DurationConstraint"/>
<eClassifiers xsi:type="ecore:EClass" name="DurationOperationConstraint" eSuperTypes="#//SimpleDurationConstraint">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operation" lowerBound="1"
eType="#//DurationOperation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//DValue"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AtConstraint" eSuperTypes="#//SimpleDurationConstraint">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="time" lowerBound="1" eType="#//TimeSpecifier"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="constraint" lowerBound="1"
eType="#//SimpleDurationConstraint" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="DurationOperation">
<eLiterals name="LESS_THAN_OR_EQUAL"/>
<eLiterals name="EQUAL" value="1"/>
<eLiterals name="GREATER_THAN_OR_EQUAL" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Interval">
<eLiterals name="ALL"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AndDurationConstraint" eSuperTypes="#//DurationConstraint">
<eStructuralFeatures xsi:type="ecore:EReference" name="ands" upperBound="-1" eType="#//SimpleDurationConstraint"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AtTimedGD" eSuperTypes="#//TimedGD">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="time" lowerBound="1" eType="#//TimeSpecifier"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="goalDescription" lowerBound="1"
eType="#//GD" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OverTimedGD" eSuperTypes="#//TimedGD">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="interval" lowerBound="1"
eType="#//Interval"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="goalDescription" lowerBound="1"
eType="#//GD" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AndDaGD" eSuperTypes="#//DaGD">
<eStructuralFeatures xsi:type="ecore:EReference" name="ands" upperBound="-1" eType="#//DaGD"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ForAllDaGD" eSuperTypes="#//DaGD">
<eStructuralFeatures xsi:type="ecore:EReference" name="goalDescription" lowerBound="1"
eType="#//DaGD" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AndDaEffect" eSuperTypes="#//DaEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="ands" upperBound="-1" eType="#//DaEffect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimedEffect" abstract="true" eSuperTypes="#//DaEffect"/>
<eClassifiers xsi:type="ecore:EClass" name="ForAllDaEffect" eSuperTypes="#//DaEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="effect" lowerBound="1"
eType="#//DaEffect" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable" containment="true" eKeys="#//NamedElement/name"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WhenDaEffect" eSuperTypes="#//DaEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="when" lowerBound="1" eType="#//DaGD"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="then" lowerBound="1" eType="#//TimedEffect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AtTimedEffect" eSuperTypes="#//TimedEffect">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="time" lowerBound="1" eType="#//TimeSpecifier"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="effect" lowerBound="1"
eType="#//CondEffect" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Optimization">
<eLiterals name="MINIMIZE"/>
<eLiterals name="MAXIMIZE" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Problem" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="domain" lowerBound="1"
eType="#//Domain"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="objects" upperBound="-1"
eType="#//ObjectDeclaration" containment="true" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="inits" upperBound="-1"
eType="#//InitEl" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="goal" lowerBound="1" eType="#//PreGD"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="metric" eType="#//MetricSpec"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ObjectDeclaration" eSuperTypes="#//VariableOrConstantOrObjectDeclaration">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type" eKeys="#//NamedElement/name"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InitEl" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="AtomicFormulaInitEl" abstract="true"
eSuperTypes="#//InitEl">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="not" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PredicateInit" eSuperTypes="#//AtomicFormulaInitEl">
<eStructuralFeatures xsi:type="ecore:EReference" name="predicate" lowerBound="1"
eType="#//Predicate" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//VariableOrConstantOrObjectDeclaration"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EqualityInit" abstract="true" eSuperTypes="#//AtomicFormulaInitEl"/>
<eClassifiers xsi:type="ecore:EClass" name="BasicFunctionTerm"/>
<eClassifiers xsi:type="ecore:EClass" name="MetricSpec">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="optimization" lowerBound="1"
eType="#//Optimization"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
eType="#//MetricFExp" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MetricFExp" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="TotalTimeMetric" eSuperTypes="#//MetricFExp"/>
<eClassifiers xsi:type="ecore:EClass" name="NumberMetric" eSuperTypes="#//MetricFExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MinusMetricFExp" eSuperTypes="#//MetricFExp">
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
eType="#//MetricFExp" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Plan">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="cost" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="problem" eType="#//Problem"
eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="calls" upperBound="-1"
eType="#//Call" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="costType" lowerBound="1"
eType="#//CostType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Call">
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//CallParameter" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="structure" lowerBound="1"
eType="#//Structure"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="CostType">
<eLiterals name="UNIT"/>
<eLiterals name="GENERAL" value="1"/>
<eLiterals name="MAKE_SPAN" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FunctionMetric" eSuperTypes="#//MetricFExp">
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
eType="#//Function" eKeys="#//NamedElement/name"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FunctionInit" eSuperTypes="#//EqualityInit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
eType="#//Function" eKeys="#//NamedElement/name"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
eType="#//VariableOrConstantOrObjectDeclaration"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VariableOrConstantOrObjectDeclaration"
abstract="true" eSuperTypes="#//NamedElement"/>
<eClassifiers xsi:type="ecore:EClass" name="AtomicFormulaEffect" abstract="true"
eSuperTypes="#//PEffect"/>
<eClassifiers xsi:type="ecore:EClass" name="NotAtomicFormulaEffect" eSuperTypes="#//PEffect">
<eStructuralFeatures xsi:type="ecore:EReference" name="not" lowerBound="1" eType="#//AtomicFormulaEffect"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NumericFluentEffect" eSuperTypes="#//AtomicFormulaEffect">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operation" lowerBound="1"
eType="#//AssignOperation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
eType="#//Function"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
eType="#//FExp" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="AssignOperation">
<eLiterals name="ASSIGN"/>
<eLiterals name="SCALE_UP" value="1"/>
<eLiterals name="SCALE_DOWN" value="2"/>
<eLiterals name="INCREASE" value="3"/>
<eLiterals name="DECREASE" value="4"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FExp" abstract="true" eSuperTypes="#//DValue"/>
<eClassifiers xsi:type="ecore:EClass" name="NumberFExp" eSuperTypes="#//FExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MinusFExp" eSuperTypes="#//FExp">
<eStructuralFeatures xsi:type="ecore:EReference" name="fexp" upperBound="-1" eType="#//FExp"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DurativeCall" eSuperTypes="#//Call">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="startTime" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="duration" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DValue" abstract="true"/>
<eClassifiers xsi:type="ecore:EClass" name="NumberDValue" eSuperTypes="#//DValue">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FHead" eSuperTypes="#//FExp">
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
eType="#//Function"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
eType="#//Variable"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CallParameter">
<eStructuralFeatures xsi:type="ecore:EReference" name="objectDeclaration" lowerBound="1"
eType="#//ObjectDeclaration" eKeys="#//NamedElement/name"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DerivedPredicate" eSuperTypes="#//Structure">
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
eType="#//GD" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="predicate" lowerBound="1"
eType="#//Predicate" containment="true" eKeys="#//NamedElement/name"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MultiOpFExp" eSuperTypes="#//FExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operation" lowerBound="1"
eType="#//MultiOp"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="first" lowerBound="1" eType="#//FExp"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="rest" lowerBound="1" upperBound="-1"
eType="#//FExp" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MultiOp">
<eLiterals name="ADD"/>
<eLiterals name="MULTIPLY" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BinaryOpFExp" eSuperTypes="#//FExp">
<eStructuralFeatures xsi:type="ecore:EReference" name="first" lowerBound="1" eType="#//FExp"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="second" lowerBound="1"
eType="#//FExp" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="binaryOp" eType="#//BinaryOp"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="binary" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="multiOp" eType="#//MultiOp"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BinaryOp">
<eLiterals name="SUBTRACT" literal="SUBTRACT"/>
<eLiterals name="DIVIDE" value="1"/>
</eClassifiers>
</ecore:EPackage>