stage4/generate_c/generate_c_typedecl.cc
changeset 909 8b2a31dea131
parent 860 7669a8d43c11
child 913 1c74da17cb61
equal deleted inserted replaced
908:9e8e1ba5ca46 909:8b2a31dea131
   640 					elementary_string_type_name,
   640 					elementary_string_type_name,
   641 					string_type_declaration_size,
   641 					string_type_declaration_size,
   642 					string_type_declaration_init) /* may be == NULL! */
   642 					string_type_declaration_init) /* may be == NULL! */
   643 #endif
   643 #endif
   644 
   644 
       
   645 
       
   646 
       
   647 /* ref_spec:  REF_TO (non_generic_type_name | function_block_type_name) */
       
   648 // SYM_REF1(ref_spec_c, type_name)
       
   649 void *visit(ref_spec_c *symbol) {
       
   650   return symbol->type_name->accept(*this);
       
   651 }
       
   652 
       
   653 /* For the moment, we do not support initialising reference data types */
       
   654 /* ref_spec_init: ref_spec [ ASSIGN ref_initialization ] */ 
       
   655 /* NOTE: ref_initialization may be NULL!! */
       
   656 // SYM_REF2(ref_spec_init_c, ref_spec, ref_initialization)
       
   657 void *visit(ref_spec_init_c *symbol) {
       
   658   return symbol->ref_spec->accept(*this);
       
   659 }
       
   660 
       
   661 /* ref_type_decl: identifier ':' ref_spec_init */
       
   662 // SYM_REF2(ref_type_decl_c, ref_type_name, ref_spec_init)
       
   663 void *visit(ref_type_decl_c *symbol) {
       
   664   TRACE("ref_type_decl_c");
       
   665   
       
   666   current_type_name = NULL;
       
   667   current_typedefinition = none_td;
       
   668 
       
   669   s4o_incl.print("__DECLARE_REFTO_TYPE(");
       
   670   symbol->ref_type_name->accept(*basedecl);
       
   671   s4o_incl.print(", ");
       
   672   symbol->ref_spec_init->accept(*this);
       
   673   s4o_incl.print(") ");
       
   674 
       
   675   current_type_name = NULL;
       
   676   current_typedefinition = none_td;
       
   677 
       
   678   return NULL;
       
   679 }
       
   680 
       
   681 
       
   682 
       
   683 
       
   684 
       
   685 
       
   686 
   645 /*********************/
   687 /*********************/
   646 /* B 1.4 - Variables */
   688 /* B 1.4 - Variables */
   647 /*********************/
   689 /*********************/
   648   /* done in base class(es) */
   690   /* done in base class(es) */
   649 
   691