Browse Source

Fixed some bugs in function call rules

Yentl Van Tendeloo 7 years ago
parent
commit
73c6ea264e
3 changed files with 48 additions and 7 deletions
  1. 43 4
      kernel/modelverse_kernel/generated.py
  2. 4 2
      kernel/rules/MvK_rules.mvc
  3. 1 1
      wrappers/modelverse_SCCD.py

+ 43 - 4
kernel/modelverse_kernel/generated.py

@@ -190,6 +190,8 @@ class ModelverseKernel(object):
 		Rules_N8_3, = yield [('RD', [Rules_N8_1, 'frame'])]
 		Rules_N8_4, = yield [('RD', [Rules_N8_3, 'IP'])]
 		Rules_N8_4_V, = yield [('RV', [Rules_N8_4])]
+		Rules_N8_14, = yield [('RD', [Rules_N8_3, 'phase'])]
+		Rules_N8_14_V, = yield [('RV', [Rules_N8_14])]
 		Rules_N8_5, = yield [('RD', [Rules_N8_4, 'last_param'])]
 		Rules_N9_0 = root
 		Rules_N9_1, = yield [('RD', [Rules_N9_0, taskname])]
@@ -242,6 +244,8 @@ class ModelverseKernel(object):
 		Rules_N14_2, = yield [('RD', [Rules_N14_1, 'frame'])]
 		Rules_N14_5, = yield [('RD', [Rules_N14_2, 'IP'])]
 		Rules_N14_5_V, = yield [('RV', [Rules_N14_5])]
+		Rules_N14_7, = yield [('RD', [Rules_N14_2, 'phase'])]
+		Rules_N14_7_V, = yield [('RV', [Rules_N14_7])]
 		Rules_N14_8, = yield [('RD', [Rules_N14_5, 'params'])]
 		Rules_N15_0 = root
 		Rules_N15_1, = yield [('RD', [Rules_N15_0, taskname])]
@@ -429,6 +433,7 @@ class ModelverseKernel(object):
 			Rules_N1_5, = yield [('CNV', ['finish'])]
 			Rules___16, = yield [('CD', [Rules_N1_2, 'phase', Rules_N1_5])]
 			Rules___18, = yield [('CD', [Rules_N1_2, 'returnvalue', Rules_N1_6])]
+			print(str(locals()))
 		elif (True  and Rules_N2_1 is not None  and Rules_N2_2 is not None  and Rules_N2_3 is not None  and Rules_N2_3_V == 'init' and Rules_N2_5 is not None  and Rules_N2_5_V['value'] == 'access'):
 			# Execute rule Rules/Access_Init_N2
 			print('Execute rule Rules/Access_Init_N2')
@@ -449,6 +454,7 @@ class ModelverseKernel(object):
 			Rules___47, = yield [('CD', [Rules_N2_4, 'prev', Rules_N2_6])]
 			Rules___49, = yield [('CD', [Rules_N2_6, 'phase', Rules_N2_8])]
 			Rules___51, = yield [('CD', [Rules_N2_6, 'inst', Rules_N2_5])]
+			print(str(locals()))
 		elif (True  and Rules_N3_1 is not None  and Rules_N3_2 is not None  and Rules_N3_3 is not None  and Rules_N3_3_V['value'] == 'assign' and Rules_N3_4 is not None  and Rules_N3_4_V == 'assign'):
 			# Execute rule Rules/Assign_Assign_N3
 			print('Execute rule Rules/Assign_Assign_N3')
@@ -468,6 +474,7 @@ class ModelverseKernel(object):
 			Rules_N3_5, = yield [('CNV', ['finish'])]
 			Rules___72, = yield [('CD', [Rules_N3_2, 'phase', Rules_N3_5])]
 			Rules___78, = yield [('CD', [Rules_N3_7, 'value', Rules_N3_6])]
+			print(str(locals()))
 		elif (True  and Rules_N4_1 is not None  and Rules_N4_2 is not None  and Rules_N4_3 is not None  and Rules_N4_3_V == 'init' and Rules_N4_6 is not None  and Rules_N4_6_V['value'] == 'assign'):
 			# Execute rule Rules/Assign_Init_N4
 			print('Execute rule Rules/Assign_Init_N4')
