Selaa lähdekoodia

Compiler works for this scenario (except of main, as it depends on the correct event names)

jos.itemis@gmail.com 14 vuotta sitten
vanhempi
commit
8096aabbd3

+ 4 - 2
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CMakeLists.xpt

@@ -10,6 +10,8 @@ Templates for the main statechart cpp file.
 «IMPORT stext»
 «IMPORT sgraph»
 
+«EXTENSION org::yakindu::sct::generator::cpp::templates::Expression»
+«EXTENSION org::yakindu::sct::generator::cpp::templates::Naming»
 
 «DEFINE file FOR ExecutionFlow»
 
@@ -18,12 +20,12 @@ cmake_minimum_required(VERSION 2.8)
 
 set(SRC
 	Statemachine.cpp
-	MyStatemachine.cpp
+	«StName()».cpp
 	main.cpp
 )
 
 add_definitions( -Wall -O0 -g)
-add_executable(MyStatemachineMain ${SRC})
+add_executable(«StName()»Main ${SRC})
 «ENDFILE»
 
 «ENDDEFINE»

+ 4 - 4
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomEventH.xpt

@@ -16,9 +16,9 @@ Templates for the main statechart cpp file.
 
 «DEFINE file FOR ExecutionFlow»
 
-«FILE name.toFirstUpper()+'.h'»
-#ifndef «name.toUpperCase()»_H_
-#define «name.toUpperCase()»_H_
+«FILE EvName()+'.h'»
+#ifndef «EVNAME()»_H_
+#define «EVNAME()»_H_
 
 #include "Event.h"
 
@@ -30,7 +30,7 @@ enum EventID {
 };
 
 «FOREACH this.declaredEvents() AS ev»
-  class «((EventDefinition)ev).name» : public _Event { public: Event1() : _Event((uint32_t)_«((EventDefinition)ev).name.toLowerCase()») {} };
+  class «((EventDefinition)ev).name» : public _Event { public: «((EventDefinition)ev).name»() : _Event((uint32_t)_«((EventDefinition)ev).name.toLowerCase()») {} };
   // internal variables unhandled
 «ENDFOREACH»
  

+ 1 - 0
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomRepositoryH.xpt

@@ -48,6 +48,7 @@ Templates for the main statechart cpp file.
 #define «DRNAME()»_H_
 
 #include "definition.h"
+#include "DataRepository.h"
 
 class «DRName()» : public DataRepository {
 

+ 1 - 1
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachineCPP.xpt

@@ -41,7 +41,7 @@ Templates for the main statechart cpp file.
 
 «DEFINE ActionCode FOR CheckRef -»
   «IF this.check != null -»
-  «this.check.functionName()»() «
+  «this.check.functionName()»(ev) «
   ELSE -»
  true «
   ENDIF -»«

+ 1 - 1
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachineH.xpt

@@ -41,7 +41,7 @@ protected:
 	«FOREACH states AS state -»
 	  «FOREACH state.reactions AS reaction -»
 	  «IF reaction.check != null -»
-	void «reaction.check.functionName()»(const _Event& event);
+	bool «reaction.check.functionName()»(const _Event& event);
 	  «ENDIF»
 	  «ENDFOREACH»
 	«ENDFOREACH»

+ 17 - 5
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/TestMain.xpt

@@ -10,24 +10,35 @@ Templates for the main statechart cpp file.
 «IMPORT stext»
 «IMPORT sgraph»
 
+«EXTENSION org::yakindu::sct::generator::cpp::templates::Expression»
+«EXTENSION org::yakindu::sct::generator::cpp::templates::Naming»
+
 
 «DEFINE file FOR ExecutionFlow»
 
 «FILE 'main.cpp'»
+
+/*
+ * main.cpp
+ *
+ *  Created on: 10.09.2011
+ *      Author: seger
+ */
+
 #include <cstdio>
 #include <iostream>
-#include "MyStatemachine.h"
-#include "MyDataRepository.h"
-#include "MyEvents.h"
+#include "«StName()».h"
+// #include "«DRName()».h"
+#include "«EvName()».h"
 
 int main()
 {
 
 	char* stateName[6] = {"State1", "State2", "State3", "State4", "State5", "State6"};
-	MyStatemachine machine;
+	«StName()» machine;
 
 	/* initialize data repository */
-	machine.init_data(1,0,0.0);
+//	machine.init_data(1,0,0.0);
 
 	/* initialize the initial states */
 	machine.init();
@@ -94,6 +105,7 @@ int main()
 
 	return(0);
 }
+
 «ENDFILE»
 
 «ENDDEFINE»