]> git.saurik.com Git - bison.git/log
bison.git
12 years agoMerge remote-tracking branch 'origin/maint'
Akim Demaille [Tue, 26 Jun 2012 15:13:36 +0000 (17:13 +0200)] 
Merge remote-tracking branch 'origin/maint'

* origin/maint:
  maint: use *.texi.

Conflicts:
doc/Makefile.am
examples/calc++/Makefile.am

12 years agomaint: use *.texi.
Akim Demaille [Tue, 26 Jun 2012 14:55:23 +0000 (16:55 +0200)] 
maint: use *.texi.

This is more consistent with the other packages, and Automake-NG
supports only *.texi.

* doc/bison.texinfo: Rename as...
* doc/bison.texi: this.
* doc/Makefile.am, examples/calc++/Makefile.am: Adjust.

12 years agoMerge remote-tracking branch 'origin/maint'
Akim Demaille [Tue, 26 Jun 2012 14:43:22 +0000 (16:43 +0200)] 
Merge remote-tracking branch 'origin/maint'

* origin/maint:
  tests: do not output m4 set up.
  tests: use the generic yyerror function.
  tests: use assert instead of plain abort.
  tests: improve the generic yylex implementation.
  tests: generalize the compilation macros.
  tests: fix confusion between api.prefix and name-prefix.
  maint: gitignores.
  yacc: work around the ylwrap limitation.

Conflicts:
NEWS
tests/local.at

12 years agowarnings: raise warning for useless printers or destructors
Victor Santet [Thu, 14 Jun 2012 12:20:07 +0000 (14:20 +0200)] 
warnings: raise warning for useless printers or destructors

* src/scan-code.h (code_props): Add field 'is_used'.
(CODE_PROPS_NONE_INIT): Adjust.
* src/scan-code.l (code_props_plain_init, code_props_symbol_action_init)
(code_props_rule_action_init): Instead of implementing several
times the initialization of the code_props structures,
use code_props_none_init.
* src/symtab.c (symbol_check_defined): If a symbol does not have a
destructor (resp. printer) but has a type which has a destructor (resp.
printer), then set field 'is_used' to true.
(semantic_type_check_defined): If a type has a destructor (resp. printer)
but all symbols of this type have already a destructor (resp. printer),
then raise a warning.
* tests/input.at (Useless printers or destructors): New.

Signed-off-by: Akim Demaille <akim@lrde.epita.fr>
12 years agotests: do not output m4 set up.
Akim Demaille [Tue, 26 Jun 2012 12:05:56 +0000 (14:05 +0200)] 
tests: do not output m4 set up.

* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
Use a diversion to avoid outputting comments etc.
Removes 17k lines from testsuite (10% of the number of lines).

12 years agotests: use the generic yyerror function.
Akim Demaille [Tue, 26 Jun 2012 09:54:13 +0000 (11:54 +0200)] 
tests: use the generic yyerror function.

* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Factor.
Use AT_YYERROR_DEFINE.
Therefore, instead of using stdout, use and check stderr.
* tests/glr-regression.at (Uninitialized location when reporting ambiguity):
Use AT_YYERROR_DEFINE.

12 years agotests: use assert instead of plain abort.
Akim Demaille [Tue, 26 Jun 2012 08:20:35 +0000 (10:20 +0200)] 
tests: use assert instead of plain abort.

* tests/actions.at, tests/calc.at, tests/conflicts.at,
* tests/cxx-type.at, tests/glr-regression.at, tests/input.at,
* tests/named-refs.at, tests/regression.at, tests/torture.at,
* tests/local.at:
Prefer assert to abort.

12 years agotests: improve the generic yylex implementation.
Akim Demaille [Tue, 26 Jun 2012 08:09:10 +0000 (10:09 +0200)] 
tests: improve the generic yylex implementation.

* tests/local.at (AT_YYSTYPE, AT_YYLTYPE): New.
(AT_YYLEX_FORMALS): Use them.
(AT_YYLEX_DEFINE): Be independent of the location implementation.

12 years agotests: generalize the compilation macros.
Akim Demaille [Mon, 25 Jun 2012 14:37:18 +0000 (16:37 +0200)] 
tests: generalize the compilation macros.

* tests/local.at (AT_COMPILE, AT_COMPILE_CXX): If OUTPUT ends with ".o",
then append the "natural" extension for the input file (.c or .cc).
If there is no source, pass -c.
* tests/headers.at, tests/input.at, tests/regression.at: Adjust.

12 years agotests: fix confusion between api.prefix and name-prefix.
Akim Demaille [Tue, 26 Jun 2012 07:35:31 +0000 (09:35 +0200)] 
tests: fix confusion between api.prefix and name-prefix.

* tests/local.at (AT_NAME_PREFIX): Take api.prefix into account.
(AT_API_PREFIX): Rename as...
(AT_API_prefix): this.
Do not take %name-prefix into account.
Fix misuses.

12 years agomaint: gitignores.
Akim Demaille [Tue, 26 Jun 2012 07:37:27 +0000 (09:37 +0200)] 
maint: gitignores.

12 years agowarnings: useless semantic types
Victor Santet [Mon, 18 Jun 2012 13:44:38 +0000 (15:44 +0200)] 
warnings: useless semantic types

