# HG changeset patch
# User lbessard
# Date 1245410846 -7200
# Node ID 1c0c7a664fc26ae9768e6b39fde77ec05dc69011
# Parent  66d501d7b67df47784ac87d3ea4949b6a42bf0d8
Fix problems with direct variables in expression while compiling resulting expression type

diff -r 66d501d7b67d -r 1c0c7a664fc2 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;
 }
 
 /*************************************/