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