From 59da312bc7a98d2cea04dceb53fc9e7b6c9c1ee3 Mon Sep 17 00:00:00 2001 From: "Joel E. Denny" Date: Sat, 23 Feb 2008 04:26:14 +0000 Subject: [PATCH] * NEWS (2.3a+): Don't say %language is experimental. Mention Java and say its interface is experimental. * doc/bison.texinfo (Decl Summary): In the %language entry, mention Java. (Bison Options): In the -L and --language entry, mention Java. (Java Bison Interface): Say the interface is experimental. * src/getargs.c (usage): Mention -L and --language. * NEWS (2.3a+): Say the push parsing interface is experimental. * doc/bison.texinfo (Push Decl): Likewise. (Decl Summary): Likewise in the "%define api.push_pull" entry. (Push Parser Function): Likewise. (Pull Parser Function): Likewise. (Parser Create Function): Likewise. (Parser Delete Function): Likewise. (Table of Symbols): Likewise in the yypstate_delete, yypstate_new, yypull_parse, and yypush_parse entries. * NEWS (2.3a+): Mention XML support, and say the schema is experimental. * doc/bison.texinfo (Bison Options): Mention -x and --xml. * src/getargs.c (usage): Say the XML schema is experimental. * NEWS (2.3a+): Say option instead of flag. --- ChangeLog | 27 +++++++++++++++++++++++++++ NEWS | 35 +++++++++++++++++++++++++++++------ doc/bison.1 | 6 +++++- doc/bison.texinfo | 43 ++++++++++++++++++++++++++++++++++++++++--- src/getargs.c | 4 +++- 5 files changed, 104 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 18abb825..6b94a409 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,30 @@ +2008-02-22 Joel E. Denny + + * NEWS (2.3a+): Don't say %language is experimental. Mention Java and + say its interface is experimental. + * doc/bison.texinfo (Decl Summary): In the %language entry, mention + Java. + (Bison Options): In the -L and --language entry, mention Java. + (Java Bison Interface): Say the interface is experimental. + * src/getargs.c (usage): Mention -L and --language. + + * NEWS (2.3a+): Say the push parsing interface is experimental. + * doc/bison.texinfo (Push Decl): Likewise. + (Decl Summary): Likewise in the "%define api.push_pull" entry. + (Push Parser Function): Likewise. + (Pull Parser Function): Likewise. + (Parser Create Function): Likewise. + (Parser Delete Function): Likewise. + (Table of Symbols): Likewise in the yypstate_delete, yypstate_new, + yypull_parse, and yypush_parse entries. + + * NEWS (2.3a+): Mention XML support, and say the schema is + experimental. + * doc/bison.texinfo (Bison Options): Mention -x and --xml. + * src/getargs.c (usage): Say the XML schema is experimental. + + * NEWS (2.3a+): Say option instead of flag. + 2008-02-21 Wojciech Polak * data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer diff --git a/NEWS b/NEWS index 1458cb2d..17745449 100644 --- a/NEWS +++ b/NEWS @@ -28,13 +28,35 @@ Changes in version 2.3a+ (????-??-??): See the new section `A Push Parser' in the Bison manual for details. + The current push parsing interface is experimental and may evolve. More user + feedback will help to stabilize it. + * The -g and --graph options now output graphs in Graphviz DOT format, not VCG format. -* An experimental directive %language specifies the language of the - generated parser, which can be C (the default) or C++. This - directive affects the skeleton used, and the names of the generated - files if the grammar file's name ends in ".y". +* Java + + Bison can now generate an LALR(1) parser in Java. The skeleton is + `data/lalr1.java'. Consider using the new %language directive instead of + %skeleton to select it. + + See the new section `Java Parsers' in the Bison manual for details. + + The current Java interface is experimental and may evolve. More user + feedback will help to stabilize it. + +* %language + + This new directive specifies the programming language of the generated + parser, which can be C (the default), C++, or Java. This directive affects + the skeleton used and the names of the generated files if the grammar file's + name ends in ".y". + +* XML Automaton Report + + Bison can now generate an XML report of the LALR(1) automaton using the new + `--xml' option. The current XML schema is experimental and may evolve. More + user feedback will help to stabilize it. * The grammar file may now specify the name of the parser header file using %defines. For example: @@ -79,7 +101,8 @@ Changes in version 2.3a+ (????-??-??): bug affected only the `.output' file and not the generated parser source code. -* --report-file=FILE is a new flag to override the default `.output' file name. +* --report-file=FILE is a new option to override the default `.output' file + name. * The `=' that used to be required in the following directives is now deprecated: @@ -126,7 +149,7 @@ Changes in version 2.3a+ (????-??-??): sometimes prove to be false alarms in existing grammars employing the Yacc constructs $0 or $-N (where N is some positive integer). - To enable these warnings, specify the flag `--warnings=midrule-values' or + To enable these warnings, specify the option `--warnings=midrule-values' or `-W', which is a synonym for `--warnings=all'. * Default %destructor or %printer with `<*>' or `<>' diff --git a/doc/bison.1 b/doc/bison.1 index d8305c06..e46d1ea6 100644 --- a/doc/bison.1 +++ b/doc/bison.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36. -.TH BISON "1" "November 2007" "bison 2.3a+" "User Commands" +.TH BISON "1" "February 2008" "bison 2.3a+" "User Commands" .SH NAME bison \- GNU Project parser generator (yacc replacement) .SH SYNOPSIS @@ -82,6 +82,9 @@ emulate POSIX Yacc report the warnings falling in CATEGORY .SS "Parser:" .TP +\fB\-L\fR, \fB\-\-language\fR=\fILANGUAGE\fR +specify the output programming language +.TP \fB\-S\fR, \fB\-\-skeleton\fR=\fIFILE\fR specify the skeleton to use .TP @@ -124,6 +127,7 @@ also output a graph of the automaton .TP \fB\-x\fR, \fB\-\-xml\fR[=\fIFILE\fR] also output an XML report of the automaton +(the XML schema is experimental) .SS "Warning categories include:" .TP `midrule\-values' diff --git a/doc/bison.texinfo b/doc/bison.texinfo index d513b555..1f15f825 100644 --- a/doc/bison.texinfo +++ b/doc/bison.texinfo @@ -4553,6 +4553,9 @@ valid grammar. @cindex push parser @findex %define api.push_pull +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) + A pull parser is called once and it takes control until all its input is completely parsed. A push parser, on the other hand, is called each time a new token is made available. @@ -4882,6 +4885,8 @@ Some of the accepted @var{variable}s are: @item Purpose: Requests a pull parser, a push parser, or both. @xref{Push Decl, ,A Push Parser}. +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) @item Accepted Values: @code{"pull"}, @code{"push"}, @code{"both"} @@ -5042,7 +5047,7 @@ chosen as if the input file were named @file{@var{prefix}.y}. @deffn {Directive} %language "@var{language}" Specify the programming language for the generated parser. Currently -supported languages include C and C++. +supported languages include C, C++, and Java. @var{language} is case-insensitive. @end deffn @@ -5304,6 +5309,9 @@ exp: @dots{} @{ @dots{}; *randomness += 1; @dots{} @} @section The Push Parser Function @code{yypush_parse} @findex yypush_parse +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) + You call the function @code{yypush_parse} to parse a single token. This function is available if either the @code{%define api.push_pull "push"} or @code{%define api.push_pull "both"} declaration is used. @@ -5319,6 +5327,9 @@ is required to finish parsing the grammar. @section The Pull Parser Function @code{yypull_parse} @findex yypull_parse +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) + You call the function @code{yypull_parse} to parse the rest of the input stream. This function is available if the @code{%define api.push_pull "both"} declaration is used. @@ -5332,6 +5343,9 @@ The value returned by @code{yypull_parse} is the same as for @code{yyparse}. @section The Parser Create Function @code{yystate_new} @findex yypstate_new +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) + You call the function @code{yypstate_new} to create a new parser instance. This function is available if either the @code{%define api.push_pull "push"} or @code{%define api.push_pull "both"} declaration is used. @@ -5348,6 +5362,9 @@ allocated. @section The Parser Delete Function @code{yystate_delete} @findex yypstate_delete +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) + You call the function @code{yypstate_delete} to delete a parser instance. function is available if either the @code{%define api.push_pull "push"} or @code{%define api.push_pull "both"} declaration is used. @@ -7775,7 +7792,7 @@ already defined, so that the debugging facilities are compiled. @itemx --language=@var{language} Specify the programming language for the generated parser, as if @code{%language} was specified (@pxref{Decl Summary, , Bison Declaration -Summary}). Currently supported languages include C and C++. +Summary}). Currently supported languages include C, C++, and Java. @var{language} is case-insensitive. @item --locations @@ -7876,9 +7893,18 @@ 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 than @samp{-g}. The only +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. + +@item -x +@itemx --xml=@var{file} +Output an XML report of the @acronym{LALR}(1) automaton computed by Bison. +@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. +More user feedback will help to stabilize it.) @end table @node Option Cross Key @@ -8669,6 +8695,9 @@ main (int argc, char *argv[]) @c - %language "Java" @c - initial action +(The current Java interface is experimental and may evolve. +More user feedback will help to stabilize it.) + The Java parser skeletons are selected using a language directive, @samp{%language "Java"}, or the synonymous command-line option @option{--language=java}. @@ -9781,6 +9810,8 @@ The function to delete a parser instance, produced by Bison in push mode; call this function to delete the memory associated with a parser. @xref{Parser Delete Function, ,The Parser Delete Function @code{yypstate_delete}}. +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) @end deffn @deffn {Function} yypstate_new @@ -9788,6 +9819,8 @@ The function to create a parser instance, produced by Bison in push mode; call this function to create a new parser. @xref{Parser Create Function, ,The Parser Create Function @code{yypstate_new}}. +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) @end deffn @deffn {Function} yypull_parse @@ -9795,12 +9828,16 @@ The parser function produced by Bison in push mode; call this function to parse the rest of the input stream. @xref{Pull Parser Function, ,The Pull Parser Function @code{yypull_parse}}. +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) @end deffn @deffn {Function} yypush_parse The parser function produced by Bison in push mode; call this function to parse a single token. @xref{Push Parser Function, ,The Push Parser Function @code{yypush_parse}}. +(The current push parsing interface is experimental and may evolve. +More user feedback will help to stabilize it.) @end deffn @deffn {Macro} YYPARSE_PARAM diff --git a/src/getargs.c b/src/getargs.c index c030db80..9661fefe 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -1,7 +1,7 @@ /* Parse command line arguments for Bison. Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -269,6 +269,7 @@ Operation modes:\n\ fputs (_("\ Parser:\n\ + -L, --language=LANGUAGE specify the output programming language\n\ -S, --skeleton=FILE specify the skeleton to use\n\ -t, --debug instrument the parser for debugging\n\ --locations enable locations computation\n\ @@ -288,6 +289,7 @@ Output:\n\ -o, --output=FILE leave output to FILE\n\ -g, --graph[=FILE] also output a graph of the automaton\n\ -x, --xml[=FILE] also output an XML report of the automaton\n\ + (the XML schema is experimental)\n\ \n\ "), stdout); -- 2.47.2