Akim Demaille [Mon, 2 Jan 2006 15:28:03 +0000 (15:28 +0000)]
* data/glr.c: Reformat whitespace with tabs.
(b4_lpure_formals): Remove this unused m4 macro.
* tests/cxx-type.at: Reformat whitespace with tabs.
(_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
since it's a member. Rename type to isNterm for clarity.
Akim Demaille [Thu, 29 Dec 2005 11:06:33 +0000 (11:06 +0000)]
Let glr.cc catch up with symbol_value_print.
* data/glr.cc (b4_yysymprint_generate): Replace by...
(b4_yy_symbol_print_generate): this.
(yy_symbol_print, yy_symbol_value_print): Declare them.
Paul Eggert [Wed, 28 Dec 2005 08:51:34 +0000 (08:51 +0000)]
Update copyright.
Paul Eggert [Wed, 28 Dec 2005 08:45:47 +0000 (08:45 +0000)]
* src/location.h (boundary): Note that a line or column equal
to INT_MAX indicates an overflow.
* src/scan-gram.l: Include verify.h. Don't include get-errno.h.
(rule_length_overflow, increment_rule_length, add_column_width):
New functions.
(<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
(<SC_BRACED_CODE>"}"):
Use increment_rule_length rather than incrementing it by hand.
(adjust_location, handle_syncline): Diagnose overflow.
(handle_action_dollar, handle_action_at):
Fix bug with monstrosities like $-
2147483648.
Remove now-unnecessary checks.
(scan_integer): Verify assumptions and remove now-unnecessary checks.
(convert_ucn_to_byte): Verify assumptions.
(handle_syncline): New arg LOC. All callers changed.
Don't store through a value derived from char const * pointer.
Paul Eggert [Wed, 28 Dec 2005 08:31:22 +0000 (08:31 +0000)]
(grammar_rule_check): Rewrite slightly to avoid GCC warnings.
Paul Eggert [Tue, 27 Dec 2005 19:54:41 +0000 (19:54 +0000)]
* src/reader.c (grammar_midrule_action, grammar_symbol_append):
Remove unnecessary forward static decls.
Akim Demaille [Tue, 27 Dec 2005 17:50:00 +0000 (17:50 +0000)]
* src/reader.c (grammar_current_rule_check): Also check that $$
is used.
Take the rule to check as argument, hence rename as...
(grammar_rule_check): this.
* src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
Rename as...
(grammar_rule_begin, grammar_rule_end): these, for consistency.
(grammar_midrule_action, grammar_symbol_append): Now static.
* tests/torture.at (input): Don't rely on the default action
being always performed.
* tests/calc.at: "Set" $$ even when the action is "cut" with
YYERROR or other.
* tests/actions.at (Exotic Dollars): Instead of using unused
values, check that the warning is issued.
Akim Demaille [Tue, 27 Dec 2005 15:42:44 +0000 (15:42 +0000)]
Some wrapping.
Paul Eggert [Fri, 23 Dec 2005 00:24:39 +0000 (00:24 +0000)]
Regenerate.
Paul Eggert [Fri, 23 Dec 2005 00:13:11 +0000 (00:13 +0000)]
* NEWS: Improve wording for unused-value warnings.
Akim Demaille [Thu, 22 Dec 2005 13:01:50 +0000 (13:01 +0000)]
* data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
(b4_yysymprint_generate): Rename as...
(b4_yy_symbol_print_generate): this.
Generate yy_symbol_print instead of yysymprint.
Generate also yy_symbol_value_print, and use it.
Akim Demaille [Thu, 22 Dec 2005 11:40:05 +0000 (11:40 +0000)]
Warn about unused values.
* src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
a `used' member.
(symbol_list_n_get, symbol_list_n_used_set): New.
(symbol_list_n_type_name_get): Use symbol_list_n_get.
* src/scan-gram.l (handle_action_dollar): Flag used symbols.
* src/reader.c (grammar_current_rule_check): Check that values are
used.
* src/symtab.c (symbol_print): Accept 0.
* tests/existing.at: Remove the type information.
Empty the actions.
Remove useless actions (beware of mid-rule actions: perl -000
-pi -e 's/s*{}(?=[ns]*[|;])//g').
* tests/actions.at (Exotic Dollars): Use unused values.
* tests/calc.at: Likewise.
* tests/glr-regression.at (No users destructors if stack 0 deleted):
Likewise.
* src/gram.c (rule_useful_p, rule_never_reduced_p): Use
rule_useful_p.
Paul Eggert [Thu, 22 Dec 2005 04:38:26 +0000 (04:38 +0000)]
Undo 2005-12-01 tentative license wording change.
Paul Eggert [Thu, 22 Dec 2005 00:24:40 +0000 (00:24 +0000)]
* NEWS: Reword %destructor vs YYABORT etc.
* data/glr.c: Use American spacing, for consistency.
* data/glr.cc: Likewise.
* data/lalr1.cc: Likewise.
* data/yacc.c: Likewise.
* data/yacc.c: Reformat comments slightly.
* doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
for consistency. Fix some spelling errors and reword recently-included
text slightly.
* tests/cxx-type.at: Cast results of malloc, for C++.
Akim Demaille [Wed, 21 Dec 2005 15:45:17 +0000 (15:45 +0000)]
* tests/cxx-type.at: Construct a tree, count the parents of shared
nodes, and free each node once and only once. Previously, the memory
for semantic values was leaked instead.
Akim Demaille [Wed, 21 Dec 2005 15:33:13 +0000 (15:33 +0000)]
* data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
(yylval, yylloc): If pure, #define to yystackp->yyval and
yystackp->yyloc similar to yychar and yynerrs.
(yyparse): If pure, remove local yylval and yylloc. Add local
yystackp to accommodate pure definitions of yylval and yylloc.
(b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
yylvalp and yyllocp to &yylval and &yylloc.
(nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
namespace. Previously, nerrs and char were missing, but lval and lloc
weren't necessary.
(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
yylvalp and yyllocp parameters since, if pure, these are now always
accessible through yystackp. If not pure, they are still accessible
globally.
* data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
`if (YYID (N))' to pacify lint.
Akim Demaille [Wed, 21 Dec 2005 15:28:30 +0000 (15:28 +0000)]
YYACCEPT, YYERROR, and YYABORT, as user actions, should not
destroy the RHS symbols of a rule.
* data/yacc.c (yylen): Initialize to 0.
Keep its value to the number of items to possibly shift.
In particular, a regular successful parse that ends on YYFINAL by
a (internal) YYACCEPT must not have yylen != 0.
(yyerrorlab, yyreturn): Pop the RHS.
Reorder a bit to emphasize the `shifting' bits of code.
(YYPOPSTACK): Now accept a number of items to pop.
* data/lalr1.cc: Likewise.
* data/glr.c: Formatting changes.
Use goto instead of fall through.
* doc/bison.texinfo (Destructor Decl): Complete.
Akim Demaille [Wed, 21 Dec 2005 13:49:44 +0000 (13:49 +0000)]
Fix NEWS.
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:24:54 +0000 (00:24 +0000)]
* Makefile.am: DJGPP specific files added to EXTRA_DIST.
* djgpp/Makefile.maint: Fix PACKAGE variable computation.
* djgpp/config.bat: Replace every occurence of the file name
scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
* djgpp/config.sed: Replace every occurence of the file name
scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
* djgpp/djunpack.bat: DJGPP specific file.
* djgpp/fnchange.lst: DJGPP specific file.
* djgpp/README.in: Add new information about how to unpack the bison
source on MSDOS and other systems which have 8.3 file name restrictions
using djunpack.bat and fnchange.lst.
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:11:44 +0000 (00:11 +0000)]
DJGPP specific files added to EXTRA_DIST.
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:01:40 +0000 (00:01 +0000)]
Add new information about how to unpack the bison source on
MSDOS and other systems which have 8.3 file name restrictions
using djunpack.bat and fnchange.lst.
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:01:28 +0000 (00:01 +0000)]
Replace file name scan-gram-c.c with scangram-c.c and
scan-skel-c.c with /src/scanskel-c.c to conform with
the 8.3 file name restriction on MSDOS.
Juan Manuel Guerrero [Tue, 20 Dec 2005 23:59:50 +0000 (23:59 +0000)]
Fix PACKAGE variable computation.
Juan Manuel Guerrero [Tue, 20 Dec 2005 23:58:00 +0000 (23:58 +0000)]
DJGPP specific file.
Paul Eggert [Mon, 12 Dec 2005 21:04:39 +0000 (21:04 +0000)]
* data/glr.c: Reorder typedef declarations for structs to match order
of struct declarations.
Rename yystack everywhere to yystackp except in yyparse where it's not
a pointer.
(yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
consistency.
(yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
(yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
(yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
lint.
Paul Eggert [Mon, 12 Dec 2005 20:59:30 +0000 (20:59 +0000)]
(build_cvs_prefix): Remove; unused.
(CVS_PREFIX): Adjust to yesterday's Savannah reorganization
when getting gnulib.
Paul Eggert [Sat, 10 Dec 2005 00:25:27 +0000 (00:25 +0000)]
* tests/sets.at (Accept): Fix typos in regular expression used to
sed out the final state number.
Paul Eggert [Fri, 9 Dec 2005 23:53:57 +0000 (23:53 +0000)]
Regenerate.
Paul Eggert [Fri, 9 Dec 2005 23:53:14 +0000 (23:53 +0000)]
Work around flex portability bug.
Paul Eggert [Fri, 9 Dec 2005 23:51:26 +0000 (23:51 +0000)]
Work around portability problem on Solaris 10: flex-generated
files include <stdio.h> before <config.h>, which messes up
because the latter defines __EXTENSIONS__. Address the problem
by creating two new little files that include <config.h> first,
then include the flex-generated files. Rewrite everyone else
to include <config.h> first, as well.
* lib/timevar.c: Always include "config.h".
* src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
(EXTRA_bison_SOURCES): New macro.
* src/scan-gram-c.c, src/scan-skel-c.c: New files.
* src/system.h: Don't include config.h.
* src/LR0.c: Include <config.h> first.
* src/assoc.c: Likewise.
* src/closure.c: Likewise.
* src/complain.c: Likewise.
* src/conflicts.c: Likewise.
* src/derives.c: Likewise.
* src/files.c: Likewise.
* src/getargs.c: Likewise.
* src/gram.c: Likewise.
* src/lalr.c: Likewise.
* src/location.c: Likewise.
* src/main.c: Likewise.
* src/muscle_tab.c: Likewise.
* src/nullable.c: Likewise.
* src/output.c: Likewise.
* src/parse-gram.y: Likewise.
* src/print.c: Likewise.
* src/print_graph.c: Likewise.
* src/reader.c: Likewise.
* src/reduce.c: Likewise.
* src/relation.c: Likewise.
* src/state.c: Likewise.
* src/symlist.c: Likewise.
* src/symtab.c: Likewise.
* src/tables.c: Likewise.
* src/uniqstr.c: Likewise.
* src/vcg.c: Likewise.
Paul Eggert [Fri, 9 Dec 2005 22:44:37 +0000 (22:44 +0000)]
Regenerate.
Paul Eggert [Fri, 9 Dec 2005 22:43:00 +0000 (22:43 +0000)]
* src/parse-gram.y: Fix minor problems uncovered by lint.
(current_lhs, current_lhs_location): Now static.
(current_assoc): Remove unused variable.
Paul Eggert [Fri, 9 Dec 2005 22:14:36 +0000 (22:14 +0000)]
Cleanups so that Bison-generated parsers have less lint.
* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
Prepend /*ARGSUSED*/, for lint's sake.
* data/glr.c (YYUSE): Properly parenthesize, and use an alternate
definition if 'lint' is defined.
(YYID): New macro (or function, if lint).
All uses of /*CONSTCOND*/0 replaced by YYID(0).
* data/yacc.c: Likewise.
* data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
(yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
* data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
is C++ only.
* data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
* data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
Use YYID(0) rather than 0, for lint.
(yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
(yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
Paul Eggert [Thu, 8 Dec 2005 06:52:43 +0000 (06:52 +0000)]
* tests/glr-regression.at
(Improper handling of embedded actions and dollar(-N) in GLR parsers):
Close memory leak reported by twlevo.
Paul Eggert [Wed, 7 Dec 2005 07:47:52 +0000 (07:47 +0000)]
Mention yyparse, too.
Paul Eggert [Tue, 6 Dec 2005 19:38:25 +0000 (19:38 +0000)]
* data/glr.c (yyprocessOneStack): Synchronize the shift for all
stacks, and iterate another stack in order to call user
destructors.
* tests/glr-regression.at (No users destructors if stack 0 deleted):
New test case.
(Duplicated user destructor for lookahead): This test now is expected
to succeed.
Paul Eggert [Thu, 1 Dec 2005 20:08:35 +0000 (20:08 +0000)]
Document the license change.
Paul Eggert [Thu, 1 Dec 2005 20:04:06 +0000 (20:04 +0000)]
Regenerate.
Paul Eggert [Thu, 1 Dec 2005 20:03:55 +0000 (20:03 +0000)]
* data/yacc.c: Say "parser skeleton" rather than "file", since
it's no longer just a file.
* data/glr.c: Grant a special exception for C GLR parsers, that
reads like the already-existing exception for C LALR(1) parsers.
* data/glr.cc: Likewise.
* data/lalr1.cc: Likewise.
* data/location.cc: Likewise.
* data/yacc.c: Reword the "written by" statement to clarify that
it was the parser skeleton, not the entire output file.
* data/glr.c: Written by Paul Hilfinger.
* data/glr.cc: Written by Akim Demaille.
* data/lalr1.cc: Likewise.
Paul Eggert [Fri, 18 Nov 2005 19:37:13 +0000 (19:37 +0000)]
* data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
Fix typos in previous change that broke 'make check'.
YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
supported in C.
* tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
Don't check NUM-STDERR-LINES, since the output format is fluctuating.
We can revert this once things settle down.
Paul Eggert [Fri, 18 Nov 2005 18:16:44 +0000 (18:16 +0000)]
* src/conflicts.c (conflicts_print): Don't print file name twice
when %expect fails because there were no conflicts.
* doc/bison.texinfo (Expect Decl): Tighten up wording in previous
change.
* tests/conflicts.at (%expect not enough, %expect too much):
(%expect with reduce conflicts): Adjust to new behavior.
* src/conflicts.c (conflicts_print): Unsatisfied %expectation are
errors.
* NEWS: Document this.
* doc/bison.texinfo (Expect Decl): Likewise.
Akim Demaille [Wed, 16 Nov 2005 14:20:48 +0000 (14:20 +0000)]
Generalize the display of semantic values and locations in traces.
* data/glr.c (yy_reduce_print): Fix indices (again).
* data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
literal integers.
* data/lalr1.cc (yyreduce_print): Rename as...
(yy_reduce_print): this.
Display values and locations.
* data/yacc.c (yy_reduce_print): Likewise.
(YY_REDUCE_PRINT): Adjust to pass the required arguments.
(yysymprint): Move higher to be visible from yy_reduce_print).
(yyparse): Adjust.
* tests/calc.at: Adjust the expected length of the traces.
Akim Demaille [Mon, 14 Nov 2005 17:20:28 +0000 (17:20 +0000)]
* data/glr.c (yy_reduce_print): The loop was quite wrong: type are
from 1 to N, while values and location start at 0.
(b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
Akim Demaille [Mon, 14 Nov 2005 15:33:18 +0000 (15:33 +0000)]
* data/glr.c (yy_reduce_print): Fix the $ number.
Akim Demaille [Mon, 14 Nov 2005 15:19:16 +0000 (15:19 +0000)]
Fix incorrect comment.
Akim Demaille [Mon, 14 Nov 2005 15:18:34 +0000 (15:18 +0000)]
"Use" parse parameters.
* data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
* data/glr.c, data/glr.cc: Use them.
* data/glr.c (YYUSE): Have a C++ definition that supports
non-pointer types.
Akim Demaille [Mon, 14 Nov 2005 14:34:38 +0000 (14:34 +0000)]
* data/glr.c (yyexpandGLRStack): Declare only if defined.
Akim Demaille [Mon, 14 Nov 2005 08:13:07 +0000 (08:13 +0000)]
* data/glr.cc: New.
* data/m4sugar/m4sugar.m4 (m4_prepend): New.
Akim Demaille [Mon, 14 Nov 2005 08:09:00 +0000 (08:09 +0000)]
Have glr.c include its header file when created.
* data/glr.c (b4_shared_declarations): New.
Output them verbatim in the parser if !%defines, otherwise
output then in the header file, and include it instead.
Akim Demaille [Sat, 12 Nov 2005 14:13:03 +0000 (14:13 +0000)]
Let position and location be PODs.
* data/location.cc (position::initialize, location::initialize): New.
(position::position, location::location): Define only if
b4_location_constructors is defined.
* data/lalr1.cc (b4_location_constructors): Define it for backward
compatibility.
* doc/bison.texinfo (Initial Action Decl): Use initialize.
Akim Demaille [Sat, 12 Nov 2005 11:32:46 +0000 (11:32 +0000)]
* data/lalr1.cc: Move the body of the ctor and dtor into the
parser file (instead of the header).
Wrap the implementations in a "namespace yy".
Akim Demaille [Fri, 11 Nov 2005 10:39:35 +0000 (10:39 +0000)]
* data/glr.c: Comment changes.
Akim Demaille [Fri, 11 Nov 2005 10:36:24 +0000 (10:36 +0000)]
When yydebug, report semantic and location values for reductions.
* data/glr.c (yy_reduce_print): Report the semantic values and the
locations.
(YY_REDUCE_PRINT): Adjust.
(yyglrReduce): Use them.
(b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
* data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
* tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
traces.
Akim Demaille [Fri, 11 Nov 2005 09:20:03 +0000 (09:20 +0000)]
* data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
(yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
(yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
Paul Eggert [Thu, 10 Nov 2005 00:33:04 +0000 (00:33 +0000)]
* m4/cxx.m4, examples/Makefile.am: Don't build
examples/calc++ if no C++ compiler is available.
Akim Demaille [Wed, 9 Nov 2005 16:11:25 +0000 (16:11 +0000)]
* src/scan-skel.l: Use a couple of asserts.
Akim Demaille [Wed, 9 Nov 2005 15:48:05 +0000 (15:48 +0000)]
In some (weird) cases, the final state number is incorrect.
Reported by Alexandre Duret-Lutz.
* src/LR0.c (state_list_append): Remove the computation of
final_state.
(save_reductions): Do it here.
(get_state): Alpha conversion.
(generate_states): Use a for loop.
* src/gram.h (item_number_is_rule_number)
(item_number_is_symbol_number): New.
* src/state.c: Use assert.
* src/system.h: Include assert.h.
* tests/sets.at (Accept): New.
Akim Demaille [Thu, 3 Nov 2005 16:23:21 +0000 (16:23 +0000)]
Typo.
Paul Hilfinger [Mon, 31 Oct 2005 01:16:32 +0000 (01:16 +0000)]
data/glr.c (yyfill): Adjust comment.
(yyresolveAction): Initialize default location properly for empty right-hand
sides.
(yydoAction): Ditto. Add comment explaining apparently dead code.
* tests/glr-regression.at
(Incorrectly initialized location for empty right-hand side in GLR): New test.
Paul Eggert [Mon, 31 Oct 2005 00:11:48 +0000 (00:11 +0000)]
* bootstrap (cleanup_gnulib): New function. Use it to clean up
gnulib when interrupted. This fixes some race conditions and
works around some portability problems (one noted by Paul
Hilfinger).
Akim Demaille [Sat, 22 Oct 2005 06:44:35 +0000 (06:44 +0000)]
* Makefile.cfg: Adjust to config -> build-aux.
Reported by twledo.
Akim Demaille [Fri, 21 Oct 2005 11:36:22 +0000 (11:36 +0000)]
* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
the %parse-params.
* data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
* data/yacc.c (b4_Pure_if): Rename as...
(b4_yacc_pure_if): this.
(YY_SYMBOL_PRINT, yyparse): Adjust.
* doc/bison.texinfo: Formatting changes.
Akim Demaille [Fri, 21 Oct 2005 09:13:01 +0000 (09:13 +0000)]
Finish the transition config -> build-aux.
* configure.ac, Makefile.am: Use build-aux.
* config/prev-version, config/announce-gen, config/Makefile.am:
Move to...
* build-aux/prev-version, build-aux/announce-gen,
* build-aux/Makefile.am: here.
Akim Demaille [Fri, 14 Oct 2005 06:10:54 +0000 (06:10 +0000)]
* examples/calc++/test: Use set -x only when VERBOSE.
Paul Eggert [Thu, 13 Oct 2005 19:38:46 +0000 (19:38 +0000)]
* NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
* src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
Akim Demaille [Thu, 13 Oct 2005 10:13:24 +0000 (10:13 +0000)]
* src/scan-skel.l: Output the base name parts of the parser and
header file names.
* tests/output.at (AT_CHECK_OUTPUT): Support subdirectorioes, and
additional checks.
Use this to exercise C++ outputs in subdirs.
Reported by Oleg Smolsky.
Paul Eggert [Thu, 13 Oct 2005 06:24:04 +0000 (06:24 +0000)]
Regenerate.
Paul Eggert [Thu, 13 Oct 2005 06:23:54 +0000 (06:23 +0000)]
* data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
__STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
Problem reported by John P. Hartmann.
* data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
already defined it.
Akim Demaille [Wed, 12 Oct 2005 10:15:12 +0000 (10:15 +0000)]
* src/parse-gram.y (version_check): Exit 63 to please missing
(stands for "version mismatch).
* tests/input.at, doc/bison.texinfo: Adjust.
Paul Eggert [Tue, 11 Oct 2005 05:39:59 +0000 (05:39 +0000)]
Regenerate.
Paul Eggert [Tue, 11 Oct 2005 05:36:04 +0000 (05:36 +0000)]
* data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
as __STDC__, as IBM cc defines the former but not the latter.
* data/yacc.c (YYMODERN_C): New macro, which also looks at
__STDC_VERSION__. Use it everywhere instead of looking at
__STDC__ and __cplusplus.
Paul Eggert [Tue, 11 Oct 2005 05:06:16 +0000 (05:06 +0000)]
Work around portability problems with Visual Age C compiler
(xlc and xlC_r) reported by John P. Hartmann.
* data/location.cc (initial_column, initial_line): Remove.
All uses replaced by 0 and 1.
* src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
that xlc complains about.
* src/scan-skel.l (skel_wrap): Likewise.
Akim Demaille [Mon, 10 Oct 2005 11:41:27 +0000 (11:41 +0000)]
* examples/calc++/test: Be quiet unless VERBOSE.
Paul Eggert [Thu, 6 Oct 2005 07:18:53 +0000 (07:18 +0000)]
Regenerate.
Paul Eggert [Thu, 6 Oct 2005 07:17:21 +0000 (07:17 +0000)]
* data/c.m4 (yydestruct, yysymprint):
Use YYUSE instead of casting to void.
* data/glr.c (YYUSE): New macro.
(yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
Use it instead of rolling our own.
(YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
(YYCHK1):
Use /*CONSTCOND*/ to suppress lint warnings.
* data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
(YY_STACK_PRINT): Use 'false' not '0'.
(YYUSE): New macro.
(yysymprint_, yydestruct_): Use it instead of rolling our own.
* data/yacc.c (YYUSE): New macro.
(YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
(YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
(yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
Paul Eggert [Wed, 5 Oct 2005 21:28:55 +0000 (21:28 +0000)]
Regenerate.
Paul Eggert [Wed, 5 Oct 2005 21:28:07 +0000 (21:28 +0000)]
* data/m4sugar/m4sugar.m4 (_m4_map): New macro.
(m4_map, m4_map_sep): Use it. Handle the empty list correctly.
Akim Demaille [Wed, 5 Oct 2005 06:57:16 +0000 (06:57 +0000)]
Less ambiguous wording.
Paul Eggert [Wed, 5 Oct 2005 06:39:08 +0000 (06:39 +0000)]
Undo the parts of the unlocked-I/O change that substituted
putc or puts for printf. This might hurt performance a bit,
but some people prefer the printf style.
* data/c.m4 (yysymprint): Prefer printf to puts and putc.
* data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
All uses replaced by YYFPRINTF and YYDPRINTF.
* data/yacc.c: Likewise.
* lib/bitset.c (bitset_print): Likewise.
* lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
putc and puts.
* lib/lbitset.c (debug_lbitset): Likewise.
* src/closure.c (print_firsts, print_fderives): Likewise.
* src/gram.c (grammar_dump): Likewise.
* src/lalr.c (look_ahead_tokens_print): Likewise.
* src/output.c (escaped_output): Likewise.
(user_actions_output): Break apart two printfs.
* src/parse-gram.y (%printer): Prefer printf to putc and puts.
* src/reduce.c (reduce_print): Likewise.
* src/state.c (state_rule_look_ahead_tokens_print): Likewise.
* src/system.h: Include unlocked-io.h rathe than stdio.h.
Paul Eggert [Wed, 5 Oct 2005 06:05:22 +0000 (06:05 +0000)]
* data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
Use assignments rather than casts-to-void to suppress
unused-variable warnings. This pacifies 'lint'.
* data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
unused-variable warnings.
Juan Manuel Guerrero [Mon, 3 Oct 2005 17:12:03 +0000 (17:12 +0000)]
remove djgpp/CVS from EXTRA_DIST
Juan Manuel Guerrero [Mon, 3 Oct 2005 05:35:57 +0000 (05:35 +0000)]
Use name cxx.m4 instead of c++.m4 in data/location.cc
Juan Manuel Guerrero [Mon, 3 Oct 2005 05:33:47 +0000 (05:33 +0000)]
DJGPP specific files added to EXTRA_DIST
Paul Eggert [Sun, 2 Oct 2005 21:25:33 +0000 (21:25 +0000)]
Regenerate.
Paul Eggert [Sun, 2 Oct 2005 21:24:12 +0000 (21:24 +0000)]
Use unlocked I/O for a minor performance improvement on hosts like
GNU/Linux and Solaris that support unlocked I/O. The basic idea
is to use the gnlib unlocked-io module, and to prefer putc and
puts to printf when either will work (since the latter doesn't
come in an unlocked flavor).
* bootstrap (gnulib_modules): Add unlocked-io.
* data/c.m4 (yysymprint): Prefer puts and putc to printf.
* data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
Prefer them to YYFPRINTF and YYDPRINTF if either will do,
and similarly for puts and putc and printf.
* data/yacc.c: Likewise.
* lib/bitset.c (bitset_print): Likewise.
* lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
* lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
to printf.
* lib/lbitset.c (debug_lbitset): Likewise.
* src/closure.c (print_firsts, print_fderives): Likewise.
* src/gram.c (grammar_dump): Likewise.
* src/lalr.c (look_ahead_tokens_print): Likewise.
* src/output.c (escaped_output): Likewise.
(user_actions_output): Coalesce two printfs.
* src/parse-gram.h (%printer): Prefer putc and puts to printf.
* src/reduce.c (reduce_print): Likewise.
* src/state.c (state_rule_look_ahead_tokens_print): Likewise.
* src/system.h: Include unlocked-io.h rathe than stdio.h.
Paul Eggert [Sun, 2 Oct 2005 20:41:42 +0000 (20:41 +0000)]
* data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
this confuses xgettext.
Akim Demaille [Sun, 2 Oct 2005 18:49:15 +0000 (18:49 +0000)]
* bootstrap (gnulib_modules): Add strverscmp.
* lib/.cvsignore: Add strverscmp.c, strverscmp.h.
* m4/.cvsignore: Add strverscmp.m4.
* src/parse-gram.y (%require): New token, new rule.
(version_check): New.
* src/scan-gram.l (%require): Adjust.
* tests/input.at (AT_REQUIRE): New.
Use it.
* doc/bison.texinfo (Require Decl): New.
(Calc++ Parser): Use %require.
Akim Demaille [Sun, 2 Oct 2005 18:17:23 +0000 (18:17 +0000)]
* data/location.cc: New.
Akim Demaille [Sun, 2 Oct 2005 17:44:49 +0000 (17:44 +0000)]
Akim Demaille <akim@epita.fr>
Make sure -odir/foo.cc creates dir/location.hh etc.
* src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
(spec_file_prefix, spec_verbose_file, spec_graph_file)
(spec_defines_file): Now const.
(dir_prefix): New.
(short_base_name): Remove.
* src/files.c: Adjust.
(dirname.h): Include.
(base_name): Don't prototype it.
(finput): Remove, duplicates gram_in.
(full_base_name, short_base_name): Replace by...
(all_but_ext, all_but_tab_ext): these.
(compute_base_names): Rename as...
(compute_file_name_parts): this.
Update to compute the new variables, including dir_prefix.
Adjust dependencies.
* src/output.c (prepare): Output them.
* src/reader.c: Adjust to use gram_in, not finput.
* src/scan-skel.l (@dir_prefix@): New.
Juan Manuel Guerrero [Sun, 2 Oct 2005 17:00:30 +0000 (17:00 +0000)]
DJGPP support added.
Juan Manuel Guerrero [Sun, 2 Oct 2005 16:59:42 +0000 (16:59 +0000)]
(output_skeleton): Use end_of_output_subpipe() to handle
the lack of pipe/fork functionality on non-posix systems.
Juan Manuel Guerrero [Sun, 2 Oct 2005 16:59:31 +0000 (16:59 +0000)]
New function end_of_output_subpipe() added to allow support
for non-posix systems. This is a no-op function for posix systems.
Juan Manuel Guerrero [Sun, 2 Oct 2005 16:35:14 +0000 (16:35 +0000)]
DJGPP specific configuration file.
Akim Demaille [Sun, 2 Oct 2005 16:34:02 +0000 (16:34 +0000)]
* data/location.cc: New, extract from...
* data/lalr1.cc: here.
(location.hh): Include it after the user prologue, in case the
filename type is defined by the user.
Forward declation location and position before the pre-prologue.
(yyresult_): Rename as...
(yyresult): this, it's a local variable, not an attribute.
* data/Makefile.am (dist_pkgdata_DATA): Adjust.
Juan Manuel Guerrero [Sun, 2 Oct 2005 16:15:22 +0000 (16:15 +0000)]
DJGPP specific replacement file for lib/subpipe.h.
Juan Manuel Guerrero [Sun, 2 Oct 2005 16:14:13 +0000 (16:14 +0000)]
DJGPP specific replacement file for lib/subpipe.c.
Juan Manuel Guerrero [Sun, 2 Oct 2005 16:11:25 +0000 (16:11 +0000)]
DJGPP specific file.
Akim Demaille [Sat, 1 Oct 2005 07:20:32 +0000 (07:20 +0000)]
* examples/extexi: Restore the #line generation.
Akim Demaille [Fri, 30 Sep 2005 17:57:05 +0000 (17:57 +0000)]
Alexandre Duret-Lutz <adl@gnu.org>
Move the token type and YYSTYPE in the parser class.
* data/lalr1.cc (stack.hh, location.hh): Include earlier.
(parser::token): New, from the moved free definition of tokens.
(parser::semantic_value): Now a full definition instead of an
indirection to YYSTYPE.
(b4_post_prologue): No longer included in the header file, but
in the implementation file.
* doc/bison.texi (C+ Language Interface): Update.
* src/parse-gram.y: Support unary %define.
* tests/actions.at: Define global_tokens_and_yystype for backward
compatibility until we update the tests.
* tests/calc.at: Idem.
(first_line, first_column, last_line, last_column): Define for lalr1.cc
to simplify the code.
Paul Eggert [Thu, 29 Sep 2005 19:02:54 +0000 (19:02 +0000)]
Port to SunOS 4.1.4, which lacks strtoul and strerror.
* bootstrap (gnulib_modules): Add strerror, strtoul.
* lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
* m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.