new generated files
authorlbessard
Tue, 19 Jun 2007 08:42:10 +0200
changeset 34 a793b010e371
parent 33 4507beb2aac6
child 35 9f3d6c089533
new generated files
stage4/generate_cc/search_type_code.c
stage4/generate_cc/st_code_gen.c
--- a/stage4/generate_cc/search_type_code.c	Mon Jun 18 14:45:03 2007 +0200
+++ b/stage4/generate_cc/search_type_code.c	Tue Jun 19 08:42:10 2007 +0200
@@ -14135,7 +14135,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
@@ -14167,7 +14167,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -14199,7 +14199,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -14231,7 +14231,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -14263,7 +14263,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -14295,7 +14295,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -14327,7 +14327,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -14359,7 +14359,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -14391,7 +14391,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -14743,7 +14743,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN_param_value))
+			if(search_expression_type->is_num_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14775,7 +14775,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14807,7 +14807,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14839,7 +14839,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14871,7 +14871,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14903,7 +14903,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14935,7 +14935,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14967,7 +14967,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -14999,7 +14999,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -15031,7 +15031,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -15063,7 +15063,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -15095,7 +15095,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15109,7 +15109,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15227,7 +15227,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15241,7 +15241,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15268,7 +15268,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -15305,7 +15305,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15319,7 +15319,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15480,7 +15480,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15494,7 +15494,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15521,7 +15521,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -15558,7 +15558,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15572,7 +15572,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15609,7 +15609,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15623,7 +15623,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15660,7 +15660,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN_param_value))
+			if(search_expression_type->is_num_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = last_type_symbol;
@@ -15692,7 +15692,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -15743,7 +15743,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -15794,7 +15794,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -15845,7 +15845,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -15896,7 +15896,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN1_param_value))
+			if(search_expression_type->is_binary_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15910,7 +15910,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_binary_type(IN2_param_value))
+					if(search_expression_type->is_binary_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15947,7 +15947,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN1_param_value))
+			if(search_expression_type->is_binary_type(IN1_type_symbol))
 			{
 		
 				{
@@ -15961,7 +15961,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_binary_type(IN2_param_value))
+					if(search_expression_type->is_binary_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -15998,7 +15998,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN1_param_value))
+			if(search_expression_type->is_binary_type(IN1_type_symbol))
 			{
 		
 				{
@@ -16012,7 +16012,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_binary_type(IN2_param_value))
+					if(search_expression_type->is_binary_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -16049,7 +16049,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16323,7 +16323,7 @@
 			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_param_value))
+			if(search_expression_type->is_integer_type(K_type_symbol))
 			{
 		
 				{
--- a/stage4/generate_cc/st_code_gen.c	Mon Jun 18 14:45:03 2007 +0200
+++ b/stage4/generate_cc/st_code_gen.c	Tue Jun 19 08:42:10 2007 +0200
@@ -16035,7 +16035,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
@@ -16069,7 +16069,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
@@ -16106,7 +16106,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
@@ -16143,7 +16143,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
@@ -16180,7 +16180,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
@@ -16217,7 +16217,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
@@ -16254,7 +16254,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
@@ -16291,7 +16291,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
@@ -16328,7 +16328,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
@@ -16731,7 +16731,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN_param_value))
+			if(search_expression_type->is_num_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16768,7 +16768,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16803,7 +16803,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16838,7 +16838,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16873,7 +16873,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16908,7 +16908,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16943,7 +16943,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -16978,7 +16978,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -17013,7 +17013,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -17048,7 +17048,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -17083,7 +17083,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_real_type(IN_param_value))
+			if(search_expression_type->is_real_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -17118,7 +17118,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -17132,7 +17132,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -17296,7 +17296,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -17310,7 +17310,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -17368,7 +17368,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -17410,7 +17410,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -17424,7 +17424,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -17620,7 +17620,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -17634,7 +17634,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -17666,7 +17666,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
@@ -17708,7 +17708,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -17722,7 +17722,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -17764,7 +17764,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN1_param_value))
+			if(search_expression_type->is_num_type(IN1_type_symbol))
 			{
 		
 				{
@@ -17778,7 +17778,7 @@
 					symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
 					last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
 					
-					if(search_expression_type->is_num_type(IN2_param_value))
+					if(search_expression_type->is_num_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
@@ -17820,7 +17820,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_num_type(IN_param_value))
+			if(search_expression_type->is_num_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = last_type_symbol;
@@ -17853,7 +17853,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -17907,7 +17907,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -17961,7 +17961,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -18019,7 +18019,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				{
@@ -18077,7 +18077,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN1_param_value))
+			if(search_expression_type->is_binary_type(IN1_type_symbol))
 			{
 		
 				{
@@ -18091,11 +18091,13 @@
 					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_param_value))
+					if(search_expression_type->is_binary_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
 						s4o.print("(");
+						if (search_expression_type->is_bool_type(last_type_symbol))
+						  s4o.print("(");
 						IN1_param_value->accept(*this);
 						s4o.print("&");
 						IN2_param_value->accept(*this);
@@ -18125,6 +18127,11 @@
 							
 						}while(param_value != NULL);
 						s4o.print(")");
+						if (search_expression_type->is_bool_type(last_type_symbol)) {
+						  s4o.print("&1");
+						  s4o.print(")");
+						}
+						s4o.print("");
 						return NULL;
 						
 						
@@ -18159,7 +18166,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN1_param_value))
+			if(search_expression_type->is_binary_type(IN1_type_symbol))
 			{
 		
 				{
@@ -18173,11 +18180,13 @@
 					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_param_value))
+					if(search_expression_type->is_binary_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
 						s4o.print("(");
+						if (search_expression_type->is_bool_type(last_type_symbol))
+						  s4o.print("(");
 						IN1_param_value->accept(*this);
 						s4o.print("|");
 						IN2_param_value->accept(*this);
@@ -18207,6 +18216,11 @@
 							
 						}while(param_value != NULL);
 						s4o.print(")");
+						if (search_expression_type->is_bool_type(last_type_symbol)) {
+						  s4o.print("&1");
+						  s4o.print(")");
+						}
+						s4o.print("");
 						return NULL;
 						
 						
@@ -18241,7 +18255,7 @@
 			symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN1_param_value))
+			if(search_expression_type->is_binary_type(IN1_type_symbol))
 			{
 		
 				{
@@ -18255,11 +18269,13 @@
 					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_param_value))
+					if(search_expression_type->is_binary_type(IN2_type_symbol))
 					{
 				
 						symbol_c * return_type_symbol = last_type_symbol;
 						s4o.print("(");
+						if (search_expression_type->is_bool_type(last_type_symbol))
+						  s4o.print("(");
 						IN1_param_value->accept(*this);
 						s4o.print("^");
 						IN2_param_value->accept(*this);
@@ -18289,6 +18305,11 @@
 							
 						}while(param_value != NULL);
 						s4o.print(")");
+						if (search_expression_type->is_bool_type(last_type_symbol)) {
+						  s4o.print("&1");
+						  s4o.print(")");
+						}
+						s4o.print("");
 						return NULL;
 						
 						
@@ -18323,7 +18344,7 @@
 			symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
 			last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
 			
-			if(search_expression_type->is_binary_type(IN_param_value))
+			if(search_expression_type->is_binary_type(IN_type_symbol))
 			{
 		
 				symbol_c * return_type_symbol = IN_type_symbol;
@@ -18683,7 +18704,7 @@
 			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_param_value))
+			if(search_expression_type->is_integer_type(K_type_symbol))
 			{
 		
 				{