diff -r 225db59fe6fe -r bea932bc60b0 stage4/generate_c/search_type_code.c --- a/stage4/generate_c/search_type_code.c Mon Jan 19 08:28:04 2009 +0100 +++ b/stage4/generate_c/search_type_code.c Mon Jan 19 17:06:22 2009 +0100 @@ -58,14 +58,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -91,14 +94,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -124,14 +130,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -157,14 +166,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -190,14 +202,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -223,14 +238,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -256,14 +274,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -289,14 +310,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -322,14 +346,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -355,14 +382,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -388,14 +418,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -421,14 +454,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -454,14 +490,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -487,14 +526,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -520,14 +562,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -553,14 +598,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -586,14 +634,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -619,14 +670,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -652,14 +706,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::real_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -685,14 +742,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -718,14 +778,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -751,14 +814,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -784,14 +850,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -817,14 +886,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -850,14 +922,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -883,14 +958,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -916,14 +994,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -949,14 +1030,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -982,14 +1066,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -1015,14 +1102,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -1048,14 +1138,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -1081,14 +1174,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -1114,14 +1210,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -1147,14 +1246,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -1180,14 +1282,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -1213,14 +1318,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -1246,14 +1354,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -1279,14 +1390,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::sint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -1312,14 +1426,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -1345,14 +1462,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -1378,14 +1498,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -1411,14 +1534,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -1444,14 +1570,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -1477,14 +1606,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -1510,14 +1642,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -1543,14 +1678,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -1576,14 +1714,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -1609,14 +1750,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -1642,14 +1786,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -1675,14 +1822,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -1708,14 +1858,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -1741,14 +1894,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -1774,14 +1930,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -1807,14 +1966,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -1840,14 +2002,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -1873,14 +2038,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -1906,14 +2074,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -1939,14 +2110,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -1972,14 +2146,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -2005,14 +2182,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -2038,14 +2218,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -2071,14 +2254,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -2104,14 +2290,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -2137,14 +2326,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -2170,14 +2362,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -2203,14 +2398,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -2236,14 +2434,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -2269,14 +2470,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -2302,14 +2506,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -2335,14 +2542,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -2368,14 +2578,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -2401,14 +2614,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -2434,14 +2650,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -2467,14 +2686,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -2500,14 +2722,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -2533,14 +2758,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::dint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -2566,14 +2794,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -2599,14 +2830,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -2632,14 +2866,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -2665,14 +2902,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -2698,14 +2938,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -2731,14 +2974,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -2764,14 +3010,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -2797,14 +3046,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -2830,14 +3082,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -2863,14 +3118,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -2896,14 +3154,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -2929,14 +3190,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -2962,14 +3226,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -2995,14 +3262,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -3028,14 +3298,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -3061,14 +3334,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -3094,14 +3370,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -3127,14 +3406,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -3160,14 +3442,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -3193,14 +3478,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -3226,14 +3514,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -3259,14 +3550,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -3292,14 +3586,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -3325,14 +3622,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -3358,14 +3658,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -3391,14 +3694,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -3424,14 +3730,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -3457,14 +3766,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -3490,14 +3802,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -3523,14 +3838,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -3556,14 +3874,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -3589,14 +3910,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -3622,14 +3946,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -3655,14 +3982,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -3688,14 +4018,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -3721,14 +4054,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -3754,14 +4090,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -3787,14 +4126,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -3820,14 +4162,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -3853,14 +4198,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -3886,14 +4234,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -3919,14 +4270,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -3952,14 +4306,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -3985,14 +4342,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -4018,14 +4378,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -4051,14 +4414,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -4084,14 +4450,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -4117,14 +4486,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -4150,14 +4522,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -4183,14 +4558,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -4216,14 +4594,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -4249,14 +4630,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -4282,14 +4666,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -4315,14 +4702,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -4348,14 +4738,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -4381,14 +4774,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -4414,14 +4810,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -4447,14 +4846,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -4480,14 +4882,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -4513,14 +4918,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -4546,14 +4954,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -4579,14 +4990,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -4612,14 +5026,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -4645,14 +5062,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -4678,14 +5098,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -4711,14 +5134,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -4744,14 +5170,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -4777,14 +5206,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -4810,14 +5242,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -4843,14 +5278,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -4876,14 +5314,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -4909,14 +5350,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -4942,14 +5386,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -4975,14 +5422,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -5008,14 +5458,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -5041,14 +5494,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -5074,14 +5530,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -5107,14 +5566,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -5140,14 +5602,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -5173,14 +5638,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -5206,14 +5674,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -5239,14 +5710,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -5272,14 +5746,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -5305,14 +5782,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -5338,14 +5818,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -5371,14 +5854,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -5404,14 +5890,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -5437,14 +5926,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -5470,14 +5962,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -5503,14 +5998,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -5536,14 +6034,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -5569,14 +6070,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -5602,14 +6106,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -5635,14 +6142,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -5668,14 +6178,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -5701,14 +6214,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -5734,14 +6250,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -5767,14 +6286,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -5800,14 +6322,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -5833,14 +6358,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -5866,14 +6394,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -5899,14 +6430,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -5932,14 +6466,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -5965,14 +6502,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -5998,14 +6538,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -6031,14 +6574,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -6064,14 +6610,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -6097,14 +6646,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -6130,14 +6682,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -6163,14 +6718,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -6196,14 +6754,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -6229,14 +6790,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -6262,14 +6826,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -6295,14 +6862,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -6328,14 +6898,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -6361,14 +6934,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -6394,14 +6970,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -6427,14 +7006,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -6460,14 +7042,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -6493,14 +7078,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -6526,14 +7114,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -6559,14 +7150,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -6592,14 +7186,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -6625,14 +7222,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -6658,14 +7258,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -6691,14 +7294,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -6724,14 +7330,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -6757,14 +7366,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -6790,14 +7402,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -6823,14 +7438,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -6856,14 +7474,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -6889,14 +7510,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -6922,14 +7546,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -6955,14 +7582,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -6988,14 +7618,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -7021,14 +7654,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -7054,14 +7690,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -7087,14 +7726,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -7120,14 +7762,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -7153,14 +7798,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -7186,14 +7834,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -7219,14 +7870,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -7252,14 +7906,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -7285,14 +7942,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -7318,14 +7978,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -7351,14 +8014,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -7384,14 +8050,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -7417,14 +8086,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -7450,14 +8122,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -7483,14 +8158,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -7516,14 +8194,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -7549,14 +8230,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -7582,14 +8266,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -7615,14 +8302,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -7648,14 +8338,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -7681,14 +8374,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -7714,14 +8410,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -7747,14 +8446,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -7780,14 +8482,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -7813,14 +8518,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -7846,14 +8554,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -7879,14 +8590,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -7912,14 +8626,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -7945,14 +8662,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -7978,14 +8698,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -8011,14 +8734,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -8044,14 +8770,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -8077,14 +8806,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -8110,14 +8842,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -8143,14 +8878,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -8176,14 +8914,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -8209,14 +8950,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -8242,14 +8986,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -8275,14 +9022,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -8308,14 +9058,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -8341,14 +9094,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -8374,14 +9130,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -8407,14 +9166,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::lreal_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -8440,14 +9202,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -8473,14 +9238,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -8506,14 +9274,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -8539,14 +9310,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -8572,14 +9346,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -8605,14 +9382,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -8638,14 +9418,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -8671,14 +9454,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -8704,14 +9490,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -8737,14 +9526,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -8770,14 +9562,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -8803,14 +9598,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -8836,14 +9634,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -8869,14 +9670,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -8902,14 +9706,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -8935,14 +9742,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -8968,14 +9778,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -9001,14 +9814,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -9034,14 +9850,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -9067,14 +9886,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -9100,14 +9922,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -9133,14 +9958,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -9166,14 +9994,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -9199,14 +10030,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -9232,14 +10066,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -9265,14 +10102,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -9298,14 +10138,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -9331,14 +10174,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -9364,14 +10210,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -9397,14 +10246,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -9430,14 +10282,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -9463,14 +10318,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -9496,14 +10354,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -9529,14 +10390,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -9562,14 +10426,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -9595,14 +10462,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -9628,14 +10498,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -9661,14 +10534,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -9694,14 +10570,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -9727,14 +10606,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -9760,14 +10642,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -9793,14 +10678,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -9826,14 +10714,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -9859,14 +10750,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -9892,14 +10786,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -9925,14 +10822,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -9958,14 +10858,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -9991,14 +10894,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -10024,14 +10930,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -10057,14 +10966,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -10090,14 +11002,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -10123,14 +11038,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -10156,14 +11074,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -10189,14 +11110,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -10222,14 +11146,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -10255,14 +11182,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -10288,14 +11218,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -10321,14 +11254,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -10354,14 +11290,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -10387,14 +11326,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -10420,14 +11362,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -10453,14 +11398,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -10486,14 +11434,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -10519,14 +11470,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -10552,14 +11506,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -10585,14 +11542,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -10618,14 +11578,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -10651,14 +11614,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -10684,14 +11650,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -10717,14 +11686,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -10750,14 +11722,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -10783,14 +11758,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -10816,14 +11794,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -10849,14 +11830,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -10882,14 +11866,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -10915,14 +11902,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::bool_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -10948,14 +11938,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -10981,14 +11974,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -11014,14 +12010,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -11047,14 +12046,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -11080,14 +12082,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -11113,14 +12118,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -11146,14 +12154,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -11179,14 +12190,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -11212,14 +12226,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -11245,14 +12262,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -11278,14 +12298,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -11311,14 +12334,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -11344,14 +12370,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -11377,14 +12406,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -11410,14 +12442,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -11443,14 +12478,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; @@ -11476,14 +12514,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; @@ -11509,14 +12550,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; @@ -11542,14 +12586,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; @@ -11575,14 +12622,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -11608,14 +12658,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; @@ -11641,14 +12694,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; @@ -11674,14 +12730,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -11707,14 +12766,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -11740,14 +12802,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; @@ -11773,14 +12838,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -11806,14 +12874,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; @@ -11839,14 +12910,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -11872,14 +12946,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; @@ -11905,14 +12982,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; @@ -11938,14 +13018,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -11971,14 +13054,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -12004,14 +13090,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; @@ -12037,14 +13126,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::int_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -12070,14 +13162,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; @@ -12103,14 +13198,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; @@ -12136,14 +13234,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; @@ -12169,14 +13270,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; @@ -12202,14 +13306,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; @@ -12235,14 +13342,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::udint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; @@ -12268,14 +13378,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::uint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; @@ -12301,14 +13414,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::usint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; @@ -12334,14 +13450,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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::ulint_type_name, last_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; @@ -12367,14 +13486,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; @@ -12400,14 +13522,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; @@ -12433,14 +13558,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_num_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_num_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12466,14 +13594,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12499,14 +13630,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12532,14 +13666,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12565,14 +13702,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12598,14 +13738,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12631,14 +13774,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12664,14 +13810,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12697,14 +13846,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12730,14 +13882,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12763,14 +13918,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_real_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -12796,28 +13954,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -12831,21 +13995,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -12859,21 +14026,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -12887,21 +14057,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -12933,28 +14106,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -12968,21 +14147,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -13014,28 +14196,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -13049,21 +14237,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -13077,21 +14268,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -13099,7 +14293,7 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN2_type_symbol == NULL || 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; @@ -13113,21 +14307,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -13135,7 +14332,7 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN2_type_symbol == NULL || 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; @@ -13149,21 +14346,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -13195,28 +14395,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -13230,21 +14436,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -13276,28 +14485,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -13329,28 +14544,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_real_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -13382,12 +14603,15 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } { @@ -13415,28 +14639,34 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_binary_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -13468,28 +14698,34 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_binary_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -13521,28 +14757,34 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_nbinary_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -13574,28 +14816,34 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_nbinary_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -13627,28 +14875,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -13680,28 +14934,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -13733,28 +14993,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN1_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -13786,14 +15052,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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_binary_type(IN_type_symbol)) + symbol_c *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -13819,26 +15088,32 @@ identifier_c param_name("G"); /* Get the value from a foo( = ) style call */ symbol_c *G_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *G_type_symbol = NULL; /* Get the value from a foo() style call */ if (G_param_value == NULL) G_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if (G_param_value != NULL) { + G_type_symbol = search_expression_type->get_type(G_param_value); + last_type_symbol = last_type_symbol && G_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(G_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { { identifier_c param_name("IN0"); /* Get the value from a foo( = ) style call */ symbol_c *IN0_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN0_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN0_param_value == NULL) IN0_param_value = function_call_param_iterator.next(); - symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + if (IN0_param_value != NULL) { + IN0_type_symbol = search_expression_type->get_type(IN0_param_value); + last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + } { @@ -13847,12 +15122,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -13892,12 +15170,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -13906,12 +15187,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -13945,12 +15229,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -13959,12 +15246,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -13998,12 +15288,15 @@ identifier_c param_name("MN"); /* Get the value from a foo( = ) style call */ symbol_c *MN_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *MN_type_symbol = NULL; /* Get the value from a foo() style call */ if (MN_param_value == NULL) MN_param_value = function_call_param_iterator.next(); - symbol_c *MN_type_symbol = search_expression_type->get_type(MN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(MN_type_symbol, last_type_symbol) ? search_expression_type->common_type(MN_type_symbol, last_type_symbol) : MN_type_symbol ; + if (MN_param_value != NULL) { + MN_type_symbol = search_expression_type->get_type(MN_param_value); + last_type_symbol = last_type_symbol && MN_type_symbol && search_expression_type->is_same_type(MN_type_symbol, last_type_symbol) ? search_expression_type->common_type(MN_type_symbol, last_type_symbol) : MN_type_symbol ; + } { @@ -14012,12 +15305,15 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN_param_value == NULL) IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } { @@ -14026,12 +15322,15 @@ identifier_c param_name("MX"); /* Get the value from a foo( = ) style call */ symbol_c *MX_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *MX_type_symbol = NULL; /* Get the value from a foo() style call */ if (MX_param_value == NULL) MX_param_value = function_call_param_iterator.next(); - symbol_c *MX_type_symbol = search_expression_type->get_type(MX_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(MX_type_symbol, last_type_symbol) ? search_expression_type->common_type(MX_type_symbol, last_type_symbol) : MX_type_symbol ; + if (MX_param_value != NULL) { + MX_type_symbol = search_expression_type->get_type(MX_param_value); + last_type_symbol = last_type_symbol && MX_type_symbol && search_expression_type->is_same_type(MX_type_symbol, last_type_symbol) ? search_expression_type->common_type(MX_type_symbol, last_type_symbol) : MX_type_symbol ; + } { @@ -14071,26 +15370,32 @@ identifier_c param_name("K"); /* Get the value from a foo( = ) style call */ symbol_c *K_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *K_type_symbol = NULL; /* Get the value from a foo() style call */ if (K_param_value == NULL) K_param_value = function_call_param_iterator.next(); - symbol_c *K_type_symbol = search_expression_type->get_type(K_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(K_type_symbol, last_type_symbol) ? search_expression_type->common_type(K_type_symbol, last_type_symbol) : K_type_symbol ; - - if(search_expression_type->is_integer_type(K_type_symbol)) + if (K_param_value != NULL) { + K_type_symbol = search_expression_type->get_type(K_param_value); + last_type_symbol = last_type_symbol && K_type_symbol && search_expression_type->is_same_type(K_type_symbol, last_type_symbol) ? search_expression_type->common_type(K_type_symbol, last_type_symbol) : K_type_symbol ; + } + + if(K_type_symbol == NULL || search_expression_type->is_integer_type(K_type_symbol)) { { identifier_c param_name("IN0"); /* Get the value from a foo( = ) style call */ symbol_c *IN0_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN0_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN0_param_value == NULL) IN0_param_value = function_call_param_iterator.next(); - symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + if (IN0_param_value != NULL) { + IN0_type_symbol = search_expression_type->get_type(IN0_param_value); + last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + } { @@ -14099,12 +15404,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -14144,12 +15452,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -14158,12 +15469,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -14197,12 +15511,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -14211,12 +15528,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -14250,12 +15570,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -14264,12 +15587,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -14303,12 +15629,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -14317,12 +15646,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -14356,12 +15688,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -14370,12 +15705,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -14409,12 +15747,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -14423,12 +15764,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -14462,14 +15806,17 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; @@ -14495,28 +15842,34 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -14548,28 +15901,34 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -14601,42 +15960,51 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -14674,28 +16042,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -14709,21 +16083,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -14755,42 +16132,51 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -14828,42 +16214,51 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); - - /* Get the value from a foo() style call */ - if (IN_param_value == NULL) - IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->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 *IN_type_symbol = NULL; + + /* Get the value from a foo() style call */ + if (IN_param_value == NULL) + IN_param_value = function_call_param_iterator.next(); + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } + + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -14901,56 +16296,68 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } - if(search_expression_type->is_integer_type(L_type_symbol)) + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -14994,28 +16401,34 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -15061,7 +16474,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15087,7 +16500,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15113,7 +16526,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15139,7 +16552,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15165,7 +16578,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15191,7 +16604,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15217,7 +16630,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15243,7 +16656,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15269,7 +16682,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15295,7 +16708,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15321,7 +16734,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15347,7 +16760,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15373,7 +16786,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15399,7 +16812,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15425,7 +16838,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15451,7 +16864,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15477,7 +16890,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15503,7 +16916,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15529,7 +16942,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15555,7 +16968,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15581,7 +16994,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15607,7 +17020,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15633,7 +17046,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15659,7 +17072,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15685,7 +17098,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15711,7 +17124,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15737,7 +17150,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15763,7 +17176,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15789,7 +17202,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15815,7 +17228,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15841,7 +17254,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15867,7 +17280,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15893,7 +17306,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15919,7 +17332,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15945,7 +17358,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15971,7 +17384,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -15997,7 +17410,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16023,7 +17436,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16049,7 +17462,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16075,7 +17488,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16101,7 +17514,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16127,7 +17540,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16153,7 +17566,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16179,7 +17592,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16205,7 +17618,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16231,7 +17644,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16257,7 +17670,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16283,7 +17696,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16309,7 +17722,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16335,7 +17748,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16361,7 +17774,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16387,7 +17800,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16413,7 +17826,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16439,7 +17852,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16465,7 +17878,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16491,7 +17904,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16517,7 +17930,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16543,7 +17956,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16569,7 +17982,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16595,7 +18008,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16621,7 +18034,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16647,7 +18060,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16673,7 +18086,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16699,7 +18112,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16725,7 +18138,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16751,7 +18164,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16777,7 +18190,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16803,7 +18216,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16829,7 +18242,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16855,7 +18268,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16881,7 +18294,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16907,7 +18320,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16933,7 +18346,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16959,7 +18372,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -16985,7 +18398,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17011,7 +18424,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17037,7 +18450,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17063,7 +18476,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17089,7 +18502,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17115,7 +18528,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17141,7 +18554,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17167,7 +18580,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17193,7 +18606,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17219,7 +18632,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17245,7 +18658,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17271,7 +18684,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17297,7 +18710,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17323,7 +18736,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17349,7 +18762,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17375,7 +18788,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17401,7 +18814,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17427,7 +18840,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17453,7 +18866,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17479,7 +18892,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17505,7 +18918,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17531,7 +18944,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17557,7 +18970,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17583,7 +18996,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17609,7 +19022,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17635,7 +19048,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17661,7 +19074,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17687,7 +19100,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17713,7 +19126,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17739,7 +19152,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17765,7 +19178,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17791,7 +19204,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17817,7 +19230,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17843,7 +19256,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17869,7 +19282,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17895,7 +19308,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17921,7 +19334,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17947,7 +19360,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17973,7 +19386,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -17999,7 +19412,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18025,7 +19438,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18051,7 +19464,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18077,7 +19490,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18103,7 +19516,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18129,7 +19542,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18155,7 +19568,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18181,7 +19594,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18207,7 +19620,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18233,7 +19646,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18259,7 +19672,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18285,7 +19698,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18311,7 +19724,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18337,7 +19750,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18363,7 +19776,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18389,7 +19802,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18415,7 +19828,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18441,7 +19854,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18467,7 +19880,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18493,7 +19906,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18519,7 +19932,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18545,7 +19958,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18571,7 +19984,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18597,7 +20010,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18623,7 +20036,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18649,7 +20062,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18675,7 +20088,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18701,7 +20114,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18727,7 +20140,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18753,7 +20166,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18779,7 +20192,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18805,7 +20218,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18831,7 +20244,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18857,7 +20270,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18883,7 +20296,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18909,7 +20322,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18935,7 +20348,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18961,7 +20374,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -18987,7 +20400,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19013,7 +20426,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19039,7 +20452,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19065,7 +20478,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19091,7 +20504,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19117,7 +20530,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19143,7 +20556,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19169,7 +20582,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19195,7 +20608,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19221,7 +20634,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19247,7 +20660,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19273,7 +20686,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19299,7 +20712,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19325,7 +20738,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19351,7 +20764,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19377,7 +20790,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19403,7 +20816,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19429,7 +20842,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19455,7 +20868,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19481,7 +20894,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19507,7 +20920,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19533,7 +20946,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19559,7 +20972,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19585,7 +20998,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19611,7 +21024,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19637,7 +21050,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19663,7 +21076,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19689,7 +21102,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19715,7 +21128,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19741,7 +21154,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19767,7 +21180,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19793,7 +21206,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19819,7 +21232,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19845,7 +21258,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19871,7 +21284,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19897,7 +21310,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19923,7 +21336,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19949,7 +21362,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -19975,7 +21388,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20001,7 +21414,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20027,7 +21440,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20053,7 +21466,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20079,7 +21492,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20105,7 +21518,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20131,7 +21544,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20157,7 +21570,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20183,7 +21596,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20209,7 +21622,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20235,7 +21648,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20261,7 +21674,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20287,7 +21700,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20313,7 +21726,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20339,7 +21752,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20365,7 +21778,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20391,7 +21804,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20417,7 +21830,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20443,7 +21856,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20469,7 +21882,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20495,7 +21908,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20521,7 +21934,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20547,7 +21960,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20573,7 +21986,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20599,7 +22012,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20625,7 +22038,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20651,7 +22064,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20677,7 +22090,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20703,7 +22116,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20729,7 +22142,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20755,7 +22168,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20781,7 +22194,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20807,7 +22220,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20833,7 +22246,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20859,7 +22272,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20885,7 +22298,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20911,7 +22324,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20937,7 +22350,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20963,7 +22376,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -20989,7 +22402,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21015,7 +22428,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21041,7 +22454,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21067,7 +22480,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21093,7 +22506,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21119,7 +22532,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21145,7 +22558,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21171,7 +22584,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21197,7 +22610,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21223,7 +22636,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21249,7 +22662,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21275,7 +22688,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21301,7 +22714,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21327,7 +22740,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21353,7 +22766,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21379,7 +22792,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21405,7 +22818,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21431,7 +22844,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21457,7 +22870,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21483,7 +22896,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21509,7 +22922,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21535,7 +22948,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21561,7 +22974,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21587,7 +23000,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21613,7 +23026,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21639,7 +23052,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21665,7 +23078,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21691,7 +23104,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21717,7 +23130,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21743,7 +23156,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21769,7 +23182,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21795,7 +23208,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21821,7 +23234,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21847,7 +23260,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21873,7 +23286,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21899,7 +23312,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21925,7 +23338,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21951,7 +23364,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -21977,7 +23390,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22003,7 +23416,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22029,7 +23442,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22055,7 +23468,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22081,7 +23494,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22107,7 +23520,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22133,7 +23546,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22159,7 +23572,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22185,7 +23598,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22211,7 +23624,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22237,7 +23650,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22263,7 +23676,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22289,7 +23702,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22315,7 +23728,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22341,7 +23754,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22367,7 +23780,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22393,7 +23806,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22419,7 +23832,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22445,7 +23858,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22471,7 +23884,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22497,7 +23910,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22523,7 +23936,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22549,7 +23962,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22575,7 +23988,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22601,7 +24014,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22627,7 +24040,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22653,7 +24066,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22679,7 +24092,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22705,7 +24118,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22731,7 +24144,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22757,7 +24170,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22783,7 +24196,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22809,7 +24222,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22835,7 +24248,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22861,7 +24274,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22887,7 +24300,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22913,7 +24326,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22939,7 +24352,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22965,7 +24378,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -22991,7 +24404,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23017,7 +24430,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23043,7 +24456,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23069,7 +24482,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23095,7 +24508,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23121,7 +24534,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23147,7 +24560,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23173,7 +24586,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23199,7 +24612,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23225,7 +24638,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23251,7 +24664,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23277,7 +24690,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23303,7 +24716,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23329,7 +24742,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23355,7 +24768,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23381,7 +24794,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23407,7 +24820,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23433,7 +24846,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23459,7 +24872,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23485,7 +24898,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23511,7 +24924,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23537,7 +24950,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23563,7 +24976,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23589,7 +25002,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23615,7 +25028,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23641,7 +25054,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23667,7 +25080,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23693,7 +25106,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23719,7 +25132,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23745,7 +25158,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23771,7 +25184,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23797,7 +25210,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23823,7 +25236,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23849,7 +25262,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23875,7 +25288,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23901,7 +25314,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23927,7 +25340,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23953,7 +25366,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -23979,7 +25392,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24005,7 +25418,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24031,7 +25444,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24057,7 +25470,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24083,7 +25496,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24109,7 +25522,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24135,7 +25548,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24161,7 +25574,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24187,7 +25600,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24213,7 +25626,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24239,7 +25652,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24265,7 +25678,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24291,7 +25704,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24317,7 +25730,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24343,7 +25756,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24369,7 +25782,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24395,7 +25808,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24421,7 +25834,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24447,7 +25860,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24473,7 +25886,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24499,7 +25912,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24525,7 +25938,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; @@ -24551,7 +25964,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24577,7 +25990,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24603,7 +26016,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24629,7 +26042,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24655,7 +26068,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24681,7 +26094,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24707,7 +26120,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24733,7 +26146,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24759,7 +26172,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24785,7 +26198,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -24811,7 +26224,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_num_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_num_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -24837,7 +26250,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -24863,7 +26276,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -24889,7 +26302,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -24915,7 +26328,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -24941,7 +26354,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -24967,7 +26380,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -24993,7 +26406,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25019,7 +26432,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25045,7 +26458,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25071,7 +26484,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25097,21 +26510,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_num_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25125,21 +26541,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -25153,21 +26572,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -25181,21 +26603,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -25227,21 +26652,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_num_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25255,21 +26683,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -25301,21 +26732,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_num_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25329,21 +26763,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -25357,21 +26794,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -25379,7 +26819,7 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN2_type_symbol == NULL || 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; @@ -25393,21 +26833,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -25415,7 +26858,7 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN2_type_symbol == NULL || 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; @@ -25429,21 +26872,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -25475,21 +26921,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_num_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25503,21 +26952,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; @@ -25549,21 +27001,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_num_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25595,21 +27050,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_real_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_num_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25667,21 +27125,24 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_binary_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25713,21 +27174,24 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_binary_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25759,21 +27223,24 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_nbinary_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25805,21 +27272,24 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_nbinary_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol)) { { identifier_c param_name("N"); /* Get the value from a foo( = ) style call */ symbol_c *N_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *N_type_symbol = NULL; /* Get the value from a foo() style call */ if (N_param_value == NULL) N_param_value = function_call_param_iterator.next(); - symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; - - if(search_expression_type->is_integer_type(N_type_symbol)) + if (N_param_value != NULL) { + N_type_symbol = search_expression_type->get_type(N_param_value); + last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ; + } + + if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -25851,21 +27321,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_binary_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25897,21 +27370,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_binary_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25943,21 +27419,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_binary_type(IN1_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_binary_type(IN2_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol)) { symbol_c * return_type_symbol = last_type_symbol; @@ -25989,7 +27468,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_binary_type(IN_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol)) { symbol_c * return_type_symbol = IN_type_symbol; @@ -26015,19 +27494,22 @@ symbol_c *G_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) + if(G_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol)) { { identifier_c param_name("IN0"); /* Get the value from a foo( = ) style call */ symbol_c *IN0_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN0_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN0_param_value == NULL) IN0_param_value = function_call_param_iterator.next(); - symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + if (IN0_param_value != NULL) { + IN0_type_symbol = search_expression_type->get_type(IN0_param_value); + last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + } { @@ -26036,12 +27518,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -26088,12 +27573,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26134,12 +27622,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26180,12 +27671,15 @@ identifier_c param_name("IN"); /* Get the value from a foo( = ) style call */ symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN_param_value == NULL) IN_param_value = function_call_param_iterator.next(); - symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + if (IN_param_value != NULL) { + IN_type_symbol = search_expression_type->get_type(IN_param_value); + last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; + } { @@ -26194,12 +27688,15 @@ identifier_c param_name("MX"); /* Get the value from a foo( = ) style call */ symbol_c *MX_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *MX_type_symbol = NULL; /* Get the value from a foo() style call */ if (MX_param_value == NULL) MX_param_value = function_call_param_iterator.next(); - symbol_c *MX_type_symbol = search_expression_type->get_type(MX_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(MX_type_symbol, last_type_symbol) ? search_expression_type->common_type(MX_type_symbol, last_type_symbol) : MX_type_symbol ; + if (MX_param_value != NULL) { + MX_type_symbol = search_expression_type->get_type(MX_param_value); + last_type_symbol = last_type_symbol && MX_type_symbol && search_expression_type->is_same_type(MX_type_symbol, last_type_symbol) ? search_expression_type->common_type(MX_type_symbol, last_type_symbol) : MX_type_symbol ; + } { @@ -26239,19 +27736,22 @@ symbol_c *K_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_integer_type(K_type_symbol)) + if(K_type_symbol == NULL || search_expression_type->is_integer_type(K_type_symbol)) { { identifier_c param_name("IN0"); /* Get the value from a foo( = ) style call */ symbol_c *IN0_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN0_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN0_param_value == NULL) IN0_param_value = function_call_param_iterator.next(); - symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + if (IN0_param_value != NULL) { + IN0_type_symbol = search_expression_type->get_type(IN0_param_value); + last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ; + } { @@ -26260,12 +27760,15 @@ identifier_c param_name("IN1"); /* Get the value from a foo( = ) style call */ symbol_c *IN1_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN1_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN1_param_value == NULL) IN1_param_value = function_call_param_iterator.next(); - 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 (IN1_param_value != NULL) { + IN1_type_symbol = search_expression_type->get_type(IN1_param_value); + last_type_symbol = last_type_symbol && IN1_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 ; + } { @@ -26312,12 +27815,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26358,12 +27864,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26404,12 +27913,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26450,12 +27962,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26496,12 +28011,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26542,12 +28060,15 @@ identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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 (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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 ; + } { @@ -26581,7 +28102,7 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || 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; @@ -26607,21 +28128,24 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -26653,21 +28177,24 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -26699,35 +28226,41 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -26765,21 +28298,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -26793,21 +28329,24 @@ } - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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; @@ -26839,35 +28378,41 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -26905,35 +28450,41 @@ symbol_c *IN_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; - - if(search_expression_type->is_integer_type(L_type_symbol)) + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } + + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -26971,49 +28522,58 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("L"); /* Get the value from a foo( = ) style call */ symbol_c *L_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *L_type_symbol = NULL; /* Get the value from a foo() style call */ if (L_param_value == NULL) L_param_value = function_call_param_iterator.next(); - symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + if (L_param_value != NULL) { + L_type_symbol = search_expression_type->get_type(L_param_value); + last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ; + } - if(search_expression_type->is_integer_type(L_type_symbol)) + if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol)) { { identifier_c param_name("P"); /* Get the value from a foo( = ) style call */ symbol_c *P_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *P_type_symbol = NULL; /* Get the value from a foo() style call */ if (P_param_value == NULL) P_param_value = function_call_param_iterator.next(); - symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value); - last_type_symbol = last_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + if (P_param_value != NULL) { + P_type_symbol = search_expression_type->get_type(P_param_value); + last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ; + } - if(search_expression_type->is_integer_type(P_type_symbol)) + if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol)) { symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; @@ -27057,21 +28617,24 @@ symbol_c *IN1_type_symbol = param_data_type; last_type_symbol = param_data_type; - if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) { { identifier_c param_name("IN2"); /* Get the value from a foo( = ) style call */ symbol_c *IN2_param_value = function_call_param_iterator.search(¶m_name); + symbol_c *IN2_type_symbol = NULL; /* Get the value from a foo() style call */ if (IN2_param_value == NULL) IN2_param_value = function_call_param_iterator.next(); - 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(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) + if (IN2_param_value != NULL) { + IN2_type_symbol = search_expression_type->get_type(IN2_param_value); + last_type_symbol = last_type_symbol && IN2_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(IN2_type_symbol == NULL || 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;