]> git.saurik.com Git - bison.git/blame - src/getargs.h
* src/gram.c (rule_rhs_print_xml): Now static, since it isn't used
[bison.git] / src / getargs.h
CommitLineData
ceed8467 1/* Parse command line arguments for bison.
8405b70c
PB
2
3 Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004,
4 2005, 2006, 2007 Free Software Foundation, Inc.
ceed8467
AD
5
6 This file is part of Bison, the GNU Compiler Compiler.
7
f16b0819
PE
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
ceed8467 12
f16b0819
PE
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
ceed8467
AD
17
18 You should have received a copy of the GNU General Public License
f16b0819 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
ceed8467 20
b2ca4022
AD
21#ifndef GETARGS_H_
22# define GETARGS_H_
23
0e021770
PE
24#include "location.h"
25
26extern char *program_name;
27
ceed8467 28/* flags set by % directives */
04098407
PE
29
30/* for -S */
31extern char const *skeleton;
32
33/* for -I */
34extern char const *include;
ceed8467 35
d0829076
PE
36extern bool debug_flag; /* for -t */
37extern bool defines_flag; /* for -d */
4e83ea15 38extern bool graph_flag; /* for -g */
41d7a5f2 39extern bool xml_flag; /* for -x */
d0829076
PE
40extern bool locations_flag;
41extern bool no_lines_flag; /* for -l */
d0829076 42extern bool token_table_flag; /* for -k */
d0829076 43extern bool yacc_flag; /* for -y */
273a74fa 44
4e83ea15
AD
45extern bool error_verbose;
46
47
916708d5
AD
48/* GLR_PARSER is true if the input file says to use the GLR
49 (Generalized LR) parser, and to output some additional information
50 used by the GLR algorithm. */
51
52extern bool glr_parser;
53
7172e23e
JD
54/* PULL_PARSER is true if should generate a pull parser. */
55
56extern bool pull_parser;
57
916708d5
AD
58/* PURE_PARSER is true if should generate a parser that is all pure
59 and reentrant. */
60
61extern bool pure_parser;
62
7172e23e 63/* PUSH_PARSER is true if should generate a push parser. */
31c10e38
PE
64
65extern bool push_parser;
66
916708d5
AD
67/* NONDETERMINISTIC_PARSER is true iff conflicts are accepted. This
68 is used by the GLR parser, and might be used in BackTracking
69 parsers too. */
70
71extern bool nondeterministic_parser;
72
7b42569e 73
0e021770
PE
74/* --language. */
75struct bison_language
76{
8405b70c
PB
77 char language[sizeof "Java"];
78 char skeleton[sizeof "java-skel.m4"];
79 char src_extension[sizeof ".java"];
80 char header_extension[sizeof ".java"];
0e021770
PE
81 bool add_tab;
82};
83
84extern struct bison_language const *language;
85
7b42569e
AD
86/*-----------.
87| --report. |
88`-----------*/
89
e8a0acd6 90enum report
ec3bc396 91 {
273a74fa
AD
92 report_none = 0,
93 report_states = 1 << 0,
94 report_itemsets = 1 << 1,
742e4900 95 report_lookahead_tokens = 1 << 2,
b408954b 96 report_solved_conflicts = 1 << 3,
273a74fa 97 report_all = ~0
ec3bc396 98 };
b8a41559 99/** What appears in the *.output file. */
ec3bc396
AD
100extern int report_flag;
101
7b42569e
AD
102/*----------.
103| --trace. |
104`----------*/
b8a41559
AD
105enum trace
106 {
107 trace_none = 0, /**< No traces. */
108 trace_scan = 1 << 0, /**< Grammar scanner traces. */
109 trace_parse = 1 << 1, /**< Grammar parser traces. */
110 trace_resource = 1 << 2, /**< Memory allocation. */
111 trace_sets = 1 << 3, /**< Grammar sets: firsts, nullable etc. */
112 trace_bitsets = 1 << 4, /**< Use of bitsets. */
113 trace_tools = 1 << 5, /**< m4 invocation. */
114 trace_automaton = 1 << 6, /**< Construction of the automaton. */
115 trace_grammar = 1 << 7, /**< Reading, reducing the grammar. */
116 trace_time = 1 << 8, /**< Time consumption. */
117 trace_skeleton = 1 << 9, /**< Skeleton postprocessing. */
118 trace_m4 = 1 << 10, /**< M4 traces. */
119 trace_all = ~0 /**< All of the above. */
120 };
121/** What debug items bison displays during its run. */
122extern int trace_flag;
123
7b42569e
AD
124/*-------------.
125| --warnings. |
126`-------------*/
127
128enum warnings
129 {
130 warnings_none = 0, /**< Issue no warnings. */
131 warnings_error = 1 << 0, /**< Warnings are treated as errors. */
17bd8a73
JD
132 warnings_midrule_values = 1 << 1, /**< Unset or unused midrule values. */
133 warnings_yacc = 1 << 2, /**< POSIXME. */
89eb3c76 134 warnings_all = ~warnings_error /**< All above warnings. */
7b42569e
AD
135 };
136/** What warnings are issued. */
137extern int warnings_flag;
138
139
140/** Process the command line arguments.
141 *
142 * \param argc size of \a argv
143 * \param argv list of arguments.
144 */
d33cb3ae 145void getargs (int argc, char *argv[]);
b2ca4022 146
0e021770
PE
147/* Used by parse-gram.y. */
148void language_argmatch (char const *arg, int prio, location const *loc);
149void skeleton_arg (const char *arg, int prio, location const *loc);
150
b2ca4022 151#endif /* !GETARGS_H_ */