@@ -488,6 +495,7 @@ class ModelverseKernel(object):
 			Rules___105, = yield [('CD', [Rules_N4_4, 'prev', Rules_N4_5])]
 			Rules___107, = yield [('CD', [Rules_N4_5, 'inst', Rules_N4_6])]
 			Rules___109, = yield [('CD', [Rules_N4_5, 'phase', Rules_N4_7])]
+			print(str(locals()))
 		elif (True  and Rules_N5_1 is not None  and Rules_N5_2 is not None  and Rules_N5_3 is not None  and Rules_N5_3_V == 'value' and Rules_N5_4 is not None  and Rules_N5_4_V['value'] == 'assign'):
 			# Execute rule Rules/Assign_Value_N5
 			print('Execute rule Rules/Assign_Value_N5')
@@ -514,6 +522,7 @@ class ModelverseKernel(object):
 			Rules___144, = yield [('CD', [Rules_N5_5, 'prev', Rules_N5_9])]
 			Rules___146, = yield [('CD', [Rules_N5_9, 'inst', Rules_N5_4])]
 			Rules___148, = yield [('CD', [Rules_N5_9, 'phase', Rules_N5_10])]
+			print(str(locals()))
 		elif (True  and Rules_N6_1 is not None  and Rules_N6_2 is not None  and Rules_N6_3 is not None  and Rules_N6_3_V == 'init' and Rules_N6_5 is not None  and Rules_N6_5_V['value'] == 'break'):
 			# Execute rule Rules/Break_N6
 			print('Execute rule Rules/Break_N6')
@@ -542,6 +551,7 @@ class ModelverseKernel(object):
 			Rules___183, = yield [('CD', [Rules_N6_2, 'evalstack', Rules_N6_9])]
 			Rules___185, = yield [('CD', [Rules_N6_9, 'prev', Rules_N6_8])]
 			Rules___187, = yield [('CD', [Rules_N6_8, 'phase', Rules_N6_11])]
+			print(str(locals()))
 		elif (True  and Rules_N7_1 is not None  and Rules_N7_3 is not None  and Rules_N7_6 is not None  and Rules_N7_6_V['value'] == 'call' and Rules_N7_10 is not None  and Rules_N7_10_V == 'call' and Rules_N7_11 is None ):
 			# Execute rule Rules/Call_Call_None_N7
 			print('Execute rule Rules/Call_Call_None_N7')
@@ -571,7 +581,8 @@ class ModelverseKernel(object):
 			Rules___219, = yield [('CD', [Rules_N7_2, 'phase', Rules_N7_13])]
 			Rules___223, = yield [('CD', [Rules_N7_2, 'prev', Rules_N7_3])]
 			Rules___229, = yield [('CD', [Rules_N7_3, 'phase', Rules_N7_9])]
-		elif (True  and Rules_N8_1 is not None  and Rules_N8_3 is not None  and Rules_N8_4 is not None  and Rules_N8_4_V['value'] == 'call' and Rules_N8_5 is not None ):
+			print(str(locals()))
+		elif (True  and Rules_N8_1 is not None  and Rules_N8_3 is not None  and Rules_N8_4 is not None  and Rules_N8_4_V['value'] == 'call' and Rules_N8_5 is not None  and Rules_N8_14 is not None  and Rules_N8_14_V == 'call'):
 			# Execute rule Rules/Call_Call_Params_N8
 			print('Execute rule Rules/Call_Call_Params_N8')
 			Rules_N8_1, = yield [('RD', [Rules_N8_0, taskname])]
@@ -612,10 +623,11 @@ class ModelverseKernel(object):
 			Rules_N8_7, = yield [('CNV', ['finish'])]
 			Rules_N8_10, = yield [('CN', [])]
 			Rules___253, = yield [('CD', [Rules_N8_1, 'frame', Rules_N8_2])]
