stage4/generate_c/generate_c_typedecl.cc
changeset 930 96f3928ebd96
parent 916 e14cb81bc310
child 932 061824c45a5b
equal deleted inserted replaced
929:469de0f54b0e 930:96f3928ebd96
   636        * has already been defined. So, we simly print out the id of that C datatpe...
   636        * has already been defined. So, we simly print out the id of that C datatpe...
   637        */
   637        */
   638     symbol->anotations_map["generate_c_annotaton__implicit_type_id"]->accept(*basedecl);
   638     symbol->anotations_map["generate_c_annotaton__implicit_type_id"]->accept(*basedecl);
   639     return NULL;
   639     return NULL;
   640   }
   640   }
       
   641   /* This is NOT part of an implicitly declared datatype (i.e. we are being called from an visit(ref_type_decl_c *),
       
   642    * through the visit(ref_spec_init_c*)), so we need to simply print out the name of the datatype we reference to.
       
   643    */
   641   return symbol->type_name->accept(*this);
   644   return symbol->type_name->accept(*this);
   642 }
   645 }
   643 
   646 
   644 /* For the moment, we do not support initialising reference data types */
   647 /* For the moment, we do not support initialising reference data types */
   645 /* ref_spec_init: ref_spec [ ASSIGN ref_initialization ] */ 
   648 /* ref_spec_init: ref_spec [ ASSIGN ref_initialization ] */ 
   653        * has already been defined. So, we simly print out the id of that C datatpe...
   656        * has already been defined. So, we simly print out the id of that C datatpe...
   654        */
   657        */
   655     symbol->anotations_map["generate_c_annotaton__implicit_type_id"]->accept(*basedecl);
   658     symbol->anotations_map["generate_c_annotaton__implicit_type_id"]->accept(*basedecl);
   656     return NULL;
   659     return NULL;
   657   }
   660   }
       
   661   /* This is NOT part of an implicitly declared datatype (i.e. we are being called from an visit(ref_type_decl_c *)),
       
   662    * so we need to simply print out the name of the datatype we reference to.
       
   663    */
   658   return symbol->ref_spec->accept(*this);
   664   return symbol->ref_spec->accept(*this);
   659 }
   665 }
   660 
   666 
   661 /* ref_type_decl: identifier ':' ref_spec_init */
   667 /* ref_type_decl: identifier ':' ref_spec_init */
   662 // SYM_REF2(ref_type_decl_c, ref_type_name, ref_spec_init)
   668 // SYM_REF2(ref_type_decl_c, ref_type_name, ref_spec_init)