• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Parse command line arguments for bison.
2    Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004, 2005, 2006
3    Free Software Foundation, Inc.
4 
5    This file is part of Bison, the GNU Compiler Compiler.
6 
7    Bison is free software; you can redistribute it and/or modify it
8    under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2, or (at your option)
10    any later version.
11 
12    Bison is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with Bison; see the file COPYING.  If not, write to the Free
19    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20    02110-1301, USA.  */
21 
22 #ifndef GETARGS_H_
23 # define GETARGS_H_
24 
25 /* flags set by % directives */
26 
27 /* for -S */
28 extern char const *skeleton;
29 
30 /* for -I */
31 extern char const *include;
32 
33 extern bool debug_flag;			/* for -t */
34 extern bool defines_flag;		/* for -d */
35 extern bool graph_flag;			/* for -g */
36 extern bool locations_flag;
37 extern bool no_lines_flag;		/* for -l */
38 extern bool no_parser_flag;		/* for -n */
39 extern bool token_table_flag;		/* for -k */
40 extern bool yacc_flag;			/* for -y */
41 
42 extern bool error_verbose;
43 
44 
45 /* GLR_PARSER is true if the input file says to use the GLR
46    (Generalized LR) parser, and to output some additional information
47    used by the GLR algorithm.  */
48 
49 extern bool glr_parser;
50 
51 /* PURE_PARSER is true if should generate a parser that is all pure
52    and reentrant.  */
53 
54 extern bool pure_parser;
55 
56 /* NONDETERMINISTIC_PARSER is true iff conflicts are accepted.  This
57    is used by the GLR parser, and might be used in BackTracking
58    parsers too.  */
59 
60 extern bool nondeterministic_parser;
61 
62 /* --trace.  */
63 enum trace
64   {
65     trace_none      = 0,
66     trace_scan      = 1 << 0,
67     trace_parse     = 1 << 1,
68     trace_resource  = 1 << 2,
69     trace_sets      = 1 << 3,
70     trace_bitsets   = 1 << 4,
71     trace_tools     = 1 << 5,
72     trace_automaton = 1 << 6,
73     trace_grammar   = 1 << 7,
74     trace_time      = 1 << 8,
75     trace_skeleton  = 1 << 9,
76     trace_m4        = 1 << 10,
77     trace_all       = ~0
78   };
79 extern int trace_flag;
80 
81 /* --report.  */
82 enum report
83   {
84     report_none             = 0,
85     report_states           = 1 << 0,
86     report_itemsets         = 1 << 1,
87     report_look_ahead_tokens= 1 << 2,
88     report_solved_conflicts = 1 << 3,
89     report_all              = ~0
90   };
91 extern int report_flag;
92 
93 void getargs (int argc, char *argv[]);
94 
95 #endif /* !GETARGS_H_ */
96