absyntax_utils/function_call_param_iterator.cc
changeset 844 39c755f41ee8
parent 596 4efb11e44065
child 1041 56ebe2a31b5b
equal deleted inserted replaced
843:f9a059c24aea 844:39c755f41ee8
   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) {