/** * enforces bracket * @param str * @return */ void needbrack(char *str) { if (!match (str)) { error ("missing bracket"); gen_comment (); output_string (str); newline (); } }
void doerror(char *ptr) { int k; gen_comment (); output_string (line); newline (); gen_comment (); k = 0; while (k < lptr) { if (line[k] == 9) print_tab (); else output_byte (' '); k++; } output_byte ('^'); newline (); gen_comment (); output_string ("****** "); output_string (ptr); output_string (" ******"); newline (); }
/** * report errors */ void errorsummary(void) { if (ncmp) error("missing closing bracket"); newline(); gen_comment(); output_decimal(errcnt); if (errcnt) errfile = YES; output_string(" error(s) in compilation"); newline(); gen_comment(); output_with_tab("literal pool:"); output_decimal(litptr); newline(); gen_comment(); output_with_tab("global pool:"); output_decimal(global_table_index - rglobal_table_index); newline(); gen_comment(); output_with_tab("Macro pool:"); output_decimal(macptr); newline(); if (errcnt > 0) pl("Error(s)"); }
/** * print error message * @param symbol_name * @return */ void multidef(char *symbol_name) { error ("already defined"); gen_comment (); output_string (symbol_name); newline (); }