stage4/generate_cc/st_code_gen.c
changeset 42 b45c7f34dec1
parent 41 8998c8b24b60
child 43 37dd4e2fd2ec
--- a/stage4/generate_cc/st_code_gen.c	Fri Jul 13 19:20:26 2007 +0200
+++ b/stage4/generate_cc/st_code_gen.c	Tue Jul 17 12:19:59 2007 +0200
@@ -23,7 +23,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -59,7 +59,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -95,7 +95,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -131,7 +131,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -167,7 +167,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -203,7 +203,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -239,7 +239,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -275,7 +275,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -311,7 +311,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -347,7 +347,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -383,7 +383,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -420,7 +420,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -457,7 +457,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -494,7 +494,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -531,7 +531,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -568,7 +568,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -604,7 +604,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -640,7 +640,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -676,7 +676,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -712,7 +712,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -748,7 +748,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -784,7 +784,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -820,7 +820,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -856,7 +856,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -892,7 +892,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -928,7 +928,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -964,7 +964,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -1000,7 +1000,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -1036,7 +1036,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -1072,7 +1072,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -1109,7 +1109,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -1146,7 +1146,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -1183,7 +1183,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -1220,7 +1220,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -1257,7 +1257,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -1293,7 +1293,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -1329,7 +1329,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -1365,7 +1365,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(sint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -1401,7 +1401,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -1437,7 +1437,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -1473,7 +1473,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -1509,7 +1509,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -1545,7 +1545,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -1581,7 +1581,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -1617,7 +1617,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -1653,7 +1653,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -1689,7 +1689,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -1725,7 +1725,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -1761,7 +1761,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -1798,7 +1798,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -1835,7 +1835,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -1872,7 +1872,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -1909,7 +1909,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -1946,7 +1946,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -1982,7 +1982,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -2018,7 +2018,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -2054,7 +2054,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(int_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -2090,7 +2090,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -2126,7 +2126,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -2162,7 +2162,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -2198,7 +2198,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -2234,7 +2234,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -2270,7 +2270,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -2306,7 +2306,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -2342,7 +2342,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -2378,7 +2378,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -2414,7 +2414,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -2450,7 +2450,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -2487,7 +2487,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -2524,7 +2524,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -2561,7 +2561,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -2598,7 +2598,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -2635,7 +2635,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -2671,7 +2671,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -2707,7 +2707,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -2743,7 +2743,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -2779,7 +2779,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -2815,7 +2815,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -2851,7 +2851,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -2887,7 +2887,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -2923,7 +2923,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -2959,7 +2959,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -2995,7 +2995,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -3031,7 +3031,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -3067,7 +3067,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -3103,7 +3103,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -3139,7 +3139,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -3176,7 +3176,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -3213,7 +3213,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -3250,7 +3250,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -3287,7 +3287,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -3324,7 +3324,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -3360,7 +3360,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -3396,7 +3396,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -3432,7 +3432,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -3468,7 +3468,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -3504,7 +3504,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -3540,7 +3540,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -3576,7 +3576,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -3612,7 +3612,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -3648,7 +3648,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -3684,7 +3684,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -3720,7 +3720,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -3756,7 +3756,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -3792,7 +3792,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -3828,7 +3828,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -3865,7 +3865,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -3902,7 +3902,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -3939,7 +3939,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -3976,7 +3976,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -4013,7 +4013,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -4049,7 +4049,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -4085,7 +4085,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -4121,7 +4121,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -4157,7 +4157,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -4193,7 +4193,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -4229,7 +4229,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -4265,7 +4265,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -4301,7 +4301,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -4337,7 +4337,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -4373,7 +4373,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -4409,7 +4409,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -4445,7 +4445,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -4481,7 +4481,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -4517,7 +4517,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -4554,7 +4554,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -4591,7 +4591,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -4628,7 +4628,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -4665,7 +4665,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -4702,7 +4702,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -4738,7 +4738,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -4774,7 +4774,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -4810,7 +4810,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -4846,7 +4846,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -4882,7 +4882,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -4918,7 +4918,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -4954,7 +4954,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -4990,7 +4990,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -5026,7 +5026,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -5062,7 +5062,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -5098,7 +5098,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -5134,7 +5134,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -5170,7 +5170,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -5206,7 +5206,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -5243,7 +5243,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -5280,7 +5280,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -5317,7 +5317,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -5354,7 +5354,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -5391,7 +5391,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -5427,7 +5427,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -5463,7 +5463,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -5499,7 +5499,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -5535,7 +5535,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -5571,7 +5571,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -5607,7 +5607,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -5643,7 +5643,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -5679,7 +5679,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -5715,7 +5715,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -5751,7 +5751,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -5787,7 +5787,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -5823,7 +5823,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -5859,7 +5859,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -5895,7 +5895,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -5932,7 +5932,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -5969,7 +5969,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -6006,7 +6006,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -6043,7 +6043,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -6080,7 +6080,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -6116,7 +6116,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -6152,7 +6152,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -6188,7 +6188,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -6224,7 +6224,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -6260,7 +6260,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -6296,7 +6296,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -6332,7 +6332,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -6368,7 +6368,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -6404,7 +6404,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -6440,7 +6440,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -6476,7 +6476,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -6512,7 +6512,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -6548,7 +6548,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
@@ -6584,7 +6584,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -6621,7 +6621,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -6658,7 +6658,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -6695,7 +6695,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -6732,7 +6732,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -6769,7 +6769,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -6805,7 +6805,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -6841,7 +6841,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -6877,7 +6877,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(real_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -6913,7 +6913,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
@@ -6949,7 +6949,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -6985,7 +6985,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -7021,7 +7021,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -7057,7 +7057,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -7093,7 +7093,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -7129,7 +7129,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -7165,7 +7165,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -7201,7 +7201,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -7237,7 +7237,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
@@ -7273,7 +7273,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -7310,7 +7310,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -7347,7 +7347,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -7384,7 +7384,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -7421,7 +7421,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
@@ -7458,7 +7458,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
@@ -7494,7 +7494,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
@@ -7530,7 +7530,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -7566,7 +7566,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lreal_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
@@ -7585,5784 +7585,5636 @@
     break;
 
 /****
- *TIME_TO_BOOL
- */
-    case function_time_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+ *TIME_TO_SINT
+ */
+    case function_time_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_sint*/
+    break;
+
+/****
+ *TIME_TO_INT
+ */
+    case function_time_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_int*/
+    break;
+
+/****
+ *TIME_TO_DINT
+ */
+    case function_time_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_dint*/
+    break;
+
+/****
+ *TIME_TO_LINT
+ */
+    case function_time_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_lint*/
+    break;
+
+/****
+ *TIME_TO_USINT
+ */
+    case function_time_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_usint*/
+    break;
+
+/****
+ *TIME_TO_UINT
+ */
+    case function_time_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_uint*/
+    break;
+
+/****
+ *TIME_TO_UDINT
+ */
+    case function_time_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_udint*/
+    break;
+
+/****
+ *TIME_TO_ULINT
+ */
+    case function_time_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_ulint*/
+    break;
+
+/****
+ *TIME_TO_REAL
+ */
+    case function_time_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_real*/
+    break;
+
+/****
+ *TIME_TO_LREAL
+ */
+    case function_time_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_lreal*/
+    break;
+
+/****
+ *TIME_TO_STRING
+ */
+    case function_time_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_string*/
+    break;
+
+/****
+ *TIME_TO_BYTE
+ */
+    case function_time_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_byte*/
+    break;
+
+/****
+ *TIME_TO_WORD
+ */
+    case function_time_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_word*/
+    break;
+
+/****
+ *TIME_TO_DWORD
+ */
+    case function_time_to_dword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_dword*/
+    break;
+
+/****
+ *TIME_TO_LWORD
+ */
+    case function_time_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_time_to_lword*/
+    break;
+
+/****
+ *DATE_TO_SINT
+ */
+    case function_date_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_sint*/
+    break;
+
+/****
+ *DATE_TO_INT
+ */
+    case function_date_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_int*/
+    break;
+
+/****
+ *DATE_TO_DINT
+ */
+    case function_date_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_dint*/
+    break;
+
+/****
+ *DATE_TO_LINT
+ */
+    case function_date_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_lint*/
+    break;
+
+/****
+ *DATE_TO_USINT
+ */
+    case function_date_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_usint*/
+    break;
+
+/****
+ *DATE_TO_UINT
+ */
+    case function_date_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_uint*/
+    break;
+
+/****
+ *DATE_TO_UDINT
+ */
+    case function_date_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_udint*/
+    break;
+
+/****
+ *DATE_TO_ULINT
+ */
+    case function_date_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_ulint*/
+    break;
+
+/****
+ *DATE_TO_REAL
+ */
+    case function_date_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_real*/
+    break;
+
+/****
+ *DATE_TO_LREAL
+ */
+    case function_date_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_lreal*/
+    break;
+
+/****
+ *DATE_TO_STRING
+ */
+    case function_date_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__date_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_string*/
+    break;
+
+/****
+ *DATE_TO_BYTE
+ */
+    case function_date_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_byte*/
+    break;
+
+/****
+ *DATE_TO_WORD
+ */
+    case function_date_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_word*/
+    break;
+
+/****
+ *DATE_TO_DWORD
+ */
+    case function_date_to_dword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_dword*/
+    break;
+
+/****
+ *DATE_TO_LWORD
+ */
+    case function_date_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_date_to_lword*/
+    break;
+
+/****
+ *TOD_TO_SINT
+ */
+    case function_tod_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_sint*/
+    break;
+
+/****
+ *TOD_TO_INT
+ */
+    case function_tod_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_int*/
+    break;
+
+/****
+ *TOD_TO_DINT
+ */
+    case function_tod_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_dint*/
+    break;
+
+/****
+ *TOD_TO_LINT
+ */
+    case function_tod_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_lint*/
+    break;
+
+/****
+ *TOD_TO_USINT
+ */
+    case function_tod_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_usint*/
+    break;
+
+/****
+ *TOD_TO_UINT
+ */
+    case function_tod_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_uint*/
+    break;
+
+/****
+ *TOD_TO_UDINT
+ */
+    case function_tod_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_udint*/
+    break;
+
+/****
+ *TOD_TO_ULINT
+ */
+    case function_tod_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_ulint*/
+    break;
+
+/****
+ *TOD_TO_REAL
+ */
+    case function_tod_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_real*/
+    break;
+
+/****
+ *TOD_TO_LREAL
+ */
+    case function_tod_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_lreal*/
+    break;
+
+/****
+ *TOD_TO_STRING
+ */
+    case function_tod_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__tod_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_string*/
+    break;
+
+/****
+ *TOD_TO_BYTE
+ */
+    case function_tod_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_byte*/
+    break;
+
+/****
+ *TOD_TO_WORD
+ */
+    case function_tod_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_word*/
+    break;
+
+/****
+ *TOD_TO_DWORD
+ */
+    case function_tod_to_dword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_dword*/
+    break;
+
+/****
+ *TOD_TO_LWORD
+ */
+    case function_tod_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_tod_to_lword*/
+    break;
+
+/****
+ *DT_TO_SINT
+ */
+    case function_dt_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_sint*/
+    break;
+
+/****
+ *DT_TO_INT
+ */
+    case function_dt_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_int*/
+    break;
+
+/****
+ *DT_TO_DINT
+ */
+    case function_dt_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_dint*/
+    break;
+
+/****
+ *DT_TO_LINT
+ */
+    case function_dt_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_lint*/
+    break;
+
+/****
+ *DT_TO_USINT
+ */
+    case function_dt_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_usint*/
+    break;
+
+/****
+ *DT_TO_UINT
+ */
+    case function_dt_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_uint*/
+    break;
+
+/****
+ *DT_TO_UDINT
+ */
+    case function_dt_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_udint*/
+    break;
+
+/****
+ *DT_TO_ULINT
+ */
+    case function_dt_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_ulint*/
+    break;
+
+/****
+ *DT_TO_REAL
+ */
+    case function_dt_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_real*/
+    break;
+
+/****
+ *DT_TO_LREAL
+ */
+    case function_dt_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_lreal*/
+    break;
+
+/****
+ *DT_TO_STRING
+ */
+    case function_dt_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__dt_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_string*/
+    break;
+
+/****
+ *DT_TO_BYTE
+ */
+    case function_dt_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_byte*/
+    break;
+
+/****
+ *DT_TO_WORD
+ */
+    case function_dt_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_word*/
+    break;
+
+/****
+ *DT_TO_DWORD
+ */
+    case function_dt_to_dword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_dword*/
+    break;
+
+/****
+ *DT_TO_LWORD
+ */
+    case function_dt_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__time_to_int(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dt_to_lword*/
+    break;
+
+/****
+ *STRING_TO_BOOL
+ */
+    case function_string_to_bool :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_bool*/
-    break;
-
-/****
- *TIME_TO_SINT
- */
-    case function_time_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_bool(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_bool*/
+    break;
+
+/****
+ *STRING_TO_SINT
+ */
+    case function_string_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_sint*/
-    break;
-
-/****
- *TIME_TO_INT
- */
-    case function_time_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_sint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_sint*/
+    break;
+
+/****
+ *STRING_TO_INT
+ */
+    case function_string_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_int*/
-    break;
-
-/****
- *TIME_TO_DINT
- */
-    case function_time_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_sint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_int*/
+    break;
+
+/****
+ *STRING_TO_DINT
+ */
+    case function_string_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_dint*/
-    break;
-
-/****
- *TIME_TO_LINT
- */
-    case function_time_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_sint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_dint*/
+    break;
+
+/****
+ *STRING_TO_LINT
+ */
+    case function_string_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_lint*/
-    break;
-
-/****
- *TIME_TO_USINT
- */
-    case function_time_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_sint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_lint*/
+    break;
+
+/****
+ *STRING_TO_USINT
+ */
+    case function_string_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_usint*/
-    break;
-
-/****
- *TIME_TO_UINT
- */
-    case function_time_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_uint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_usint*/
+    break;
+
+/****
+ *STRING_TO_UINT
+ */
+    case function_string_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_uint*/
-    break;
-
-/****
- *TIME_TO_UDINT
- */
-    case function_time_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_uint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_uint*/
+    break;
+
+/****
+ *STRING_TO_UDINT
+ */
+    case function_string_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_udint*/
-    break;
-
-/****
- *TIME_TO_ULINT
- */
-    case function_time_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_uint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_udint*/
+    break;
+
+/****
+ *STRING_TO_ULINT
+ */
+    case function_string_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_ulint*/
-    break;
-
-/****
- *TIME_TO_REAL
- */
-    case function_time_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_uint(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_ulint*/
+    break;
+
+/****
+ *STRING_TO_REAL
+ */
+    case function_string_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_real*/
-    break;
-
-/****
- *TIME_TO_LREAL
- */
-    case function_time_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_real*/
+    break;
+
+/****
+ *STRING_TO_LREAL
+ */
+    case function_string_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_lreal*/
-    break;
-
-/****
- *TIME_TO_STRING
- */
-    case function_time_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__string_to_real(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_lreal*/
+    break;
+
+/****
+ *STRING_TO_TIME
+ */
+    case function_string_to_time :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_time*/
+    break;
+
+/****
+ *STRING_TO_DATE
+ */
+    case function_string_to_date :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_date*/
+    break;
+
+/****
+ *STRING_TO_TOD
+ */
+    case function_string_to_tod :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_tod*/
+    break;
+
+/****
+ *STRING_TO_DT
+ */
+    case function_string_to_dt :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_dt*/
+    break;
+
+/****
+ *STRING_TO_BYTE
+ */
+    case function_string_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_bit(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_byte*/
+    break;
+
+/****
+ *STRING_TO_WORD
+ */
+    case function_string_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_bit(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_word*/
+    break;
+
+/****
+ *STRING_TO_DWORD
+ */
+    case function_string_to_dword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_bit(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_dword*/
+    break;
+
+/****
+ *STRING_TO_LWORD
+ */
+    case function_string_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__string_to_bit(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_string_to_lword*/
+    break;
+
+/****
+ *BYTE_TO_BOOL
+ */
+    case function_byte_to_bool :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_bool*/
+    break;
+
+/****
+ *BYTE_TO_SINT
+ */
+    case function_byte_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_sint*/
+    break;
+
+/****
+ *BYTE_TO_INT
+ */
+    case function_byte_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_int*/
+    break;
+
+/****
+ *BYTE_TO_DINT
+ */
+    case function_byte_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_dint*/
+    break;
+
+/****
+ *BYTE_TO_LINT
+ */
+    case function_byte_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_lint*/
+    break;
+
+/****
+ *BYTE_TO_USINT
+ */
+    case function_byte_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_usint*/
+    break;
+
+/****
+ *BYTE_TO_UINT
+ */
+    case function_byte_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_uint*/
+    break;
+
+/****
+ *BYTE_TO_UDINT
+ */
+    case function_byte_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_udint*/
+    break;
+
+/****
+ *BYTE_TO_ULINT
+ */
+    case function_byte_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_ulint*/
+    break;
+
+/****
+ *BYTE_TO_REAL
+ */
+    case function_byte_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_real*/
+    break;
+
+/****
+ *BYTE_TO_LREAL
+ */
+    case function_byte_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_lreal*/
+    break;
+
+/****
+ *BYTE_TO_TIME
+ */
+    case function_byte_to_time :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_time*/
+    break;
+
+/****
+ *BYTE_TO_DATE
+ */
+    case function_byte_to_date :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_date*/
+    break;
+
+/****
+ *BYTE_TO_TOD
+ */
+    case function_byte_to_tod :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_tod*/
+    break;
+
+/****
+ *BYTE_TO_DT
+ */
+    case function_byte_to_dt :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_dt*/
+    break;
+
+/****
+ *BYTE_TO_STRING
+ */
+    case function_byte_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_string*/
-    break;
-
-/****
- *TIME_TO_BYTE
- */
-    case function_time_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")__bit_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_string*/
+    break;
+
+/****
+ *BYTE_TO_WORD
+ */
+    case function_byte_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_word*/
+    break;
+
+/****
+ *BYTE_TO_DWORD
+ */
+    case function_byte_to_dword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_dword*/
+    break;
+
+/****
+ *BYTE_TO_LWORD
+ */
+    case function_byte_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_byte_to_lword*/
+    break;
+
+/****
+ *WORD_TO_BOOL
+ */
+    case function_word_to_bool :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_bool*/
+    break;
+
+/****
+ *WORD_TO_SINT
+ */
+    case function_word_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_sint*/
+    break;
+
+/****
+ *WORD_TO_INT
+ */
+    case function_word_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_int*/
+    break;
+
+/****
+ *WORD_TO_DINT
+ */
+    case function_word_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_dint*/
+    break;
+
+/****
+ *WORD_TO_LINT
+ */
+    case function_word_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_lint*/
+    break;
+
+/****
+ *WORD_TO_USINT
+ */
+    case function_word_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_usint*/
+    break;
+
+/****
+ *WORD_TO_UINT
+ */
+    case function_word_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_uint*/
+    break;
+
+/****
+ *WORD_TO_UDINT
+ */
+    case function_word_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_udint*/
+    break;
+
+/****
+ *WORD_TO_ULINT
+ */
+    case function_word_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_ulint*/
+    break;
+
+/****
+ *WORD_TO_REAL
+ */
+    case function_word_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_real*/
+    break;
+
+/****
+ *WORD_TO_LREAL
+ */
+    case function_word_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_lreal*/
+    break;
+
+/****
+ *WORD_TO_TIME
+ */
+    case function_word_to_time :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_time*/
+    break;
+
+/****
+ *WORD_TO_DATE
+ */
+    case function_word_to_date :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_date*/
+    break;
+
+/****
+ *WORD_TO_TOD
+ */
+    case function_word_to_tod :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_tod*/
+    break;
+
+/****
+ *WORD_TO_DT
+ */
+    case function_word_to_dt :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_dt*/
+    break;
+
+/****
+ *WORD_TO_STRING
+ */
+    case function_word_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__bit_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_string*/
+    break;
+
+/****
+ *WORD_TO_BYTE
+ */
+    case function_word_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_byte*/
-    break;
-
-/****
- *TIME_TO_WORD
- */
-    case function_time_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_byte*/
+    break;
+
+/****
+ *WORD_TO_DWORD
+ */
+    case function_word_to_dword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_dword*/
+    break;
+
+/****
+ *WORD_TO_LWORD
+ */
+    case function_word_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_word_to_lword*/
+    break;
+
+/****
+ *DWORD_TO_BOOL
+ */
+    case function_dword_to_bool :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_bool*/
+    break;
+
+/****
+ *DWORD_TO_SINT
+ */
+    case function_dword_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_sint*/
+    break;
+
+/****
+ *DWORD_TO_INT
+ */
+    case function_dword_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_int*/
+    break;
+
+/****
+ *DWORD_TO_DINT
+ */
+    case function_dword_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_dint*/
+    break;
+
+/****
+ *DWORD_TO_LINT
+ */
+    case function_dword_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_lint*/
+    break;
+
+/****
+ *DWORD_TO_USINT
+ */
+    case function_dword_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_usint*/
+    break;
+
+/****
+ *DWORD_TO_UINT
+ */
+    case function_dword_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_uint*/
+    break;
+
+/****
+ *DWORD_TO_UDINT
+ */
+    case function_dword_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_udint*/
+    break;
+
+/****
+ *DWORD_TO_ULINT
+ */
+    case function_dword_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_ulint*/
+    break;
+
+/****
+ *DWORD_TO_REAL
+ */
+    case function_dword_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_real*/
+    break;
+
+/****
+ *DWORD_TO_LREAL
+ */
+    case function_dword_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_lreal*/
+    break;
+
+/****
+ *DWORD_TO_TIME
+ */
+    case function_dword_to_time :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_time*/
+    break;
+
+/****
+ *DWORD_TO_DATE
+ */
+    case function_dword_to_date :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_date*/
+    break;
+
+/****
+ *DWORD_TO_TOD
+ */
+    case function_dword_to_tod :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_tod*/
+    break;
+
+/****
+ *DWORD_TO_DT
+ */
+    case function_dword_to_dt :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_dt*/
+    break;
+
+/****
+ *DWORD_TO_STRING
+ */
+    case function_dword_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__bit_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_string*/
+    break;
+
+/****
+ *DWORD_TO_BYTE
+ */
+    case function_dword_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_byte*/
+    break;
+
+/****
+ *DWORD_TO_WORD
+ */
+    case function_dword_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_word*/
-    break;
-
-/****
- *TIME_TO_DWORD
- */
-    case function_time_to_dword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_dword*/
-    break;
-
-/****
- *TIME_TO_LWORD
- */
-    case function_time_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_word*/
+    break;
+
+/****
+ *DWORD_TO_LWORD
+ */
+    case function_dword_to_lword :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_time_to_lword*/
-    break;
-
-/****
- *DATE_TO_BOOL
- */
-    case function_date_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_dword_to_lword*/
+    break;
+
+/****
+ *LWORD_TO_BOOL
+ */
+    case function_lword_to_bool :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_bool*/
-    break;
-
-/****
- *DATE_TO_SINT
- */
-    case function_date_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_bool*/
+    break;
+
+/****
+ *LWORD_TO_SINT
+ */
+    case function_lword_to_sint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_sint*/
-    break;
-
-/****
- *DATE_TO_INT
- */
-    case function_date_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_sint*/
+    break;
+
+/****
+ *LWORD_TO_INT
+ */
+    case function_lword_to_int :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_int*/
-    break;
-
-/****
- *DATE_TO_DINT
- */
-    case function_date_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_int*/
+    break;
+
+/****
+ *LWORD_TO_DINT
+ */
+    case function_lword_to_dint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_dint*/
-    break;
-
-/****
- *DATE_TO_LINT
- */
-    case function_date_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_dint*/
+    break;
+
+/****
+ *LWORD_TO_LINT
+ */
+    case function_lword_to_lint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_lint*/
-    break;
-
-/****
- *DATE_TO_USINT
- */
-    case function_date_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_lint*/
+    break;
+
+/****
+ *LWORD_TO_USINT
+ */
+    case function_lword_to_usint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_usint*/
-    break;
-
-/****
- *DATE_TO_UINT
- */
-    case function_date_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_usint*/
+    break;
+
+/****
+ *LWORD_TO_UINT
+ */
+    case function_lword_to_uint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_uint*/
-    break;
-
-/****
- *DATE_TO_UDINT
- */
-    case function_date_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_uint*/
+    break;
+
+/****
+ *LWORD_TO_UDINT
+ */
+    case function_lword_to_udint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_udint*/
-    break;
-
-/****
- *DATE_TO_ULINT
- */
-    case function_date_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_udint*/
+    break;
+
+/****
+ *LWORD_TO_ULINT
+ */
+    case function_lword_to_ulint :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_ulint*/
-    break;
-
-/****
- *DATE_TO_REAL
- */
-    case function_date_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_ulint*/
+    break;
+
+/****
+ *LWORD_TO_REAL
+ */
+    case function_lword_to_real :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_real*/
-    break;
-
-/****
- *DATE_TO_LREAL
- */
-    case function_date_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_real*/
+    break;
+
+/****
+ *LWORD_TO_LREAL
+ */
+    case function_lword_to_lreal :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_lreal*/
-    break;
-
-/****
- *DATE_TO_STRING
- */
-    case function_date_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_lreal*/
+    break;
+
+/****
+ *LWORD_TO_TIME
+ */
+    case function_lword_to_time :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_time*/
+    break;
+
+/****
+ *LWORD_TO_DATE
+ */
+    case function_lword_to_date :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_date*/
+    break;
+
+/****
+ *LWORD_TO_TOD
+ */
+    case function_lword_to_tod :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_tod*/
+    break;
+
+/****
+ *LWORD_TO_DT
+ */
+    case function_lword_to_dt :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
+            {
+        
+                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
+                s4o.print("(");
+                return_type_symbol->accept(*this);
+                s4o.print(")__int_to_time(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_dt*/
+    break;
+
+/****
+ *LWORD_TO_STRING
+ */
+    case function_lword_to_string :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__date_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_string*/
-    break;
-
-/****
- *DATE_TO_BYTE
- */
-    case function_date_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")__bit_to_string(");
+                IN_param_value->accept(*this);
+                s4o.print(")");
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_string*/
+    break;
+
+/****
+ *LWORD_TO_BYTE
+ */
+    case function_lword_to_byte :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_byte*/
-    break;
-
-/****
- *DATE_TO_WORD
- */
-    case function_date_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                s4o.print(")");
+                IN_param_value->accept(*this);
+                return NULL;
+                
+            }
+            
+            ERROR;
+        }
+        
+    }/*function_lword_to_byte*/
+    break;
+
+/****
+ *LWORD_TO_WORD
+ */
+    case function_lword_to_word :
+    {
+        symbol_c *last_type_symbol = NULL;
+
+        {
+            identifier_c param_name("IN");
+            /* Get the value from a foo(<param_name> = <param_value>) style call */
+            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
+            
+            /* Get the value from a foo(<param_value>) style call */
+            if (IN_param_value == NULL)
+              IN_param_value = function_call_param_iterator.next();
+            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
+            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
+            
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
                 s4o.print("(");
                 return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_word*/
-    break;
-
-/****
- *DATE_TO_DWORD
- */
-    case function_date_to_dword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_dword*/
-    break;
-
-/****
- *DATE_TO_LWORD
- */
-    case function_date_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_date_to_lword*/
-    break;
-
-/****
- *TOD_TO_BOOL
- */
-    case function_tod_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_bool*/
-    break;
-
-/****
- *TOD_TO_SINT
- */
-    case function_tod_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_sint*/
-    break;
-
-/****
- *TOD_TO_INT
- */
-    case function_tod_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_int*/
-    break;
-
-/****
- *TOD_TO_DINT
- */
-    case function_tod_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_dint*/
-    break;
-
-/****
- *TOD_TO_LINT
- */
-    case function_tod_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_lint*/
-    break;
-
-/****
- *TOD_TO_USINT
- */
-    case function_tod_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_usint*/
-    break;
-
-/****
- *TOD_TO_UINT
- */
-    case function_tod_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_uint*/
-    break;
-
-/****
- *TOD_TO_UDINT
- */
-    case function_tod_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_udint*/
-    break;
-
-/****
- *TOD_TO_ULINT
- */
-    case function_tod_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_ulint*/
-    break;
-
-/****
- *TOD_TO_REAL
- */
-    case function_tod_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_real*/
-    break;
-
-/****
- *TOD_TO_LREAL
- */
-    case function_tod_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_lreal*/
-    break;
-
-/****
- *TOD_TO_STRING
- */
-    case function_tod_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__tod_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_string*/
-    break;
-
-/****
- *TOD_TO_BYTE
- */
-    case function_tod_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_byte*/
-    break;
-
-/****
- *TOD_TO_WORD
- */
-    case function_tod_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_word*/
-    break;
-
-/****
- *TOD_TO_DWORD
- */
-    case function_tod_to_dword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_dword*/
-    break;
-
-/****
- *TOD_TO_LWORD
- */
-    case function_tod_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_tod_to_lword*/
-    break;
-
-/****
- *DT_TO_BOOL
- */
-    case function_dt_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_bool*/
-    break;
-
-/****
- *DT_TO_SINT
- */
-    case function_dt_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_sint*/
-    break;
-
-/****
- *DT_TO_INT
- */
-    case function_dt_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_int*/
-    break;
-
-/****
- *DT_TO_DINT
- */
-    case function_dt_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_dint*/
-    break;
-
-/****
- *DT_TO_LINT
- */
-    case function_dt_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_lint*/
-    break;
-
-/****
- *DT_TO_USINT
- */
-    case function_dt_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_usint*/
-    break;
-
-/****
- *DT_TO_UINT
- */
-    case function_dt_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_uint*/
-    break;
-
-/****
- *DT_TO_UDINT
- */
-    case function_dt_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_udint*/
-    break;
-
-/****
- *DT_TO_ULINT
- */
-    case function_dt_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_ulint*/
-    break;
-
-/****
- *DT_TO_REAL
- */
-    case function_dt_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_real*/
-    break;
-
-/****
- *DT_TO_LREAL
- */
-    case function_dt_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_lreal*/
-    break;
-
-/****
- *DT_TO_STRING
- */
-    case function_dt_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__dt_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_string*/
-    break;
-
-/****
- *DT_TO_BYTE
- */
-    case function_dt_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_byte*/
-    break;
-
-/****
- *DT_TO_WORD
- */
-    case function_dt_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_word*/
-    break;
-
-/****
- *DT_TO_DWORD
- */
-    case function_dt_to_dword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_dword*/
-    break;
-
-/****
- *DT_TO_LWORD
- */
-    case function_dt_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__time_to_int(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dt_to_lword*/
-    break;
-
-/****
- *STRING_TO_BOOL
- */
-    case function_string_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_bool(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_bool*/
-    break;
-
-/****
- *STRING_TO_SINT
- */
-    case function_string_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_sint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_sint*/
-    break;
-
-/****
- *STRING_TO_INT
- */
-    case function_string_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_sint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_int*/
-    break;
-
-/****
- *STRING_TO_DINT
- */
-    case function_string_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_sint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_dint*/
-    break;
-
-/****
- *STRING_TO_LINT
- */
-    case function_string_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_sint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_lint*/
-    break;
-
-/****
- *STRING_TO_USINT
- */
-    case function_string_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_uint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_usint*/
-    break;
-
-/****
- *STRING_TO_UINT
- */
-    case function_string_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_uint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_uint*/
-    break;
-
-/****
- *STRING_TO_UDINT
- */
-    case function_string_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_uint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_udint*/
-    break;
-
-/****
- *STRING_TO_ULINT
- */
-    case function_string_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_uint(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_ulint*/
-    break;
-
-/****
- *STRING_TO_REAL
- */
-    case function_string_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_real*/
-    break;
-
-/****
- *STRING_TO_LREAL
- */
-    case function_string_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_real(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_lreal*/
-    break;
-
-/****
- *STRING_TO_TIME
- */
-    case function_string_to_time :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_time*/
-    break;
-
-/****
- *STRING_TO_DATE
- */
-    case function_string_to_date :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_date*/
-    break;
-
-/****
- *STRING_TO_TOD
- */
-    case function_string_to_tod :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_tod*/
-    break;
-
-/****
- *STRING_TO_DT
- */
-    case function_string_to_dt :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_dt*/
-    break;
-
-/****
- *STRING_TO_BYTE
- */
-    case function_string_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_bit(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_byte*/
-    break;
-
-/****
- *STRING_TO_WORD
- */
-    case function_string_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_bit(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_word*/
-    break;
-
-/****
- *STRING_TO_DWORD
- */
-    case function_string_to_dword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_bit(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_dword*/
-    break;
-
-/****
- *STRING_TO_LWORD
- */
-    case function_string_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__string_to_bit(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_string_to_lword*/
-    break;
-
-/****
- *BYTE_TO_BOOL
- */
-    case function_byte_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_bool*/
-    break;
-
-/****
- *BYTE_TO_SINT
- */
-    case function_byte_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_sint*/
-    break;
-
-/****
- *BYTE_TO_INT
- */
-    case function_byte_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_int*/
-    break;
-
-/****
- *BYTE_TO_DINT
- */
-    case function_byte_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_dint*/
-    break;
-
-/****
- *BYTE_TO_LINT
- */
-    case function_byte_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_lint*/
-    break;
-
-/****
- *BYTE_TO_USINT
- */
-    case function_byte_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_usint*/
-    break;
-
-/****
- *BYTE_TO_UINT
- */
-    case function_byte_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_uint*/
-    break;
-
-/****
- *BYTE_TO_UDINT
- */
-    case function_byte_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_udint*/
-    break;
-
-/****
- *BYTE_TO_ULINT
- */
-    case function_byte_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_ulint*/
-    break;
-
-/****
- *BYTE_TO_REAL
- */
-    case function_byte_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_real*/
-    break;
-
-/****
- *BYTE_TO_LREAL
- */
-    case function_byte_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_lreal*/
-    break;
-
-/****
- *BYTE_TO_TIME
- */
-    case function_byte_to_time :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_time*/
-    break;
-
-/****
- *BYTE_TO_DATE
- */
-    case function_byte_to_date :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_date*/
-    break;
-
-/****
- *BYTE_TO_TOD
- */
-    case function_byte_to_tod :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_tod*/
-    break;
-
-/****
- *BYTE_TO_DT
- */
-    case function_byte_to_dt :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_dt*/
-    break;
-
-/****
- *BYTE_TO_STRING
- */
-    case function_byte_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__bit_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_string*/
-    break;
-
-/****
- *BYTE_TO_WORD
- */
-    case function_byte_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_word*/
-    break;
-
-/****
- *BYTE_TO_DWORD
- */
-    case function_byte_to_dword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_dword*/
-    break;
-
-/****
- *BYTE_TO_LWORD
- */
-    case function_byte_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_byte_to_lword*/
-    break;
-
-/****
- *WORD_TO_BOOL
- */
-    case function_word_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_bool*/
-    break;
-
-/****
- *WORD_TO_SINT
- */
-    case function_word_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_sint*/
-    break;
-
-/****
- *WORD_TO_INT
- */
-    case function_word_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_int*/
-    break;
-
-/****
- *WORD_TO_DINT
- */
-    case function_word_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_dint*/
-    break;
-
-/****
- *WORD_TO_LINT
- */
-    case function_word_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_lint*/
-    break;
-
-/****
- *WORD_TO_USINT
- */
-    case function_word_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_usint*/
-    break;
-
-/****
- *WORD_TO_UINT
- */
-    case function_word_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_uint*/
-    break;
-
-/****
- *WORD_TO_UDINT
- */
-    case function_word_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_udint*/
-    break;
-
-/****
- *WORD_TO_ULINT
- */
-    case function_word_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_ulint*/
-    break;
-
-/****
- *WORD_TO_REAL
- */
-    case function_word_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_real*/
-    break;
-
-/****
- *WORD_TO_LREAL
- */
-    case function_word_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_lreal*/
-    break;
-
-/****
- *WORD_TO_TIME
- */
-    case function_word_to_time :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_time*/
-    break;
-
-/****
- *WORD_TO_DATE
- */
-    case function_word_to_date :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_date*/
-    break;
-
-/****
- *WORD_TO_TOD
- */
-    case function_word_to_tod :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_tod*/
-    break;
-
-/****
- *WORD_TO_DT
- */
-    case function_word_to_dt :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_dt*/
-    break;
-
-/****
- *WORD_TO_STRING
- */
-    case function_word_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__bit_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_string*/
-    break;
-
-/****
- *WORD_TO_BYTE
- */
-    case function_word_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_byte*/
-    break;
-
-/****
- *WORD_TO_DWORD
- */
-    case function_word_to_dword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_dword*/
-    break;
-
-/****
- *WORD_TO_LWORD
- */
-    case function_word_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_word_to_lword*/
-    break;
-
-/****
- *DWORD_TO_BOOL
- */
-    case function_dword_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_bool*/
-    break;
-
-/****
- *DWORD_TO_SINT
- */
-    case function_dword_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_sint*/
-    break;
-
-/****
- *DWORD_TO_INT
- */
-    case function_dword_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_int*/
-    break;
-
-/****
- *DWORD_TO_DINT
- */
-    case function_dword_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_dint*/
-    break;
-
-/****
- *DWORD_TO_LINT
- */
-    case function_dword_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_lint*/
-    break;
-
-/****
- *DWORD_TO_USINT
- */
-    case function_dword_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_usint*/
-    break;
-
-/****
- *DWORD_TO_UINT
- */
-    case function_dword_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_uint*/
-    break;
-
-/****
- *DWORD_TO_UDINT
- */
-    case function_dword_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_udint*/
-    break;
-
-/****
- *DWORD_TO_ULINT
- */
-    case function_dword_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_ulint*/
-    break;
-
-/****
- *DWORD_TO_REAL
- */
-    case function_dword_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_real*/
-    break;
-
-/****
- *DWORD_TO_LREAL
- */
-    case function_dword_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_lreal*/
-    break;
-
-/****
- *DWORD_TO_TIME
- */
-    case function_dword_to_time :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_time*/
-    break;
-
-/****
- *DWORD_TO_DATE
- */
-    case function_dword_to_date :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_date*/
-    break;
-
-/****
- *DWORD_TO_TOD
- */
-    case function_dword_to_tod :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_tod*/
-    break;
-
-/****
- *DWORD_TO_DT
- */
-    case function_dword_to_dt :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_dt*/
-    break;
-
-/****
- *DWORD_TO_STRING
- */
-    case function_dword_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__bit_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_string*/
-    break;
-
-/****
- *DWORD_TO_BYTE
- */
-    case function_dword_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_byte*/
-    break;
-
-/****
- *DWORD_TO_WORD
- */
-    case function_dword_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_word*/
-    break;
-
-/****
- *DWORD_TO_LWORD
- */
-    case function_dword_to_lword :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_dword_to_lword*/
-    break;
-
-/****
- *LWORD_TO_BOOL
- */
-    case function_lword_to_bool :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_bool*/
-    break;
-
-/****
- *LWORD_TO_SINT
- */
-    case function_lword_to_sint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_sint*/
-    break;
-
-/****
- *LWORD_TO_INT
- */
-    case function_lword_to_int :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_int*/
-    break;
-
-/****
- *LWORD_TO_DINT
- */
-    case function_lword_to_dint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_dint*/
-    break;
-
-/****
- *LWORD_TO_LINT
- */
-    case function_lword_to_lint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_lint*/
-    break;
-
-/****
- *LWORD_TO_USINT
- */
-    case function_lword_to_usint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_usint*/
-    break;
-
-/****
- *LWORD_TO_UINT
- */
-    case function_lword_to_uint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_uint*/
-    break;
-
-/****
- *LWORD_TO_UDINT
- */
-    case function_lword_to_udint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_udint*/
-    break;
-
-/****
- *LWORD_TO_ULINT
- */
-    case function_lword_to_ulint :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_ulint*/
-    break;
-
-/****
- *LWORD_TO_REAL
- */
-    case function_lword_to_real :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_real*/
-    break;
-
-/****
- *LWORD_TO_LREAL
- */
-    case function_lword_to_lreal :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_lreal*/
-    break;
-
-/****
- *LWORD_TO_TIME
- */
-    case function_lword_to_time :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_time*/
-    break;
-
-/****
- *LWORD_TO_DATE
- */
-    case function_lword_to_date :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_date*/
-    break;
-
-/****
- *LWORD_TO_TOD
- */
-    case function_lword_to_tod :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_tod*/
-    break;
-
-/****
- *LWORD_TO_DT
- */
-    case function_lword_to_dt :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__int_to_time(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_dt*/
-    break;
-
-/****
- *LWORD_TO_STRING
- */
-    case function_lword_to_string :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")__bit_to_string(");
-                IN_param_value->accept(*this);
-                s4o.print(")");
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_string*/
-    break;
-
-/****
- *LWORD_TO_BYTE
- */
-    case function_lword_to_byte :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
-                s4o.print(")");
-                IN_param_value->accept(*this);
-                return NULL;
-                
-            }
-            
-            ERROR;
-        }
-        
-    }/*function_lword_to_byte*/
-    break;
-
-/****
- *LWORD_TO_WORD
- */
-    case function_lword_to_word :
-    {
-        symbol_c *last_type_symbol = NULL;
-
-        {
-            identifier_c param_name("IN");
-            /* Get the value from a foo(<param_name> = <param_value>) style call */
-            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
-            
-            /* Get the value from a foo(<param_value>) style call */
-            if (IN_param_value == NULL)
-              IN_param_value = function_call_param_iterator.next();
-            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
-            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
-            
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
-            {
-        
-                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
-                s4o.print("(");
-                return_type_symbol->accept(*this);
                 s4o.print(")");
                 IN_param_value->accept(*this);
                 return NULL;
@@ -13393,7 +13245,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
@@ -13463,7 +13315,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(byte_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -13500,7 +13352,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(word_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -13537,7 +13389,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dword_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -13574,7 +13426,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(lword_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -13611,7 +13463,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(usint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
@@ -13648,7 +13500,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(uint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
@@ -13685,7 +13537,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(udint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
@@ -13722,7 +13574,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(ulint_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
@@ -13759,7 +13611,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -13794,7 +13646,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
@@ -14234,9 +14086,10 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
-                        s4o.print("(");
+                        s4o.indent_right();
+                        s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("+");
+                        s4o.print("+\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -14257,13 +14110,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print("+");
+                                s4o.print("+\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -14274,7 +14128,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
         
                 {
@@ -14288,7 +14142,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -14306,7 +14160,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
         
                 {
@@ -14320,7 +14174,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -14338,7 +14192,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
         
                 {
@@ -14352,7 +14206,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -14412,9 +14266,10 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
-                        s4o.print("(");
+                        s4o.indent_right();
+                        s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("*");
+                        s4o.print("*\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -14435,13 +14290,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print("*");
+                                s4o.print("*\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -14452,7 +14308,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
         
                 {
@@ -14526,11 +14382,13 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
-                        s4o.print("(");
+                        s4o.indent_right();
+                        s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("-");
+                        s4o.print("-\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                     }
@@ -14540,7 +14398,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
         
                 {
@@ -14554,7 +14412,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -14572,7 +14430,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
             {
         
                 {
@@ -14586,7 +14444,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(dt_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -14599,7 +14457,7 @@
                         
                     }
                     
-                    if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -14617,7 +14475,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
             {
         
                 {
@@ -14631,7 +14489,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -14644,7 +14502,7 @@
                         
                     }
                     
-                    if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
@@ -14662,7 +14520,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
         
                 {
@@ -14676,7 +14534,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -14736,11 +14594,13 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
-                        s4o.print("(");
+                        s4o.indent_right();
+                        s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("/");
+                        s4o.print("/\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                     }
@@ -14750,7 +14610,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(time_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
             {
         
                 {
@@ -14824,11 +14684,13 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
-                        s4o.print("(");
+                        s4o.indent_right();
+                        s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("%");
+                        s4o.print("%\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                     }
@@ -15193,11 +15055,12 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
+                        s4o.indent_right();
                         s4o.print("(");
                         if (search_expression_type->is_bool_type(last_type_symbol))
-                          s4o.print("(");
+                          s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("&");
+                        s4o.print("&\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -15218,7 +15081,7 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print("&");
+                                s4o.print("&\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
@@ -15230,6 +15093,7 @@
                           s4o.print(")");
                         }
                         s4o.print("");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -15282,11 +15146,12 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
+                        s4o.indent_right();
                         s4o.print("(");
                         if (search_expression_type->is_bool_type(last_type_symbol))
-                          s4o.print("(");
+                          s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("|");
+                        s4o.print("|\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -15307,7 +15172,7 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print("|");
+                                s4o.print("|\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
@@ -15319,6 +15184,7 @@
                           s4o.print(")");
                         }
                         s4o.print("");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -15371,11 +15237,12 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
+                        s4o.indent_right();
                         s4o.print("(");
                         if (search_expression_type->is_bool_type(last_type_symbol))
-                          s4o.print("(");
+                          s4o.print("(\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print("^");
+                        s4o.print("^\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -15396,7 +15263,7 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print("^");
+                                s4o.print("^\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
@@ -15408,6 +15275,7 @@
                           s4o.print(")");
                         }
                         s4o.print("");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -15476,7 +15344,7 @@
             symbol_c *G_type_symbol = search_expression_type->get_type(G_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(G_type_symbol, last_type_symbol) ? search_expression_type->common_type(G_type_symbol, last_type_symbol) : G_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(bool_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
             {
         
                 {
@@ -15569,13 +15437,14 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
+                        s4o.indent_right();
                         s4o.print("__max_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -15596,13 +15465,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -15655,13 +15525,14 @@
                     {
                 
                         symbol_c * return_type_symbol = last_type_symbol;
+                        s4o.indent_right();
                         s4o.print("__min_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -15682,13 +15553,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -15834,15 +15706,16 @@
                             {
                         
                                 symbol_c * return_type_symbol = last_type_symbol;
+                                s4o.indent_right();
                                 s4o.print("__mux_");
                                 return_type_symbol->accept(*this);
                                 s4o.print("(");
                                 s4o.print_integer(nb_param);
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 K_param_value->accept(*this);
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 IN0_param_value->accept(*this);
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 IN1_param_value->accept(*this);
                                 
                                 int base_num = 2;
@@ -15863,13 +15736,14 @@
                                         last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                                     
                                         /*Function specific CODE */
-                                        s4o.print(",");
+                                        s4o.print(",\n" + s4o.indent_spaces);
                                         param_value->accept(*this);
                                         
                                     }
                                     
                                 }while(param_value != NULL);
                                 s4o.print(")");
+                                s4o.indent_left();
                                 return NULL;
                                 
                                 
@@ -15927,13 +15801,14 @@
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                        s4o.indent_right();
                         s4o.print("__gt_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -15954,13 +15829,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -16013,13 +15889,14 @@
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                        s4o.indent_right();
                         s4o.print("__ge_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -16040,13 +15917,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -16099,13 +15977,14 @@
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                        s4o.indent_right();
                         s4o.print("__eq_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -16126,13 +16005,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -16185,13 +16065,14 @@
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                        s4o.indent_right();
                         s4o.print("__lt_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -16212,13 +16093,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -16271,13 +16153,14 @@
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                        s4o.indent_right();
                         s4o.print("__le_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -16298,13 +16181,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -16357,13 +16241,14 @@
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
+                        s4o.indent_right();
                         s4o.print("__ne_");
                         return_type_symbol->accept(*this);
                         s4o.print("(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -16384,13 +16269,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -16425,7 +16311,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -16460,7 +16346,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -16516,7 +16402,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -16572,7 +16458,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -16649,7 +16535,7 @@
             symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(date_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
             {
         
                 {
@@ -16663,7 +16549,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(tod_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
@@ -16681,7 +16567,7 @@
                 
             }
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -16695,15 +16581,16 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
+                        s4o.indent_right();
                         s4o.print("__concat(");
                         s4o.print_integer(nb_param);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN1_param_value->accept(*this);
-                        s4o.print(",");
+                        s4o.print(",\n" + s4o.indent_spaces);
                         IN2_param_value->accept(*this);
                         
                         int base_num = 3;
@@ -16724,13 +16611,14 @@
                                 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
                             
                                 /*Function specific CODE */
-                                s4o.print(",");
+                                s4o.print(",\n" + s4o.indent_spaces);
                                 param_value->accept(*this);
                                 
                             }
                             
                         }while(param_value != NULL);
                         s4o.print(")");
+                        s4o.indent_left();
                         return NULL;
                         
                         
@@ -16765,7 +16653,7 @@
             symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -16779,7 +16667,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
                     {
                 
                         {
@@ -16842,7 +16730,7 @@
             symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -16919,7 +16807,7 @@
             symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -16933,7 +16821,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
                     {
                 
                         {
@@ -17017,7 +16905,7 @@
             symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
             last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
             
-            if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
             {
         
                 {
@@ -17031,7 +16919,7 @@
                     symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
                     last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
                     
-                    if (typeid(*last_type_symbol) == typeid(string_type_name_c))
+                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
                     {
                 
                         symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;