|
|
@@ -8,53 +8,52 @@
|
|
|
* committers of YAKINDU - initial API and implementation
|
|
|
*
|
|
|
*/
|
|
|
-package org.yakindu.sct.model.sexec.interpreter.impl
|
|
|
-
|
|
|
-import com.google.inject.Inject
|
|
|
-import com.google.inject.name.Named
|
|
|
-import org.yakindu.base.types.ITypeSystemAccess
|
|
|
-import org.yakindu.sct.model.sexec.Call
|
|
|
-import org.yakindu.sct.model.sexec.Check
|
|
|
-import org.yakindu.sct.model.sexec.EnterState
|
|
|
-import org.yakindu.sct.model.sexec.Execution
|
|
|
-import org.yakindu.sct.model.sexec.ExecutionFlow
|
|
|
-import org.yakindu.sct.model.sexec.ExitState
|
|
|
-import org.yakindu.sct.model.sexec.HistoryEntry
|
|
|
-import org.yakindu.sct.model.sexec.If
|
|
|
-import org.yakindu.sct.model.sexec.SaveHistory
|
|
|
-import org.yakindu.sct.model.sexec.ScheduleTimeEvent
|
|
|
-import org.yakindu.sct.model.sexec.Sequence
|
|
|
-import org.yakindu.sct.model.sexec.SexecFactory
|
|
|
-import org.yakindu.sct.model.sexec.StateSwitch
|
|
|
-import org.yakindu.sct.model.sexec.Step
|
|
|
-import org.yakindu.sct.model.sexec.TimeEvent
|
|
|
-import org.yakindu.sct.model.sexec.Trace
|
|
|
-import org.yakindu.sct.model.sexec.TraceBeginRunCycle
|
|
|
-import org.yakindu.sct.model.sexec.TraceEndRunCycle
|
|
|
-import org.yakindu.sct.model.sexec.UnscheduleTimeEvent
|
|
|
-import org.yakindu.sct.model.sexec.interpreter.IExecutionFlowInterpreter
|
|
|
-import org.yakindu.sct.model.sexec.interpreter.IStatementInterpreter
|
|
|
-import org.yakindu.sct.model.sexec.interpreter.ITimingService
|
|
|
-import org.yakindu.sct.model.sgraph.Scope
|
|
|
-import org.yakindu.sct.model.stext.naming.StextNameProvider
|
|
|
-import org.yakindu.sct.model.stext.stext.EventDefinition
|
|
|
-import org.yakindu.sct.model.stext.stext.InterfaceScope
|
|
|
-import org.yakindu.sct.model.stext.stext.InternalScope
|
|
|
-import org.yakindu.sct.model.stext.stext.VariableDefinition
|
|
|
-import org.yakindu.sct.simulation.core.runtime.AbstractExecutionFacade
|
|
|
-import org.yakindu.sct.simulation.core.runtime.IExecutionContext
|
|
|
-import org.yakindu.sct.simulation.core.runtime.IExecutionContextListener
|
|
|
-import org.yakindu.sct.simulation.core.runtime.impl.ExecutionEvent
|
|
|
+package org.yakindu.sct.model.sexec.interpreter.impl
|
|
|
+
|
|
|
+import com.google.inject.Inject
|
|
|
+import com.google.inject.name.Named
|
|
|
+import org.yakindu.base.types.ITypeSystemAccess
|
|
|
+import org.yakindu.base.types.Type
|
|
|
+import org.yakindu.sct.model.sexec.Call
|
|
|
+import org.yakindu.sct.model.sexec.Check
|
|
|
+import org.yakindu.sct.model.sexec.EnterState
|
|
|
+import org.yakindu.sct.model.sexec.Execution
|
|
|
+import org.yakindu.sct.model.sexec.ExecutionFlow
|
|
|
+import org.yakindu.sct.model.sexec.ExitState
|
|
|
+import org.yakindu.sct.model.sexec.HistoryEntry
|
|
|
+import org.yakindu.sct.model.sexec.If
|
|
|
+import org.yakindu.sct.model.sexec.SaveHistory
|
|
|
+import org.yakindu.sct.model.sexec.ScheduleTimeEvent
|
|
|
+import org.yakindu.sct.model.sexec.Sequence
|
|
|
+import org.yakindu.sct.model.sexec.SexecFactory
|
|
|
+import org.yakindu.sct.model.sexec.StateSwitch
|
|
|
+import org.yakindu.sct.model.sexec.Step
|
|
|
+import org.yakindu.sct.model.sexec.TimeEvent
|
|
|
+import org.yakindu.sct.model.sexec.Trace
|
|
|
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle
|
|
|
+import org.yakindu.sct.model.sexec.TraceEndRunCycle
|
|
|
+import org.yakindu.sct.model.sexec.UnscheduleTimeEvent
|
|
|
+import org.yakindu.sct.model.sexec.interpreter.IExecutionFlowInterpreter
|
|
|
+import org.yakindu.sct.model.sexec.interpreter.IStatementInterpreter
|
|
|
+import org.yakindu.sct.model.sexec.interpreter.ITimingService
|
|
|
+import org.yakindu.sct.model.sgraph.Scope
|
|
|
+import org.yakindu.sct.model.stext.naming.StextNameProvider
|
|
|
+import org.yakindu.sct.model.stext.stext.EventDefinition
|
|
|
+import org.yakindu.sct.model.stext.stext.InterfaceScope
|
|
|
+import org.yakindu.sct.model.stext.stext.InternalScope
|
|
|
+import org.yakindu.sct.model.stext.stext.OperationDefinition
|
|
|
+import org.yakindu.sct.model.stext.stext.VariableDefinition
|
|
|
+import org.yakindu.sct.simulation.core.runtime.AbstractExecutionFacade
|
|
|
+import org.yakindu.sct.simulation.core.runtime.IExecutionContext
|
|
|
+import org.yakindu.sct.simulation.core.runtime.impl.ExecutionEvent
|
|
|
import org.yakindu.sct.simulation.core.runtime.impl.ExecutionVariable
|
|
|
-import org.yakindu.base.types.Type
|
|
|
-import org.yakindu.sct.model.stext.stext.OperationDefinition
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @author andreas muelder - Initial contribution and API
|
|
|
*
|
|
|
*/
|
|
|
-class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecutionFlowInterpreter,IExecutionContextListener {
|
|
|
+class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecutionFlowInterpreter {
|
|
|
|
|
|
@Inject
|
|
|
IStatementInterpreter interpreter
|
|
|
@@ -83,7 +82,6 @@ class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecu
|
|
|
scope.declareContents
|
|
|
}
|
|
|
executionContext.initStateConfigurationVector(flow.stateVector.size)
|
|
|
- executionContext.addExecutionContextListener(this);
|
|
|
|
|
|
brc = SexecFactory::eINSTANCE.createTraceBeginRunCycle
|
|
|
erc = SexecFactory::eINSTANCE.createTraceEndRunCycle
|
|
|
@@ -155,13 +153,13 @@ class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecu
|
|
|
def dispatch void addToScope(EventDefinition event){
|
|
|
var fqName = provider.qualifiedName(event).toString
|
|
|
if(event.type.^boolean){
|
|
|
- executionContext.declareEvent(new ExecutionEvent(fqName,typeof(Boolean),null))
|
|
|
+ executionContext.declareEvent(new ExecutionEvent(fqName,typeof(Boolean),false))
|
|
|
}
|
|
|
else if(event.type.integer){
|
|
|
- executionContext.declareEvent(new ExecutionEvent(fqName,typeof(Integer),null))
|
|
|
+ executionContext.declareEvent(new ExecutionEvent(fqName,typeof(Integer),0))
|
|
|
}
|
|
|
else if(event.type.real){
|
|
|
- executionContext.declareEvent(new ExecutionEvent(fqName,typeof(Float),null))
|
|
|
+ executionContext.declareEvent(new ExecutionEvent(fqName,typeof(Float),Float::parseFloat("0.0")))
|
|
|
}
|
|
|
else if(event.type.^void){
|
|
|
executionContext.declareEvent(new ExecutionEvent(fqName,typeof(Void)))
|
|
|
@@ -313,14 +311,6 @@ class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecu
|
|
|
null
|
|
|
}
|
|
|
|
|
|
- override void eventRaised(ExecutionEvent event){
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- override void variableValueChanged(ExecutionVariable variable){
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
override getExecutionContext() {
|
|
|
return executionContext;
|
|
|
}
|