absyntax_utils/search_base_type.cc
changeset 909 8b2a31dea131
parent 858 c5f145364a4f
child 919 8da635655f37
--- a/absyntax_utils/search_base_type.cc	Sun Jul 06 23:31:08 2014 +0100
+++ b/absyntax_utils/search_base_type.cc	Sun Jul 13 12:26:58 2014 +0100
@@ -361,7 +361,7 @@
 					string_type_declaration_size,
 					string_type_declaration_init) // may be == NULL!
 */
-void *search_base_type_c::visit(string_type_declaration_c *symbol)	                {return (void *)symbol;}
+void *search_base_type_c::visit(string_type_declaration_c *symbol)                      {return (void *)symbol;}
 
 
 /*  function_block_type_name ASSIGN structure_initialization */
@@ -373,6 +373,27 @@
 
 
 
+/* ref_spec:  REF_TO (non_generic_type_name | function_block_type_name) */
+// SYM_REF1(ref_spec_c, type_name)
+void *search_base_type_c::visit(ref_spec_c *symbol)                                     {return (void *)symbol;}
+
+/* For the moment, we do not support initialising reference data types */
+/* ref_spec_init: ref_spec [ ASSIGN ref_initialization ]; */ 
+/* NOTE: ref_initialization may be NULL!! */
+// SYM_REF2(ref_spec_init_c, ref_spec, ref_initialization)
+void *search_base_type_c::visit(ref_spec_init_c *symbol) {
+  return symbol->ref_spec->accept(*this);
+}
+
+/* ref_type_decl: identifier ':' ref_spec_init */
+// SYM_REF2(ref_type_decl_c, ref_type_name, ref_spec_init)
+void *search_base_type_c::visit(ref_type_decl_c *symbol)  {
+  this->current_basetype_name = symbol->ref_type_name;
+  return symbol->ref_spec_init->accept(*this);
+}
+
+
+
 /*****************************/
 /* B 1.5.2 - Function Blocks */
 /*****************************/