absyntax_utils/search_type_code.c
changeset 210 8387cac2aba6
parent 208 c72748a12ae3
child 217 f5dfadf5de54
--- a/absyntax_utils/search_type_code.c	Mon Sep 21 12:02:14 2009 +0200
+++ b/absyntax_utils/search_type_code.c	Mon Sep 21 12:04:15 2009 +0200
@@ -13984,7 +13984,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -14136,7 +14142,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -14226,7 +14238,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -14425,7 +14443,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -14515,7 +14539,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -14574,7 +14604,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -14616,7 +14652,13 @@
             
             {
         
-                symbol_c * return_type_symbol = last_type_symbol;
+                symbol_c * return_type_symbol;
+                if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                    return_type_symbol = &search_constant_type_c::lint_type_name;
+                else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                    return_type_symbol = &search_constant_type_c::lreal_type_name;
+                else
+                    return_type_symbol = last_type_symbol;
                 return return_type_symbol;
                 
             }
@@ -14905,7 +14947,11 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lword_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -14964,7 +15010,11 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lword_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -15023,7 +15073,11 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lword_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -15135,7 +15189,13 @@
                             
                             {
                         
-                                symbol_c * return_type_symbol = last_type_symbol;
+                                symbol_c * return_type_symbol;
+                                if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lint_type_name;
+                                else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lreal_type_name;
+                                else
+                                    return_type_symbol = last_type_symbol;
                                 return return_type_symbol;
                                 
                             }
@@ -15200,7 +15260,13 @@
                     
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -15259,7 +15325,13 @@
                     
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -15417,7 +15489,13 @@
                             
                             {
                         
-                                symbol_c * return_type_symbol = last_type_symbol;
+                                symbol_c * return_type_symbol;
+                                if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lint_type_name;
+                                else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lreal_type_name;
+                                else
+                                    return_type_symbol = last_type_symbol;
                                 return return_type_symbol;
                                 
                             }
@@ -26530,7 +26608,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -26672,7 +26756,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -26752,7 +26842,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -26941,7 +27037,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27021,7 +27123,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27070,7 +27178,13 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27102,7 +27216,13 @@
             
             {
         
-                symbol_c * return_type_symbol = last_type_symbol;
+                symbol_c * return_type_symbol;
+                if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                    return_type_symbol = &search_constant_type_c::lint_type_name;
+                else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                    return_type_symbol = &search_constant_type_c::lreal_type_name;
+                else
+                    return_type_symbol = last_type_symbol;
                 return return_type_symbol;
                 
             }
@@ -27341,7 +27461,11 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lword_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27390,7 +27514,11 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lword_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27439,7 +27567,11 @@
                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lword_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27531,7 +27663,13 @@
                             
                             {
                         
-                                symbol_c * return_type_symbol = last_type_symbol;
+                                symbol_c * return_type_symbol;
+                                if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lint_type_name;
+                                else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lreal_type_name;
+                                else
+                                    return_type_symbol = last_type_symbol;
                                 return return_type_symbol;
                                 
                             }
@@ -27586,7 +27724,13 @@
                     
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27635,7 +27779,13 @@
                     
                     {
                 
-                        symbol_c * return_type_symbol = last_type_symbol;
+                        symbol_c * return_type_symbol;
+                        if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lint_type_name;
+                        else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                            return_type_symbol = &search_constant_type_c::lreal_type_name;
+                        else
+                            return_type_symbol = last_type_symbol;
                         return return_type_symbol;
                         
                     }
@@ -27773,7 +27923,13 @@
                             
                             {
                         
-                                symbol_c * return_type_symbol = last_type_symbol;
+                                symbol_c * return_type_symbol;
+                                if (search_expression_type->is_literal_integer_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lint_type_name;
+                                else if (search_expression_type->is_literal_real_type(last_type_symbol))
+                                    return_type_symbol = &search_constant_type_c::lreal_type_name;
+                                else
+                                    return_type_symbol = last_type_symbol;
                                 return return_type_symbol;
                                 
                             }