]> git.saurik.com Git - bison.git/blame - src/complain.h
Do not use date ranges in copyright notices.
[bison.git] / src / complain.h
CommitLineData
a0f6b076 1/* Declaration for error-reporting function for Bison.
6e30ede8
PE
2
3 Copyright (C) 2000, 2001, 2002, 2006, 2009, 2010 Free Software
4 Foundation, Inc.
a0f6b076 5
f16b0819
PE
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
a0f6b076
AD
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
f16b0819 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
a0f6b076
AD
18
19#ifndef COMPLAIN_H_
ee000ba4 20# define COMPLAIN_H_ 1
a0f6b076 21
ee000ba4
AD
22# include "location.h"
23
24# ifdef __cplusplus
a0f6b076 25extern "C" {
ee000ba4 26# endif
a0f6b076 27
23eb2a69 28/** Informative messages, but we proceed. */
a0f6b076 29
81ebdef9 30void warn (char const *format, ...)
52489d44
AD
31 __attribute__ ((__format__ (__printf__, 1, 2)));
32
81ebdef9 33void warn_at (location loc, char const *format, ...)
e9955c83 34 __attribute__ ((__format__ (__printf__, 2, 3)));
a0f6b076 35
348f5608
AR
36/* Generate a message aligned by an indent.
37 When *indent == 0, assign message's indent to *indent,
38 When *indent > 0, align the message by *indent value. */
39void warn_at_indent (location loc, unsigned *indent,
40 char const *format, ...)
41 __attribute__ ((__format__ (__printf__, 3, 4)));
42
23eb2a69 43/** An error, but we continue and die later. */
a0f6b076 44
81ebdef9 45void complain (char const *format, ...)
52489d44
AD
46 __attribute__ ((__format__ (__printf__, 1, 2)));
47
81ebdef9 48void complain_at (location loc, char const *format, ...)
e9955c83 49 __attribute__ ((__format__ (__printf__, 2, 3)));
a0f6b076 50
348f5608
AR
51/* Generate a message aligned by an indent.
52 When *indent == 0, assign message's indent to *indent,
53 When *indent > 0, align the message by *indent value. */
54void complain_at_indent (location loc, unsigned *indent,
55 char const *format, ...)
56 __attribute__ ((__format__ (__printf__, 3, 4)));
57
663ce7bb
AD
58/** An incompatibility with POSIX Yacc: mapped either to warn* or
59 complain* depending on yacc_flag. */
60
61void yacc_at (location loc, char const *format, ...)
62 __attribute__ ((__format__ (__printf__, 2, 3)));
63
64
23eb2a69 65/** A fatal error, causing immediate exit. */
a0f6b076 66
81ebdef9 67void fatal (char const *format, ...)
ec88357a 68 __attribute__ ((__noreturn__, __format__ (__printf__, 1, 2)));
e9955c83 69
81ebdef9 70void fatal_at (location loc, char const *format, ...)
ec88357a 71 __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
a0f6b076 72
23eb2a69 73/** Whether an error was reported. */
ec88357a 74extern bool complaint_issued;
a0f6b076 75
ee000ba4 76# ifdef __cplusplus
a0f6b076 77}
ee000ba4 78# endif
a0f6b076
AD
79
80#endif /* !COMPLAIN_H_ */