Browse Source

Added debug prints

Casper Thule 2 years ago
parent
commit
d090503e7c

+ 1 - 0
DSL_SemanticAdaptation/be.uantwerpen.ansymo.semanticadaptation.cg.cpp/src/be/uantwerpen/ansymo/semanticadaptation/cg/cpp/generation/ControlConditionSwitch.xtend

@@ -79,6 +79,7 @@ class ControlConditionSwitch extends RulesConditionSwitch {
 				
 		val code = '''
 		«functionPrefix+this.adaptationClassName»::«functionNameArgs» {
+			«Utilities.getDebug(functionPrefix+this.adaptationClassName + "::" + functionNameArgs)»
 			«FOR ruleStm : object.controlRulestatements»
 			«val result = doSwitch(ruleStm)»
 			«result.code»«if (!result.isExpression) ";"»

+ 6 - 0
DSL_SemanticAdaptation/be.uantwerpen.ansymo.semanticadaptation.cg.cpp/src/be/uantwerpen/ansymo/semanticadaptation/cg/cpp/generation/CppGenerator.xtend

@@ -726,12 +726,15 @@ class CppGenerator extends SemanticAdaptationGenerator {
 						val getValueCpp = '''getValue«Conversions.fmiTypeToGetValueString(type)»(«dependency.owner.name»,«define»)''';
 						ruleCpp = '''
 							«funcSigCon»{
+								«Utilities.getDebug(funcSigCon)»
 								return true;
 							}
 							«funcSigBody»{
+								«Utilities.getDebug(funcSigBody)»
 								this->internalState.stored_«dependency.owner.name»_«dependency.port.name» = «getValueCpp»;
 							}
 							«funcSigFlush»{
+								«Utilities.getDebug(funcSigFlush)»
 								this->internalState.«currentPort.name» = this->internalState.stored_«dependency.owner.name»_«dependency.port.name»;
 							}
 						'''
@@ -739,12 +742,15 @@ class CppGenerator extends SemanticAdaptationGenerator {
 						val setValueCpp = '''setValue(«dependency.owner.name»,«define»,this->internalState.stored_«dependency.owner.name»_«dependency.port.name»);''';
 						ruleCpp = '''
 							«funcSigCon»{
+								«Utilities.getDebug(funcSigCon)»
 								return true;
 							}
 							«funcSigBody»{
+								«Utilities.getDebug(funcSigBody)»
 								this->internalState.stored_«dependency.owner.name»_«dependency.port.name» = this->internalState.«currentPort.name»;
 							}
 							«funcSigFlush»{
+								«Utilities.getDebug(funcSigFlush)»
 								«setValueCpp»
 							}
 						'''

+ 3 - 0
DSL_SemanticAdaptation/be.uantwerpen.ansymo.semanticadaptation.cg.cpp/src/be/uantwerpen/ansymo/semanticadaptation/cg/cpp/generation/RulesConditionSwitch.xtend

@@ -162,6 +162,7 @@ class RulesConditionSwitch extends BasicConditionSwitch {
 		val functionSignature = createFunctionSignature("condition", "bool", this.count, this.functionSignatures);
 		retVal.code = '''
 			«functionSignature»{
+				«Utilities.getDebug(functionSignature)»
 				return «doSwitch(object.condition).code»;
 			}
 		''';
@@ -175,6 +176,7 @@ class RulesConditionSwitch extends BasicConditionSwitch {
 		val functionSig = createFunctionSignature("body", "void", this.count, this.functionSignatures);
 		retVal.code = '''
 			«functionSig»{
+				«Utilities.getDebug(functionSig)»
 				«IF object.expression !== null»
 					«val result = doSwitch(object.expression)»
 					«result.code»«if (!result.isExpression) ";"»
@@ -280,6 +282,7 @@ class RulesConditionSwitch extends BasicConditionSwitch {
 		val functionSig = createFunctionSignature("flush", "void", this.count, this.functionSignatures);
 		retVal.code = '''
 			«functionSig»{
+				«Utilities.getDebug(functionSig)»
 				«FOR stm : object.statements»
 					«val result = doSwitch(stm)»
 					«result.code»«if(!result.isExpression) ";"»

+ 11 - 0
DSL_SemanticAdaptation/be.uantwerpen.ansymo.semanticadaptation.cg.cpp/src/be/uantwerpen/ansymo/semanticadaptation/cg/cpp/generation/Utilities.xtend

@@ -0,0 +1,11 @@
+package be.uantwerpen.ansymo.semanticadaptation.cg.cpp.generation
+
+class Utilities {
+	def static String getDebug(String functionName){
+
+	return '''
+	#ifdef SA_DEBUG
+		printf("Invoking «functionName»");
+	#endif SA_DEBUG	''';
+}
+}