diff -r 566414d7ba1f -r 477393b00f95 absyntax_utils/spec_init_separator.cc --- a/absyntax_utils/spec_init_separator.cc Sat Oct 25 13:20:10 2014 +0100 +++ b/absyntax_utils/spec_init_separator.cc Sun Nov 16 12:54:10 2014 +0000 @@ -74,7 +74,22 @@ /* B 1.1 - Letters, digits and identifiers */ /*******************************************/ // SYM_TOKEN(identifier_c) -void *spec_init_sperator_c::visit(identifier_c *symbol) { +/* visitor for identifier_c is necessary because spec_init_sperator_c will be called to analyse PROGRAM identfiers, + * which are still transformed into identfier_c, instead of a derived_datatype_identifier_c + */ +void *spec_init_sperator_c::visit( identifier_c *symbol) { + TRACE("spec_init_sperator_c::identifier_c"); + switch (search_what) { + /* if we ever get called sith a simple identifier_c, then it must be a previously declared type... */ + case search_spec: return symbol; + case search_init: return NULL; + } + ERROR; /* should never occur */ + return NULL; + } + + +void *spec_init_sperator_c::visit(derived_datatype_identifier_c *symbol) { TRACE("spec_init_sperator_c::identifier_c"); switch (search_what) { /* if we ever get called sith a simple identifier_c, then it must be a previously declared type... */