-			Rules___267, = yield [('CD', [Rules_N8_3, 'finish', Rules_N8_7])]
+			Rules___267, = yield [('CD', [Rules_N8_3, 'phase', Rules_N8_7])]
 			Rules___277, = yield [('CD', [Rules_N8_10, 'value', Rules_N8_8])]
 			Rules_N8_16, = yield [('CE', [Rules_N8_15, Rules_N8_10])]
 			Rules___286, = yield [('CE', [Rules_N8_16, Rules_N8_9])]
+			print(str(locals()))
 		elif (True  and Rules_N9_1 is not None  and Rules_N9_2 is not None  and Rules_N9_14 is not None  and Rules_N9_14_V['value'] == 'call' and Rules_N9_15 is not None  and Rules_N9_16 is not None ):
 			# Execute rule Rules/Call_Params_First_Multi_N9
 			print('Execute rule Rules/Call_Params_First_Multi_N9')
@@ -644,7 +656,7 @@ class ModelverseKernel(object):
 			Rules_N9_11, = yield [('CNV', ['init'])]
 			Rules_N9_12, = yield [('CN', [])]
 			Rules___310, = yield [('CD', [Rules_N9_2, 'evalstack', Rules_N9_12])]
-			Rules___316, = yield [('CD', [Rules_N9_2, 'init', Rules_N9_11])]
+			Rules___316, = yield [('CD', [Rules_N9_2, 'phase', Rules_N9_11])]
 			Rules___322, = yield [('CD', [Rules_N9_2, 'IP', Rules_N9_17])]
 			Rules___324, = yield [('CD', [Rules_N9_3, 'caller', Rules_N9_14])]
 			Rules___326, = yield [('CD', [Rules_N9_3, 'prev', Rules_N9_2])]
@@ -656,6 +668,7 @@ class ModelverseKernel(object):
 			Rules___342, = yield [('CD', [Rules_N9_12, 'prev', Rules_N9_13])]
 			Rules___344, = yield [('CD', [Rules_N9_13, 'inst', Rules_N9_14])]
 			Rules___346, = yield [('CD', [Rules_N9_13, 'phase', Rules_N9_16])]
+			print(str(locals()))
 		elif (True  and Rules_N10_1 is not None  and Rules_N10_2 is not None  and Rules_N10_14 is not None  and Rules_N10_14_V['value'] == 'call' and Rules_N10_15 is not None ):
 			# Execute rule Rules/Call_Params_First_Single_N10
 			print('Execute rule Rules/Call_Params_First_Single_N10')
@@ -697,6 +710,7 @@ class ModelverseKernel(object):
 			Rules___408, = yield [('CD', [Rules_N10_12, 'phase', Rules_N10_13])]
 			Rules___410, = yield [('CD', [Rules_N10_12, 'inst', Rules_N10_14])]
 			Rules___418, = yield [('CD', [Rules_N10_17, 'prev', Rules_N10_12])]
+			print(str(locals()))
 		elif (True  and Rules_N11_1 is not None  and Rules_N11_2 is not None  and Rules_N11_14 is not None  and Rules_N11_16 is not None  and Rules_N11_16_V['value'] == 'call'):
 			# Execute rule Rules/Call_Params_Last_N11
 			print('Execute rule Rules/Call_Params_Last_N11')
@@ -759,6 +773,7 @@ class ModelverseKernel(object):
 			Rules___486, = yield [('CD', [Rules_N11_18, 'prev', Rules_N11_17])]
 			Rules_N11_8, = yield [('CE', [Rules_N11_20, Rules_N11_9])]
 			Rules___489, = yield [('CE', [Rules_N11_8, Rules_N11_7])]
+			print(str(locals()))
 		elif (True  and Rules_N12_1 is not None  and Rules_N12_2 is not None  and Rules_N12_11 is not None  and Rules_N12_18 is not None  and Rules_N12_19 is not None  and Rules_N12_19_V['value'] == 'call'):
 			# Execute rule Rules/Call_Params_Next_N12
 			print('Execute rule Rules/Call_Params_Next_N12')
@@ -820,6 +835,7 @@ class ModelverseKernel(object):
 			Rules___557, = yield [('CD', [Rules_N12_17, 'inst', Rules_N12_19])]
 			Rules_N12_8, = yield [('CE', [Rules_N12_13, Rules_N12_9])]
 			Rules___560, = yield [('CE', [Rules_N12_8, Rules_N12_7])]
