stage4/generate_cc/search_type_code.c
changeset 34 a793b010e371
parent 33 4507beb2aac6
child 35 9f3d6c089533
equal deleted inserted replaced
33:4507beb2aac6 34:a793b010e371
 14133 			if (IN_param_value == NULL)
 14133 			if (IN_param_value == NULL)
 14134 			  IN_param_value = function_call_param_iterator.next();
 14134 			  IN_param_value = function_call_param_iterator.next();
 14135 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14135 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14136 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14136 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14137 			
 14137 			
 14138 			if(search_expression_type->is_real_type(IN_param_value))
 14138 			if(search_expression_type->is_real_type(IN_type_symbol))
 14139 			{
 14139 			{
 14140 		
 14140 		
 14141 				symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
 14141 				symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
 14142 				return return_type_symbol;
 14142 				return return_type_symbol;
 14143 				
 14143 				
 14165 			if (IN_param_value == NULL)
 14165 			if (IN_param_value == NULL)
 14166 			  IN_param_value = function_call_param_iterator.next();
 14166 			  IN_param_value = function_call_param_iterator.next();
 14167 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14167 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14168 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14168 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14169 			
 14169 			
 14170 			if(search_expression_type->is_binary_type(IN_param_value))
 14170 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14171 			{
 14171 			{
 14172 		
 14172 		
 14173 				symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
 14173 				symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
 14174 				return return_type_symbol;
 14174 				return return_type_symbol;
 14175 				
 14175 				
 14197 			if (IN_param_value == NULL)
 14197 			if (IN_param_value == NULL)
 14198 			  IN_param_value = function_call_param_iterator.next();
 14198 			  IN_param_value = function_call_param_iterator.next();
 14199 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14199 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14200 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14200 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14201 			
 14201 			
 14202 			if(search_expression_type->is_binary_type(IN_param_value))
 14202 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14203 			{
 14203 			{
 14204 		
 14204 		
 14205 				symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
 14205 				symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
 14206 				return return_type_symbol;
 14206 				return return_type_symbol;
 14207 				
 14207 				
 14229 			if (IN_param_value == NULL)
 14229 			if (IN_param_value == NULL)
 14230 			  IN_param_value = function_call_param_iterator.next();
 14230 			  IN_param_value = function_call_param_iterator.next();
 14231 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14231 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14232 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14232 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14233 			
 14233 			
 14234 			if(search_expression_type->is_binary_type(IN_param_value))
 14234 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14235 			{
 14235 			{
 14236 		
 14236 		
 14237 				symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
 14237 				symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
 14238 				return return_type_symbol;
 14238 				return return_type_symbol;
 14239 				
 14239 				
 14261 			if (IN_param_value == NULL)
 14261 			if (IN_param_value == NULL)
 14262 			  IN_param_value = function_call_param_iterator.next();
 14262 			  IN_param_value = function_call_param_iterator.next();
 14263 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14263 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14264 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14264 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14265 			
 14265 			
 14266 			if(search_expression_type->is_binary_type(IN_param_value))
 14266 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14267 			{
 14267 			{
 14268 		
 14268 		
 14269 				symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
 14269 				symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
 14270 				return return_type_symbol;
 14270 				return return_type_symbol;
 14271 				
 14271 				
 14293 			if (IN_param_value == NULL)
 14293 			if (IN_param_value == NULL)
 14294 			  IN_param_value = function_call_param_iterator.next();
 14294 			  IN_param_value = function_call_param_iterator.next();
 14295 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14295 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14296 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14296 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14297 			
 14297 			
 14298 			if(search_expression_type->is_binary_type(IN_param_value))
 14298 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14299 			{
 14299 			{
 14300 		
 14300 		
 14301 				symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
 14301 				symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
 14302 				return return_type_symbol;
 14302 				return return_type_symbol;
 14303 				
 14303 				
 14325 			if (IN_param_value == NULL)
 14325 			if (IN_param_value == NULL)
 14326 			  IN_param_value = function_call_param_iterator.next();
 14326 			  IN_param_value = function_call_param_iterator.next();
 14327 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14327 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14328 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14328 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14329 			
 14329 			
 14330 			if(search_expression_type->is_binary_type(IN_param_value))
 14330 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14331 			{
 14331 			{
 14332 		
 14332 		
 14333 				symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
 14333 				symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
 14334 				return return_type_symbol;
 14334 				return return_type_symbol;
 14335 				
 14335 				
 14357 			if (IN_param_value == NULL)
 14357 			if (IN_param_value == NULL)
 14358 			  IN_param_value = function_call_param_iterator.next();
 14358 			  IN_param_value = function_call_param_iterator.next();
 14359 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14359 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14360 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14360 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14361 			
 14361 			
 14362 			if(search_expression_type->is_binary_type(IN_param_value))
 14362 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14363 			{
 14363 			{
 14364 		
 14364 		
 14365 				symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
 14365 				symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
 14366 				return return_type_symbol;
 14366 				return return_type_symbol;
 14367 				
 14367 				
 14389 			if (IN_param_value == NULL)
 14389 			if (IN_param_value == NULL)
 14390 			  IN_param_value = function_call_param_iterator.next();
 14390 			  IN_param_value = function_call_param_iterator.next();
 14391 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14391 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14392 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14392 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14393 			
 14393 			
 14394 			if(search_expression_type->is_binary_type(IN_param_value))
 14394 			if(search_expression_type->is_binary_type(IN_type_symbol))
 14395 			{
 14395 			{
 14396 		
 14396 		
 14397 				symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
 14397 				symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
 14398 				return return_type_symbol;
 14398 				return return_type_symbol;
 14399 				
 14399 				
 14741 			if (IN_param_value == NULL)
 14741 			if (IN_param_value == NULL)
 14742 			  IN_param_value = function_call_param_iterator.next();
 14742 			  IN_param_value = function_call_param_iterator.next();
 14743 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14743 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14744 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14744 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14745 			
 14745 			
 14746 			if(search_expression_type->is_num_type(IN_param_value))
 14746 			if(search_expression_type->is_num_type(IN_type_symbol))
 14747 			{
 14747 			{
 14748 		
 14748 		
 14749 				symbol_c * return_type_symbol = IN_type_symbol;
 14749 				symbol_c * return_type_symbol = IN_type_symbol;
 14750 				return return_type_symbol;
 14750 				return return_type_symbol;
 14751 				
 14751 				
 14773 			if (IN_param_value == NULL)
 14773 			if (IN_param_value == NULL)
 14774 			  IN_param_value = function_call_param_iterator.next();
 14774 			  IN_param_value = function_call_param_iterator.next();
 14775 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14775 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14776 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14776 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14777 			
 14777 			
 14778 			if(search_expression_type->is_real_type(IN_param_value))
 14778 			if(search_expression_type->is_real_type(IN_type_symbol))
 14779 			{
 14779 			{
 14780 		
 14780 		
 14781 				symbol_c * return_type_symbol = IN_type_symbol;
 14781 				symbol_c * return_type_symbol = IN_type_symbol;
 14782 				return return_type_symbol;
 14782 				return return_type_symbol;
 14783 				
 14783 				
 14805 			if (IN_param_value == NULL)
 14805 			if (IN_param_value == NULL)
 14806 			  IN_param_value = function_call_param_iterator.next();
 14806 			  IN_param_value = function_call_param_iterator.next();
 14807 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14807 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14808 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14808 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14809 			
 14809 			
 14810 			if(search_expression_type->is_real_type(IN_param_value))
 14810 			if(search_expression_type->is_real_type(IN_type_symbol))
 14811 			{
 14811 			{
 14812 		
 14812 		
 14813 				symbol_c * return_type_symbol = IN_type_symbol;
 14813 				symbol_c * return_type_symbol = IN_type_symbol;
 14814 				return return_type_symbol;
 14814 				return return_type_symbol;
 14815 				
 14815 				
 14837 			if (IN_param_value == NULL)
 14837 			if (IN_param_value == NULL)
 14838 			  IN_param_value = function_call_param_iterator.next();
 14838 			  IN_param_value = function_call_param_iterator.next();
 14839 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14839 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14840 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14840 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14841 			
 14841 			
 14842 			if(search_expression_type->is_real_type(IN_param_value))
 14842 			if(search_expression_type->is_real_type(IN_type_symbol))
 14843 			{
 14843 			{
 14844 		
 14844 		
 14845 				symbol_c * return_type_symbol = IN_type_symbol;
 14845 				symbol_c * return_type_symbol = IN_type_symbol;
 14846 				return return_type_symbol;
 14846 				return return_type_symbol;
 14847 				
 14847 				
 14869 			if (IN_param_value == NULL)
 14869 			if (IN_param_value == NULL)
 14870 			  IN_param_value = function_call_param_iterator.next();
 14870 			  IN_param_value = function_call_param_iterator.next();
 14871 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14871 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14872 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14872 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14873 			
 14873 			
 14874 			if(search_expression_type->is_real_type(IN_param_value))
 14874 			if(search_expression_type->is_real_type(IN_type_symbol))
 14875 			{
 14875 			{
 14876 		
 14876 		
 14877 				symbol_c * return_type_symbol = IN_type_symbol;
 14877 				symbol_c * return_type_symbol = IN_type_symbol;
 14878 				return return_type_symbol;
 14878 				return return_type_symbol;
 14879 				
 14879 				
 14901 			if (IN_param_value == NULL)
 14901 			if (IN_param_value == NULL)
 14902 			  IN_param_value = function_call_param_iterator.next();
 14902 			  IN_param_value = function_call_param_iterator.next();
 14903 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14903 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14904 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14904 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14905 			
 14905 			
 14906 			if(search_expression_type->is_real_type(IN_param_value))
 14906 			if(search_expression_type->is_real_type(IN_type_symbol))
 14907 			{
 14907 			{
 14908 		
 14908 		
 14909 				symbol_c * return_type_symbol = IN_type_symbol;
 14909 				symbol_c * return_type_symbol = IN_type_symbol;
 14910 				return return_type_symbol;
 14910 				return return_type_symbol;
 14911 				
 14911 				
 14933 			if (IN_param_value == NULL)
 14933 			if (IN_param_value == NULL)
 14934 			  IN_param_value = function_call_param_iterator.next();
 14934 			  IN_param_value = function_call_param_iterator.next();
 14935 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14935 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14936 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14936 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14937 			
 14937 			
 14938 			if(search_expression_type->is_real_type(IN_param_value))
 14938 			if(search_expression_type->is_real_type(IN_type_symbol))
 14939 			{
 14939 			{
 14940 		
 14940 		
 14941 				symbol_c * return_type_symbol = IN_type_symbol;
 14941 				symbol_c * return_type_symbol = IN_type_symbol;
 14942 				return return_type_symbol;
 14942 				return return_type_symbol;
 14943 				
 14943 				
 14965 			if (IN_param_value == NULL)
 14965 			if (IN_param_value == NULL)
 14966 			  IN_param_value = function_call_param_iterator.next();
 14966 			  IN_param_value = function_call_param_iterator.next();
 14967 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14967 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14968 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14968 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 14969 			
 14969 			
 14970 			if(search_expression_type->is_real_type(IN_param_value))
 14970 			if(search_expression_type->is_real_type(IN_type_symbol))
 14971 			{
 14971 			{
 14972 		
 14972 		
 14973 				symbol_c * return_type_symbol = IN_type_symbol;
 14973 				symbol_c * return_type_symbol = IN_type_symbol;
 14974 				return return_type_symbol;
 14974 				return return_type_symbol;
 14975 				
 14975 				
 14997 			if (IN_param_value == NULL)
 14997 			if (IN_param_value == NULL)
 14998 			  IN_param_value = function_call_param_iterator.next();
 14998 			  IN_param_value = function_call_param_iterator.next();
 14999 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 14999 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15000 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15000 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15001 			
 15001 			
 15002 			if(search_expression_type->is_real_type(IN_param_value))
 15002 			if(search_expression_type->is_real_type(IN_type_symbol))
 15003 			{
 15003 			{
 15004 		
 15004 		
 15005 				symbol_c * return_type_symbol = IN_type_symbol;
 15005 				symbol_c * return_type_symbol = IN_type_symbol;
 15006 				return return_type_symbol;
 15006 				return return_type_symbol;
 15007 				
 15007 				
 15029 			if (IN_param_value == NULL)
 15029 			if (IN_param_value == NULL)
 15030 			  IN_param_value = function_call_param_iterator.next();
 15030 			  IN_param_value = function_call_param_iterator.next();
 15031 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15031 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15032 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15032 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15033 			
 15033 			
 15034 			if(search_expression_type->is_real_type(IN_param_value))
 15034 			if(search_expression_type->is_real_type(IN_type_symbol))
 15035 			{
 15035 			{
 15036 		
 15036 		
 15037 				symbol_c * return_type_symbol = IN_type_symbol;
 15037 				symbol_c * return_type_symbol = IN_type_symbol;
 15038 				return return_type_symbol;
 15038 				return return_type_symbol;
 15039 				
 15039 				
 15061 			if (IN_param_value == NULL)
 15061 			if (IN_param_value == NULL)
 15062 			  IN_param_value = function_call_param_iterator.next();
 15062 			  IN_param_value = function_call_param_iterator.next();
 15063 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15063 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15064 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15064 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15065 			
 15065 			
 15066 			if(search_expression_type->is_real_type(IN_param_value))
 15066 			if(search_expression_type->is_real_type(IN_type_symbol))
 15067 			{
 15067 			{
 15068 		
 15068 		
 15069 				symbol_c * return_type_symbol = IN_type_symbol;
 15069 				symbol_c * return_type_symbol = IN_type_symbol;
 15070 				return return_type_symbol;
 15070 				return return_type_symbol;
 15071 				
 15071 				
 15093 			if (IN1_param_value == NULL)
 15093 			if (IN1_param_value == NULL)
 15094 			  IN1_param_value = function_call_param_iterator.next();
 15094 			  IN1_param_value = function_call_param_iterator.next();
 15095 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15095 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15096 			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 ;
 15096 			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 ;
 15097 			
 15097 			
 15098 			if(search_expression_type->is_num_type(IN1_param_value))
 15098 			if(search_expression_type->is_num_type(IN1_type_symbol))
 15099 			{
 15099 			{
 15100 		
 15100 		
 15101 				{
 15101 				{
 15102 					identifier_c param_name("IN2");
 15102 					identifier_c param_name("IN2");
 15103 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15103 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15107 					if (IN2_param_value == NULL)
 15107 					if (IN2_param_value == NULL)
 15108 					  IN2_param_value = function_call_param_iterator.next();
 15108 					  IN2_param_value = function_call_param_iterator.next();
 15109 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15109 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15110 					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 ;
 15110 					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 ;
 15111 					
 15111 					
 15112 					if(search_expression_type->is_num_type(IN2_param_value))
 15112 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15113 					{
 15113 					{
 15114 				
 15114 				
 15115 						symbol_c * return_type_symbol = last_type_symbol;
 15115 						symbol_c * return_type_symbol = last_type_symbol;
 15116 						return return_type_symbol;
 15116 						return return_type_symbol;
 15117 						
 15117 						
 15225 			if (IN1_param_value == NULL)
 15225 			if (IN1_param_value == NULL)
 15226 			  IN1_param_value = function_call_param_iterator.next();
 15226 			  IN1_param_value = function_call_param_iterator.next();
 15227 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15227 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15228 			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 ;
 15228 			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 ;
 15229 			
 15229 			
 15230 			if(search_expression_type->is_num_type(IN1_param_value))
 15230 			if(search_expression_type->is_num_type(IN1_type_symbol))
 15231 			{
 15231 			{
 15232 		
 15232 		
 15233 				{
 15233 				{
 15234 					identifier_c param_name("IN2");
 15234 					identifier_c param_name("IN2");
 15235 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15235 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15239 					if (IN2_param_value == NULL)
 15239 					if (IN2_param_value == NULL)
 15240 					  IN2_param_value = function_call_param_iterator.next();
 15240 					  IN2_param_value = function_call_param_iterator.next();
 15241 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15241 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15242 					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 ;
 15242 					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 ;
 15243 					
 15243 					
 15244 					if(search_expression_type->is_num_type(IN2_param_value))
 15244 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15245 					{
 15245 					{
 15246 				
 15246 				
 15247 						symbol_c * return_type_symbol = last_type_symbol;
 15247 						symbol_c * return_type_symbol = last_type_symbol;
 15248 						return return_type_symbol;
 15248 						return return_type_symbol;
 15249 						
 15249 						
 15266 					if (IN2_param_value == NULL)
 15266 					if (IN2_param_value == NULL)
 15267 					  IN2_param_value = function_call_param_iterator.next();
 15267 					  IN2_param_value = function_call_param_iterator.next();
 15268 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15268 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15269 					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 ;
 15269 					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 ;
 15270 					
 15270 					
 15271 					if(search_expression_type->is_num_type(IN2_param_value))
 15271 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15272 					{
 15272 					{
 15273 				
 15273 				
 15274 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
 15274 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
 15275 						return return_type_symbol;
 15275 						return return_type_symbol;
 15276 						
 15276 						
 15303 			if (IN1_param_value == NULL)
 15303 			if (IN1_param_value == NULL)
 15304 			  IN1_param_value = function_call_param_iterator.next();
 15304 			  IN1_param_value = function_call_param_iterator.next();
 15305 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15305 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15306 			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 ;
 15306 			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 ;
 15307 			
 15307 			
 15308 			if(search_expression_type->is_num_type(IN1_param_value))
 15308 			if(search_expression_type->is_num_type(IN1_type_symbol))
 15309 			{
 15309 			{
 15310 		
 15310 		
 15311 				{
 15311 				{
 15312 					identifier_c param_name("IN2");
 15312 					identifier_c param_name("IN2");
 15313 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15313 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15317 					if (IN2_param_value == NULL)
 15317 					if (IN2_param_value == NULL)
 15318 					  IN2_param_value = function_call_param_iterator.next();
 15318 					  IN2_param_value = function_call_param_iterator.next();
 15319 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15319 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15320 					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 ;
 15320 					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 ;
 15321 					
 15321 					
 15322 					if(search_expression_type->is_num_type(IN2_param_value))
 15322 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15323 					{
 15323 					{
 15324 				
 15324 				
 15325 						symbol_c * return_type_symbol = last_type_symbol;
 15325 						symbol_c * return_type_symbol = last_type_symbol;
 15326 						return return_type_symbol;
 15326 						return return_type_symbol;
 15327 						
 15327 						
 15478 			if (IN1_param_value == NULL)
 15478 			if (IN1_param_value == NULL)
 15479 			  IN1_param_value = function_call_param_iterator.next();
 15479 			  IN1_param_value = function_call_param_iterator.next();
 15480 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15480 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15481 			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 ;
 15481 			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 ;
 15482 			
 15482 			
 15483 			if(search_expression_type->is_num_type(IN1_param_value))
 15483 			if(search_expression_type->is_num_type(IN1_type_symbol))
 15484 			{
 15484 			{
 15485 		
 15485 		
 15486 				{
 15486 				{
 15487 					identifier_c param_name("IN2");
 15487 					identifier_c param_name("IN2");
 15488 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15488 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15492 					if (IN2_param_value == NULL)
 15492 					if (IN2_param_value == NULL)
 15493 					  IN2_param_value = function_call_param_iterator.next();
 15493 					  IN2_param_value = function_call_param_iterator.next();
 15494 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15494 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15495 					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 ;
 15495 					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 ;
 15496 					
 15496 					
 15497 					if(search_expression_type->is_num_type(IN2_param_value))
 15497 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15498 					{
 15498 					{
 15499 				
 15499 				
 15500 						symbol_c * return_type_symbol = last_type_symbol;
 15500 						symbol_c * return_type_symbol = last_type_symbol;
 15501 						return return_type_symbol;
 15501 						return return_type_symbol;
 15502 						
 15502 						
 15519 					if (IN2_param_value == NULL)
 15519 					if (IN2_param_value == NULL)
 15520 					  IN2_param_value = function_call_param_iterator.next();
 15520 					  IN2_param_value = function_call_param_iterator.next();
 15521 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15521 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15522 					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 ;
 15522 					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 ;
 15523 					
 15523 					
 15524 					if(search_expression_type->is_num_type(IN2_param_value))
 15524 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15525 					{
 15525 					{
 15526 				
 15526 				
 15527 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
 15527 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
 15528 						return return_type_symbol;
 15528 						return return_type_symbol;
 15529 						
 15529 						
 15556 			if (IN1_param_value == NULL)
 15556 			if (IN1_param_value == NULL)
 15557 			  IN1_param_value = function_call_param_iterator.next();
 15557 			  IN1_param_value = function_call_param_iterator.next();
 15558 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15558 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15559 			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 ;
 15559 			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 ;
 15560 			
 15560 			
 15561 			if(search_expression_type->is_num_type(IN1_param_value))
 15561 			if(search_expression_type->is_num_type(IN1_type_symbol))
 15562 			{
 15562 			{
 15563 		
 15563 		
 15564 				{
 15564 				{
 15565 					identifier_c param_name("IN2");
 15565 					identifier_c param_name("IN2");
 15566 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15566 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15570 					if (IN2_param_value == NULL)
 15570 					if (IN2_param_value == NULL)
 15571 					  IN2_param_value = function_call_param_iterator.next();
 15571 					  IN2_param_value = function_call_param_iterator.next();
 15572 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15572 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15573 					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 ;
 15573 					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 ;
 15574 					
 15574 					
 15575 					if(search_expression_type->is_num_type(IN2_param_value))
 15575 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15576 					{
 15576 					{
 15577 				
 15577 				
 15578 						symbol_c * return_type_symbol = last_type_symbol;
 15578 						symbol_c * return_type_symbol = last_type_symbol;
 15579 						return return_type_symbol;
 15579 						return return_type_symbol;
 15580 						
 15580 						
 15607 			if (IN1_param_value == NULL)
 15607 			if (IN1_param_value == NULL)
 15608 			  IN1_param_value = function_call_param_iterator.next();
 15608 			  IN1_param_value = function_call_param_iterator.next();
 15609 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15609 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15610 			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 ;
 15610 			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 ;
 15611 			
 15611 			
 15612 			if(search_expression_type->is_num_type(IN1_param_value))
 15612 			if(search_expression_type->is_num_type(IN1_type_symbol))
 15613 			{
 15613 			{
 15614 		
 15614 		
 15615 				{
 15615 				{
 15616 					identifier_c param_name("IN2");
 15616 					identifier_c param_name("IN2");
 15617 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15617 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15621 					if (IN2_param_value == NULL)
 15621 					if (IN2_param_value == NULL)
 15622 					  IN2_param_value = function_call_param_iterator.next();
 15622 					  IN2_param_value = function_call_param_iterator.next();
 15623 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15623 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15624 					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 ;
 15624 					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 ;
 15625 					
 15625 					
 15626 					if(search_expression_type->is_num_type(IN2_param_value))
 15626 					if(search_expression_type->is_num_type(IN2_type_symbol))
 15627 					{
 15627 					{
 15628 				
 15628 				
 15629 						symbol_c * return_type_symbol = last_type_symbol;
 15629 						symbol_c * return_type_symbol = last_type_symbol;
 15630 						return return_type_symbol;
 15630 						return return_type_symbol;
 15631 						
 15631 						
 15658 			if (IN_param_value == NULL)
 15658 			if (IN_param_value == NULL)
 15659 			  IN_param_value = function_call_param_iterator.next();
 15659 			  IN_param_value = function_call_param_iterator.next();
 15660 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15660 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15661 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15661 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15662 			
 15662 			
 15663 			if(search_expression_type->is_num_type(IN_param_value))
 15663 			if(search_expression_type->is_num_type(IN_type_symbol))
 15664 			{
 15664 			{
 15665 		
 15665 		
 15666 				symbol_c * return_type_symbol = last_type_symbol;
 15666 				symbol_c * return_type_symbol = last_type_symbol;
 15667 				return return_type_symbol;
 15667 				return return_type_symbol;
 15668 				
 15668 				
 15690 			if (IN_param_value == NULL)
 15690 			if (IN_param_value == NULL)
 15691 			  IN_param_value = function_call_param_iterator.next();
 15691 			  IN_param_value = function_call_param_iterator.next();
 15692 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15692 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15693 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15693 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15694 			
 15694 			
 15695 			if(search_expression_type->is_binary_type(IN_param_value))
 15695 			if(search_expression_type->is_binary_type(IN_type_symbol))
 15696 			{
 15696 			{
 15697 		
 15697 		
 15698 				{
 15698 				{
 15699 					identifier_c param_name("N");
 15699 					identifier_c param_name("N");
 15700 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15700 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15741 			if (IN_param_value == NULL)
 15741 			if (IN_param_value == NULL)
 15742 			  IN_param_value = function_call_param_iterator.next();
 15742 			  IN_param_value = function_call_param_iterator.next();
 15743 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15743 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15744 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15744 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15745 			
 15745 			
 15746 			if(search_expression_type->is_binary_type(IN_param_value))
 15746 			if(search_expression_type->is_binary_type(IN_type_symbol))
 15747 			{
 15747 			{
 15748 		
 15748 		
 15749 				{
 15749 				{
 15750 					identifier_c param_name("N");
 15750 					identifier_c param_name("N");
 15751 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15751 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15792 			if (IN_param_value == NULL)
 15792 			if (IN_param_value == NULL)
 15793 			  IN_param_value = function_call_param_iterator.next();
 15793 			  IN_param_value = function_call_param_iterator.next();
 15794 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15794 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15795 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15795 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15796 			
 15796 			
 15797 			if(search_expression_type->is_binary_type(IN_param_value))
 15797 			if(search_expression_type->is_binary_type(IN_type_symbol))
 15798 			{
 15798 			{
 15799 		
 15799 		
 15800 				{
 15800 				{
 15801 					identifier_c param_name("N");
 15801 					identifier_c param_name("N");
 15802 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15802 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15843 			if (IN_param_value == NULL)
 15843 			if (IN_param_value == NULL)
 15844 			  IN_param_value = function_call_param_iterator.next();
 15844 			  IN_param_value = function_call_param_iterator.next();
 15845 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15845 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 15846 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15846 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 15847 			
 15847 			
 15848 			if(search_expression_type->is_binary_type(IN_param_value))
 15848 			if(search_expression_type->is_binary_type(IN_type_symbol))
 15849 			{
 15849 			{
 15850 		
 15850 		
 15851 				{
 15851 				{
 15852 					identifier_c param_name("N");
 15852 					identifier_c param_name("N");
 15853 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15853 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15894 			if (IN1_param_value == NULL)
 15894 			if (IN1_param_value == NULL)
 15895 			  IN1_param_value = function_call_param_iterator.next();
 15895 			  IN1_param_value = function_call_param_iterator.next();
 15896 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15896 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15897 			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 ;
 15897 			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 ;
 15898 			
 15898 			
 15899 			if(search_expression_type->is_binary_type(IN1_param_value))
 15899 			if(search_expression_type->is_binary_type(IN1_type_symbol))
 15900 			{
 15900 			{
 15901 		
 15901 		
 15902 				{
 15902 				{
 15903 					identifier_c param_name("IN2");
 15903 					identifier_c param_name("IN2");
 15904 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15904 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15908 					if (IN2_param_value == NULL)
 15908 					if (IN2_param_value == NULL)
 15909 					  IN2_param_value = function_call_param_iterator.next();
 15909 					  IN2_param_value = function_call_param_iterator.next();
 15910 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15910 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15911 					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 ;
 15911 					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 ;
 15912 					
 15912 					
 15913 					if(search_expression_type->is_binary_type(IN2_param_value))
 15913 					if(search_expression_type->is_binary_type(IN2_type_symbol))
 15914 					{
 15914 					{
 15915 				
 15915 				
 15916 						symbol_c * return_type_symbol = last_type_symbol;
 15916 						symbol_c * return_type_symbol = last_type_symbol;
 15917 						return return_type_symbol;
 15917 						return return_type_symbol;
 15918 						
 15918 						
 15945 			if (IN1_param_value == NULL)
 15945 			if (IN1_param_value == NULL)
 15946 			  IN1_param_value = function_call_param_iterator.next();
 15946 			  IN1_param_value = function_call_param_iterator.next();
 15947 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15947 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15948 			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 ;
 15948 			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 ;
 15949 			
 15949 			
 15950 			if(search_expression_type->is_binary_type(IN1_param_value))
 15950 			if(search_expression_type->is_binary_type(IN1_type_symbol))
 15951 			{
 15951 			{
 15952 		
 15952 		
 15953 				{
 15953 				{
 15954 					identifier_c param_name("IN2");
 15954 					identifier_c param_name("IN2");
 15955 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15955 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 15959 					if (IN2_param_value == NULL)
 15959 					if (IN2_param_value == NULL)
 15960 					  IN2_param_value = function_call_param_iterator.next();
 15960 					  IN2_param_value = function_call_param_iterator.next();
 15961 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15961 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 15962 					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 ;
 15962 					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 ;
 15963 					
 15963 					
 15964 					if(search_expression_type->is_binary_type(IN2_param_value))
 15964 					if(search_expression_type->is_binary_type(IN2_type_symbol))
 15965 					{
 15965 					{
 15966 				
 15966 				
 15967 						symbol_c * return_type_symbol = last_type_symbol;
 15967 						symbol_c * return_type_symbol = last_type_symbol;
 15968 						return return_type_symbol;
 15968 						return return_type_symbol;
 15969 						
 15969 						
 15996 			if (IN1_param_value == NULL)
 15996 			if (IN1_param_value == NULL)
 15997 			  IN1_param_value = function_call_param_iterator.next();
 15997 			  IN1_param_value = function_call_param_iterator.next();
 15998 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15998 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 15999 			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 ;
 15999 			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 ;
 16000 			
 16000 			
 16001 			if(search_expression_type->is_binary_type(IN1_param_value))
 16001 			if(search_expression_type->is_binary_type(IN1_type_symbol))
 16002 			{
 16002 			{
 16003 		
 16003 		
 16004 				{
 16004 				{
 16005 					identifier_c param_name("IN2");
 16005 					identifier_c param_name("IN2");
 16006 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 16006 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 16010 					if (IN2_param_value == NULL)
 16010 					if (IN2_param_value == NULL)
 16011 					  IN2_param_value = function_call_param_iterator.next();
 16011 					  IN2_param_value = function_call_param_iterator.next();
 16012 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 16012 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 16013 					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 ;
 16013 					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 ;
 16014 					
 16014 					
 16015 					if(search_expression_type->is_binary_type(IN2_param_value))
 16015 					if(search_expression_type->is_binary_type(IN2_type_symbol))
 16016 					{
 16016 					{
 16017 				
 16017 				
 16018 						symbol_c * return_type_symbol = last_type_symbol;
 16018 						symbol_c * return_type_symbol = last_type_symbol;
 16019 						return return_type_symbol;
 16019 						return return_type_symbol;
 16020 						
 16020 						
 16047 			if (IN_param_value == NULL)
 16047 			if (IN_param_value == NULL)
 16048 			  IN_param_value = function_call_param_iterator.next();
 16048 			  IN_param_value = function_call_param_iterator.next();
 16049 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 16049 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 16050 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 16050 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 16051 			
 16051 			
 16052 			if(search_expression_type->is_binary_type(IN_param_value))
 16052 			if(search_expression_type->is_binary_type(IN_type_symbol))
 16053 			{
 16053 			{
 16054 		
 16054 		
 16055 				symbol_c * return_type_symbol = IN_type_symbol;
 16055 				symbol_c * return_type_symbol = IN_type_symbol;
 16056 				return return_type_symbol;
 16056 				return return_type_symbol;
 16057 				
 16057 				
 16321 			if (K_param_value == NULL)
 16321 			if (K_param_value == NULL)
 16322 			  K_param_value = function_call_param_iterator.next();
 16322 			  K_param_value = function_call_param_iterator.next();
 16323 			symbol_c *K_type_symbol = search_expression_type->get_type(K_param_value);
 16323 			symbol_c *K_type_symbol = search_expression_type->get_type(K_param_value);
 16324 			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 ;
 16324 			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 ;
 16325 			
 16325 			
 16326 			if(search_expression_type->is_integer_type(K_param_value))
 16326 			if(search_expression_type->is_integer_type(K_type_symbol))
 16327 			{
 16327 			{
 16328 		
 16328 		
 16329 				{
 16329 				{
 16330 					identifier_c param_name("IN0");
 16330 					identifier_c param_name("IN0");
 16331 					/* Get the value from a foo(<param_name> = <param_value>) style call */
 16331 					/* Get the value from a foo(<param_name> = <param_value>) style call */