]>
git.saurik.com Git - bison.git/blob - src/getargs.c
29b349a4be1d13823f62e26d444ba4636eb7d7ea
   1 /* Parse command line arguments for bison. 
   2    Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc. 
   4    This file is part of Bison, the GNU Compiler Compiler. 
   6    Bison is free software; you can redistribute it and/or modify it 
   7    under the terms of the GNU General Public License as published by 
   8    the Free Software Foundation; either version 2, or (at your option) 
  11    Bison is distributed in the hope that it will be useful, but 
  12    WITHOUT ANY WARRANTY; without even the implied warranty of 
  13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
  14    General Public License for more details. 
  16    You should have received a copy of the GNU General Public License 
  17    along with Bison; see the file COPYING.  If not, write to the Free 
  18    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 
  30 int locations_flag 
= 0; 
  31 int no_lines_flag 
= 0; 
  32 int no_parser_flag 
= 0; 
  33 int token_table_flag 
= 0; 
  35 int statistics_flag 
= 0; 
  36 int yacc_flag 
= 0;      /* for -y */ 
  39 const char *skeleton 
= NULL
; 
  41 extern char *program_name
; 
  42 const char *shortopts 
= "yvgdhrltknVo:b:p:S:"; 
  43 static struct option longopts
[] = 
  45   /* Operation modes. */ 
  46   {"help",              no_argument
,    0, 'h'}, 
  47   {"version",           no_argument
,    0, 'V'}, 
  48   {"yacc",              no_argument
,    0, 'y'}, 
  49   {"fixed-output-files",no_argument
,    0, 'y'}, 
  52   {"skeleton",          required_argument
,      0, 'S'}, 
  53   {"debug",             no_argument
,            0, 'd'}, 
  54   {"locations",         no_argument
,    &locations_flag
, 1}, 
  55   /* was 'a';  apparently unused -wjh */ 
  56   {"name-prefix",       required_argument
,      0, 'p'}, 
  57   {"no-lines",          no_argument
,            0, 'l'}, 
  58   {"no-parser",         no_argument
,            0, 'n'}, 
  59   {"raw",               no_argument
,            0, 'r'}, 
  60   {"token-table",       no_argument
,            0, 'k'}, 
  63   {"defines",           no_argument
,            0, 'd'}, 
  64   {"verbose",           no_argument
,            0, 'v'}, 
  65   {"file-prefix",       required_argument
,      0, 'b'}, 
  66   {"output-file",       required_argument
,      0, 'o'}, 
  67   {"graph",             no_argument
,            0, 'g'}, 
  70   {"statistics",        no_argument
,    &statistics_flag
, 1}, 
  74 /*---------------------------. 
  75 | Display the help message.  | 
  76 `---------------------------*/ 
  81   /* Some efforts were made to ease the translators' task, please 
  84 GNU bison generates parsers for LALR(1) grammars.\n"), stream
); 
  88 Usage: %s [OPTION]... FILE\n"), program_name
); 
  92 If a long option shows an argument as mandatory, then it is mandatory\n\ 
  93 for the equivalent short option also.  Similarly for optional arguments.\n"), 
  99   -h, --help      display this help and exit\n\ 
 100   -V, --version   output version information and exit\n\ 
 101   -y, --yacc      emulate POSIX yacc\n"), stream
); 
 106   -S, --skeleton=FILE        specify the skeleton to use\n\ 
 107   -t, --debug                instrument the parser for debugging\n\ 
 108       --locations            enable locations computation\n\ 
 109   -p, --name-prefix=PREFIX   prepend PREFIX to the external symbols\n\ 
 110   -l, --no-lines             don't generate `#line' directives\n\ 
 111   -n, --no-parser            generate the tables only\n\ 
 112   -k, --token-table          include a table of token names\n\ 
 118   -d, --defines              also produce a header file\n\ 
 119   -v, --verbose              also produce an explanation of the automaton\n\ 
 120   -b, --file-prefix=PREFIX   specify a PREFIX for output files\n\ 
 121   -o, --output-file=FILE     leave output to FILE\n"), stream
); 
 125 Report bugs to <bug-bison@gnu.org>.\n"), stream
); 
 129 /*------------------------------. 
 130 | Display the version message.  | 
 131 `------------------------------*/ 
 134 version (FILE *stream
) 
 136   /* Some efforts were made to ease the translators' task, please 
 138   fprintf (stream
, _("\ 
 139 bison (GNU Bison) %s"), VERSION
); 
 144 Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"), 
 148 This is free software; see the source for copying conditions.  There is NO\n\ 
 149 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ 
 155 /*----------------------. 
 156 | Process the options.  | 
 157 `----------------------*/ 
 160 getargs (int argc
, char *argv
[]) 
 164   while ((c 
= getopt_long (argc
, argv
, shortopts
, longopts
, NULL
)) != EOF
) 
 168         /* Certain long options cause getopt_long to return 0.  */ 
 204         token_table_flag 
= 1; 
 208         fatal (_("`%s' is no longer supported"), "--raw"); 
 220         spec_outfile 
= optarg
; 
 224         spec_file_prefix 
= optarg
; 
 228         spec_name_prefix 
= optarg
; 
 232         fprintf (stderr
, _("Try `%s --help' for more information.\n"), 
 239       fprintf (stderr
, _("%s: no grammar file given\n"), program_name
); 
 242   if (optind 
< argc 
- 1) 
 243     fprintf (stderr
, _("%s: extra arguments ignored after `%s'\n"), 
 244              program_name
, argv
[optind
]); 
 246   infile 
= argv
[optind
];