+			print(str(locals()))
 		elif (True  and Rules_N13_1 is not None  and Rules_N13_2 is not None  and Rules_N13_3 is not None  and Rules_N13_3_V == 'init' and Rules_N13_6 is not None  and Rules_N13_6_V['value'] == 'call' and Rules_N13_9 is None ):
 			# Execute rule Rules/Call_Resolve_No_Params_N13
 			print('Execute rule Rules/Call_Resolve_No_Params_N13')
@@ -841,7 +857,8 @@ class ModelverseKernel(object):
 			Rules___586, = yield [('CD', [Rules_N13_4, 'prev', Rules_N13_5])]
 			Rules___588, = yield [('CD', [Rules_N13_5, 'inst', Rules_N13_6])]
 			Rules___590, = yield [('CD', [Rules_N13_5, 'phase', Rules_N13_7])]
-		elif (True  and Rules_N14_1 is not None  and Rules_N14_2 is not None  and Rules_N14_5 is not None  and Rules_N14_5_V['value'] == 'call' and Rules_N14_8 is not None ):
+			print(str(locals()))
+		elif (True  and Rules_N14_1 is not None  and Rules_N14_2 is not None  and Rules_N14_5 is not None  and Rules_N14_5_V['value'] == 'call' and Rules_N14_7 is not None  and Rules_N14_7_V == 'init' and Rules_N14_8 is not None ):
 			# Execute rule Rules/Call_Resolve_Params_N14
 			print('Execute rule Rules/Call_Resolve_Params_N14')
 			Rules_N14_1, = yield [('RD', [Rules_N14_0, taskname])]
@@ -861,6 +878,7 @@ class ModelverseKernel(object):
 			Rules___619, = yield [('CD', [Rules_N14_3, 'phase', Rules_N14_8])]
 			Rules___621, = yield [('CD', [Rules_N14_3, 'inst', Rules_N14_5])]
 			Rules___623, = yield [('CD', [Rules_N14_4, 'prev', Rules_N14_3])]
+			print(str(locals()))
 		elif (True  and Rules_N15_1 is not None  and Rules_N15_2 is not None  and Rules_N15_4 is not None  and Rules_N15_4_V == 'init' and Rules_N15_6 is not None  and Rules_N15_6_V['value'] == 'constant'):
 			# Execute rule Rules/Const_N15
 			print('Execute rule Rules/Const_N15')
@@ -877,6 +895,7 @@ class ModelverseKernel(object):
 			Rules_N15_5, = yield [('CNV', ['finish'])]
 			Rules___641, = yield [('CD', [Rules_N15_2, 'returnvalue', Rules_N15_7])]
 			Rules___647, = yield [('CD', [Rules_N15_2, 'phase', Rules_N15_5])]
+			print(str(locals()))
 		elif (True  and Rules_N16_1 is not None  and Rules_N16_2 is not None  and Rules_N16_3 is not None  and Rules_N16_3_V == 'init' and Rules_N16_4 is not None  and Rules_N16_4_V['value'] == 'continue'):
 			# Execute rule Rules/Continue_N16
 			print('Execute rule Rules/Continue_N16')
@@ -902,6 +921,7 @@ class ModelverseKernel(object):
 			Rules___671, = yield [('CD', [Rules_N16_2, 'IP', Rules_N16_5])]
 			Rules___681, = yield [('CD', [Rules_N16_2, 'evalstack', Rules_N16_8])]
 			Rules___683, = yield [('CD', [Rules_N16_8, 'prev', Rules_N16_7])]
+			print(str(locals()))
 		elif (True  and Rules_N17_1 is not None  and Rules_N17_2 is not None  and Rules_N17_3 is not None  and Rules_N17_3_V == 'init' and Rules_N17_5 is not None  and Rules_N17_5_V['value'] == 'declare'):
 			# Execute rule Rules/Declare_Init_N17
 			print('Execute rule Rules/Declare_Init_N17')
