Fix warnings when compiling matiec
authorlaurent
Wed, 29 Jun 2011 12:28:59 +0200
changeset 331 e08e14782a4f
parent 330 d2facfcf485a
child 332 0f1d91a37506
Fix warnings when compiling matiec
absyntax_utils/search_type_code.c
stage3/visit_expression_type.cc
stage4/generate_c/il_code_gen.c
--- a/absyntax_utils/search_type_code.c	Wed Jun 29 12:28:13 2011 +0200
+++ b/absyntax_utils/search_type_code.c	Wed Jun 29 12:28:59 2011 +0200
@@ -17094,7 +17094,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17120,7 +17120,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17146,7 +17146,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17172,7 +17172,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17198,7 +17198,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17224,7 +17224,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17250,7 +17250,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17276,7 +17276,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17302,7 +17302,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17328,7 +17328,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17354,7 +17354,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17380,7 +17380,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17406,7 +17406,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17432,7 +17432,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17458,7 +17458,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17484,7 +17484,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17510,7 +17510,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17536,7 +17536,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17562,7 +17562,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -17588,7 +17588,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17614,7 +17614,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17640,7 +17640,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17666,7 +17666,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17692,7 +17692,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17718,7 +17718,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17744,7 +17744,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17770,7 +17770,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17796,7 +17796,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17822,7 +17822,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17848,7 +17848,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17874,7 +17874,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17900,7 +17900,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17926,7 +17926,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17952,7 +17952,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -17978,7 +17978,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -18004,7 +18004,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -18030,7 +18030,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -18056,7 +18056,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -18082,7 +18082,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18108,7 +18108,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18134,7 +18134,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18160,7 +18160,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18186,7 +18186,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18212,7 +18212,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18238,7 +18238,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18264,7 +18264,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18290,7 +18290,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18316,7 +18316,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18342,7 +18342,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18368,7 +18368,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18394,7 +18394,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18420,7 +18420,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18446,7 +18446,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18472,7 +18472,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18498,7 +18498,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18524,7 +18524,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18550,7 +18550,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -18576,7 +18576,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18602,7 +18602,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18628,7 +18628,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18654,7 +18654,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18680,7 +18680,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18706,7 +18706,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18732,7 +18732,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18758,7 +18758,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18784,7 +18784,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18810,7 +18810,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18836,7 +18836,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18862,7 +18862,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18888,7 +18888,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18914,7 +18914,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18940,7 +18940,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18966,7 +18966,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -18992,7 +18992,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -19018,7 +19018,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -19044,7 +19044,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -19070,7 +19070,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19096,7 +19096,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19122,7 +19122,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19148,7 +19148,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19174,7 +19174,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19200,7 +19200,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19226,7 +19226,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19252,7 +19252,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19278,7 +19278,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19304,7 +19304,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19330,7 +19330,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19356,7 +19356,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19382,7 +19382,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19408,7 +19408,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19434,7 +19434,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -19460,7 +19460,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19486,7 +19486,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19512,7 +19512,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19538,7 +19538,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19564,7 +19564,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19590,7 +19590,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19616,7 +19616,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19642,7 +19642,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19668,7 +19668,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19694,7 +19694,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19720,7 +19720,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19746,7 +19746,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19772,7 +19772,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19798,7 +19798,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19824,7 +19824,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19850,7 +19850,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19876,7 +19876,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19902,7 +19902,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19928,7 +19928,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -19954,7 +19954,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -19980,7 +19980,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20006,7 +20006,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20032,7 +20032,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20058,7 +20058,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20084,7 +20084,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20110,7 +20110,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20136,7 +20136,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20162,7 +20162,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20188,7 +20188,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20214,7 +20214,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20240,7 +20240,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20266,7 +20266,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20292,7 +20292,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20318,7 +20318,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -20344,7 +20344,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20370,7 +20370,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20396,7 +20396,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20422,7 +20422,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20448,7 +20448,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20474,7 +20474,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20500,7 +20500,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20526,7 +20526,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20552,7 +20552,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20578,7 +20578,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20604,7 +20604,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20630,7 +20630,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20656,7 +20656,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20682,7 +20682,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20708,7 +20708,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -20734,7 +20734,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20760,7 +20760,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20786,7 +20786,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20812,7 +20812,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20838,7 +20838,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20864,7 +20864,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20890,7 +20890,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20916,7 +20916,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20942,7 +20942,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20968,7 +20968,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -20994,7 +20994,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21020,7 +21020,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21046,7 +21046,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21072,7 +21072,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21098,7 +21098,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21124,7 +21124,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21150,7 +21150,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21176,7 +21176,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21202,7 +21202,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -21228,7 +21228,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21254,7 +21254,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21280,7 +21280,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21306,7 +21306,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21332,7 +21332,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21358,7 +21358,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21384,7 +21384,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21410,7 +21410,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21436,7 +21436,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21462,7 +21462,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21488,7 +21488,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21514,7 +21514,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21540,7 +21540,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21566,7 +21566,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21592,7 +21592,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21618,7 +21618,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21644,7 +21644,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21670,7 +21670,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21696,7 +21696,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -21722,7 +21722,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21748,7 +21748,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21774,7 +21774,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21800,7 +21800,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21826,7 +21826,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21852,7 +21852,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21878,7 +21878,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21904,7 +21904,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21930,7 +21930,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21956,7 +21956,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -21982,7 +21982,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22008,7 +22008,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22034,7 +22034,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22060,7 +22060,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22086,7 +22086,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22112,7 +22112,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22138,7 +22138,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22164,7 +22164,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22190,7 +22190,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -22216,7 +22216,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22242,7 +22242,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22268,7 +22268,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22294,7 +22294,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22320,7 +22320,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22346,7 +22346,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22372,7 +22372,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22398,7 +22398,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22424,7 +22424,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22450,7 +22450,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22476,7 +22476,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22502,7 +22502,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22528,7 +22528,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22554,7 +22554,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22580,7 +22580,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22606,7 +22606,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22632,7 +22632,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22658,7 +22658,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22684,7 +22684,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -22710,7 +22710,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22736,7 +22736,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22762,7 +22762,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22788,7 +22788,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22814,7 +22814,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22840,7 +22840,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22866,7 +22866,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22892,7 +22892,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22918,7 +22918,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22944,7 +22944,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22970,7 +22970,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -22996,7 +22996,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23022,7 +23022,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23048,7 +23048,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23074,7 +23074,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23100,7 +23100,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23126,7 +23126,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23152,7 +23152,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23178,7 +23178,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -23204,7 +23204,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23230,7 +23230,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23256,7 +23256,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23282,7 +23282,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23308,7 +23308,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23334,7 +23334,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23360,7 +23360,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23386,7 +23386,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23412,7 +23412,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23438,7 +23438,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23464,7 +23464,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23490,7 +23490,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23516,7 +23516,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23542,7 +23542,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23568,7 +23568,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23594,7 +23594,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23620,7 +23620,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23646,7 +23646,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23672,7 +23672,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -23698,7 +23698,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23724,7 +23724,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23750,7 +23750,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23776,7 +23776,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23802,7 +23802,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23828,7 +23828,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23854,7 +23854,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23880,7 +23880,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23906,7 +23906,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23932,7 +23932,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23958,7 +23958,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -23984,7 +23984,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24010,7 +24010,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24036,7 +24036,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24062,7 +24062,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24088,7 +24088,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24114,7 +24114,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24140,7 +24140,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24166,7 +24166,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -24192,7 +24192,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24218,7 +24218,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24244,7 +24244,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24270,7 +24270,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24296,7 +24296,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24322,7 +24322,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24348,7 +24348,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24374,7 +24374,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24400,7 +24400,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24426,7 +24426,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24452,7 +24452,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24478,7 +24478,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24504,7 +24504,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24530,7 +24530,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24556,7 +24556,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24582,7 +24582,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24608,7 +24608,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24634,7 +24634,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24660,7 +24660,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -24686,7 +24686,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24712,7 +24712,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24738,7 +24738,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24764,7 +24764,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24790,7 +24790,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24816,7 +24816,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24842,7 +24842,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24868,7 +24868,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24894,7 +24894,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24920,7 +24920,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24946,7 +24946,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24972,7 +24972,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -24998,7 +24998,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -25024,7 +25024,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -25050,7 +25050,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -25076,7 +25076,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -25102,7 +25102,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -25128,7 +25128,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -25154,7 +25154,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -25180,7 +25180,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25206,7 +25206,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25232,7 +25232,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25258,7 +25258,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25284,7 +25284,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25310,7 +25310,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25336,7 +25336,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25362,7 +25362,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25388,7 +25388,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25414,7 +25414,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25440,7 +25440,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25466,7 +25466,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25492,7 +25492,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25518,7 +25518,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25544,7 +25544,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25570,7 +25570,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25596,7 +25596,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25622,7 +25622,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25648,7 +25648,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -25674,7 +25674,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25700,7 +25700,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25726,7 +25726,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25752,7 +25752,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25778,7 +25778,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25804,7 +25804,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25830,7 +25830,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25856,7 +25856,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25882,7 +25882,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25908,7 +25908,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25934,7 +25934,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25960,7 +25960,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -25986,7 +25986,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -26012,7 +26012,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -26038,7 +26038,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -26064,7 +26064,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26090,7 +26090,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26116,7 +26116,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26142,7 +26142,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26168,7 +26168,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26194,7 +26194,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26220,7 +26220,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26246,7 +26246,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26272,7 +26272,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26298,7 +26298,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26324,7 +26324,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26350,7 +26350,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26376,7 +26376,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26402,7 +26402,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26428,7 +26428,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26454,7 +26454,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26480,7 +26480,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26506,7 +26506,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26532,7 +26532,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -26558,7 +26558,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -26584,7 +26584,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -26610,7 +26610,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -26636,7 +26636,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -26662,7 +26662,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -26688,7 +26688,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -26714,7 +26714,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -26740,7 +26740,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -26766,7 +26766,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -26792,7 +26792,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -26818,7 +26818,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -26844,7 +26844,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_num_type(IN_type_symbol))
             {
@@ -26870,7 +26870,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -26896,7 +26896,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -26922,7 +26922,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -26948,7 +26948,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -26974,7 +26974,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -27000,7 +27000,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -27026,7 +27026,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -27052,7 +27052,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -27078,7 +27078,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -27104,7 +27104,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -27130,7 +27130,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -27272,7 +27272,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -27352,7 +27352,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -27541,7 +27541,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -27621,7 +27621,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -27670,7 +27670,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol))
             {
@@ -27719,7 +27719,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             
             {
@@ -27745,7 +27745,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -27794,7 +27794,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -27843,7 +27843,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -27892,7 +27892,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -27941,7 +27941,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -27990,7 +27990,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -28039,7 +28039,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -28088,7 +28088,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -28137,7 +28137,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -28194,7 +28194,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -28243,7 +28243,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
             {
@@ -28292,7 +28292,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
             {
@@ -28341,7 +28341,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
             {
@@ -28390,7 +28390,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
             {
@@ -28439,7 +28439,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
             {
@@ -28488,7 +28488,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
             {
@@ -28537,7 +28537,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
             {
@@ -28586,7 +28586,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
             {
@@ -28612,7 +28612,7 @@
 
         {
             symbol_c *G_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = G_type_symbol;
             
             if(G_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -28684,7 +28684,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -28733,7 +28733,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -28782,7 +28782,7 @@
 
         {
             symbol_c *MN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = MN_type_symbol;
             
             
             {
@@ -28854,7 +28854,7 @@
 
         {
             symbol_c *K_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = K_type_symbol;
             
             if(K_type_symbol == NULL || search_expression_type->is_integer_type(K_type_symbol))
             {
@@ -28926,7 +28926,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -28975,7 +28975,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -29024,7 +29024,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -29073,7 +29073,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -29122,7 +29122,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -29171,7 +29171,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -29220,7 +29220,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29246,7 +29246,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29295,7 +29295,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29344,7 +29344,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29416,7 +29416,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29465,7 +29465,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -29514,7 +29514,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29586,7 +29586,7 @@
 
         {
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29658,7 +29658,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -29753,7 +29753,7 @@
 
         {
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
--- a/stage3/visit_expression_type.cc	Wed Jun 29 12:28:13 2011 +0200
+++ b/stage3/visit_expression_type.cc	Wed Jun 29 12:28:59 2011 +0200
@@ -2002,11 +2002,11 @@
     symbolic_variable_c *hi = dynamic_cast<symbolic_variable_c *>(symbol->l_exp);  
     if (hi != NULL) {
       identifier_c *hi1 = dynamic_cast<identifier_c *>(hi->var_name);  
-      if (hi1 != NULL) printf(hi1->value);
+      if (hi1 != NULL) printf("%s", hi1->value);
     }
     printf(" := ");
     hex_integer_c *hi2 = dynamic_cast<hex_integer_c *>(symbol->r_exp);  
-    if (hi2 != NULL) printf(hi2->value);
+    if (hi2 != NULL) printf("%s", hi2->value);
     printf("\n");
   } // if (debug)
   
--- a/stage4/generate_c/il_code_gen.c	Wed Jun 29 12:28:13 2011 +0200
+++ b/stage4/generate_c/il_code_gen.c	Wed Jun 29 12:28:59 2011 +0200
@@ -39,7 +39,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -75,7 +75,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -111,7 +111,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -147,7 +147,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -183,7 +183,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -219,7 +219,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -255,7 +255,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -291,7 +291,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -327,7 +327,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -363,7 +363,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -399,7 +399,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -435,7 +435,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -471,7 +471,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -508,7 +508,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -544,7 +544,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -580,7 +580,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -616,7 +616,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -652,7 +652,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -688,7 +688,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
@@ -724,7 +724,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -761,7 +761,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -798,7 +798,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -835,7 +835,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -871,7 +871,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -908,7 +908,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -944,7 +944,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -980,7 +980,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1017,7 +1017,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1054,7 +1054,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1090,7 +1090,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1127,7 +1127,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1164,7 +1164,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1201,7 +1201,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1238,7 +1238,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1275,7 +1275,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1312,7 +1312,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1349,7 +1349,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1385,7 +1385,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
@@ -1422,7 +1422,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1459,7 +1459,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1496,7 +1496,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1533,7 +1533,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1569,7 +1569,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1606,7 +1606,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1642,7 +1642,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1678,7 +1678,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1715,7 +1715,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1752,7 +1752,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1788,7 +1788,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1825,7 +1825,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1862,7 +1862,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1899,7 +1899,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1936,7 +1936,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -1973,7 +1973,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -2010,7 +2010,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -2047,7 +2047,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -2083,7 +2083,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
@@ -2120,7 +2120,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2157,7 +2157,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2194,7 +2194,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2231,7 +2231,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2267,7 +2267,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2304,7 +2304,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2340,7 +2340,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2376,7 +2376,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2413,7 +2413,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2450,7 +2450,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2486,7 +2486,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2523,7 +2523,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2560,7 +2560,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2597,7 +2597,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2634,7 +2634,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2671,7 +2671,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2708,7 +2708,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2745,7 +2745,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2781,7 +2781,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
@@ -2818,7 +2818,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -2854,7 +2854,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -2890,7 +2890,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -2926,7 +2926,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -2962,7 +2962,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -2998,7 +2998,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3034,7 +3034,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3070,7 +3070,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3106,7 +3106,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3142,7 +3142,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3178,7 +3178,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3214,7 +3214,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3250,7 +3250,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3286,7 +3286,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3322,7 +3322,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -3358,7 +3358,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3395,7 +3395,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3432,7 +3432,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3469,7 +3469,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3506,7 +3506,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3542,7 +3542,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3578,7 +3578,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3614,7 +3614,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3651,7 +3651,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3688,7 +3688,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3724,7 +3724,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3761,7 +3761,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3798,7 +3798,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3835,7 +3835,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3872,7 +3872,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3909,7 +3909,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3946,7 +3946,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -3983,7 +3983,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -4019,7 +4019,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -4056,7 +4056,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4092,7 +4092,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4128,7 +4128,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4164,7 +4164,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4200,7 +4200,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4236,7 +4236,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4272,7 +4272,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4308,7 +4308,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4344,7 +4344,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4380,7 +4380,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4416,7 +4416,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4452,7 +4452,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4488,7 +4488,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4524,7 +4524,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4560,7 +4560,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -4596,7 +4596,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4632,7 +4632,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4668,7 +4668,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4704,7 +4704,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4740,7 +4740,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4776,7 +4776,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4812,7 +4812,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4848,7 +4848,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4884,7 +4884,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4920,7 +4920,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4956,7 +4956,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -4992,7 +4992,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -5028,7 +5028,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -5064,7 +5064,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -5100,7 +5100,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -5136,7 +5136,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5173,7 +5173,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5210,7 +5210,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5247,7 +5247,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5284,7 +5284,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5320,7 +5320,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5357,7 +5357,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5393,7 +5393,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5429,7 +5429,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5466,7 +5466,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5502,7 +5502,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5539,7 +5539,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5576,7 +5576,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5613,7 +5613,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5650,7 +5650,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5687,7 +5687,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5724,7 +5724,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5761,7 +5761,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5797,7 +5797,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -5834,7 +5834,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -5871,7 +5871,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -5908,7 +5908,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -5945,7 +5945,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -5982,7 +5982,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6018,7 +6018,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6055,7 +6055,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6091,7 +6091,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6127,7 +6127,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6164,7 +6164,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6200,7 +6200,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6237,7 +6237,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6274,7 +6274,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6311,7 +6311,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6348,7 +6348,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6385,7 +6385,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6422,7 +6422,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6459,7 +6459,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6495,7 +6495,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -6532,7 +6532,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6568,7 +6568,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6604,7 +6604,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6640,7 +6640,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6676,7 +6676,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6712,7 +6712,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6748,7 +6748,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6784,7 +6784,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6820,7 +6820,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6856,7 +6856,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6892,7 +6892,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6928,7 +6928,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -6964,7 +6964,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -7000,7 +7000,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -7036,7 +7036,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -7072,7 +7072,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -7108,7 +7108,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -7144,7 +7144,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -7180,7 +7180,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -7216,7 +7216,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7253,7 +7253,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7290,7 +7290,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7327,7 +7327,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7364,7 +7364,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7400,7 +7400,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7437,7 +7437,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7473,7 +7473,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7509,7 +7509,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7546,7 +7546,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7583,7 +7583,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7619,7 +7619,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7656,7 +7656,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7693,7 +7693,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7730,7 +7730,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7767,7 +7767,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7804,7 +7804,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7841,7 +7841,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7877,7 +7877,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -7914,7 +7914,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -7951,7 +7951,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -7988,7 +7988,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8025,7 +8025,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8062,7 +8062,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8098,7 +8098,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8135,7 +8135,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8171,7 +8171,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8207,7 +8207,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8244,7 +8244,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8281,7 +8281,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8317,7 +8317,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8354,7 +8354,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8391,7 +8391,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8428,7 +8428,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8465,7 +8465,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8502,7 +8502,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8539,7 +8539,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8575,7 +8575,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -8612,7 +8612,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8649,7 +8649,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8685,7 +8685,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8721,7 +8721,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8757,7 +8757,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8793,7 +8793,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8829,7 +8829,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8865,7 +8865,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8901,7 +8901,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8937,7 +8937,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -8973,7 +8973,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9009,7 +9009,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9045,7 +9045,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9081,7 +9081,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9117,7 +9117,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9153,7 +9153,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9189,7 +9189,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9225,7 +9225,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9261,7 +9261,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
@@ -9297,7 +9297,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9334,7 +9334,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9371,7 +9371,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9408,7 +9408,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9445,7 +9445,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9481,7 +9481,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9518,7 +9518,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9554,7 +9554,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9590,7 +9590,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9627,7 +9627,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9664,7 +9664,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9700,7 +9700,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9737,7 +9737,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9774,7 +9774,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9811,7 +9811,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9848,7 +9848,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9885,7 +9885,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9922,7 +9922,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9958,7 +9958,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -9995,7 +9995,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10032,7 +10032,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10069,7 +10069,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10106,7 +10106,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10143,7 +10143,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10179,7 +10179,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10216,7 +10216,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10252,7 +10252,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10288,7 +10288,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10325,7 +10325,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10362,7 +10362,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10398,7 +10398,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10435,7 +10435,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10472,7 +10472,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10509,7 +10509,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10546,7 +10546,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10583,7 +10583,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10620,7 +10620,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10656,7 +10656,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -10693,7 +10693,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10730,7 +10730,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10767,7 +10767,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10804,7 +10804,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10841,7 +10841,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10877,7 +10877,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10914,7 +10914,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10950,7 +10950,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -10986,7 +10986,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11023,7 +11023,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11060,7 +11060,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11096,7 +11096,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11133,7 +11133,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11170,7 +11170,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11207,7 +11207,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11244,7 +11244,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11281,7 +11281,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11318,7 +11318,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11354,7 +11354,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -11391,7 +11391,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11428,7 +11428,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11465,7 +11465,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11502,7 +11502,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11539,7 +11539,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11575,7 +11575,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11612,7 +11612,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11648,7 +11648,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11684,7 +11684,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11721,7 +11721,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11758,7 +11758,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11794,7 +11794,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11831,7 +11831,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11868,7 +11868,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11905,7 +11905,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11942,7 +11942,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -11979,7 +11979,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -12016,7 +12016,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -12052,7 +12052,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -12089,7 +12089,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12125,7 +12125,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12161,7 +12161,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12197,7 +12197,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12233,7 +12233,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12269,7 +12269,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12305,7 +12305,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12341,7 +12341,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12377,7 +12377,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12413,7 +12413,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12449,7 +12449,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12485,7 +12485,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12521,7 +12521,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12557,7 +12557,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12593,7 +12593,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -12629,7 +12629,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12666,7 +12666,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12703,7 +12703,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12740,7 +12740,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12777,7 +12777,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12813,7 +12813,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12850,7 +12850,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12886,7 +12886,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12922,7 +12922,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12959,7 +12959,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -12996,7 +12996,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13032,7 +13032,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13069,7 +13069,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13106,7 +13106,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13143,7 +13143,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13180,7 +13180,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13217,7 +13217,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13254,7 +13254,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13291,7 +13291,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
@@ -13327,7 +13327,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -13365,7 +13365,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
@@ -13401,7 +13401,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
@@ -13437,7 +13437,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
@@ -13473,7 +13473,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
@@ -13509,7 +13509,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
@@ -13545,7 +13545,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
@@ -13581,7 +13581,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
@@ -13617,7 +13617,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
@@ -13653,7 +13653,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -13688,7 +13688,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -13723,7 +13723,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_num_type(IN_type_symbol))
             {
@@ -13761,7 +13761,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -13799,7 +13799,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -13837,7 +13837,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -13875,7 +13875,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -13913,7 +13913,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -13951,7 +13951,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -13989,7 +13989,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -14027,7 +14027,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -14065,7 +14065,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -14103,7 +14103,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
             {
@@ -14141,7 +14141,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -14355,7 +14355,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -14491,7 +14491,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -14748,7 +14748,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -14853,7 +14853,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
             {
@@ -14916,7 +14916,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol))
             {
@@ -14979,7 +14979,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             
             {
@@ -15019,7 +15019,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -15081,7 +15081,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -15143,7 +15143,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -15205,7 +15205,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -15269,7 +15269,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -15331,7 +15331,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -15393,7 +15393,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -15455,7 +15455,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
@@ -15517,7 +15517,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
@@ -15596,7 +15596,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
@@ -15660,7 +15660,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
             {
@@ -15723,7 +15723,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
             {
@@ -15786,7 +15786,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
             {
@@ -15849,7 +15849,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
             {
@@ -15912,7 +15912,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
             {
@@ -16006,7 +16006,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
             {
@@ -16100,7 +16100,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
             {
@@ -16194,7 +16194,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
             {
@@ -16232,7 +16232,7 @@
             symbol_c *G_param_value = &this->default_variable_name;
         
             symbol_c *G_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = G_type_symbol;
             
             if(G_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
@@ -16322,7 +16322,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -16416,7 +16416,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -16510,7 +16510,7 @@
             symbol_c *MN_param_value = &this->default_variable_name;
         
             symbol_c *MN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = MN_type_symbol;
             
             
             {
@@ -16604,7 +16604,7 @@
             symbol_c *K_param_value = &this->default_variable_name;
         
             symbol_c *K_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = K_type_symbol;
             
             if(K_type_symbol == NULL || search_expression_type->is_integer_type(K_type_symbol))
             {
@@ -16725,7 +16725,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -16819,7 +16819,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -16913,7 +16913,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -17007,7 +17007,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -17101,7 +17101,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -17195,7 +17195,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             
             {
@@ -17289,7 +17289,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17324,7 +17324,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17386,7 +17386,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17448,7 +17448,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17537,7 +17537,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17630,7 +17630,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
@@ -17692,7 +17692,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17781,7 +17781,7 @@
             symbol_c *IN_param_value = &this->default_variable_name;
         
             symbol_c *IN_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN_type_symbol;
             
             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17870,7 +17870,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
@@ -17986,7 +17986,7 @@
             symbol_c *IN1_param_value = &this->default_variable_name;
         
             symbol_c *IN1_type_symbol = param_data_type;
-            last_type_symbol = param_data_type;
+            last_type_symbol = IN1_type_symbol;
             
             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {