absyntax_utils/absyntax_utils.cc
changeset 909 8b2a31dea131
parent 726 9b61eb4f00dc
child 971 8aee27d46208
equal deleted inserted replaced
908:9e8e1ba5ca46 909:8b2a31dea131
   181   /********************************/
   181   /********************************/
   182   /* B 1.3.3 - Derived data types */
   182   /* B 1.3.3 - Derived data types */
   183   /********************************/
   183   /********************************/
   184 
   184 
   185   /*  subrange_type_name ':' subrange_spec_init */
   185   /*  subrange_type_name ':' subrange_spec_init */
   186   void *visit(subrange_type_declaration_c *symbol) {
   186   void *visit(subrange_type_declaration_c *symbol) {type_symtable.insert(symbol->subrange_type_name, symbol->subrange_spec_init); return NULL;}
   187     TRACE("subrange_type_declaration_c");  
       
   188     type_symtable.insert(symbol->subrange_type_name, symbol->subrange_spec_init);
       
   189     return NULL;
       
   190   }
       
   191   
       
   192 
   187 
   193   /*  enumerated_type_name ':' enumerated_spec_init */
   188   /*  enumerated_type_name ':' enumerated_spec_init */
   194   void *visit(enumerated_type_declaration_c *symbol) {
   189   void *visit(enumerated_type_declaration_c *symbol) {
   195     TRACE("enumerated_type_declaration_c");
       
   196     type_symtable.insert(symbol->enumerated_type_name, symbol);
   190     type_symtable.insert(symbol->enumerated_type_name, symbol);
   197     current_enumerated_type = symbol->enumerated_type_name;
   191     current_enumerated_type = symbol->enumerated_type_name;
   198     symbol->enumerated_spec_init->accept(*this);
   192     symbol->enumerated_spec_init->accept(*this);
   199     current_enumerated_type = NULL;
   193     current_enumerated_type = NULL;
   200     return NULL;
   194     return NULL;
   201   }
   195   }
   202 
   196 
   203   /* enumerated_specification ASSIGN enumerated_value */
   197   /* enumerated_specification ASSIGN enumerated_value */
   204   void *visit(enumerated_spec_init_c *symbol) {
   198   void *visit(enumerated_spec_init_c *symbol) {return symbol->enumerated_specification->accept(*this);}
   205     return symbol->enumerated_specification->accept(*this);
       
   206   }
       
   207 
       
   208 
       
   209   /*  identifier ':' array_spec_init */
   199   /*  identifier ':' array_spec_init */
   210   void *visit(array_type_declaration_c *symbol) {
   200   void *visit(array_type_declaration_c *symbol) {type_symtable.insert(symbol->identifier, symbol->array_spec_init); return NULL;}
   211     TRACE("array_type_declaration_c");
       
   212     type_symtable.insert(symbol->identifier, symbol->array_spec_init);
       
   213     return NULL;
       
   214   }
       
   215 
       
   216 
       
   217   /*  simple_type_name ':' simple_spec_init */
   201   /*  simple_type_name ':' simple_spec_init */
   218   void *visit(simple_type_declaration_c *symbol) {
   202   void *visit(simple_type_declaration_c *symbol) {type_symtable.insert(symbol->simple_type_name, symbol->simple_spec_init); return NULL;}
   219     TRACE("simple_type_declaration_c");
       
   220     type_symtable.insert(symbol->simple_type_name, symbol->simple_spec_init);
       
   221     return NULL;
       
   222   }
       
   223 
       
   224 
       
   225   /*  structure_type_name ':' structure_specification */
   203   /*  structure_type_name ':' structure_specification */
   226   void *visit(structure_type_declaration_c *symbol) {
   204   void *visit(structure_type_declaration_c *symbol) {type_symtable.insert(symbol->structure_type_name, symbol->structure_specification); return NULL;}
   227     TRACE("structure_type_declaration_c");
       
   228     type_symtable.insert(symbol->structure_type_name, symbol->structure_specification);
       
   229     return NULL;
       
   230   }
       
   231   
       
   232   
       
   233   /*  string_type_name ':' elementary_string_type_name string_type_declaration_size string_type_declaration_init */
   205   /*  string_type_name ':' elementary_string_type_name string_type_declaration_size string_type_declaration_init */
   234   // SYM_REF4(string_type_declaration_c,	string_type_name,
   206   void *visit(string_type_declaration_c *symbol) {type_symtable.insert(symbol->string_type_name, symbol); return NULL;}
   235   //    					elementary_string_type_name,
   207   /* identifier ':' ref_spec_init */
   236   //    					string_type_declaration_size,
   208   void *visit(ref_type_decl_c *symbol) {type_symtable.insert(symbol->ref_type_name, symbol); return NULL;}
   237   //    					string_type_declaration_init) /* may be == NULL! */
       
   238   void *visit(string_type_declaration_c *symbol)	{
       
   239     TRACE("string_type_declaration_c");
       
   240     type_symtable.insert(symbol->string_type_name, symbol);
       
   241     return NULL;
       
   242 }
       
   243 
   209 
   244   /*********************/
   210   /*********************/
   245   /* B 1.4 - Variables */
   211   /* B 1.4 - Variables */
   246   /*********************/
   212   /*********************/
   247   /********************************************/
   213   /********************************************/