Home | History | Annotate | Download | only in src
      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