stage3/fill_candidate_datatypes.cc
changeset 452 79ac274d1cc4
parent 451 a1b87eb155e4
child 453 4733f662362a
equal deleted inserted replaced
451:a1b87eb155e4 452:79ac274d1cc4
   921   }
   921   }
   922 
   922 
   923   il_parenthesis_level--;
   923   il_parenthesis_level--;
   924   if (il_parenthesis_level < 0) ERROR;
   924   if (il_parenthesis_level < 0) ERROR;
   925 
   925 
       
   926   
   926   /* Now check the if the data type semantics of operation are correct,  */
   927   /* Now check the if the data type semantics of operation are correct,  */
   927   il_operand = prev_il_instruction;
   928   il_operand = symbol->simple_instr_list;
   928   prev_il_instruction = prev_il_instruction_backup;
   929   prev_il_instruction = prev_il_instruction_backup;
   929   symbol->il_expr_operator->accept(*this);
   930   symbol->il_expr_operator->accept(*this);
   930   il_operand = NULL;
   931   il_operand = NULL;
   931   return NULL;
   932   return NULL;
   932 }
   933 }
   996 
   997 
   997 	if (debug) std::cout << "il_formal_funct_call_c [" << symbol->candidate_datatypes.size() << "] result.\n";
   998 	if (debug) std::cout << "il_formal_funct_call_c [" << symbol->candidate_datatypes.size() << "] result.\n";
   998 	return NULL;
   999 	return NULL;
   999 }
  1000 }
  1000 
  1001 
       
  1002 
       
  1003 //     void *visit(il_operand_list_c *symbol);
       
  1004 
       
  1005 
       
  1006 /* | simple_instr_list il_simple_instruction */
       
  1007 /* This object is referenced by il_expression_c objects */
       
  1008 void *fill_candidate_datatypes_c::visit(simple_instr_list_c *symbol) {
       
  1009   int i;
       
  1010   for(i = 0; i < symbol->n; i++)    
       
  1011     symbol->elements[i]->accept(*this);
       
  1012   /* This object has (inherits) the same candidate datatypes as the last il_instruction (if it exists!) */
       
  1013   if (i > 0)  
       
  1014     copy_candidate_datatype_list(symbol->elements[i-1] /*from*/, symbol /*to*/);	
       
  1015   
       
  1016   if (debug) std::cout << "simple_instr_list_c [" << symbol->candidate_datatypes.size() << "] result.\n";
       
  1017 std::cout << "simple_instr_list_c [" << symbol->candidate_datatypes.size() << "] result.\n";
       
  1018   return NULL;
       
  1019 }
       
  1020 
  1001 /*
  1021 /*
  1002     void *visit(il_operand_list_c *symbol);
       
  1003     void *visit(simple_instr_list_c *symbol);
       
  1004     void *visit(il_param_list_c *symbol);
  1022     void *visit(il_param_list_c *symbol);
  1005     void *visit(il_param_assignment_c *symbol);
  1023     void *visit(il_param_assignment_c *symbol);
  1006     void *visit(il_param_out_assignment_c *symbol);
  1024     void *visit(il_param_out_assignment_c *symbol);
  1007 */
  1025 */
  1008 
  1026