@@ -918,6 +938,7 @@ class ModelverseKernel(object):
 			Rules___700, = yield [('CD', [Rules_N17_2, 'phase', Rules_N17_4])]
 			Rules_N17_9, = yield [('CE', [Rules_N17_6, Rules_N17_8])]
 			Rules___709, = yield [('CE', [Rules_N17_9, Rules_N17_7])]
+			print(str(locals()))
 		elif (True  and Rules_N18_1 is not None  and Rules_N18_2 is not None  and Rules_N18_4 is not None  and Rules_N18_4_V == 'init' and Rules_N18_6 is not None  and Rules_N18_6_V['value'] == 'global'):
 			# Execute rule Rules/Global_Init_N18
 			print('Execute rule Rules/Global_Init_N18')
@@ -934,6 +955,7 @@ class ModelverseKernel(object):
 			Rules___728, = yield [('CD', [Rules_N18_2, 'phase', Rules_N18_5])]
 			Rules_N18_9, = yield [('CE', [Rules_N18_3, Rules_N18_8])]
 			Rules___735, = yield [('CE', [Rules_N18_9, Rules_N18_7])]
+			print(str(locals()))
 		elif (True  and Rules_N19_1 is not None  and Rules_N19_2 is not None  and Rules_N19_3 is not None  and Rules_N19_3_V == 'init' and Rules_N19_6 is not None  and Rules_N19_6_V['value'] == 'if'):
 			# Execute rule Rules/If_Cond_N19
 			print('Execute rule Rules/If_Cond_N19')
@@ -954,6 +976,7 @@ class ModelverseKernel(object):
 			Rules___760, = yield [('CD', [Rules_N19_4, 'prev', Rules_N19_5])]
 			Rules___762, = yield [('CD', [Rules_N19_5, 'inst', Rules_N19_6])]
 			Rules___764, = yield [('CD', [Rules_N19_5, 'phase', Rules_N19_7])]
+			print(str(locals()))
 		elif (True  and Rules_N20_1 is not None  and Rules_N20_2 is not None  and Rules_N20_3 is not None  and Rules_N20_3_V == 'cond' and Rules_N20_4 is not None  and Rules_N20_4_V['value'] == 'if' and Rules_N20_6 is not None  and Rules_N20_6_V == False and Rules_N20_8 is not None ):
 			# Execute rule Rules/If_False_Else_N20
 			print('Execute rule Rules/If_False_Else_N20')
@@ -979,6 +1002,7 @@ class ModelverseKernel(object):
 			Rules___799, = yield [('CD', [Rules_N20_5, 'prev', Rules_N20_9])]
 			Rules___801, = yield [('CD', [Rules_N20_9, 'inst', Rules_N20_4])]
 			Rules___803, = yield [('CD', [Rules_N20_9, 'phase', Rules_N20_10])]
+			print(str(locals()))
 		elif (True  and Rules_N21_1 is not None  and Rules_N21_2 is not None  and Rules_N21_3 is not None  and Rules_N21_3_V == 'cond' and Rules_N21_5 is not None  and Rules_N21_5_V['value'] == 'if' and Rules_N21_6 is not None  and Rules_N21_6_V == False and Rules_N21_7 is None ):
 			# Execute rule Rules/If_False_None_N21
 			print('Execute rule Rules/If_False_None_N21')
@@ -992,6 +1016,7 @@ class ModelverseKernel(object):
 			Rules_N21_7, = yield [('RD', [Rules_N21_5, 'else'])]
 			Rules_N21_4, = yield [('CNV', ['finish'])]
 			Rules___823, = yield [('CD', [Rules_N21_2, 'phase', Rules_N21_4])]
+			print(str(locals()))
 		elif (True  and Rules_N22_1 is not None  and Rules_N22_2 is not None  and Rules_N22_3 is not None  and Rules_N22_3_V == 'cond' and Rules_N22_6 is not None  and Rules_N22_6_V == True and Rules_N22_9 is not None  and Rules_N22_9_V['value'] == 'if'):
 			# Execute rule Rules/If_True_N22
 			print('Execute rule Rules/If_True_N22')