* src/symtab.h (symbol_list): Represent semantic types as structure
'semantic_type'.
* src/symlist.c (symbol_list_type_new): Allocate this structure.
(symbol_list_code_props_set): Set this semantic type's status to used if it
was not declared.
* src/symtab.c (semantic_types_sorted): New.
(semantic_type_new): Set the new semantic type's location appropriately.
(symbol_check_defined): If a symbol has a type, then set this type's status
to "declared".
(semantic_type_check_defined, semantic_type_check_defined_processor): Same
as symbol_check_defined and symbol_check_defined_processor, but for semantic
types.
(symbol_check_defined): Check semantic types usefulness.
* src/symtab.h (semantic_type): New fields 'location' and 'status'.
* src/symtab.h, src/symtab.c (semantic_type_new)
(semantic_type_from_uniqstr, semantic_type_get): Accept a location as a
supplementary argument.
* tests/input.at (Unassociated types used for printer of destructor): New.
* tests/c++.at (AT_CHECK_VARIANTS): Fix an error caught by this commit.

12 years agoyacc: work around the ylwrap limitation.
Akim Demaille [Mon, 25 Jun 2012 08:15:44 +0000 (10:15 +0200)] 
yacc: work around the ylwrap limitation.

* data/yacc.c (b4_shared_declarations): Include the header guards.
Do not include the header in the *.c file, duplicate it.
* NEWS (Future Changes): Extend, and announce the forthcoming change
about the use of the parser header.

12 years agofix for printers and destructors.
Akim Demaille [Mon, 25 Jun 2012 07:49:04 +0000 (09:49 +0200)] 
fix for printers and destructors.

The previous "code_props: factor more" patch sends has_%printer
etc. to m4, instead of has_printer.

* src/output.c (prepare_symbol_definitions): Fix value of pname.

12 years agoMerge remote-tracking branch 'origin/maint'
Akim Demaille [Mon, 25 Jun 2012 07:26:48 +0000 (09:26 +0200)] 
Merge remote-tracking branch 'origin/maint'

* origin/maint:
  tests: more uniformity.
  tests: handle locations in a more generic way.
  tests: handle locations in the generic yyerror functions.
  tests: fix AT_CHECK_CALC.
  tests: improve infrastructure
  tests: factor.
  skeletons: minor style changes
  tests: AT_LANG.
  c skeletons: factor the declaration of yylloc and yylval.
  news: condemn YYPARSE_PARAM and YYLEX_PARAM.
  maint: regen.

Conflicts:
tests/calc.at
tests/local.at
tests/regression.at

12 years agocode_props: factor more.
Akim Demaille [Fri, 22 Jun 2012 12:47:31 +0000 (14:47 +0200)] 
code_props: factor more.

* src/symtab.h, src/symtab.c (code_props_type_string): No longer static.
* src/output.c (CODE_PROPS): Remove, we can now iterate on both the
destructor and the printer.
(SET_KEY2): New.

12 years agomaint: factor the handling of %printer and %destructor
Victor Santet [Fri, 22 Jun 2012 12:11:05 +0000 (14:11 +0200)] 
maint: factor the handling of %printer and %destructor

There is too much code duplication between %printer and %destructor.
We used to have two functions for each action: the first one for
destructors, the second one for printers. Factor using a
'code_props_type', and an array of code_props instead of two
members.

* src/symlist.h, src/symlist.c (symbol_list_destructor_set)
(symbol_list_printer_set): Fuse into...
(symbol_list_code_props_set): this.
* src/symtab.h, src/symtab.c (default_tagged_destructor)
(default_tagged_printer): Fuse into...
(default_tagged_code_props): this.
(default_tagless_destructor, default_tagless_printer)
(default_tagless_code_props): Likewise.
(code_props_type_string): new.
(symbol_destructor_set, symbol_destructor_get, semantic_type_destructor_set)
(default_tagged_destructor_set, default_tagless_destructor_set)
(symbol_printer_set, symbol_printer_get, semantic_type_printer_set)
(default_tagged_printer_set, default_tagless_printer_set): Replace by...
(symbol_code_props_set, symbol_code_props_get, semantic_type_code_props_set)
(default_tagged_code_props_set, default_tagless_code_props_set): these.
* src/parse-gram.y (grammar_declaration): Adjust.
* src/output.c (CODE_PROP, grammar_declaration): Ditto.
* src/reader.c (symbol_should_be_used): Ditto.

12 years agotests: more uniformity.
Akim Demaille [Fri, 22 Jun 2012 10:08:02 +0000 (12:08 +0200)] 
tests: more uniformity.

* tests/local.at (AT_LEX_FORMALS, AT_LEX_ARGS, AT_LEX_PRE_FORMALS)
(AT_LEX_PRE_ARGS): Rename as...
(AT_YYLEX_FORMALS, AT_YYLEX_ARGS, AT_YYLEX_PRE_FORMALS)
(AT_YYLEX_PRE_ARGS): these, for consistency.
(AT_API_PREFIX): Take %name-prefix into account.
(AT_YYLEX_PROTOTYPE): New.
Use it.
* tests/actions.at, tests/calc.at, tests/cxx-type.at: Adjust to
use them.

12 years agotests: handle locations in a more generic way.
Akim Demaille [Fri, 22 Jun 2012 09:34:37 +0000 (11:34 +0200)] 
tests: handle locations in a more generic way.

* tests/local.at (AT_YYERROR_PROTOTYPE): New.
Use it.
* tests/cxx-type.at: Extensive revamp to use a more traditional
quotation scheme, and to use the generic yyerror implementation.
Prefer Autotest macros to CPP macros.
* tests/java.at: .

