]>
git.saurik.com Git - bison.git/blob - src/getargs.h
   1 /* Parse command line arguments for bison. 
   3    Copyright (C) 1984, 1986, 1989, 1992, 2000-2010 Free Software 
   6    This file is part of Bison, the GNU Compiler Compiler. 
   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. 
  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. 
  18    You should have received a copy of the GNU General Public License 
  19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ 
  26 extern char *program_name
; 
  27 enum { command_line_prio
, grammar_prio
, default_prio 
}; 
  29 /* flags set by % directives */ 
  32 extern char const *skeleton
; 
  33 extern int skeleton_prio
; 
  36 extern char const *include
; 
  38 extern bool defines_flag
;               /* for -d */ 
  39 extern bool graph_flag
;                 /* for -g */ 
  40 extern bool xml_flag
;                   /* for -x */ 
  41 extern bool no_lines_flag
;              /* for -l */ 
  42 extern bool token_table_flag
;           /* for -k */ 
  43 extern bool yacc_flag
;                  /* for -y */ 
  46 /* GLR_PARSER is true if the input file says to use the GLR 
  47    (Generalized LR) parser, and to output some additional information 
  48    used by the GLR algorithm.  */ 
  50 extern bool glr_parser
; 
  52 /* NONDETERMINISTIC_PARSER is true iff conflicts are accepted.  This 
  53    is used by the GLR parser, and might be used in BackTracking 
  56 extern bool nondeterministic_parser
; 
  62   char language
[sizeof "Java"]; 
  63   char skeleton
[sizeof "java-skel.m4"]; 
  64   char src_extension
[sizeof ".java"]; 
  65   char header_extension
[sizeof ".java"]; 
  69 extern int language_prio
; 
  70 extern struct bison_language 
const *language
; 
  79     report_states           
= 1 << 0, 
  80     report_itemsets         
= 1 << 1, 
  81     report_lookahead_tokens 
= 1 << 2, 
  82     report_solved_conflicts 
= 1 << 3, 
  85 /** What appears in the *.output file.  */ 
  86 extern int report_flag
; 
  93     trace_none      
= 0,       /**< No traces. */ 
  94     trace_scan      
= 1 << 0,  /**< Grammar scanner traces. */ 
  95     trace_parse     
= 1 << 1,  /**< Grammar parser traces. */ 
  96     trace_resource  
= 1 << 2,  /**< Memory allocation. */ 
  97     trace_sets      
= 1 << 3,  /**< Grammar sets: firsts, nullable etc. */ 
  98     trace_bitsets   
= 1 << 4,  /**< Use of bitsets. */ 
  99     trace_tools     
= 1 << 5,  /**< m4 invocation. */ 
 100     trace_automaton 
= 1 << 6,  /**< Construction of the automaton. */ 
 101     trace_grammar   
= 1 << 7,  /**< Reading, reducing the grammar. */ 
 102     trace_time      
= 1 << 8,  /**< Time consumption. */ 
 103     trace_skeleton  
= 1 << 9,  /**< Skeleton postprocessing. */ 
 104     trace_m4        
= 1 << 10, /**< M4 traces. */ 
 105     trace_muscles   
= 1 << 11, /**< M4 definitions of the muscles. */ 
 106     trace_ielr      
= 1 << 12, /**< IELR conversion. */ 
 107     trace_all       
= ~0       /**< All of the above.  */ 
 109 /** What debug items bison displays during its run.  */ 
 110 extern int trace_flag
; 
 118     warnings_none             
= 0,      /**< Issue no warnings.  */ 
 119     warnings_error            
= 1 << 0, /**< Warnings are treated as errors.  */ 
 120     warnings_midrule_values   
= 1 << 1, /**< Unset or unused midrule values.  */ 
 121     warnings_yacc             
= 1 << 2, /**< POSIXME.  */ 
 122     warnings_all              
= ~warnings_error 
/**< All above warnings.  */ 
 124 /** What warnings are issued.  */ 
 125 extern int warnings_flag
; 
 128 /** Process the command line arguments. 
 130  *  \param argc   size of \a argv 
 131  *  \param argv   list of arguments. 
 133 void getargs (int argc
, char *argv
[]); 
 135 /* Used by parse-gram.y.  */ 
 136 void language_argmatch (char const *arg
, int prio
, location loc
); 
 137 void skeleton_arg (const char *arg
, int prio
, location loc
); 
 139 /** In the string \c s, replace all characters \c from by \c to.  */ 
 140 void tr (char *s
, char from
, char to
); 
 142 #endif /* !GETARGS_H_ */