@@ -1017,6 +1042,7 @@ class ModelverseKernel(object):
 			Rules___856, = yield [('CD', [Rules_N22_2, 'IP', Rules_N22_8])]
 			Rules___858, = yield [('CD', [Rules_N22_7, 'inst', Rules_N22_9])]
 			Rules___860, = yield [('CD', [Rules_N22_7, 'phase', Rules_N22_10])]
+			print(str(locals()))
 		elif (True  and Rules_N23_1 is not None  and Rules_N23_2 is not None  and Rules_N23_5 is not None  and Rules_N23_5_V['value'] == 'input' and Rules_N23_6 is not None  and Rules_N23_6_V == 'init' and Rules_N23_7 is not None ):
 			# Execute rule Rules/Input_N23
 			print('Execute rule Rules/Input_N23')
@@ -1042,6 +1068,7 @@ class ModelverseKernel(object):
 			Rules___878, = yield [('CD', [Rules_N23_2, 'phase', Rules_N23_3])]
 			Rules___886, = yield [('CD', [Rules_N23_2, 'returnvalue', Rules_N23_7])]
 			Rules___894, = yield [('CD', [Rules_N23_1, 'input', Rules_N23_9])]
+			print(str(locals()))
 		elif (True  and Rules_N24_1 is not None  and Rules_N24_2 is not None  and Rules_N24_3 is not None  and Rules_N24_3_V == 'finish' and Rules_N24_5 is not None  and Rules_N24_6 is not None ):
 			# Execute rule Rules/Next_Next_N24
 			print('Execute rule Rules/Next_Next_N24')
@@ -1057,6 +1084,7 @@ class ModelverseKernel(object):
 			Rules_N24_4, = yield [('CNV', ['init'])]
 			Rules___909, = yield [('CD', [Rules_N24_2, 'phase', Rules_N24_4])]
 			Rules___913, = yield [('CD', [Rules_N24_2, 'IP', Rules_N24_6])]
+			print(str(locals()))
 		elif (True  and Rules_N25_1 is not None  and Rules_N25_2 is not None  and Rules_N25_3 is not None  and Rules_N25_3_V == 'finish' and Rules_N25_4 is not None  and Rules_N25_9 is None ):
 			# Execute rule Rules/Next_NoNext_N25
 			print('Execute rule Rules/Next_NoNext_N25')
@@ -1084,6 +1112,7 @@ class ModelverseKernel(object):
 			Rules___935, = yield [('CD', [Rules_N25_2, 'IP', Rules_N25_5])]
 			Rules___939, = yield [('CD', [Rules_N25_2, 'evalstack', Rules_N25_7])]
 			Rules___941, = yield [('CD', [Rules_N25_2, 'phase', Rules_N25_8])]
+			print(str(locals()))
 		elif (True  and Rules_N26_1 is not None  and Rules_N26_2 is not None  and Rules_N26_3 is not None  and Rules_N26_3_V == 'init' and Rules_N26_4 is not None  and Rules_N26_4_V['value'] == 'output'):
 			# Execute rule Rules/Output_Init_N26
 			print('Execute rule Rules/Output_Init_N26')
@@ -1104,6 +1133,7 @@ class ModelverseKernel(object):
 			Rules___974, = yield [('CD', [Rules_N26_2, 'IP', Rules_N26_7])]
 			Rules___976, = yield [('CD', [Rules_N26_6, 'inst', Rules_N26_4])]
 			Rules___978, = yield [('CD', [Rules_N26_6, 'phase', Rules_N26_8])]
+			print(str(locals()))
 		elif (True  and Rules_N27_1 is not None  and Rules_N27_2 is not None  and Rules_N27_4 is not None  and Rules_N27_4_V['value'] == 'output' and Rules_N27_5 is not None  and Rules_N27_5_V == 'output'):
 			# Execute rule Rules/Output_Output_N27
 			print('Execute rule Rules/Output_Output_N27')
@@ -1123,6 +1153,7 @@ class ModelverseKernel(object):
 			Rules___1003, = yield [('CD', [Rules_N27_3, 'value', Rules_N27_7])]
 			Rules___1005, = yield [('CD', [Rules_N27_3, 'next', Rules_N27_8])]
 			Rules___1007, = yield [('CD', [Rules_N27_1, 'last_output', Rules_N27_8])]
