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