/* Parse command line arguments for Bison.
- Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004,
+ 2005, 2006 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
You should have received a copy of the GNU General Public License
along with Bison; see the file COPYING. If not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
+#include <config.h>
#include "system.h"
+#include "revision.h"
#include <argmatch.h>
#include <error.h>
bool debug_flag;
bool defines_flag;
+bool graph_flag;
bool locations_flag;
bool no_lines_flag;
bool no_parser_flag;
-int report_flag = report_none;
bool token_table_flag;
bool yacc_flag; /* for -y */
-bool graph_flag;
-int trace_flag = trace_none;
+
+bool error_verbose = false;
bool nondeterministic_parser = false;
bool glr_parser = false;
bool pure_parser = false;
+int report_flag = report_none;
+int trace_flag = trace_none;
+
const char *skeleton = NULL;
const char *include = NULL;
"grammar - reading, reducing of the grammar",
"resource - memory consumption (where available)",
"sets - grammar sets: firsts, nullable etc.",
- "tools - m4 invocation and preserve the temporary file",
+ "tools - m4 invocation",
+ "m4 - m4 traces",
"skeleton - skeleton postprocessing",
"time - time consumption",
"all - all of the above",
trace_resource,
trace_sets,
trace_tools,
+ trace_m4,
trace_skeleton,
trace_time,
trace_all
};
+ARGMATCH_VERIFY (trace_args, trace_types);
static void
trace_argmatch (char *args)
{
- verify (trace_constraint, ARGMATCH_CONSTRAINT (trace_args, trace_types));
if (args)
{
args = strtok (args, ",");
"none",
"state", "states",
"itemset", "itemsets",
- "lookahead", "lookaheads",
+ "lookahead", "lookaheads", "look-ahead",
"solved",
"all",
0
report_none,
report_states, report_states,
report_states | report_itemsets, report_states | report_itemsets,
- report_states | report_lookaheads, report_states | report_lookaheads,
+ report_states | report_lookahead_tokens,
+ report_states | report_lookahead_tokens,
+ report_states | report_lookahead_tokens,
report_states | report_solved_conflicts,
report_all
};
+ARGMATCH_VERIFY (report_args, report_types);
static void
report_argmatch (char *args)
{
- verify (report_constraint, ARGMATCH_CONSTRAINT (report_args, report_types));
args = strtok (args, ",");
do
{
/* Some efforts were made to ease the translators' task, please
continue. */
fputs (_("\
-GNU bison generates parsers for LALR(1) grammars.\n"), stdout);
+GNU bison generates LALR(1) and GLR parsers.\n"), stdout);
putc ('\n', stdout);
fprintf (stdout, _("\
fputs (_("\
Operation modes:\n\
- -h, --help display this help and exit\n\
- -V, --version output version information and exit\n\
- -y, --yacc emulate POSIX yacc\n"), stdout);
+ -h, --help display this help and exit\n\
+ -V, --version output version information and exit\n\
+ --print-localedir output directory containing locale-dependent data\n\
+ -y, --yacc emulate POSIX yacc\n"), stdout);
putc ('\n', stdout);
fputs (_("\
THINGS is a list of comma separated words that can include:\n\
`state' describe the states\n\
`itemset' complete the core item sets with their closure\n\
- `lookahead' explicitly associate lookaheads to items\n\
+ `lookahead' explicitly associate lookahead tokens to items\n\
`solved' describe shift/reduce conflicts solving\n\
`all' include all the above information\n\
`none' disable the report\n\
continue. */
printf (_("bison (GNU Bison) %s"), VERSION);
putc ('\n', stdout);
+ printf ("%s", revision);
fputs (_("Written by Robert Corbett and Richard Stallman.\n"), stdout);
putc ('\n', stdout);
fprintf (stdout,
- _("Copyright (C) %d Free Software Foundation, Inc.\n"), 2004);
+ _("Copyright (C) %d Free Software Foundation, Inc.\n"), 2006);
fputs (_("\
This is free software; see the source for copying conditions. There is NO\n\
`----------------------*/
/* Shorts options. */
-const char *short_options = "yvegdhr:ltknVo:b:p:S:T::";
+static char const short_options[] = "yvegdhr:ltknVo:b:p:S:T::";
/* Values for long options that do not have single-letter equivalents. */
enum
{
- LOCATIONS_OPTION = CHAR_MAX + 1
+ LOCATIONS_OPTION = CHAR_MAX + 1,
+ PRINT_LOCALEDIR_OPTION
};
static struct option const long_options[] =
{
/* Operation modes. */
- { "help", no_argument, 0, 'h' },
- { "version", no_argument, 0, 'V' },
+ { "help", no_argument, 0, 'h' },
+ { "version", no_argument, 0, 'V' },
+ { "print-localedir", no_argument, 0, PRINT_LOCALEDIR_OPTION },
/* Parser. */
{ "name-prefix", required_argument, 0, 'p' },
version ();
exit (EXIT_SUCCESS);
+ case PRINT_LOCALEDIR_OPTION:
+ printf ("%s\n", LOCALEDIR);
+ exit (EXIT_SUCCESS);
+
case 'g':
/* Here, the -g and --graph=FILE options are differentiated. */
graph_flag = true;