+			print(str(locals()))
 		elif (True  and Rules_N28_1 is not None  and Rules_N28_3 is not None  and Rules_N28_5 is not None  and Rules_N28_7 is not None  and Rules_N28_7_V['value'] == 'resolve' and Rules_N28_8 is not None  and Rules_N28_8_V == 'init' and Rules_N28_10 is not None  and Rules_N28_11 is None ):
 			# Execute rule Rules/Resolve_NoAttrGlobal_N28
 			print('Execute rule Rules/Resolve_NoAttrGlobal_N28')
@@ -1143,6 +1174,7 @@ class ModelverseKernel(object):
 			Rules_N28_4, = yield [('CNV', ['finish'])]
 			Rules___1029, = yield [('CD', [Rules_N28_3, 'phase', Rules_N28_4])]
 			Rules___1039, = yield [('CD', [Rules_N28_3, 'returnvalue', Rules_N28_9])]
+			print(str(locals()))
 		elif (True  and Rules_N29_1 is not None  and Rules_N29_2 is not None  and Rules_N29_3 is not None  and Rules_N29_3_V['value'] == 'resolve' and Rules_N29_4 is not None  and Rules_N29_4_V == 'init' and Rules_N29_6 is not None  and Rules_N29_7 is not None  and Rules_N29_9 is not None ):
 			# Execute rule Rules/Resolve_NoAttr_N29
 			print('Execute rule Rules/Resolve_NoAttr_N29')
@@ -1161,6 +1193,7 @@ class ModelverseKernel(object):
 			Rules_N29_5, = yield [('CNV', ['finish'])]
 			Rules___1067, = yield [('CD', [Rules_N29_2, 'phase', Rules_N29_5])]
 			Rules___1071, = yield [('CD', [Rules_N29_2, 'returnvalue', Rules_N29_7])]
+			print(str(locals()))
 		elif (True  and Rules_N30_1 is not None  and Rules_N30_2 is not None  and Rules_N30_4 is not None  and Rules_N30_4_V == 'eval' and Rules_N30_5 is not None  and Rules_N30_5_V['value'] == 'return'):
 			# Execute rule Rules/Return_Eval_N30
 			print('Execute rule Rules/Return_Eval_N30')
@@ -1185,6 +1218,7 @@ class ModelverseKernel(object):
 			yield [('DE', [Rules_N30_7_DEL])]
 			Rules___1092, = yield [('CD', [Rules_N30_1, 'frame', Rules_N30_3])]
 			Rules___1102, = yield [('CD', [Rules_N30_3, 'returnvalue', Rules_N30_6])]
+			print(str(locals()))
 		elif (True  and Rules_N31_1 is not None  and Rules_N31_2 is not None  and Rules_N31_4 is not None  and Rules_N31_4_V == 'init' and Rules_N31_5 is not None  and Rules_N31_5_V['value'] == 'return' and Rules_N31_6 is None ):
 			# Execute rule Rules/Return_NoValue_N31
 			print('Execute rule Rules/Return_NoValue_N31')
@@ -1203,6 +1237,7 @@ class ModelverseKernel(object):
 			yield [('DE', [Rules_N31_3_DEL])]
 			Rules_N31_6, = yield [('RD', [Rules_N31_5, 'value'])]
 			Rules___1117, = yield [('CD', [Rules_N31_1, 'frame', Rules_N31_3])]
+			print(str(locals()))
 		elif (True  and Rules_N32_1 is not None  and Rules_N32_2 is not None  and Rules_N32_3 is not None  and Rules_N32_3_V == 'init' and Rules_N32_5 is not None  and Rules_N32_5_V['value'] == 'return' and Rules_N32_7 is not None ):
 			# Execute rule Rules/Return_Value_N32
 			print('Execute rule Rules/Return_Value_N32')
