]> git.saurik.com Git - bison.git/blame - src/complain.h
style changes: untabify
[bison.git] / src / complain.h
CommitLineData
a0f6b076 1/* Declaration for error-reporting function for Bison.
7d424de1 2
34136e65 3 Copyright (C) 2000-2002, 2006, 2009-2012 Free Software Foundation,
575619af 4 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
46bdb8ec
TR
24/* Sub-messages indent. */
25#define SUB_INDENT (4)
26
d0f11c1b
VS
27/*-------------.
28| --warnings. |
29`-------------*/
30
6fb8b256 31typedef enum
d0f11c1b 32 {
b6403170
VS
33 Wnone = 0, /**< Issue no warnings. */
34 Wmidrule_values = 1 << 0, /**< Unset or unused midrule values. */
35 Wyacc = 1 << 1, /**< POSIXME. */
36 Wconflicts_sr = 1 << 2, /**< S/R conflicts. */
37 Wconflicts_rr = 1 << 3, /**< R/R conflicts. */
518e8830
AD
38 Wdeprecated = 1 << 4, /**< Obsolete constructs. */
39 Wother = 1 << 5, /**< All other warnings. */
b6403170 40
9503b0a4
TR
41 Werror = 1 << 10, /** This bit is no longer used. */
42
b6403170
VS
43 complaint = 1 << 11, /**< All complaints. */
44 fatal = 1 << 12, /**< All fatal errors. */
45 silent = 1 << 13, /**< Do not display the warning type. */
ea9e670d 46 no_caret = 1 << 14, /**< Do not display caret location. */
9503b0a4
TR
47
48 /**< All above warnings. */
49 Wall = ~complaint & ~fatal & ~silent
6fb8b256 50 } warnings;
d0f11c1b
VS
51
52/** What warnings are issued. */
6fb8b256 53extern warnings warnings_flag;
d0f11c1b 54
9503b0a4
TR
55/** What warnings are made errors. */
56extern warnings errors_flag;
57
b6403170
VS
58/** Display a "[-Wyacc]" like message on stderr. */
59void warnings_print_categories (warnings warn_flags);
60
bb8e56ff 61/** Make a complaint, with maybe a location. */
b999409e 62void complain (location const *loc, warnings flags, char const *message, ...)
66381412
AR
63 __attribute__ ((__format__ (__printf__, 3, 4)));
64
782e8187 65/** Likewise, but with an \a argc/argv interface. */
c6c8de16
TR
66void complain_args (location const *loc, warnings w, unsigned *indent,
67 int argc, char *arg[]);
782e8187 68
6fb8b256 69/** Make a complaint with location and some indentation. */
b999409e
TR
70void complain_indent (location const *loc, warnings flags, unsigned *indent,
71 char const *message, ...)
6fb8b256 72 __attribute__ ((__format__ (__printf__, 4, 5)));
a0f6b076 73
697a8022
TR
74
75/** Warnings treated as errors shouldn't stop the execution as regular errors
76 should (because due to their nature, it is safe to go on). Thus, there are
77 three possible execution statuses. */
78typedef enum
79 {
80 status_none,
81 status_warning_as_error,
82 status_complaint
83 } err_status;
84
23eb2a69 85/** Whether an error was reported. */
697a8022 86extern err_status complaint_status;
a0f6b076 87
a0f6b076 88#endif /* !COMPLAIN_H_ */