1 /* Declaration for error-reporting function for Bison.
2 Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
4 This program is free software; you can redistribute it and/or modify it
5 under the terms of the GNU General Public License as published by the
6 Free Software Foundation; either version 2, or (at your option) any
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19 /* Based on error.c and error.h,
20 written by David MacKenzie <djm@gnu.ai.mit.edu>. */
29 /* The calling program should define program_name and set it to the
30 name of the executing program. */
31 extern char *program_name
;
33 /* This variable is set each time `warn' is called. */
36 /* This variable is set each time `complain' is called. */
37 bool complaint_issued
;
40 /*--------------------------------.
41 | Report a warning, and proceed. |
42 `--------------------------------*/
45 warn_at (location loc
, const char *message
, ...)
49 location_print (stderr
, loc
);
51 fputs (_("warning: "), stderr
);
53 va_start (args
, message
);
54 vfprintf (stderr
, message
, args
);
57 warning_issued
= true;
62 warn (const char *message
, ...)
66 fprintf (stderr
, "%s: %s", current_file
? current_file
: program_name
, _("warning: "));
68 va_start (args
, message
);
69 vfprintf (stderr
, message
, args
);
72 warning_issued
= true;
76 /*-----------------------------------------------------------.
77 | An error has occurred, but we can proceed, and die later. |
78 `-----------------------------------------------------------*/
81 complain_at (location loc
, const char *message
, ...)
85 location_print (stderr
, loc
);
88 va_start (args
, message
);
89 vfprintf (stderr
, message
, args
);
92 complaint_issued
= true;
97 complain (const char *message
, ...)
101 fprintf (stderr
, "%s: ", current_file
? current_file
: program_name
);
103 va_start (args
, message
);
104 vfprintf (stderr
, message
, args
);
107 complaint_issued
= true;
111 /*-------------------------------------------------.
112 | A severe error has occurred, we cannot proceed. |
113 `-------------------------------------------------*/
116 fatal_at (location loc
, const char *message
, ...)
120 location_print (stderr
, loc
);
121 fputs (": ", stderr
);
122 fputs (_("fatal error: "), stderr
);
124 va_start (args
, message
);
125 vfprintf (stderr
, message
, args
);
132 fatal (const char *message
, ...)
136 fprintf (stderr
, "%s: ", current_file
? current_file
: program_name
);
138 fputs (_("fatal error: "), stderr
);
140 va_start (args
, message
);
141 vfprintf (stderr
, message
, args
);