stage4/stage4.cc
changeset 522 f9cff11ae622
parent 397 85151b2f35ca
child 546 8cc4c51c4bfc
equal deleted inserted replaced
521:3127ddda2be2 522:f9cff11ae622
    46 #include <stdlib.h>
    46 #include <stdlib.h>
    47 
    47 
    48 #include "stage4.hh"
    48 #include "stage4.hh"
    49 
    49 
    50 
    50 
    51 
    51 #define FIRST_(symbol1, symbol2) (((symbol1)->first_order < (symbol2)->first_order)   ? (symbol1) : (symbol2))
       
    52 #define  LAST_(symbol1, symbol2) (((symbol1)->last_order  > (symbol2)->last_order)    ? (symbol1) : (symbol2))
       
    53 #include <stdarg.h>
       
    54 
       
    55 void stage4err(const char *stage4_generator_id, symbol_c *symbol1, symbol_c *symbol2, const char *errmsg, ...) {
       
    56     va_list argptr;
       
    57     va_start(argptr, errmsg); /* second argument is last fixed pamater of stage4err() */
       
    58 
       
    59     fprintf(stderr, "%s:%d-%d..%d-%d: error %s: ",
       
    60             FIRST_(symbol1,symbol2)->first_file, FIRST_(symbol1,symbol2)->first_line, FIRST_(symbol1,symbol2)->first_column,
       
    61                                                  LAST_(symbol1,symbol2) ->last_line,  LAST_(symbol1,symbol2) ->last_column,
       
    62             stage4_generator_id);
       
    63     vfprintf(stderr, errmsg, argptr);
       
    64     fprintf(stderr, "\n");
       
    65     // error_count++;
       
    66     va_end(argptr);
       
    67 }
    52 
    68 
    53 
    69 
    54 
    70 
    55 stage4out_c::stage4out_c(std::string indent_level):
    71 stage4out_c::stage4out_c(std::string indent_level):
    56 	m_file(NULL) {
    72 	m_file(NULL) {