absyntax_utils/debug_ast.cc
changeset 735 0304ff59fd7f
parent 731 151f0b57b4e4
child 736 a591ed23c370
equal deleted inserted replaced
734:49853bded539 735:0304ff59fd7f
    98   fprintf(stderr, "(%03d:%03d..%03d:%03d) \t%s\t", symbol->first_line, symbol->first_column, symbol->last_line, symbol->last_column, symbol->absyntax_cname());
    98   fprintf(stderr, "(%03d:%03d..%03d:%03d) \t%s\t", symbol->first_line, symbol->first_column, symbol->last_line, symbol->last_column, symbol->absyntax_cname());
    99 
    99 
   100   fprintf(stderr, "  datatype=");
   100   fprintf(stderr, "  datatype=");
   101   if (NULL == symbol->datatype)
   101   if (NULL == symbol->datatype)
   102     fprintf(stderr, "NULL\t\t");
   102     fprintf(stderr, "NULL\t\t");
   103   else 
   103   else {
   104     fprintf(stderr, symbol->datatype->absyntax_cname());
   104 	  fprintf(stderr, "%s", symbol->datatype->absyntax_cname());
       
   105   }
   105   fprintf(stderr, "\t<-{");
   106   fprintf(stderr, "\t<-{");
   106   if (symbol->candidate_datatypes.size() == 0) {
   107   if (symbol->candidate_datatypes.size() == 0) {
   107     fprintf(stderr, "\t\t\t\t\t");
   108     fprintf(stderr, "\t\t\t\t\t");
   108   } else if (symbol->candidate_datatypes.size() <= 2) {
   109   } else if (symbol->candidate_datatypes.size() <= 2) {
   109     for (unsigned int i = 0; i < 2; i++)
   110     for (unsigned int i = 0; i < 2; i++)
   110       if (i < symbol->candidate_datatypes.size())
   111       if (i < symbol->candidate_datatypes.size())
   111         fprintf(stderr, " %s,", symbol->candidate_datatypes[i]->absyntax_cname());
   112         fprintf(stderr, " %s,", symbol->candidate_datatypes[i]->absyntax_cname());
   112       else
   113       else
   113         fprintf(stderr, "\t\t\t");
   114         fprintf(stderr, "\t\t\t");
   114   } else {
   115   } else {
   115     fprintf(stderr, "(%d)\t\t\t\t\t", symbol->candidate_datatypes.size());
   116     fprintf(stderr, "(%ld)\t\t\t\t\t", symbol->candidate_datatypes.size());
   116   }
   117   }
   117   fprintf(stderr, "}\t");         
   118   fprintf(stderr, "}\t");         
   118   
   119   
   119   /* print the const values... */
   120   /* print the const values... */
   120   fprintf(stderr, " constv{f=%f, i=%lld, u=%llu, b=%d}\t", symbol->const_value._real64.value, symbol->const_value._int64.value, symbol->const_value._uint64.value, symbol->const_value._bool.value);
   121   fprintf(stderr, " constv{f=%f, i=%lld, u=%llu, b=%d}\t", symbol->const_value._real64.value, symbol->const_value._int64.value, symbol->const_value._uint64.value, symbol->const_value._bool.value);
   124 
   125 
   125 
   126 
   126 void *print_symbol_c::visit(il_instruction_c *symbol) {
   127 void *print_symbol_c::visit(il_instruction_c *symbol) {
   127    dump_symbol(symbol);
   128    dump_symbol(symbol);
   128 
   129 
   129   fprintf(stderr, "  next_il_=%d ", symbol->next_il_instruction.size());
   130   fprintf(stderr, "  next_il_=%ld ", symbol->next_il_instruction.size());
   130   fprintf(stderr, "  prev_il_=%d ", symbol->prev_il_instruction.size());
   131   fprintf(stderr, "  prev_il_=%ld ", symbol->prev_il_instruction.size());
   131   
   132   
   132   if (symbol->prev_il_instruction.size() == 0)
   133   if (symbol->prev_il_instruction.size() == 0)
   133     fprintf(stderr, "(----,");
   134     fprintf(stderr, "(----,");
   134   else if (symbol->prev_il_instruction[0]->datatype == NULL)
   135   else if (symbol->prev_il_instruction[0]->datatype == NULL)
   135     fprintf(stderr, "(NULL,");
   136     fprintf(stderr, "(NULL,");