Fix problems with direct variables in expression while compiling resulting expression type
authorlbessard
Fri, 19 Jun 2009 13:27:26 +0200
changeset 196 1c0c7a664fc2
parent 195 66d501d7b67d
child 197 24bd115b2422
child 201 e657008f43d0
Fix problems with direct variables in expression while compiling resulting expression type
absyntax_utils/search_expression_type.cc
--- a/absyntax_utils/search_expression_type.cc	Fri Jun 19 13:26:31 2009 +0200
+++ b/absyntax_utils/search_expression_type.cc	Fri Jun 19 13:27:26 2009 +0200
@@ -192,20 +192,13 @@
 /* B 1.4.1 - Directly Represented Variables */
 /********************************************/
 void *search_expression_type_c::visit(direct_variable_c *symbol) {
-  switch (symbol->value[2]) {
-    case 'X': // bit - 1 bit
-      return (void *)&bool_type_name;
-    case 'B': // byte - 8 bits
-      return (void *)&byte_type_name;
-    case 'W': // word - 16 bits
-      return (void *)&word_type_name;
-    case 'D': // double word - 32 bits
-      return (void *)&dword_type_name;
-    case 'L': // long word - 64 bits
-      return (void *)&lword_type_name;
-    default:  // if none of the above, then the empty string was used <=> boolean 
-      return (void *)&bool_type_name;
-  }
+  symbol_c *res;
+  
+  /* Nope, now we assume it is a variable, and determine its type... */
+  res = search_varfb_instance_type->get_type(symbol);
+  if (NULL != res) return res;
+  
+  return NULL;
 }
 
 /*************************************/