@@ -1223,6 +1258,7 @@ class ModelverseKernel(object):
 			Rules___1150, = yield [('CD', [Rules_N32_4, 'prev', Rules_N32_6])]
 			Rules___1152, = yield [('CD', [Rules_N32_6, 'inst', Rules_N32_5])]
 			Rules___1154, = yield [('CD', [Rules_N32_6, 'phase', Rules_N32_8])]
+			print(str(locals()))
 		elif (True  and Rules_N33_1 is not None  and Rules_N33_2 is not None  and Rules_N33_3 is not None  and Rules_N33_3_V == 'init' and Rules_N33_5 is not None  and Rules_N33_5_V['value'] == 'while'):
 			# Execute rule Rules/While_Cond_N33
 			print('Execute rule Rules/While_Cond_N33')
@@ -1243,6 +1279,7 @@ class ModelverseKernel(object):
 			Rules___1181, = yield [('CD', [Rules_N33_4, 'prev', Rules_N33_6])]
 			Rules___1183, = yield [('CD', [Rules_N33_6, 'inst', Rules_N33_5])]
 			Rules___1185, = yield [('CD', [Rules_N33_6, 'phase', Rules_N33_8])]
+			print(str(locals()))
 		elif (True  and Rules_N34_1 is not None  and Rules_N34_2 is not None  and Rules_N34_3 is not None  and Rules_N34_3_V == 'cond' and Rules_N34_5 is not None  and Rules_N34_5_V['value'] == 'while' and Rules_N34_6 is not None  and Rules_N34_6_V == False):
 			# Execute rule Rules/While_False_N34
 			print('Execute rule Rules/While_False_N34')
@@ -1255,6 +1292,7 @@ class ModelverseKernel(object):
 			Rules_N34_6, = yield [('RD', [Rules_N34_2, 'returnvalue'])]
 			Rules_N34_4, = yield [('CNV', ['finish'])]
 			Rules___1202, = yield [('CD', [Rules_N34_2, 'phase', Rules_N34_4])]
+			print(str(locals()))
 		elif (True  and Rules_N35_1 is not None  and Rules_N35_2 is not None  and Rules_N35_3 is not None  and Rules_N35_3_V == 'cond' and Rules_N35_5 is not None  and Rules_N35_5_V['value'] == 'while' and Rules_N35_7 is not None  and Rules_N35_7_V == True):
 			# Execute rule Rules/While_True_N35
 			print('Execute rule Rules/While_True_N35')
@@ -1284,6 +1322,7 @@ class ModelverseKernel(object):
 			Rules___1240, = yield [('CD', [Rules_N35_8, 'phase', Rules_N35_10])]
 			Rules___1246, = yield [('CD', [Rules_N35_8, taskname, Rules_N35_5])]
 			Rules___1248, = yield [('CD', [Rules_N35_6, 'prev', Rules_N35_8])]
+			print(str(locals()))
 		else:
 			# no rules were applicable, so idle for some time
 			pass #TODO

+ 4 - 2
kernel/rules/MvK_rules.mvc

@@ -466,6 +466,7 @@ Rule Call_Call_Params_N8 {
     Match N8_13 {}
     Match N8_14 {
         value = "'call'"
+        match = True
     }
     Match N8_15 {}
 
@@ -494,7 +495,7 @@ Rule Call_Call_Params_N8 {
         value = "'IP'"
     }
     CreateEdge (N8_3, N8_7) {
-        value = "'finish'"
+        value = "'phase'"
     }
     MatchEdge (N8_3, N8_8) {
         value = "'returnvalue'"
@@ -575,7 +576,7 @@ Rule Call_Params_First_Multi_N9 {
         value = "'IP'"
     }
     CreateEdge (N9_2, N9_11) {
-        value = "'init'"
+        value = "'phase'"
     }
     DeleteEdge (N9_2, N9_15) {
         value = "'phase'"
@@ -1049,6 +1050,7 @@ Rule Call_Resolve_Params_N14 {
     Match N14_6 {}
     Match N14_7 {
         value = "'init'"
+        match = True
     }
     Match N14_8 {
         match = True

+ 1 - 1
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Mon Nov 27 16:06:55 2017
+Date:   Mon Nov 27 16:40:00 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server