absyntax_utils/search_type_code.c
changeset 331 e08e14782a4f
parent 316 baa7a1585585
child 348 990ecb883731
--- 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))
             {