equal
deleted
inserted
replaced
365 |
365 |
366 void *print_getter(symbol_c *symbol) { |
366 void *print_getter(symbol_c *symbol) { |
367 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
367 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
368 if (wanted_variablegeneration == fparam_output_vg) { |
368 if (wanted_variablegeneration == fparam_output_vg) { |
369 if (vartype == search_var_instance_decl_c::external_vt) { |
369 if (vartype == search_var_instance_decl_c::external_vt) { |
370 if (search_var_instance_decl->type_is_fb(symbol)) |
370 if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; |
|
371 if ( get_datatype_info_c::is_function_block(symbol->datatype)) |
371 s4o.print(GET_EXTERNAL_FB_BY_REF); |
372 s4o.print(GET_EXTERNAL_FB_BY_REF); |
372 else |
373 else |
373 s4o.print(GET_EXTERNAL_BY_REF); |
374 s4o.print(GET_EXTERNAL_BY_REF); |
374 } |
375 } |
375 else if (vartype == search_var_instance_decl_c::located_vt) |
376 else if (vartype == search_var_instance_decl_c::located_vt) |
377 else |
378 else |
378 s4o.print(GET_VAR_BY_REF); |
379 s4o.print(GET_VAR_BY_REF); |
379 } |
380 } |
380 else { |
381 else { |
381 if (vartype == search_var_instance_decl_c::external_vt) { |
382 if (vartype == search_var_instance_decl_c::external_vt) { |
382 if (search_var_instance_decl->type_is_fb(symbol)) |
383 if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; |
|
384 if ( get_datatype_info_c::is_function_block(symbol->datatype)) |
383 s4o.print(GET_EXTERNAL_FB); |
385 s4o.print(GET_EXTERNAL_FB); |
384 else |
386 else |
385 s4o.print(GET_EXTERNAL); |
387 s4o.print(GET_EXTERNAL); |
386 } |
388 } |
387 else if (vartype == search_var_instance_decl_c::located_vt) |
389 else if (vartype == search_var_instance_decl_c::located_vt) |
412 bool type_is_complex = false; |
414 bool type_is_complex = false; |
413 if (fb_symbol == NULL) { |
415 if (fb_symbol == NULL) { |
414 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
416 unsigned int vartype = search_var_instance_decl->get_vartype(symbol); |
415 type_is_complex = analyse_variable_c::contains_complex_type(symbol); |
417 type_is_complex = analyse_variable_c::contains_complex_type(symbol); |
416 if (vartype == search_var_instance_decl_c::external_vt) { |
418 if (vartype == search_var_instance_decl_c::external_vt) { |
417 if (search_var_instance_decl->type_is_fb(symbol)) |
419 if (!get_datatype_info_c::is_type_valid (symbol->datatype)) ERROR; |
|
420 if ( get_datatype_info_c::is_function_block(symbol->datatype)) |
418 s4o.print(SET_EXTERNAL_FB); |
421 s4o.print(SET_EXTERNAL_FB); |
419 else |
422 else |
420 s4o.print(SET_EXTERNAL); |
423 s4o.print(SET_EXTERNAL); |
421 } |
424 } |
422 else if (vartype == search_var_instance_decl_c::located_vt) |
425 else if (vartype == search_var_instance_decl_c::located_vt) |
570 /*************************************/ |
573 /*************************************/ |
571 |
574 |
572 // SYM_REF2(structured_variable_c, record_variable, field_selector) |
575 // SYM_REF2(structured_variable_c, record_variable, field_selector) |
573 void *visit(structured_variable_c *symbol) { |
576 void *visit(structured_variable_c *symbol) { |
574 TRACE("structured_variable_c"); |
577 TRACE("structured_variable_c"); |
575 bool type_is_complex = search_var_instance_decl->type_is_complex(symbol->record_variable); |
578 bool type_is_complex = analyse_variable_c::is_complex_type(symbol->record_variable); |
576 switch (wanted_variablegeneration) { |
579 switch (wanted_variablegeneration) { |
577 case complextype_base_vg: |
580 case complextype_base_vg: |
578 case complextype_base_assignment_vg: |
581 case complextype_base_assignment_vg: |
579 symbol->record_variable->accept(*this); |
582 symbol->record_variable->accept(*this); |
580 if (!type_is_complex) { |
583 if (!type_is_complex) { |