stage4/generate_cc/generate_cc.cc
changeset 52 f44458d1fa29
parent 49 c96d1a4c23f8
child 65 c6d41c1287de
equal deleted inserted replaced
51:d44158420983 52:f44458d1fa29
   786                 generate_cc_vardecl_c::located_vt |
   786                 generate_cc_vardecl_c::located_vt |
   787                 generate_cc_vardecl_c::external_vt);
   787                 generate_cc_vardecl_c::external_vt);
   788   vardecl->print(symbol->var_declarations);
   788   vardecl->print(symbol->var_declarations);
   789   delete vardecl;
   789   delete vardecl;
   790   /* (A.4) Generate private internal variables for SFC */
   790   /* (A.4) Generate private internal variables for SFC */
   791   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::sfcdecl_sg);
   791   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::sfcdecl_sd);
   792   sfcdecl->print(symbol->function_block_body);
   792   sfcdecl->print(symbol->function_block_body);
   793   delete sfcdecl;
   793   delete sfcdecl;
   794   
   794   
   795   /* (A.5) Program data structure type name. */
   795   /* (A.5) Program data structure type name. */
   796   s4o.indent_left();
   796   s4o.indent_left();
   824 				      generate_cc_vardecl_c::external_vt);
   824 				      generate_cc_vardecl_c::external_vt);
   825   vardecl->print(symbol->var_declarations, NULL,  FB_FUNCTION_PARAM"->");
   825   vardecl->print(symbol->var_declarations, NULL,  FB_FUNCTION_PARAM"->");
   826   delete vardecl;
   826   delete vardecl;
   827   s4o.print("\n");
   827   s4o.print("\n");
   828   /* (B.3) Generate private internal variables for SFC */
   828   /* (B.3) Generate private internal variables for SFC */
   829   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::sfcinit_sg);
   829   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::sfcinit_sd);
   830   sfcdecl->print(symbol->function_block_body,FB_FUNCTION_PARAM"->");
   830   sfcdecl->print(symbol->function_block_body,FB_FUNCTION_PARAM"->");
   831   delete sfcdecl;
   831   delete sfcdecl;
   832 
   832 
   833   s4o.indent_left();
   833   s4o.indent_left();
   834   s4o.print(s4o.indent_spaces + "}\n\n");
   834   s4o.print(s4o.indent_spaces + "}\n\n");
   835 
   835 
   836   /* (C) Function with PROGRAM body */
   836   /* (C) Function with PROGRAM body */
   837   /* (C.1) Step definitions */
   837   /* (C.1) Step definitions */
   838   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::stepdef_sg);
   838   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::stepdef_sd);
   839   sfcdecl->print(symbol->function_block_body);
   839   sfcdecl->print(symbol->function_block_body);
   840   delete sfcdecl;
   840   delete sfcdecl;
   841   
   841   
   842   /* (C.2) Action definitions */
   842   /* (C.2) Action definitions */
   843   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::actiondef_sg);
   843   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::actiondef_sd);
   844   sfcdecl->print(symbol->function_block_body);
   844   sfcdecl->print(symbol->function_block_body);
   845   delete sfcdecl;
   845   delete sfcdecl;
   846 
   846 
   847   /* (C.3) Function declaration */
   847   /* (C.3) Function declaration */
   848   s4o.print("// Code part\n");
   848   s4o.print("// Code part\n");
   876   symbol->program_type_name->accept(*this);
   876   symbol->program_type_name->accept(*this);
   877   s4o.print(FB_FUNCTION_SUFFIX);
   877   s4o.print(FB_FUNCTION_SUFFIX);
   878   s4o.print(s4o.indent_spaces + "() \n\n");
   878   s4o.print(s4o.indent_spaces + "() \n\n");
   879 
   879 
   880   /* (C.6) Step undefinitions */
   880   /* (C.6) Step undefinitions */
   881   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::stepundef_sg);
   881   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::stepundef_sd);
   882   sfcdecl->print(symbol->function_block_body);
   882   sfcdecl->print(symbol->function_block_body);
   883   delete sfcdecl;
   883   delete sfcdecl;
   884   
   884   
   885   /* (C.7) Action undefinitions */
   885   /* (C.7) Action undefinitions */
   886   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::actionundef_sg);
   886   sfcdecl = new generate_cc_sfcdecl_c(&s4o, generate_cc_sfcdecl_c::actionundef_sd);
   887   sfcdecl->print(symbol->function_block_body);
   887   sfcdecl->print(symbol->function_block_body);
   888   delete sfcdecl;
   888   delete sfcdecl;
   889   
   889   
   890   s4o.indent_left();
   890   s4o.indent_left();
   891   s4o.print("\n\n\n\n");
   891   s4o.print("\n\n\n\n");