equal
deleted
inserted
replaced
129 |
129 |
130 void *print_getter(symbol_c *symbol) { |
130 void *print_getter(symbol_c *symbol) { |
131 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
131 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
132 if (wanted_variablegeneration == fparam_output_vg) { |
132 if (wanted_variablegeneration == fparam_output_vg) { |
133 if (vartype == search_var_instance_decl_c::external_vt) { |
133 if (vartype == search_var_instance_decl_c::external_vt) { |
134 if (search_var_instance_decl->type_is_fb(symbol)) |
134 if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; |
|
135 if ( get_datatype_info_c::is_function_block(symbol->datatype)) |
135 s4o.print(GET_EXTERNAL_FB_BY_REF); |
136 s4o.print(GET_EXTERNAL_FB_BY_REF); |
136 else |
137 else |
137 s4o.print(GET_EXTERNAL_BY_REF); |
138 s4o.print(GET_EXTERNAL_BY_REF); |
138 } |
139 } |
139 else if (vartype == search_var_instance_decl_c::located_vt) |
140 else if (vartype == search_var_instance_decl_c::located_vt) |
141 else |
142 else |
142 s4o.print(GET_VAR_BY_REF); |
143 s4o.print(GET_VAR_BY_REF); |
143 } |
144 } |
144 else { |
145 else { |
145 if (vartype == search_var_instance_decl_c::external_vt) { |
146 if (vartype == search_var_instance_decl_c::external_vt) { |
146 if (search_var_instance_decl->type_is_fb(symbol)) |
147 if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; |
|
148 if ( get_datatype_info_c::is_function_block(symbol->datatype)) |
147 s4o.print(GET_EXTERNAL_FB); |
149 s4o.print(GET_EXTERNAL_FB); |
148 else |
150 else |
149 s4o.print(GET_EXTERNAL); |
151 s4o.print(GET_EXTERNAL); |
150 } |
152 } |
151 else if (vartype == search_var_instance_decl_c::located_vt) |
153 else if (vartype == search_var_instance_decl_c::located_vt) |
177 bool type_is_complex = false; |
179 bool type_is_complex = false; |
178 if (fb_symbol == NULL) { |
180 if (fb_symbol == NULL) { |
179 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
181 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
180 type_is_complex = analyse_variable_c::contains_complex_type(symbol); |
182 type_is_complex = analyse_variable_c::contains_complex_type(symbol); |
181 if (vartype == search_var_instance_decl_c::external_vt) { |
183 if (vartype == search_var_instance_decl_c::external_vt) { |
182 if (search_var_instance_decl->type_is_fb(symbol)) |
184 if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; |
|
185 if ( get_datatype_info_c::is_function_block(symbol->datatype)) |
183 s4o.print(SET_EXTERNAL_FB); |
186 s4o.print(SET_EXTERNAL_FB); |
184 else |
187 else |
185 s4o.print(SET_EXTERNAL); |
188 s4o.print(SET_EXTERNAL); |
186 } |
189 } |
187 else if (vartype == search_var_instance_decl_c::located_vt) |
190 else if (vartype == search_var_instance_decl_c::located_vt) |
327 /*************************************/ |
330 /*************************************/ |
328 |
331 |
329 // SYM_REF2(structured_variable_c, record_variable, field_selector) |
332 // SYM_REF2(structured_variable_c, record_variable, field_selector) |
330 void *visit(structured_variable_c *symbol) { |
333 void *visit(structured_variable_c *symbol) { |
331 TRACE("structured_variable_c"); |
334 TRACE("structured_variable_c"); |
332 bool type_is_complex = search_var_instance_decl->type_is_complex(symbol->record_variable); |
335 bool type_is_complex = analyse_variable_c::is_complex_type(symbol->record_variable); |
333 switch (wanted_variablegeneration) { |
336 switch (wanted_variablegeneration) { |
334 case complextype_base_vg: |
337 case complextype_base_vg: |
335 case complextype_base_assignment_vg: |
338 case complextype_base_assignment_vg: |
336 symbol->record_variable->accept(*this); |
339 symbol->record_variable->accept(*this); |
337 if (!type_is_complex) { |
340 if (!type_is_complex) { |