<?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="sexec" nsURI="http://www.yakindu.org/sct/sexec/1.0.0" nsPrefix="sexec">
  <eClassifiers xsi:type="ecore:EClass" name="MappedElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceElement" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionFlow" eSuperTypes="../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//ScopedElement #//ExecutionScope #//ExecutionNode">
    <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
        eType="#//ExecutionState" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
        eType="#//ExecutionNode" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1"
        eType="#//ExecutionRegion" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="historyVector" eType="#//StateVector"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="entryAction" eType="#//Step"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="exitAction" eType="#//Step"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNode" eSuperTypes="#//MappedElement ../../org.yakindu.base.types/model/base.ecore#//NamedElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="simpleName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionState" eSuperTypes="#//ExecutionNode #//ExecutionScope">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="leaf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="entryAction" eType="#//Step"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="exitAction" eType="#//Step"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionScope" eSuperTypes="#//MappedElement ../../org.yakindu.base.types/model/base.ecore#//NamedElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="stateVector" eType="#//StateVector"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="subScopes" upperBound="-1"
        eType="#//ExecutionScope" eOpposite="#//ExecutionScope/superScope"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="superScope" eType="#//ExecutionScope"
        eOpposite="#//ExecutionScope/subScopes"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionRegion" eSuperTypes="#//ExecutionScope">
    <eStructuralFeatures xsi:type="ecore:EReference" name="historyVector" eType="#//StateVector"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
        eType="#//ExecutionNode"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionEntry" eSuperTypes="#//ExecutionNode"/>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionExit" eSuperTypes="#//ExecutionNode"/>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionChoice" eSuperTypes="#//ExecutionNode"/>
  <eClassifiers xsi:type="ecore:EClass" name="ExecutionSynchronization" eSuperTypes="#//ExecutionNode"/>
  <eClassifiers xsi:type="ecore:EClass" name="StateVector">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="1"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="0"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TimeEvent" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Event">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="periodic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Step" abstract="true" eSuperTypes="../../org.yakindu.base.types/model/base.ecore#//NamedElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Check" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass ../../org.yakindu.base.expressions/model/Expressions.ecore#//Expression"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refs" upperBound="-1" eType="#//CheckRef"
        eOpposite="#//CheckRef/check"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CheckRef" eSuperTypes="#//Check">
    <eStructuralFeatures xsi:type="ecore:EReference" name="check" eType="#//Check"
        eOpposite="#//Check/refs"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Execution" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="statement" eType="ecore:EClass ../../org.yakindu.base.expressions/model/Expressions.ecore#//Expression"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EnterState" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//ExecutionState"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExitState" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//ExecutionState"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Call" eSuperTypes="#//Step"/>
  <eClassifiers xsi:type="ecore:EClass" name="ScheduleTimeEvent" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="timeEvent" eType="#//TimeEvent"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="timeValue" eType="ecore:EClass ../../org.yakindu.base.expressions/model/Expressions.ecore#//Expression"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="UnscheduleTimeEvent" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="timeEvent" eType="#//TimeEvent"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="StateSwitch" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1"
        eType="#//StateCase" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="stateConfigurationIdx"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="historyRegion" eType="#//ExecutionRegion"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="StateCase">
    <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//ExecutionState"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="step" eType="#//Step" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SaveHistory" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="region" eType="#//ExecutionRegion"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="deep" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="HistoryEntry" eSuperTypes="#//Step">
    <eStructuralFeatures xsi:type="ecore:EReference" name="initialStep" eType="#//Step"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="deep" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="region" eType="#//ExecutionRegion"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="historyStep" eType="#//Step"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Trace" abstract="true" eSuperTypes="#//Step"/>
  <eClassifiers xsi:type="ecore:EClass" name="TraceNodeExecuted" eSuperTypes="#//Trace">
    <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//ExecutionNode"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ReactionFired" eSuperTypes="#//Trace"/>
  <eClassifiers xsi:type="ecore:EClass" name="TraceReactionWillFire" eSuperTypes="#//Trace"/>
  <eClassifiers xsi:type="ecore:EClass" name="TraceStateEntered" eSuperTypes="#//Trace">
    <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//ExecutionState"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TraceStateExited" eSuperTypes="#//Trace">
    <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//ExecutionState"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TraceBeginRunCycle" eSuperTypes="#//Trace"/>
  <eClassifiers xsi:type="ecore:EClass" name="TraceEndRunCycle" eSuperTypes="#//Trace"/>
</ecore:EPackage>
