stage4/generate_c/generate_c_configbody.cc
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Sun, 14 Oct 2018 20:14:13 +0300
changeset 1073 24ef30a9bcee
parent 945 477393b00f95
permissions -rw-r--r--
revert commits improved performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)

Following commits are reverted:
mjsousa 0b275a2 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- increase hardcoded limit to 499
mjsousa 2228799 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- Add comments!!
mjsousa ce81fa6 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)"

The reason is that they cause regression in some cases (if function is
used as argument for function block, for example) and this is not
fixed for a long time.
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     1
/*
279
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
     2
 *  matiec - a compiler for the programming languages defined in IEC 61131-3
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     3
 *
279
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
     4
 *  Copyright (C) 2003-2011  Mario de Sousa (msousa@fe.up.pt)
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
     5
 *  Copyright (C) 2007-2011  Laurent Bessard and Edouard Tisserant
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     6
 *
279
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
     7
 *  This program is free software: you can redistribute it and/or modify
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
     8
 *  it under the terms of the GNU General Public License as published by
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
     9
 *  the Free Software Foundation, either version 3 of the License, or
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    10
 *  (at your option) any later version.
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    11
 *
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    12
 *  This program is distributed in the hope that it will be useful,
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    13
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    14
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    15
 *  GNU General Public License for more details.
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    16
 *
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    17
 *  You should have received a copy of the GNU General Public License
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    18
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
c0453b7f99df Re-generated std lib related code, with updated headers, updated all forgotten headers
Edouard Tisserant
parents: 70
diff changeset
    19
 *
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    20
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    21
 * This code is made available on the understanding that it will not be
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    22
 * used in safety-critical situations without a full and competent review.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    23
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    24
945
477393b00f95 Add support for relaxed datatype model for array datatypes.
mjsousa
parents: 279
diff changeset
    25
class generate_c_configbody_c: public generate_c_base_and_typeid_c {
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    26
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    27
  public:
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    28
    generate_c_configbody_c(stage4out_c *s4o_ptr)
945
477393b00f95 Add support for relaxed datatype model for array datatypes.
mjsousa
parents: 279
diff changeset
    29
    : generate_c_base_and_typeid_c(s4o_ptr) {
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    30
      current_resource_name = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    31
    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    32
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    33
    virtual ~generate_c_configbody_c(void) {}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    34
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    35
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    36
  private:
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    37
    /* The name of the resource curretnly being processed... */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    38
    symbol_c *current_resource_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    39
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    40
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    41
/********************************/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    42
/* B 1.7 Configuration elements */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    43
/********************************/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    44
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    45
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    46
public:
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    47
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    48
CONFIGURATION configuration_name
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    49
   optional_global_var_declarations
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    50
   (resource_declaration_list | single_resource_declaration)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    51
   optional_access_declarations
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    52
   optional_instance_specific_initializations
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    53
END_CONFIGURATION
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    54
*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    55
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    56
SYM_REF6(configuration_declaration_c, configuration_name, global_var_declarations, resource_declarations, access_declarations, instance_specific_initializations, unused)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    57
*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    58
void *visit(configuration_declaration_c *symbol) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    59
  TRACE("configuration_declaration_c");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    60
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    61
  symbol->resource_declarations->accept(*this);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    62
  return NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    63
}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    64
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    65
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    66
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    67
/* helper symbol for configuration_declaration */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    68
// SYM_LIST(resource_declaration_list_c)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    69
void *visit(resource_declaration_list_c *symbol) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    70
  TRACE("resource_declaration_list_c");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    71
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    72
  return print_list(symbol);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    73
}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    74
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    75
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    76
RESOURCE resource_name ON resource_type_name
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    77
   optional_global_var_declarations
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    78
   single_resource_declaration
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    79
END_RESOURCE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    80
*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    81
// SYM_REF4(resource_declaration_c, resource_name, resource_type_name, global_var_declarations, resource_declaration)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    82
void *visit(resource_declaration_c *symbol) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    83
  TRACE("resource_declaration_c");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    84
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    85
  current_resource_name = symbol->resource_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    86
  symbol->resource_declaration->accept(*this);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    87
  current_resource_name = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    88
  return NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    89
}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    90
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    91
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    92
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    93
/* task_configuration_list program_configuration_list */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    94
// SYM_REF2(single_resource_declaration_c, task_configuration_list, program_configuration_list)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    95
void *visit(single_resource_declaration_c *symbol) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    96
  TRACE("single_resource_declaration_c");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    97
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    98
  symbol->program_configuration_list->accept(*this);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    99
  return NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   100
}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   101
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   102
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   103
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   104
/* helper symbol for single_resource_declaration */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   105
//SYM_LIST(task_configuration_list_c)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   106
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   107
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   108
/* helper symbol for single_resource_declaration */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   109
//SYM_LIST(program_configuration_list_c)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   110
void *visit(program_configuration_list_c *symbol) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   111
  TRACE("program_configuration_list_c");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   112
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   113
  return print_list(symbol);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   114
}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   115
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   116
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   117
/* helper symbol for
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   118
 *  - access_path
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   119
 *  - instance_specific_init
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   120
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   121
//SYM_LIST(any_fb_name_list_c)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   122
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   123
/*  [resource_name '.'] global_var_name ['.' structure_element_name] */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   124
//SYM_REF4(global_var_reference_c, resource_name, global_var_name, structure_element_name, unused)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   125
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   126
/*  prev_declared_program_name '.' symbolic_variable */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   127
//SYM_REF2(program_output_reference_c, program_name, symbolic_variable)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   128
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   129
/*  TASK task_name task_initialization */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   130
//SYM_REF2(task_configuration_c, task_name, task_initialization)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   131
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   132
/*  '(' [SINGLE ASSIGN data_source ','] [INTERVAL ASSIGN data_source ','] PRIORITY ASSIGN integer ')' */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   133
//SYM_REF4(task_initialization_c, single_data_source, interval_data_source, priority_data_source, unused)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   134
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   135
/*  PROGRAM [RETAIN | NON_RETAIN] program_name [WITH task_name] ':' program_type_name ['(' prog_conf_elements ')'] */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   136
//SYM_REF6(program_configuration_c, retain_option, program_name, task_name, program_type_name, prog_conf_elements, unused)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   137
void *visit(program_configuration_c *symbol) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   138
  TRACE("program_configuration_c");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   139
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   140
  s4o.print(s4o.indent_spaces);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   141
  if (NULL != current_resource_name) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   142
    current_resource_name->accept(*this);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   143
    s4o.print(".");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   144
  }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   145
  symbol->program_name->accept(*this);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   146
  s4o.print(".f();\n");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   147
  return NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   148
}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   149
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   150
/* prog_conf_elements ',' prog_conf_element */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   151
//SYM_LIST(prog_conf_elements_c)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   152
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   153
/*  fb_name WITH task_name */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   154
//SYM_REF2(fb_task_c, fb_name, task_name)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   155
// TODO...
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   156
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   157
/*  any_symbolic_variable ASSIGN prog_data_source */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   158
//SYM_REF2(prog_cnxn_assign_c, symbolic_variable, prog_data_source)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   159
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   160
/* any_symbolic_variable SENDTO data_sink */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   161
//SYM_REF2(prog_cnxn_sendto_c, symbolic_variable, prog_data_source)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   162
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   163
/* VAR_CONFIG instance_specific_init_list END_VAR */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   164
//SYM_REF2(instance_specific_initializations_c, instance_specific_init_list, unused)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   165
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   166
/* helper symbol for instance_specific_initializations */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   167
//SYM_LIST(instance_specific_init_list_c)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   168
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   169
/* resource_name '.' program_name '.' {fb_name '.'}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   170
    ((variable_name [location] ':' located_var_spec_init) | (fb_name ':' fb_initialization))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   171
*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   172
//SYM_REF6(instance_specific_init_c, resource_name, program_name, any_fb_name_list, variable_name, location, initialization)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   173
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   174
/* helper symbol for instance_specific_init */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   175
/* function_block_type_name ':=' structure_initialization */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   176
//SYM_REF2(fb_initialization_c, function_block_type_name, structure_initialization)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   177
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   178
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   179
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   180
}; /* generate_c_configbody_c */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   181
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
   182