59 */ |
59 */ |
60 #define FIRST_(symbol1, symbol2) (((symbol1)->first_order < (symbol2)->first_order) ? (symbol1) : (symbol2)) |
60 #define FIRST_(symbol1, symbol2) (((symbol1)->first_order < (symbol2)->first_order) ? (symbol1) : (symbol2)) |
61 #define LAST_(symbol1, symbol2) (((symbol1)->last_order > (symbol2)->last_order) ? (symbol1) : (symbol2)) |
61 #define LAST_(symbol1, symbol2) (((symbol1)->last_order > (symbol2)->last_order) ? (symbol1) : (symbol2)) |
62 |
62 |
63 #define STAGE3_ERROR(symbol1, symbol2, msg) { \ |
63 #define STAGE3_ERROR(symbol1, symbol2, msg) { \ |
64 fprintf(stderr, "%s:(%d:%d) .. %s(%d:%d): %s\n", \ |
64 fprintf(stderr, "%s:%d-%d..%d-%d: error : %s\n", \ |
65 FIRST_(symbol1,symbol2)->first_file, FIRST_(symbol1,symbol2)->first_line, FIRST_(symbol1,symbol2)->first_column, \ |
65 FIRST_(symbol1,symbol2)->first_file, FIRST_(symbol1,symbol2)->first_line, FIRST_(symbol1,symbol2)->first_column, \ |
66 LAST_(symbol1,symbol2) ->last_file, LAST_(symbol1,symbol2) ->last_line, LAST_(symbol1,symbol2) ->last_column, \ |
66 LAST_(symbol1,symbol2) ->last_line, LAST_(symbol1,symbol2) ->last_column, \ |
67 msg); \ |
67 msg); \ |
68 il_error = true; \ |
68 il_error = true; \ |
69 error_found = true; \ |
69 error_found = true; \ |
70 } |
70 } |
71 |
71 |