12 years agotests: handle locations in the generic yyerror functions.
Akim Demaille [Fri, 22 Jun 2012 08:20:28 +0000 (10:20 +0200)] 
tests: handle locations in the generic yyerror functions.

* tests/local.at (AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE)
(AT_YYERROR_DEFINE): Handle locations for C and C++.
* tests/calc.at: Use it for C++ (as C has extra arguments which
are not yet handled by AT_BISON_OPTION_PUSHDEFS).
* tests/actions.at: Adjust.

12 years agotests: fix AT_CHECK_CALC.
Akim Demaille [Fri, 22 Jun 2012 07:41:36 +0000 (09:41 +0200)] 
tests: fix AT_CHECK_CALC.

* tests/calc.at (AT_CHECK_CALC): Contrary to its documentation,
the test was skipped if given a second argument.
Unused feature, remove it.

12 years agotests: improve infrastructure
Akim Demaille [Thu, 21 Jun 2012 21:05:05 +0000 (23:05 +0200)] 
tests: improve infrastructure

* tests/local.at (AT_LANG): Use c++ instead of cxx for C++.
Adjust dependencies.
(AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE): Issue nothing
for C++/Java.
(AT_YYERROR_DEFINE): Use m4_case.
(AT_JAVA_COMPILE): Use AT_SKIP_IF.

12 years agotests: factor.
Akim Demaille [Thu, 21 Jun 2012 16:26:44 +0000 (18:26 +0200)] 
tests: factor.

* tests/glr-regression.at, tests/output.at, tests/push.at,
* tests/regression.at, tests/torture.at, tests/actions.at:
Use AT_YYLEX_* and AT_YYERROR_*.

12 years agoskeletons: minor style changes
Akim Demaille [Sun, 17 Jun 2012 10:12:52 +0000 (12:12 +0200)] 
skeletons: minor style changes

* data/glr.c, data/yacc.c: here.

12 years agotests: AT_LANG.
Akim Demaille [Sun, 17 Jun 2012 18:39:17 +0000 (20:39 +0200)] 
tests: AT_LANG.

* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
Define/undefine AT_LANGE
(AT_LANG_COMPILE): New.
(AT_FULL_COMPILE): Use AT_LANG.

12 years agosymtab: refactoring
Victor Santet [Wed, 20 Jun 2012 08:19:04 +0000 (10:19 +0200)] 
symtab: refactoring

Prepares forthcoming changes.

* src/symtab.c (symbols_do): Accept the hash table and the sorted
list as arguments. Adjust dependencies.

12 years agomaint: address syntax-check issues.
Akim Demaille [Thu, 21 Jun 2012 14:01:21 +0000 (16:01 +0200)] 
maint: address syntax-check issues.

* examples/calc++/local.mk: Space changes.
* src/files.c: Avoid unmarked_diagnostics.
* src/output.c: Remove useless include.

12 years agoc skeletons: factor the declaration of yylloc and yylval.
Akim Demaille [Sun, 17 Jun 2012 10:10:44 +0000 (12:10 +0200)] 
c skeletons: factor the declaration of yylloc and yylval.

There is one difference: now, even without --defines, we generate
extern declarations for these variables.  The factoring is worth it.
* data/c.m4 (b4_declare_yylstype): Declare them.
* data/glr.c, data/yacc.c: Adjust.

12 years agonews: condemn YYPARSE_PARAM and YYLEX_PARAM.
Akim Demaille [Sun, 17 Jun 2012 08:54:15 +0000 (10:54 +0200)] 
news: condemn YYPARSE_PARAM and YYLEX_PARAM.

* NEWS: here.
(Bison 1.875): Add %parse-param and %lex-param.
* doc/bison.texinfo: Spello.

12 years agofix warnings for useless %printer/%destructor
Akim Demaille [Wed, 20 Jun 2012 10:33:34 +0000 (12:33 +0200)] 
fix warnings for useless %printer/%destructor

The previous commit, which turns into a warning what used to be an
error:

    %printer {} foo;
    %%
    exp: '0';

has two shortcomings: the warning is way too long (foo is reported
to be useless later), and besides, it also turns into a warning much
more serious errors:

   %printer {} foo;
   %%
   exp: foo;

Reduce the amount to warnings in the first case, restore the error in
the second.

* src/symtab.h (status): Add a new inital state: undeclared.
* src/symtab.c (symbol_new): Initialize to undeclared.
(symbol_class_set): Simplify the logic of the code that neutralize
the "redeclared" warning after the "redefined" one.
(symbol_check_defined): "undeclared" is also an error.
* src/reader.c (grammar_current_rule_symbol_append): Symbols appearing
in a rule are "needed".
* src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
An unknown symbol appearing in a %printer/%destructor is "used".
* src/reduce.c (nonterminals_reduce): Do not report as "useless" symbols
that are not used (e.g., those that for instance appeared only in a
%printer).
* tests/input.at (Undeclared symbols used for a printer or destructor):
Improve the cover the cases described above.

12 years agogitignore: test-driver.
Akim Demaille [Wed, 20 Jun 2012 09:19:26 +0000 (11:19 +0200)] 
gitignore: test-driver.

12 years agomaint: style changes.
Akim Demaille [Wed, 20 Jun 2012 09:16:47 +0000 (11:16 +0200)] 
maint: style changes.

