1
0
mirror of git://projects.qi-hardware.com/eda-tools.git synced 2024-11-27 01:15:00 +02:00

b2/lang.l: print file name in diagnostics

This commit is contained in:
Werner Almesberger 2012-05-01 15:07:38 -03:00
parent 9a06757420
commit 5d7f4fc662

View File

@ -26,6 +26,7 @@ extern int yyparse(void);
static int start_token; static int start_token;
static int expose_nl; static int expose_nl;
static const char *file_name;
static int lineno; static int lineno;
@ -48,8 +49,10 @@ static void open_stdin(const char *name)
static void do_parse(const char *name, int start, int nl) static void do_parse(const char *name, int start, int nl)
{ {
open_stdin(name); open_stdin(name);
start_token = start; start_token = start;
expose_nl = nl; expose_nl = nl;
file_name = unique(name);
lineno = 1; lineno = 1;
yyparse(); yyparse();
} }
@ -132,7 +135,7 @@ void yywarnf(const char *fmt, ...)
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
fprintf(stderr, "%d: warning: ", lineno); fprintf(stderr, "%s:%d: warning: ", file_name, lineno);
vfprintf(stderr, fmt, ap) ; vfprintf(stderr, fmt, ap) ;
fprintf(stderr, "\n"); fprintf(stderr, "\n");
va_end(ap); va_end(ap);
@ -144,7 +147,7 @@ void yyerrorf(const char *fmt, ...)
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
fprintf(stderr, "%d: ", lineno); fprintf(stderr, "%s:%d: ", file_name, lineno);
vfprintf(stderr, fmt, ap) ; vfprintf(stderr, fmt, ap) ;
fprintf(stderr, "\n"); fprintf(stderr, "\n");
va_end(ap); va_end(ap);
@ -154,6 +157,6 @@ void yyerrorf(const char *fmt, ...)
void yyerror(const char *s) void yyerror(const char *s)
{ {
fprintf(stderr, "%d: %s\n", lineno, s); fprintf(stderr, "%s:%d: %s\n", file_name, lineno, s);
exit(1); exit(1);
} }