equal
deleted
inserted
replaced
637 //SYM_REF4(function_block_declaration_c, fblock_name, var_declarations, fblock_body, unused) |
637 //SYM_REF4(function_block_declaration_c, fblock_name, var_declarations, fblock_body, unused) |
638 void *visit(function_block_declaration_c *symbol) { |
638 void *visit(function_block_declaration_c *symbol) { |
639 generate_c_vardecl_c *vardecl; |
639 generate_c_vardecl_c *vardecl; |
640 generate_c_sfcdecl_c *sfcdecl; |
640 generate_c_sfcdecl_c *sfcdecl; |
641 generate_c_typedecl_c *typedecl; |
641 generate_c_typedecl_c *typedecl; |
|
642 generate_c_inlinefcall_c *inlinedecl; |
642 TRACE("function_block_declaration_c"); |
643 TRACE("function_block_declaration_c"); |
643 |
644 |
644 /* (A) Function Block data structure declaration... */ |
645 /* (A) Function Block data structure declaration... */ |
645 typedecl = new generate_c_typedecl_c(&s4o_incl); |
646 typedecl = new generate_c_typedecl_c(&s4o_incl); |
646 /* (A.1) Data structure declaration */ |
647 /* (A.1) Data structure declaration */ |
684 symbol->fblock_name->accept(*typedecl); |
685 symbol->fblock_name->accept(*typedecl); |
685 s4o_incl.print(";\n\n"); |
686 s4o_incl.print(";\n\n"); |
686 delete typedecl; |
687 delete typedecl; |
687 |
688 |
688 /* (A.6) Function Block inline function declaration for function invocation */ |
689 /* (A.6) Function Block inline function declaration for function invocation */ |
689 generate_c_inlinefcall_c inline_decl(&s4o, symbol->fblock_name, symbol, FB_FUNCTION_PARAM"->"); |
690 inlinedecl = new generate_c_inlinefcall_c(&s4o, symbol->fblock_name, symbol, FB_FUNCTION_PARAM"->"); |
690 symbol->fblock_body->accept(inline_decl); |
691 inlinedecl->print(symbol->fblock_body); |
|
692 delete inlinedecl; |
691 |
693 |
692 /* (B) Constructor */ |
694 /* (B) Constructor */ |
693 /* (B.1) Constructor name... */ |
695 /* (B.1) Constructor name... */ |
694 s4o.print(s4o.indent_spaces + "void "); |
696 s4o.print(s4o.indent_spaces + "void "); |
695 symbol->fblock_name->accept(*this); |
697 symbol->fblock_name->accept(*this); |
828 //SYM_REF4(program_declaration_c, program_type_name, var_declarations, function_block_body, unused) |
830 //SYM_REF4(program_declaration_c, program_type_name, var_declarations, function_block_body, unused) |
829 void *visit(program_declaration_c *symbol) { |
831 void *visit(program_declaration_c *symbol) { |
830 generate_c_vardecl_c *vardecl; |
832 generate_c_vardecl_c *vardecl; |
831 generate_c_sfcdecl_c *sfcdecl; |
833 generate_c_sfcdecl_c *sfcdecl; |
832 generate_c_typedecl_c *typedecl; |
834 generate_c_typedecl_c *typedecl; |
|
835 generate_c_inlinefcall_c *inlinedecl; |
833 TRACE("program_declaration_c"); |
836 TRACE("program_declaration_c"); |
834 |
837 |
835 /* (A) Program data structure declaration... */ |
838 /* (A) Program data structure declaration... */ |
836 typedecl = new generate_c_typedecl_c(&s4o_incl); |
839 typedecl = new generate_c_typedecl_c(&s4o_incl); |
837 /* (A.1) Data structure declaration */ |
840 /* (A.1) Data structure declaration */ |
872 symbol->program_type_name->accept(*typedecl); |
875 symbol->program_type_name->accept(*typedecl); |
873 s4o_incl.print(";\n\n"); |
876 s4o_incl.print(";\n\n"); |
874 delete typedecl; |
877 delete typedecl; |
875 |
878 |
876 /* (A.6) Function Block inline function declaration for function invocation */ |
879 /* (A.6) Function Block inline function declaration for function invocation */ |
877 generate_c_inlinefcall_c inline_decl(&s4o, symbol->program_type_name, symbol, FB_FUNCTION_PARAM"->"); |
880 inlinedecl = new generate_c_inlinefcall_c(&s4o, symbol->program_type_name, symbol, FB_FUNCTION_PARAM"->"); |
878 symbol->function_block_body->accept(inline_decl); |
881 inlinedecl->print(symbol->function_block_body); |
|
882 delete inlinedecl; |
879 |
883 |
880 /* (B) Constructor */ |
884 /* (B) Constructor */ |
881 /* (B.1) Constructor name... */ |
885 /* (B.1) Constructor name... */ |
882 s4o.print(s4o.indent_spaces + "void "); |
886 s4o.print(s4o.indent_spaces + "void "); |
883 symbol->program_type_name->accept(*this); |
887 symbol->program_type_name->accept(*this); |