* src/reduce.c (reduce_grammar_tables): Define variables with their
initial value.

12 years agonews: fixes.
Akim Demaille [Wed, 20 Jun 2012 08:33:16 +0000 (10:33 +0200)] 
news: fixes.

* NEWS: Fix spelling.

12 years agowarnings: used but undeclared symbols are warnings
Victor Santet [Tue, 19 Jun 2012 14:14:55 +0000 (16:14 +0200)] 
warnings: used but undeclared symbols are warnings

We used to raise an error if a symbol appears only in a %printer or
%destructor.  Make it a warning.

* src/symtab.h (status): New enum.
(symbol): Replace the binary "declared" with the three-state "status".
Adjust dependencies.
* src/symtab.c (symbol_check_defined): Needed symbols are an error,
whereas "used" are simply warnings.
* src/symlist.c (symbol_list_destructor_set, symbol_list_printer): Set
symbol status to 'used' when associated to destructors or printers.
* input.at (Undeclared symbols used for a printer or destructor): New.

12 years agomaint: regen.
Akim Demaille [Wed, 20 Jun 2012 08:02:11 +0000 (10:02 +0200)] 
maint: regen.

* Makefile.am (regen): New target.
(cherry picked from commit 71bff31edd4ddbfe3c350933652bb0e3a4a7f3e2)

12 years agoregen.
Akim Demaille [Wed, 20 Jun 2012 08:13:16 +0000 (10:13 +0200)] 
regen.

12 years agomaint: regen.
Akim Demaille [Wed, 20 Jun 2012 08:02:11 +0000 (10:02 +0200)] 
maint: regen.

* Makefile.am (regen): New target.

12 years agotests: enhance AT_YYERROR_DEFINE.
Akim Demaille [Tue, 19 Jun 2012 15:43:11 +0000 (17:43 +0200)] 
tests: enhance AT_YYERROR_DEFINE.

* tests/local.at: Handle the fact that locations are no longer
needed with lalr1.cc.

12 years agoMerge remote-tracking branch 'origin/maint'
Akim Demaille [Tue, 19 Jun 2012 15:35:53 +0000 (17:35 +0200)] 
Merge remote-tracking branch 'origin/maint'

* origin/maint:
  maint: formatting changes.
  tests: support api.prefix.
  tests: pacify font-lock-mode.
  tests: remove test covered elsewhere.
  tests: factor the declaration/definition of yyerror and yylex.
  regen.
  tests: portability issues.
  tests: call the parser from another compilation unit.
  glr.c, yacc.c: declare yydebug in the header.
  skeletons: use header guards.
  tests: improve AT_FULL_COMPILE.
  tests: reorder.
  tests: strengthen the test on generated headers inclusion
  yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it.
  yacc.c: factor.

Conflicts:
NEWS
data/glr.c
data/yacc.c
src/parse-gram.c
src/parse-gram.h
tests/conflicts.at
tests/regression.at

12 years agomaint: formatting changes.
Akim Demaille [Tue, 19 Jun 2012 15:01:35 +0000 (17:01 +0200)] 
maint: formatting changes.

* NEWS: Fix indentation of code snippets.
Untabify.

12 years agotests: support api.prefix.
Akim Demaille [Sun, 17 Jun 2012 16:52:59 +0000 (18:52 +0200)] 
tests: support api.prefix.

* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
Define AT_API_PREFIX.
(AT_YYERROR_DEFINE, AT_YYERROR_DECLARE_EXTERN, AT_YYLEX_DECLARE_EXTERN)
(AT_YYLEX_DEFINE): Use it.
* tests/input.at, tests/regression.at, tests/torture.at: Add
AT_BISON_OPTION_PUSHDEFS/POPDEFS.

12 years agotests: pacify font-lock-mode.
Akim Demaille [Sun, 17 Jun 2012 16:04:19 +0000 (18:04 +0200)] 
tests: pacify font-lock-mode.

* tests/local.at: here.

12 years agotests: remove test covered elsewhere.
Akim Demaille [Sun, 17 Jun 2012 16:03:24 +0000 (18:03 +0200)] 
tests: remove test covered elsewhere.

* tests/headers.at (%union and --defines): Remove, pretty useless and
insignificant.

12 years agotests: factor the declaration/definition of yyerror and yylex.
Akim Demaille [Sun, 17 Jun 2012 16:01:14 +0000 (18:01 +0200)] 
tests: factor the declaration/definition of yyerror and yylex.

* tests/local.at (AT_YYERROR_DECLARE, AT_YYERROR_DECLARE_EXTERN)
(AT_YYERROR_DEFINE, AT_YYLEX_DECLARE, AT_YYLEX_DECLARE_EXTERN)
(AT_YYLEX_DEFINE): New.
Must be used inside AT_BISON_OPTION_PUSHDEFS/POPDEFS pair.
* tests/actions.at, tests/conflicts.at, tests/glr-regression.at,
* tests/headers.at, tests/input.at, tests/named-refs.at,
* tests/regression.at, tests/skeletons.at, tests/synclines.at,
* tests/torture.at: Use them.

12 years agoregen.
Akim Demaille [Sun, 17 Jun 2012 09:17:46 +0000 (11:17 +0200)] 
regen.

12 years agotests: portability issues.
Akim Demaille [Sun, 17 Jun 2012 09:19:51 +0000 (11:19 +0200)] 
tests: portability issues.

