462 */ |
462 */ |
463 // SYM_REF4(il_param_assignment_c, il_assign_operator, il_operand, simple_instr_list, unused) |
463 // SYM_REF4(il_param_assignment_c, il_assign_operator, il_operand, simple_instr_list, unused) |
464 void *function_call_param_iterator_c::visit(il_param_assignment_c *symbol) { |
464 void *function_call_param_iterator_c::visit(il_param_assignment_c *symbol) { |
465 TRACE("il_param_assignment_c"); |
465 TRACE("il_param_assignment_c"); |
466 |
466 |
467 // TODO : We do not yet handle a instruction list passed as parameter !!! |
467 symbol_c *expression = NULL; |
468 // since we do not yet support it, it is best to simply stop than to fail silently... |
468 if (!((NULL != symbol->simple_instr_list) ^ (NULL != symbol->il_operand))) ERROR; |
469 if (NULL != symbol->simple_instr_list) ERROR; |
469 if (NULL != symbol->simple_instr_list) expression = symbol->simple_instr_list; |
|
470 if (NULL != symbol->il_operand ) expression = symbol->il_operand; |
470 |
471 |
471 current_assign_direction = assign_in; |
472 current_assign_direction = assign_in; |
472 return handle_parameter_assignment((symbol_c *)symbol->il_assign_operator->accept(*this), symbol->il_operand); |
473 return handle_parameter_assignment((symbol_c *)symbol->il_assign_operator->accept(*this), expression); |
473 } |
474 } |
474 |
475 |
475 /* il_assign_out_operator variable */ |
476 /* il_assign_out_operator variable */ |
476 // SYM_REF2(il_param_out_assignment_c, il_assign_out_operator, variable); |
477 // SYM_REF2(il_param_out_assignment_c, il_assign_out_operator, variable); |
477 void *function_call_param_iterator_c::visit(il_param_out_assignment_c *symbol) { |
478 void *function_call_param_iterator_c::visit(il_param_out_assignment_c *symbol) { |