X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=error.c;h=5c9b8c90133b074d9c16750f7342a370d8ec1ed7;hp=6da93e2079a279a2c03f5b3a0e6a945c139cbea6;hb=76299dcc588e5f5ba7270fd4bacc5872152f088e;hpb=96a5cd69571096f11a3a2a40f6133374f0adc9bb diff --git a/error.c b/error.c index 6da93e2..5c9b8c9 100644 --- a/error.c +++ b/error.c @@ -19,11 +19,19 @@ static long unused; // For supressing 'write' warnings // // Report error if not at EOL +// N.B.: Since this should *never* happen, we can feel free to add whatever +// diagnostics that will help in tracking down a problem to this function. // int at_eol(void) { if (*tok != EOL) + { error("syntax error. expected EOL, found $%X ('%c')", *tok, *tok); + printf("Token = "); + DumpToken(*tok); + printf("\n"); + DumpTokenBuffer(); + } return 0; } @@ -83,7 +91,18 @@ int error(const char * text, ...) if (listing > 0) ship_ln(buf); - sprintf(buf1, "%s %d: Error: %s\n", curfname, curlineno, buf); + switch (cur_inobj->in_type) + { + case SRC_IFILE: + sprintf(buf1, "%s %d: Error: %s\n", curfname, curlineno, buf); + break; + case SRC_IMACRO: + sprintf(buf1, "%s %d: Error: %s\n", curfname, cur_inobj->inobj.imacro->im_macro->lineList->lineno, buf); + break; + case SRC_IREPT: + sprintf(buf1, "%s %d: Error: %s\n", curfname, cur_inobj->inobj.irept->lineno, buf); + break; + } if (err_flag) unused = write(err_fd, buf1, (LONG)strlen(buf1));