* tests/calc.at (AT_CALC_MAIN): Missing include reported by Hydra.

12 years agotests: call the parser from another compilation unit.
Akim Demaille [Mon, 11 Jun 2012 14:47:46 +0000 (16:47 +0200)] 
tests: call the parser from another compilation unit.

In order to improve the testing of %defines, which exports the
interface of the generated parser, change the calc.at tests so that
when %defines is passed, main will be in another compilation unit.  It
loads the generated header.

* tests/calc.at (AT_CALC_MAIN): New.
Includes the definition of the global variables.
Therefore, now declare them from the %requires section of the parser.
Adjust to yydebug and yyparse being renamed by %name-prefix.

12 years agoglr.c, yacc.c: declare yydebug in the header.
Akim Demaille [Fri, 15 Jun 2012 13:19:16 +0000 (15:19 +0200)] 
glr.c, yacc.c: declare yydebug in the header.

* data/c.m4 (b4_declare_yydebug): New.
* data/glr.c, data/yacc.c (b4_shared_declarations): Use it.
Remove the corresponding code from the parser body.
* NEWS: Doc this.

12 years agoskeletons: use header guards.
Akim Demaille [Fri, 15 Jun 2012 12:21:16 +0000 (14:21 +0200)] 
skeletons: use header guards.

* data/glr.c, data/glr.cc, data/yacc.c: here.
* NEWS: Document it.

12 years agotests: improve AT_FULL_COMPILE.
Akim Demaille [Mon, 11 Jun 2012 14:45:45 +0000 (16:45 +0200)] 
tests: improve AT_FULL_COMPILE.

* tests/local.at: Accept a third argument.
Simplify quotation pattern.
Calls for better refactoring, but will suffice for a while.

12 years agotests: reorder.
Akim Demaille [Mon, 11 Jun 2012 14:43:42 +0000 (16:43 +0200)] 
tests: reorder.

* tests/calc.at (power): Move its definition, as a preparation for
forthcoming changes.
And space changes.

12 years agotests: strengthen the test on generated headers inclusion
Akim Demaille [Tue, 12 Jun 2012 16:14:49 +0000 (18:14 +0200)] 
tests: strengthen the test on generated headers inclusion

* tests/headers.at (AT_TEST_CPP_GUARD_H): Accept Bison directives.
(Invalid CPP headers): Check glr.

12 years agoyacc.c: instead of duplicating y.tab.h inside y.tac.c, include it.
Akim Demaille [Tue, 12 Jun 2012 14:15:14 +0000 (16:15 +0200)] 
yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it.

This is already what glr.c and lalr1.cc do.

* data/yacc.c: here.

12 years agomaint: xfdopen, and scope reduction.
Akim Demaille [Fri, 15 Jun 2012 09:56:13 +0000 (11:56 +0200)] 
maint: xfdopen, and scope reduction.

* src/files.h, src/files.c (xfdopen): New.
* src/output.c (output_skeleton): Use it.
Reduce the scope of argv.

12 years agomaint: space changes
Akim Demaille [Fri, 25 May 2012 12:36:32 +0000 (14:36 +0200)] 
maint: space changes

* configure.ac, src/complain.c: space changes.

12 years agoyacc.c: factor.
Akim Demaille [Tue, 12 Jun 2012 12:40:18 +0000 (14:40 +0200)] 
yacc.c: factor.

yacc.c used to include two almost identical sections: one for the *.h
file, and another for the *.c file.  The main difference is that in
the *.c file we used the yy* names (as %name-prefix is handled by
"#define yy* <prefix>*" before), while the *.hh used <prefix>* names.
Keep only the later.  If this is troublesome, b4_shared_declarations
can easily take the desired prefix as argument.

* data/yacc.c (b4_shared_declarations): New.
Use it to factor duplicated declarations.

12 years agocosmetics: prettify names for compiled object for bison
Stefano Lattarini [Fri, 8 Jun 2012 22:02:57 +0000 (00:02 +0200)] 
cosmetics: prettify names for compiled object for bison

* src/local.mk (src_bison_SHORTNAME): Define to "bison".

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agolalr1.cc: spello.
Akim Demaille [Wed, 13 Jun 2012 19:12:15 +0000 (21:12 +0200)] 
lalr1.cc: spello.

* data/lalr1.cc: Reported by Gilles Espinasse.

12 years agoMerge remote-tracking branch 'origin/maint'
Akim Demaille [Wed, 13 Jun 2012 19:03:29 +0000 (21:03 +0200)] 
Merge remote-tracking branch 'origin/maint'

* origin/maint:
  skeletons: factor yacc.c and glr.c.
  glr.c: minor refactoring.
  tests: remove all the -On flags.
  maint: fix spello.
  maint: improve release procedure instructions.
  gnulib: update readme-release.
  maint: cfg.mk: manual title.
  maint: cfg.mk: simplify
  maint: post-release administrivia

Conflicts:
NEWS
bootstrap.conf

12 years agoskeletons: factor yacc.c and glr.c.
Akim Demaille [Tue, 12 Jun 2012 08:55:18 +0000 (10:55 +0200)] 
skeletons: factor yacc.c and glr.c.

