]> git.saurik.com Git - bison.git/commitdiff
* NEWS (2.3a+): Mention that -g now takes an argument.
authorJoel E. Denny <jdenny@ces.clemson.edu>
Sat, 8 Mar 2008 20:49:57 +0000 (20:49 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Sat, 8 Mar 2008 20:49:57 +0000 (20:49 +0000)
* doc/bison.texinfo (Bison Options): Reword -W entry a little for
consistency.  Update the -g and -x entries now that they take
arguments.  Use brackets to indicate optional arguments.
* src/getargs.c (usage): Explain the relationship between arguments of
long and short options more completely.  Document --defines and -d
separately since the former takes an argument but, for POSIX Yacc, the
latter does not.
(short_options): Let -W take an optional argument like --warnings.
(getargs): Sort cases.

ChangeLog
NEWS
doc/bison.1
doc/bison.texinfo
src/getargs.c

index 42fd54c01cb46207b3ece12bb226b75b776c3749..79be1a061a315c47c20297d5c361fd751e98791a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2008-03-08  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS (2.3a+): Mention that -g now takes an argument.
+       * doc/bison.texinfo (Bison Options): Reword -W entry a little for
+       consistency.  Update the -g and -x entries now that they take
+       arguments.  Use brackets to indicate optional arguments.
+       * src/getargs.c (usage): Explain the relationship between arguments of
+       long and short options more completely.  Document --defines and -d
+       separately since the former takes an argument but, for POSIX Yacc, the
+       latter does not.
+       (short_options): Let -W take an optional argument like --warnings.
+       (getargs): Sort cases.  
+
 2008-02-28  Akim Demaille  <demaille@gostai.com>
 
        * doc/bison.texinfo: Fix a few typos.
 2008-02-28  Akim Demaille  <demaille@gostai.com>
 
        * doc/bison.texinfo: Fix a few typos.
diff --git a/NEWS b/NEWS
index 177454490ebb0c45e786f9b1fc2eed1ae9504c83..1e1d0ae223a3b2a7a36660ff734251ca267286e3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -32,7 +32,8 @@ Changes in version 2.3a+ (????-??-??):
   feedback will help to stabilize it.
 
 * The -g and --graph options now output graphs in Graphviz DOT format,
   feedback will help to stabilize it.
 
 * The -g and --graph options now output graphs in Graphviz DOT format,
-  not VCG format.
+  not VCG format.  Like --graph, -g now also takes an optional FILE argument
+  and thus cannot be bundled with other short options.
 
 * Java
 
 
 * Java
 
index e46d1ea6b03fa551420cd83aca75d2720204d43a..9fb8676c9b7b8f21a15814987ff0a67e3ce8b5c3 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
-.TH BISON "1" "February 2008" "bison 2.3a+" "User Commands"
+.TH BISON "1" "March 2008" "bison 2.3a+" "User Commands"
 .SH NAME
 bison \- GNU Project parser generator (yacc replacement)
 .SH SYNOPSIS
 .SH NAME
 bison \- GNU Project parser generator (yacc replacement)
 .SH SYNOPSIS
@@ -61,6 +61,7 @@ connect the option name and the argument with
 Generate LALR(1) and GLR parsers.
 .PP
 Mandatory arguments to long options are mandatory for short options too.
 Generate LALR(1) and GLR parsers.
 .PP
 Mandatory arguments to long options are mandatory for short options too.
+The same is true for optional arguments.
 .SS "Operation modes:"
 .TP
 \fB\-h\fR, \fB\-\-help\fR
 .SS "Operation modes:"
 .TP
 \fB\-h\fR, \fB\-\-help\fR
@@ -104,9 +105,12 @@ don't generate `#line' directives
 include a table of token names
 .SS "Output:"
 .TP
 include a table of token names
 .SS "Output:"
 .TP
-\fB\-d\fR, \fB\-\-defines\fR[=\fIFILE\fR]
+\fB\-\-defines\fR[=\fIFILE\fR]
 also produce a header file
 .TP
 also produce a header file
 .TP
+\fB\-d\fR
+likewise but cannot specify FILE (for POSIX Yacc)
+.TP
 \fB\-r\fR, \fB\-\-report\fR=\fITHINGS\fR
 also produce details on the automaton
 .TP
 \fB\-r\fR, \fB\-\-report\fR=\fITHINGS\fR
 also produce details on the automaton
 .TP
index cf775a936c1c8a7afd22f3d2bb6a7842102ca369..b6a98f9db3c2fb7a0ed58a97950c7a3200a43d6e 100644 (file)
@@ -7782,16 +7782,16 @@ Output warnings falling in @var{category}.  @var{category} can be one
 of:
 @table @code
 @item midrule-values
 of:
 @table @code
 @item midrule-values
-Warn about about mid-rule values that are set but not used within any of
-the actions of the parent rule.  For example, Bison warns about unused
-@code{$2} in:
+Warn about mid-rule values that are set but not used within any of the actions
+of the parent rule.
+For example, warn about unused @code{$2} in:
 
 @example
 exp: '1' @{ $$ = 1; @} '+' exp @{ $$ = $1 + $4; @};
 @end example
 
 
 @example
 exp: '1' @{ $$ = 1; @} '+' exp @{ $$ = $1 + $4; @};
 @end example
 
-It also warns about mid-rule values that are used but not set.  For
-example, Bison warns about unset @code{$$} in the mid-rule action in:
+Also warn about mid-rule values that are used but not set.
+For example, warn about unset @code{$$} in the mid-rule action in:
 
 @example
  exp: '1' @{ $1 = 1; @} '+' exp @{ $$ = $2 + $4; @};
 
 @example
  exp: '1' @{ $1 = 1; @} '+' exp @{ $$ = $2 + $4; @};
@@ -7799,18 +7799,18 @@ example, Bison warns about unset @code{$$} in the mid-rule action in:
 
 These warnings are not enabled by default since they sometimes prove to
 be false alarms in existing grammars employing the Yacc constructs
 
 These warnings are not enabled by default since they sometimes prove to
 be false alarms in existing grammars employing the Yacc constructs
-@code{$0} or @code{$-@var{b}} (where @var{n} is some positive integer).
+@code{$0} or @code{$-@var{n}} (where @var{n} is some positive integer).
 
 
 @item yacc
 Incompatibilities with @acronym{POSIX} Yacc.
 
 @item all
 
 
 @item yacc
 Incompatibilities with @acronym{POSIX} Yacc.
 
 @item all
-all the warnings
+All the warnings.
 @item none
 @item none
-turn off all the warnings
+Turn off all the warnings.
 @item error
 @item error
-treat warnings as errors
+Treat warnings as errors.
 @end table
 
 A category can be turned off by prefixing its name with @samp{no-}.  For
 @end table
 
 A category can be turned off by prefixing its name with @samp{no-}.  For
@@ -7876,14 +7876,15 @@ Pretend that @code{%token-table} was specified.  @xref{Decl Summary}.
 Adjust the output:
 
 @table @option
 Adjust the output:
 
 @table @option
-@item -d
-@itemx --defines
+@item --defines[=@var{file}]
 Pretend that @code{%defines} was specified, i.e., write an extra output
 file containing macro definitions for the token type names defined in
 the grammar, as well as a few other declarations.  @xref{Decl Summary}.
 
 Pretend that @code{%defines} was specified, i.e., write an extra output
 file containing macro definitions for the token type names defined in
 the grammar, as well as a few other declarations.  @xref{Decl Summary}.
 
-@item --defines=@var{defines-file}
-Same as above, but save in the file @var{defines-file}.
+@item -d
+This is the same as @code{--defines} except @code{-d} does not accept a
+@var{file} argument since POSIX Yacc requires that @code{-d} can be bundled
+with other short options.
 
 @item -b @var{file-prefix}
 @itemx --file-prefix=@var{prefix}
 
 @item -b @var{file-prefix}
 @itemx --file-prefix=@var{prefix}
@@ -7925,22 +7926,19 @@ Specify the @var{file} for the parser file.
 The other output files' names are constructed from @var{file} as
 described under the @samp{-v} and @samp{-d} options.
 
 The other output files' names are constructed from @var{file} as
 described under the @samp{-v} and @samp{-d} options.
 
-@item -g
+@item -g[@var{file}]
+@itemx --graph[=@var{file}]
 Output a graphical representation of the @acronym{LALR}(1) grammar
 automaton computed by Bison, in @uref{http://www.graphviz.org/, Graphviz}
 @uref{http://www.graphviz.org/doc/info/lang.html, @acronym{DOT}} format.
 Output a graphical representation of the @acronym{LALR}(1) grammar
 automaton computed by Bison, in @uref{http://www.graphviz.org/, Graphviz}
 @uref{http://www.graphviz.org/doc/info/lang.html, @acronym{DOT}} format.
-If the grammar file is @file{foo.y}, the output file will
-be @file{foo.dot}.
-
-@item --graph=@var{graph-file}
-The behavior of @var{--graph} is the same as @samp{-g}.  The only
-difference is that it has an optional argument which is the name of
-the output graph file.
+@code{@var{file}} is optional.
+If omitted and the grammar file is @file{foo.y}, the output file will be
+@file{foo.dot}.
 
 
-@item -x
-@itemx --xml=@var{file}
+@item -x[@var{file}]
+@itemx --xml[=@var{file}]
 Output an XML report of the @acronym{LALR}(1) automaton computed by Bison.
 Output an XML report of the @acronym{LALR}(1) automaton computed by Bison.
-@code{=@var{file}} is optional.
+@code{@var{file}} is optional.
 If omitted and the grammar file is @file{foo.y}, the output file will be
 @file{foo.xml}.
 (The current XML schema is experimental and may evolve.
 If omitted and the grammar file is @file{foo.y}, the output file will be
 @file{foo.xml}.
 (The current XML schema is experimental and may evolve.
index 77f147d35875f7e9c8f74b9168695bdfc046c98a..92846b64720a0d9caaaa9b7bc78990381a3f03e5 100644 (file)
@@ -253,6 +253,9 @@ Generate LALR(1) and GLR parsers.\n\
 
       fputs (_("\
 Mandatory arguments to long options are mandatory for short options too.\n\
 
       fputs (_("\
 Mandatory arguments to long options are mandatory for short options too.\n\
+"), stdout);
+      fputs (_("\
+The same is true for optional arguments.\n\
 "), stdout);
 
       fputs (_("\
 "), stdout);
 
       fputs (_("\
@@ -279,9 +282,12 @@ Parser:\n\
 \n\
 "), stdout);
 
 \n\
 "), stdout);
 
+      /* Keep -d and --defines separate so that ../build-aux/cross-options.pl
+       * won't assume that -d also takes an argument.  */
       fputs (_("\
 Output:\n\
       fputs (_("\
 Output:\n\
-  -d, --defines[=FILE]       also produce a header file\n\
+      --defines[=FILE]       also produce a header file\n\
+  -d                         likewise but cannot specify FILE (for POSIX Yacc)\n\
   -r, --report=THINGS        also produce details on the automaton\n\
       --report-file=FILE     write report to FILE\n\
   -v, --verbose              same as `--report=state'\n\
   -r, --report=THINGS        also produce details on the automaton\n\
       --report-file=FILE     write report to FILE\n\
   -v, --verbose              same as `--report=state'\n\
@@ -410,7 +416,7 @@ static char const short_options[] =
   "S:"
   "T::"
   "V"
   "S:"
   "T::"
   "V"
-  "W"
+  "W::"
   "b:"
   "d"
   "e"
   "b:"
   "d"
   "e"
@@ -503,27 +509,17 @@ getargs (int argc, char *argv[])
        /* Certain long options cause getopt_long to return 0.  */
        break;
 
        /* Certain long options cause getopt_long to return 0.  */
        break;
 
-      case 'b':
-       spec_file_prefix = AS_FILE_NAME (optarg);
-       break;
-
-      case 'g':
-       /* Here, the -g and --graph=FILE options are differentiated.  */
-       graph_flag = true;
+      case 'd':
+       /* Here, the -d and --defines options are differentiated.  */
+       defines_flag = true;
        if (optarg)
        if (optarg)
-         spec_graph_file = xstrdup (AS_FILE_NAME (optarg));
+         spec_defines_file = xstrdup (AS_FILE_NAME (optarg));
        break;
 
        break;
 
-      case 'x':
-       /* Here, the -x and --xml=FILE options are differentiated.  */
-       xml_flag = true;
-       if (optarg)
-         spec_xml_file = xstrdup (AS_FILE_NAME (optarg));
+      case 'I':
+       include = AS_FILE_NAME (optarg);
        break;
 
        break;
 
-      case 'h':
-       usage (EXIT_SUCCESS);
-
       case 'L':
        language_argmatch (optarg, 0, NULL);
        break;
       case 'L':
        language_argmatch (optarg, 0, NULL);
        break;
@@ -532,17 +528,34 @@ getargs (int argc, char *argv[])
        skeleton_arg (AS_FILE_NAME (optarg), 0, NULL);
        break;
 
        skeleton_arg (AS_FILE_NAME (optarg), 0, NULL);
        break;
 
-      case 'I':
-       include = AS_FILE_NAME (optarg);
+      case 'T':
+       FLAGS_ARGMATCH (trace, optarg);
        break;
 
        break;
 
-      case 'd':
-       /* Here, the -d and --defines options are differentiated.  */
-       defines_flag = true;
+      case 'V':
+       version ();
+       exit (EXIT_SUCCESS);
+
+      case 'W':
        if (optarg)
        if (optarg)
-         spec_defines_file = xstrdup (AS_FILE_NAME (optarg));
+         FLAGS_ARGMATCH (warnings, optarg);
+       else
+         warnings_flag |= warnings_all;
+       break;
+
+      case 'b':
+       spec_file_prefix = AS_FILE_NAME (optarg);
+       break;
+
+      case 'g':
+       graph_flag = true;
+       if (optarg)
+         spec_graph_file = xstrdup (AS_FILE_NAME (optarg));
        break;
 
        break;
 
+      case 'h':
+       usage (EXIT_SUCCESS);
+
       case 'k':
        token_table_flag = true;
        break;
       case 'k':
        token_table_flag = true;
        break;
@@ -563,35 +576,22 @@ getargs (int argc, char *argv[])
        FLAGS_ARGMATCH (report, optarg);
        break;
 
        FLAGS_ARGMATCH (report, optarg);
        break;
 
-      case REPORT_FILE_OPTION:
-       spec_verbose_file = xstrdup (AS_FILE_NAME (optarg));
-       break;
-
-      case 'T':
-       FLAGS_ARGMATCH (trace, optarg);
-       break;
-
       case 't':
        debug_flag = true;
        break;
 
       case 't':
        debug_flag = true;
        break;
 
-      case 'V':
-       version ();
-       exit (EXIT_SUCCESS);
-
       case 'v':
        report_flag |= report_states;
        break;
 
       case 'v':
        report_flag |= report_states;
        break;
 
-      case 'y':
-       yacc_flag = true;
+      case 'x':
+       xml_flag = true;
+       if (optarg)
+         spec_xml_file = xstrdup (AS_FILE_NAME (optarg));
        break;
 
        break;
 
-      case 'W':
-       if (optarg)
-         FLAGS_ARGMATCH (warnings, optarg);
-       else
-         warnings_flag |= warnings_all;
+      case 'y':
+       yacc_flag = true;
        break;
 
       case LOCATIONS_OPTION:
        break;
 
       case LOCATIONS_OPTION:
@@ -606,6 +606,10 @@ getargs (int argc, char *argv[])
        printf ("%s\n", compute_pkgdatadir ());
        exit (EXIT_SUCCESS);
 
        printf ("%s\n", compute_pkgdatadir ());
        exit (EXIT_SUCCESS);
 
+      case REPORT_FILE_OPTION:
+       spec_verbose_file = xstrdup (AS_FILE_NAME (optarg));
+       break;
+
       default:
        usage (EXIT_FAILURE);
       }
       default:
        usage (EXIT_FAILURE);
       }