[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: preparing for 2.3b
From: |
Joel E. Denny |
Subject: |
Re: preparing for 2.3b |
Date: |
Sat, 8 Mar 2008 15:50:11 -0500 (EST) |
On Sat, 8 Mar 2008, Joel E. Denny wrote:
> On Sat, 8 Mar 2008, Akim Demaille wrote:
>
> >
> > Le 7 mars 08 ? 01:24, Joel E. Denny a ?crit :
> >
> > > But should we reserve -D just in case we ever want it to do something like
> > > gcc's -D? I don't know.
> >
> > If we do, we can use VAR=VALUE like Make. Otherwise, we
> > can use -H, like --header? --defines is really a bit
> > meaningless. And --header might also be too C/C++
> > centric, maybe --declaration, or --interface.
>
> I agree that --defines is not the best name.
>
> Maybe I can just drop -D from my patch but leave --defines and -d as
> separate options. Then we can release 2.3b and figure this issue out
> afterwards. Does that work for you?
I went ahead and committed the following patch, which implements that. I
don't think the patch makes any changes we haven't agreed upon. Of
course, we can revise further if needed, but I'd really like to see 2.3b
released soon.
Index: ChangeLog
===================================================================
RCS file: /sources/bison/bison/ChangeLog,v
retrieving revision 1.1778
diff -p -u -r1.1778 ChangeLog
--- ChangeLog 28 Feb 2008 16:28:07 -0000 1.1778
+++ ChangeLog 8 Mar 2008 20:23:14 -0000
@@ -1,3 +1,16 @@
+2008-03-08 Joel E. Denny <address@hidden>
+
+ * 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 <address@hidden>
* doc/bison.texinfo: Fix a few typos.
Index: NEWS
===================================================================
RCS file: /sources/bison/bison/NEWS,v
retrieving revision 1.187
diff -p -u -r1.187 NEWS
--- NEWS 23 Feb 2008 04:26:14 -0000 1.187
+++ NEWS 8 Mar 2008 20:23:15 -0000
@@ -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,
- 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
Index: doc/bison.texinfo
===================================================================
RCS file: /sources/bison/bison/doc/bison.texinfo,v
retrieving revision 1.254
diff -p -u -r1.254 bison.texinfo
--- doc/bison.texinfo 28 Feb 2008 16:28:07 -0000 1.254
+++ doc/bison.texinfo 8 Mar 2008 20:23:19 -0000
@@ -7782,16 +7782,16 @@ Output warnings falling in @var{category
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
address@hidden 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
-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; @};
@@ -7799,18 +7799,18 @@ example, Bison warns about unset @code{$
These warnings are not enabled by default since they sometimes prove to
be false alarms in existing grammars employing the Yacc constructs
address@hidden or @address@hidden (where @var{n} is some positive integer).
address@hidden or @address@hidden (where @var{n} is some positive integer).
@item yacc
Incompatibilities with @acronym{POSIX} Yacc.
@item all
-all the warnings
+All the warnings.
@item none
-turn off all the warnings
+Turn off all the warnings.
@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
@@ -7876,14 +7876,15 @@ Pretend that @code{%token-table} was spe
Adjust the output:
@table @option
address@hidden -d
address@hidden --defines
address@hidden address@hidden
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}.
address@hidden address@hidden
-Same as above, but save in the file @var{defines-file}.
address@hidden -d
+This is the same as @code{--defines} except @code{-d} does not accept a
address@hidden argument since POSIX Yacc requires that @code{-d} can be bundled
+with other short options.
@item -b @var{file-prefix}
@itemx address@hidden
@@ -7925,22 +7926,19 @@ Specify the @var{file} for the parser fi
The other output files' names are constructed from @var{file} as
described under the @samp{-v} and @samp{-d} options.
address@hidden -g
address@hidden address@hidden
address@hidden address@hidden
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}.
-
address@hidden address@hidden
-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.
address@hidden@var{file}} is optional.
+If omitted and the grammar file is @file{foo.y}, the output file will be
address@hidden
address@hidden -x
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
Output an XML report of the @acronym{LALR}(1) automaton computed by Bison.
address@hidden@var{file}} is optional.
address@hidden@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.
Index: src/getargs.c
===================================================================
RCS file: /sources/bison/bison/src/getargs.c,v
retrieving revision 1.105
diff -p -u -r1.105 getargs.c
--- src/getargs.c 28 Feb 2008 16:01:16 -0000 1.105
+++ src/getargs.c 8 Mar 2008 20:23:22 -0000
@@ -254,6 +254,9 @@ Generate LALR(1) and GLR parsers.\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 (_("\
\n\
@@ -279,9 +282,12 @@ Parser:\n\
\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\
- -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\
@@ -410,7 +416,7 @@ static char const short_options[] =
"S:"
"T::"
"V"
- "W"
+ "W::"
"b:"
"d"
"e"
@@ -503,27 +509,17 @@ getargs (int argc, char *argv[])
/* 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)
- spec_graph_file = xstrdup (AS_FILE_NAME (optarg));
+ spec_defines_file = xstrdup (AS_FILE_NAME (optarg));
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;
- case 'h':
- usage (EXIT_SUCCESS);
-
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;
- case 'I':
- include = AS_FILE_NAME (optarg);
+ case 'T':
+ FLAGS_ARGMATCH (trace, optarg);
break;
- case 'd':
- /* Here, the -d and --defines options are differentiated. */
- defines_flag = true;
+ case 'V':
+ version ();
+ exit (EXIT_SUCCESS);
+
+ case 'W':
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;
+ case 'h':
+ usage (EXIT_SUCCESS);
+
case 'k':
token_table_flag = true;
break;
@@ -563,35 +576,22 @@ getargs (int argc, char *argv[])
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 'V':
- version ();
- exit (EXIT_SUCCESS);
-
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;
- case 'W':
- if (optarg)
- FLAGS_ARGMATCH (warnings, optarg);
- else
- warnings_flag |= warnings_all;
+ case 'y':
+ yacc_flag = true;
break;
case LOCATIONS_OPTION:
@@ -606,6 +606,10 @@ getargs (int argc, char *argv[])
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);
}
- Re: preparing for 2.3b, Joel E. Denny, 2008/03/05
- Re: preparing for 2.3b, Joel E. Denny, 2008/03/05
- Re: preparing for 2.3b, Akim Demaille, 2008/03/06
- Re: preparing for 2.3b, Joel E. Denny, 2008/03/06
- Re: preparing for 2.3b, Akim Demaille, 2008/03/08
- Re: preparing for 2.3b, Joel E. Denny, 2008/03/08
- Re: preparing for 2.3b,
Joel E. Denny <=
- Re: preparing for 2.3b, Akim Demaille, 2008/03/10
- Re: preparing for 2.3b, Joel E. Denny, 2008/03/10
- Re: preparing for 2.3b, Joel E. Denny, 2008/03/12
- Re: preparing for 2.3b, Akim Demaille, 2008/03/12
Re: preparing for 2.3b, Akim Demaille, 2008/03/06