yacc.c and glr.c share common declarations.  Their YYLTYPE are exactly
equal, and their YYSTYPE are sufficiently alike to be fused (its
declaration was protected by YYSTYPE_IS_DECLARED in yacc.c, but not in
glr.c).  Besides, yacc.c duplicated the definitions of YYLTYPE and
YYSTYPE (*.h/*.c).

* data/c.m4 (b4_declare_yylstype): New.
* data/yacc.c, data/glr.c: Use it.

12 years agoglr.c: minor refactoring.
Akim Demaille [Tue, 12 Jun 2012 07:27:12 +0000 (09:27 +0200)] 
glr.c: minor refactoring.

* data/glr.c (b4_shared_declarations): Move from the generated file
section, to the M4 prologue.

12 years agotests: remove all the -On flags.
Akim Demaille [Fri, 8 Jun 2012 07:02:09 +0000 (09:02 +0200)] 
tests: remove all the -On flags.

* tests/atlocal.in: Here.
Reported by Gilles Espinasse.

12 years agomaint: fix spello.
Akim Demaille [Fri, 8 Jun 2012 07:00:58 +0000 (09:00 +0200)] 
maint: fix spello.

* README-hacking: Here.
* THANKS: Reported by Gilles Espinasse.

12 years agomaint: improve release procedure instructions.
Akim Demaille [Thu, 7 Jun 2012 12:41:56 +0000 (14:41 +0200)] 
maint: improve release procedure instructions.

* gnulib: Update, in particular (README-release).
* bootstrap.conf: don't require gendocs, provided by gnu-web-doc-update,
provided by readme-release.
* README-hacking: Update accordingly.

12 years agognulib: update readme-release.
Akim Demaille [Tue, 5 Jun 2012 09:07:50 +0000 (11:07 +0200)] 
gnulib: update readme-release.

* gnulib (readme-release): Now includes the modules it promotes.
* bootstrap.conf: Simplify accordingly.

12 years agomaint: cfg.mk: manual title.
Akim Demaille [Tue, 5 Jun 2012 09:09:07 +0000 (11:09 +0200)] 
maint: cfg.mk: manual title.

* cfg.mk (manuel_title): New.

12 years agomaint: cfg.mk: simplify
Akim Demaille [Tue, 5 Jun 2012 09:08:41 +0000 (11:08 +0200)] 
maint: cfg.mk: simplify

* cfg.mk: Remove bits provided by maint.mk.

12 years agomaint: post-release administrivia
Akim Demaille [Tue, 5 Jun 2012 08:16:02 +0000 (10:16 +0200)] 
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

12 years agomaint: an envvar equal to "00" is 0.
Akim Demaille [Tue, 5 Jun 2012 16:02:49 +0000 (18:02 +0200)] 
maint: an envvar equal to "00" is 0.

* src/output.c (prepare): here.
Reported by Paul Eggert.

12 years agomaint: don't use mbsr?chr.
Akim Demaille [Tue, 5 Jun 2012 15:46:58 +0000 (17:46 +0200)] 
maint: don't use mbsr?chr.

Basically, revert ba60c39547a445dee3e07920931b4d7a81843868's move to
mbs* functions, which was prompted by -DGNULIB_POSIXCHECK.  See
<http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00052.html>
and following.

* bootstrap.conf: No longer ask for them.
* src/files.c, src/getargs.c, src/location.c,
* src/parse-gram.c, src/parse-gram.y, src/scan-gram.l,
* src/symtab.c: s/mbs(r?chr)/str$1/g.

12 years agomaint: use xconcat-filename.
Akim Demaille [Tue, 5 Jun 2012 15:26:55 +0000 (17:26 +0200)] 
maint: use xconcat-filename.

* bootstrap.conf (gnulib_modules): Request it.
* src/output.h, src/output.c (compute_pkgdatadir): Rename as...
(pkgdatadir): this.
Adjust dependencies.
* src/output.c (output_skeleton): Reduce the scope of "in".
Use xconcatenated_filename to simplify the construction of the
qualified paths to m4sugar.m4, bison.m4, and the selected skeleton.
There are a few minor differences: the new code uses strchr instead of
mbschr (but this was not really justified), and the new code does not
garantee a single slash even if $BISON_PKGDATADIR ends with several
(which was considered more accurate).  See the discussion at
<http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00052.html>.

12 years agomaint: minor simplification
Akim Demaille [Tue, 5 Jun 2012 15:26:35 +0000 (17:26 +0200)] 
maint: minor simplification

* src/output.c (prepare): Assign use_push_for_pull_flag's value at its
declaration.

12 years agoMerge remote-tracking branch 'origin/maint'
Akim Demaille [Tue, 5 Jun 2012 12:06:08 +0000 (14:06 +0200)] 
Merge remote-tracking branch 'origin/maint'

* origin/maint:
  version 2.5.1
  NEWS: prepare for 2.5.1.
  maint: update release procedure
  maint: fix comment typos
  maint: post-release administrivia

Conflicts:
NEWS

12 years agoversion 2.5.1 v2.5.1
Akim Demaille [Tue, 5 Jun 2012 08:03:25 +0000 (10:03 +0200)] 
version 2.5.1

* NEWS: Record release date.

12 years agoNEWS: prepare for 2.5.1.
Akim Demaille [Tue, 5 Jun 2012 07:50:16 +0000 (09:50 +0200)] 
NEWS: prepare for 2.5.1.

* NEWS: Be compliant with do-release-commit-and-tag.

12 years agomaint: update release procedure
Akim Demaille [Wed, 23 May 2012 13:17:35 +0000 (15:17 +0200)] 
maint: update release procedure

* bootstrap.conf: Request do-release-commit-and-tag and readme-release.
* README-hacking: Adjust.

12 years agomaint: fix comment typos
Jim Meyering [Tue, 5 Jun 2012 07:02:36 +0000 (09:02 +0200)] 
maint: fix comment typos

Using http://github.com/lyda/misspell-check, massage its
output into sed commands to perform the suggested changes.
Initially, I filtered out the THRU->Through changes, because
that failed to retain capitalization in the grammar token.
Instead, do this manually, beforehand:

sed -i s/THRU/THROUGH/ tests/existing.at
git ls-files|misspellings -f -|perl -nl \
  -e '/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/ or next;' \
  -e '($file,$n,$l,$r)=($1,$2,$3,$4); $q="'\''"; $r=~s/$q/$q\\$q$q/g;'\
  -e 'print "sed -i $q${n}s!$l!$r!$q $file"'|bash

12 years agobuild: regen.
Akim Demaille [Thu, 24 May 2012 11:55:57 +0000 (13:55 +0200)] 
build: regen.

12 years agoMerge tag 'v2.5.1_rc2'
Akim Demaille [Thu, 24 May 2012 11:37:28 +0000 (13:37 +0200)] 
Merge tag 'v2.5.1_rc2'

Bison 2.5.1_rc2.

* tag 'v2.5.1_rc2': (34 commits)
  Bison 2.5.1_rc2.
  doc: fixes.
  build: fix ChangeLog generation.
  c++: compute the header guards.
  skeletons: remove support for unused directive.
  lalr1.cc: improve Doxygen documentation.
  lalr1.cc: extract stack.hh.
  news: convert to double quotes.
  space changes.
  build: do not prototype flex-generated functions.
  build: fix ChangeLog generation.
  Bison 2.5.1_rc1.
  tests: save/restore Autotest special files when checking XML support.
  tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES.
  tests: honor TESTSUITEFLAGS in all the check targets.
  build: do not enable c++ warnings on 0 when nullptr is not supported.
  maint: update gnulib.
  build: config.in.h.
  build: move silent rules.
  glr.c: reduce variable scopes.
  maint: maintainer-release-check.
  maint: shush a syntax-check.
  maint: prefer "commit message" to "log entry".
  command line: fix minor leaks.
  maint: we no longer maintain the ChangeLog.
  maint: fix the generation of the synclines for bison's parser.
  maint: regen.
  maint: import the xmemdup0 gnulib module.
  maint: remove left-over gnulib modules.
  maint: ignore files imported by autopoint.
  build: AC_PROG_LEX: use more readable variable names.
  maint: regen src/parse-gram.[ch]
  maint: simplify parse-gram.y
  maint: s/strncpy/memcpy/, when equivalent

Conflicts:
Makefile.am
NEWS
data/glr.c
data/lalr1.cc
data/stack.hh
examples/rpcalc/local.mk
src/flex-scanner.h
src/getargs.c
src/output.c
src/parse-gram.c
src/parse-gram.h
src/parse-gram.y
tests/Makefile.am
tests/bison.in

12 years agomaint: post-release administrivia
Akim Demaille [Wed, 23 May 2012 12:41:37 +0000 (14:41 +0200)] 
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

12 years agoBison 2.5.1_rc2. v2.5.1_rc2
Akim Demaille [Tue, 22 May 2012 20:47:41 +0000 (22:47 +0200)] 
Bison 2.5.1_rc2.

* NEWS: Update.

12 years agodoc: fixes.
Akim Demaille [Tue, 22 May 2012 15:29:38 +0000 (17:29 +0200)] 
doc: fixes.

* doc/bison.texinfo: Fix errors spotted by syntax-check.

12 years agobuild: fix ChangeLog generation.
Akim Demaille [Tue, 22 May 2012 14:47:08 +0000 (16:47 +0200)] 
build: fix ChangeLog generation.

* gnulib: Update to get newest gitlog-to-changelog.
* bootstrap: Update.
* Makefile.am (gen-ChangeLog): Fix for Bison's git log style.

12 years agoc++: compute the header guards.
Akim Demaille [Mon, 21 May 2012 12:21:51 +0000 (14:21 +0200)] 
c++: compute the header guards.

This is a frequent request.  Recently pointed out by Wei Song,
<http://lists.gnu.org/archive/html/help-bison/2012-05/msg00002.html>.

* data/c.m4 (b4_tocpp, b4_cpp_guard, b4_cpp_guard_open)
(b4_cpp_guard_close): New.
* data/lalr1.cc, data/location.cc, data/stack.hh: Use them.
* TODO (Header Guards): Move to...
* NEWS: here.
Formatting changes.

12 years agoskeletons: remove support for unused directive.
Akim Demaille [Mon, 21 May 2012 11:12:34 +0000 (13:12 +0200)] 
skeletons: remove support for unused directive.

* src/scan-skel.l (@dir_prefix@): Remove support, has never been
used, not even in the commit that introduced it,
2b81e969ea04c1a6502928ba7e847ec8ff7dcb2f.

12 years agolalr1.cc: improve Doxygen documentation.
Akim Demaille [Mon, 21 May 2012 09:40:42 +0000 (11:40 +0200)] 
lalr1.cc: improve Doxygen documentation.

* data/location.cc: Qualify file names with directory name.

12 years agolalr1.cc: extract stack.hh.
Akim Demaille [Mon, 21 May 2012 09:53:03 +0000 (11:53 +0200)] 
lalr1.cc: extract stack.hh.

See commit 51bacae6b58fd5c6cce861f00440dc917384625e.
* data/stack.hh: New, extracted from...
* data/lalr1.cc: here.
* data/Makefile.am: Adjust.

12 years agonews: convert to double quotes.
Akim Demaille [Mon, 21 May 2012 13:52:17 +0000 (15:52 +0200)] 
news: convert to double quotes.

* NEWS: Convert from `quoted' to "quoted".
Reported by Stefano Lattarini.
http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00039.html

12 years agospace changes.
Akim Demaille [Tue, 15 May 2012 15:15:59 +0000 (17:15 +0200)] 
space changes.

* src/flex-scanner.h: Indent nested cpp directives.

12 years agobuild: do not prototype flex-generated functions.
Akim Demaille [Tue, 15 May 2012 09:22:34 +0000 (11:22 +0200)] 
build: do not prototype flex-generated functions.

Some versions of Flex, possibly modified by the distribution package
maintainers, have incompatible signatures.  Since newer versions of
Flex prototype their functions, avoid the conflicts in that case.
Reported by Stefano Lattarini.
<http://lists.gnu.org/archive/html/bug-bison/2012-05/msg00012.html>.

* src/flex-scanner.h (FLEX_VERSION_GT): New.
Use it to issue prototypes for flex-generated functions only for
versions up to 2.5.31, in accordance with the comment.
See commit dc9701e848f27ae64b6ddcf809580998667d60f2.
Use it to define yylex_destroy when needed.

12 years agobuild: fix ChangeLog generation.
Akim Demaille [Tue, 15 May 2012 08:03:48 +0000 (10:03 +0200)] 
build: fix ChangeLog generation.

* Makefile.am (gen-ChangeLog): Fix for VPATH builds.

12 years agoBison 2.5.1_rc1.
Akim Demaille [Mon, 14 May 2012 12:17:20 +0000 (14:17 +0200)] 
Bison 2.5.1_rc1.

* NEWS: Update.
* src/parse-gram.c, src/parse-gram.h: Regen.

12 years agotests: save/restore Autotest special files when checking XML support.
Akim Demaille [Fri, 11 May 2012 15:11:09 +0000 (17:11 +0200)] 
tests: save/restore Autotest special files when checking XML support.

Currently the test 248, "parse-gram.y: LALR = IELR", fails
BISON_TEST_XML is set.

* tests/local.at (AT_BISON_CHECK_XML): Belt: Save/restore files.
* tests/regression.at (parse-gram.y: LALR = IELR): Suspenders: Don't
rely on expout.
Each one of these changes suffices.

12 years agotests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES.
Akim Demaille [Fri, 11 May 2012 14:55:30 +0000 (16:55 +0200)] 
tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES.

Some of our macros play with expout and other Autotest special files,
which may break their callers (e.g., currently TESTSUITEFLAGS='248
BISON_TEST_XML=1' fails).

There is already some support for this.  Expand it to be ready to use
it elsewhere.

* tests/local.at (AT_RESTORE_SPECIAL_FILES, AT_SAVE_SPECIAL_FILES)
(at_save_special_files, at_restore_special_files): New.
(AT_BISON_CHECK_NO_XML): Use them.

12 years agotests: honor TESTSUITEFLAGS in all the check targets.
Akim Demaille [Fri, 11 May 2012 12:59:29 +0000 (14:59 +0200)] 
tests: honor TESTSUITEFLAGS in all the check targets.

* tests/Makefile.am (installcheck-local): Simplify.
(maintainer-check-posix, maintainer-check-valgrind): Honor
$(TESTSUITEFLAGS).

12 years agobuild: do not enable c++ warnings on 0 when nullptr is not supported.
Akim Demaille [Wed, 9 May 2012 09:20:18 +0000 (11:20 +0200)] 
build: do not enable c++ warnings on 0 when nullptr is not supported.

* configure.ac (WARN_CXXFLAGS): Enable -Wzero-as-null-pointer-constant
only when nullptr is supported..

12 years agomaint: update gnulib.
Akim Demaille [Wed, 9 May 2012 08:13:58 +0000 (10:13 +0200)] 
maint: update gnulib.

* bootstrap, gnulib: Update.

12 years agobuild: config.in.h.
Akim Demaille [Wed, 9 May 2012 09:00:32 +0000 (11:00 +0200)] 
build: config.in.h.

Historically we used config.hin (where everybody else used
config.h.in) to please DOS.  Now that we use gnulib, there are already
tons of files with several dots, especially *.in.h.

* configure.ac: Rename config.hin as config.in.h.

12 years agobuild: move silent rules.
Akim Demaille [Wed, 9 May 2012 08:14:25 +0000 (10:14 +0200)] 
build: move silent rules.

* tests/Makefile.am: In the generation of the test suite.

12 years agoglr.c: reduce variable scopes.
Akim Demaille [Sun, 9 Jan 2011 10:06:23 +0000 (11:06 +0100)] 
glr.c: reduce variable scopes.

* data/glr.c: Where appropriate, fuse variable declarations followed
by assignments by variable declarations with a value.
Where appropriate, introduce new scopes to limit variable spans.