]> git.saurik.com Git - bison.git/log
bison.git
22 years ago* configure.in (GETTEXT_VERSION): New.
Akim Demaille [Fri, 3 May 2002 15:52:53 +0000 (15:52 +0000)] 
* configure.in (GETTEXT_VERSION): New.
Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.

22 years agoWarnings.
Akim Demaille [Fri, 3 May 2002 15:07:35 +0000 (15:07 +0000)] 
Warnings.

22 years ago* data/bison.simple (b4_token_enum): New.
Akim Demaille [Fri, 3 May 2002 08:42:48 +0000 (08:42 +0000)] 
* data/bison.simple (b4_token_enum): New.
(b4_token_defines): Use it to output tokens both as #define and
enums.
Suggested by Paul Eggert.
* src/output.c (token_definitions_output): Don't output spurious
white spaces.

22 years ago* data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
Akim Demaille [Fri, 3 May 2002 08:26:55 +0000 (08:26 +0000)] 
* data/m4sugar/m4sugar.m4: Update from CVS Autoconf.

22 years agoRegen.
Akim Demaille [Thu, 2 May 2002 16:46:05 +0000 (16:46 +0000)] 
Regen.

22 years ago* data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
Robert Anisko [Thu, 2 May 2002 16:43:00 +0000 (16:43 +0000)] 
* data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
Update the stack class, give a try to deque as the default container.

22 years ago* data/bison.simple (yyparse): Do not implement @$ = @1.
Akim Demaille [Thu, 2 May 2002 16:40:54 +0000 (16:40 +0000)] 
* data/bison.simple (yyparse): Do not implement @$ = @1.
(YYLLOC_DEFAULT): Adjust to do it.
* doc/bison.texinfo (Location Default Action): Fix.

22 years ago* src/reader.c (parse_braces): Merge into...
Akim Demaille [Thu, 2 May 2002 16:16:11 +0000 (16:16 +0000)] 
* src/reader.c (parse_braces): Merge into...
(parse_action): this.

22 years agoUpdate.
Akim Demaille [Thu, 2 May 2002 16:12:35 +0000 (16:12 +0000)] 
Update.

22 years ago* configure.in (ALL_LINGUAS): Remove.
Akim Demaille [Thu, 2 May 2002 15:13:09 +0000 (15:13 +0000)] 
* configure.in (ALL_LINGUAS): Remove.
* po/LINGUAS, hr.po: New.

22 years agoRemove the so called hairy (semantic) parsers.
Akim Demaille [Thu, 2 May 2002 15:06:46 +0000 (15:06 +0000)] 
Remove the so called hairy (semantic) parsers.
* src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
* src/gram.h, src/gram.c (semantic_parser): Remove.
(rule_t): Remove the guard and guard_line members.
* src/lex.h (token_t): remove tok_guard.
* src/options.c (option_table): Remove %guard and %semantic_parser
support.
* src/output.c, src/output.h (guards_output): Remove.
(prepare): Adjust.
(token_definitions_output): Don't output the `T'
tokens (???).
(output_skeleton): Don't output the guards.
* src/files.c, src/files.c (attrsfile): Remove.
* src/reader.c (symbol_list): Remove the guard and guard_line
members.
Adjust dependencies.
(parse_guard): Remove.
* data/bison.hairy: Remove.
* doc/bison.texinfo (Environment Variables): Remove occurrences of
BISON_HAIRY.

22 years agoRegen.
Akim Demaille [Thu, 2 May 2002 15:05:02 +0000 (15:05 +0000)] 
Regen.

22 years agoNote: the previous patch partially drops `semantic-parser' support: it always does...
Akim Demaille [Thu, 2 May 2002 14:36:39 +0000 (14:36 +0000)] 
Note: the previous patch partially drops `semantic-parser' support: it always does `rule_length - n', where semantic parsers ought to always use `-n'.

22 years ago* src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
Akim Demaille [Thu, 2 May 2002 14:33:48 +0000 (14:33 +0000)] 
* src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
(parse_guard): Rename the formal argument `stack_offset' as
`rule_length', which is more readable.
Adjust callers.
(copy_at, copy_dollar): Instead of outputting the hard coded
values of $$, $n and so forth, output invocation to b4_lhs_value,
b4_lhs_location, b4_rhs_value, and b4_rhs_location.
* data/bison.simple, data/bison.c++ (b4_lhs_value)
(b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.

22 years ago* configure.in (AC_INIT): Bump to 1.49b.
Akim Demaille [Thu, 2 May 2002 09:25:54 +0000 (09:25 +0000)] 
* configure.in (AC_INIT): Bump to 1.49b.
(AM_INIT_AUTOMAKE): Short invocation.

22 years agoVersion 1.49a. BISON-1_49a
Akim Demaille [Thu, 2 May 2002 07:49:00 +0000 (07:49 +0000)] 
Version 1.49a.

22 years agoUpdate.
Akim Demaille [Thu, 2 May 2002 07:46:51 +0000 (07:46 +0000)] 
Update.

22 years agoUpdate from TP.
Akim Demaille [Thu, 2 May 2002 07:30:41 +0000 (07:30 +0000)] 
Update from TP.

22 years ago* src/skeleton.h: Remove.
Akim Demaille [Wed, 1 May 2002 10:32:39 +0000 (10:32 +0000)] 
* src/skeleton.h: Remove.

22 years ago* src/skeleton.h: Fix the #endif.
Akim Demaille [Wed, 1 May 2002 10:28:05 +0000 (10:28 +0000)] 
* src/skeleton.h: Fix the #endif.
Reported by Magnus Fromreide.

22 years ago* data/bison.simple (YYCOPY): Fix [] quoting problem in the non-GCC case.
Paul Eggert [Sat, 27 Apr 2002 01:21:14 +0000 (01:21 +0000)] 
* data/bison.simple (YYCOPY): Fix [] quoting problem in the non-GCC case.

22 years ago(YYCOPY): Fix [] quoting problem in the non-GCC case.
Paul Eggert [Sat, 27 Apr 2002 01:20:51 +0000 (01:20 +0000)] 
(YYCOPY): Fix [] quoting problem in the non-GCC case.

22 years ago(YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
Paul Eggert [Sat, 27 Apr 2002 01:10:59 +0000 (01:10 +0000)] 
(YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
Define if we define YYSTYPE and YYLTYPE, respectively.

22 years ago* data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
Paul Eggert [Sat, 27 Apr 2002 01:10:28 +0000 (01:10 +0000)] 
* data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
Define if we define YYSTYPE and YYLTYPE, respectively.

22 years ago* src/scan-skel.l: Postprocess quadrigraphs.
Robert Anisko [Thu, 25 Apr 2002 14:36:38 +0000 (14:36 +0000)] 
* src/scan-skel.l: Postprocess quadrigraphs.
* src/reader.c (copy_character): New function, used to output
single characters while replacing `[' and `]' with quadrigraphs, to
avoid troubles with M4 quotes.
(copy_comment): Output characters with copy_character.
(read_additionnal_code): Likewise.
(copy_string2): Likewise.
(copy_definition): Likewise.
* tests/calc.at: Exercise M4 quoting.

22 years ago* tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
Akim Demaille [Thu, 25 Apr 2002 10:30:27 +0000 (10:30 +0000)] 
* tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
between `!' and the command.
Reported by Paul Eggert.

22 years agoDon't `touch' the files gettextize modified.
Akim Demaille [Thu, 25 Apr 2002 10:29:47 +0000 (10:29 +0000)] 
Don't `touch' the files gettextize modified.

22 years ago* tests/calc.at: Exercise prologue splitting.
Robert Anisko [Wed, 24 Apr 2002 16:22:57 +0000 (16:22 +0000)] 
* tests/calc.at: Exercise prologue splitting.
* data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
`b4_post_prologue' instead of `b4_prologue'.
* src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
muscles.
(output): Free pre_prologue_obstack and post_prologue_obstack.
* src/files.h, src/files.c (attrs_obstack): Remove.
(pre_prologue_obstack, post_prologue_obstack): New.
* src/reader.c (copy_definition): Add a parameter to specify the
obstack to fill, instead of using attrs_obstack unconditionally.
(read_declarations): Pass pre_prologue_obstack to copy_definition if
`%union' has not yet been seen, pass post_prologue_obstack otherwise.

22 years agoRemove a dead item.
Akim Demaille [Wed, 24 Apr 2002 12:04:53 +0000 (12:04 +0000)] 
Remove a dead item.

22 years agoLanguage independent actions.
Akim Demaille [Wed, 24 Apr 2002 11:23:13 +0000 (11:23 +0000)] 
Language independent actions.

22 years agoAlso pass --install to the second invocation of autoreconf, to let automake install...
Akim Demaille [Wed, 24 Apr 2002 09:44:31 +0000 (09:44 +0000)] 
Also pass --install to the second invocation of autoreconf, to let automake install its files.

22 years ago* data/bison.simple: Remove unnecessary commentary and white
Paul Eggert [Wed, 24 Apr 2002 05:56:13 +0000 (05:56 +0000)] 
* data/bison.simple: Remove unnecessary commentary and white
space differences from 1_29-branch.
Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).

(union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
constructors or destructors.

(yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.

22 years agoRemove unnecessary commentary and white space differences from
Paul Eggert [Wed, 24 Apr 2002 05:55:48 +0000 (05:55 +0000)] 
Remove unnecessary commentary and white space differences from
1_29-branch.  Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).

(union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
constructors or destructors.

(yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.

22 years agoMore.
Akim Demaille [Tue, 23 Apr 2002 14:07:56 +0000 (14:07 +0000)] 
More.

22 years ago* tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
Akim Demaille [Tue, 23 Apr 2002 09:06:42 +0000 (09:06 +0000)] 
* tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
* tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
location with columns.
* tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
All reported by Paul Eggert.

22 years agoUse rm/mv -f.
Akim Demaille [Tue, 23 Apr 2002 08:33:24 +0000 (08:33 +0000)] 
Use rm/mv -f.
Suggested by Paul Eggert.

22 years agoReplace @var{...(...}} with something else, as Texinfo 4.2 warns
Paul Eggert [Mon, 22 Apr 2002 22:10:22 +0000 (22:10 +0000)] 
Replace @var{...(...}} with something else, as Texinfo 4.2 warns
about that construct.

22 years agoPoint to an official beta.
Akim Demaille [Mon, 22 Apr 2002 14:35:14 +0000 (14:35 +0000)] 
Point to an official beta.

22 years agoUpdate.
Akim Demaille [Mon, 22 Apr 2002 12:36:15 +0000 (12:36 +0000)] 
Update.

22 years agoRegen.
Akim Demaille [Mon, 22 Apr 2002 09:00:44 +0000 (09:00 +0000)] 
Regen.

22 years ago* src/reduce.c (dump_grammar): Move to...
Akim Demaille [Mon, 22 Apr 2002 08:23:07 +0000 (08:23 +0000)] 
* src/reduce.c (dump_grammar): Move to...
* src/gram.h, src/gram.c (grammar_dump): here.
Be sure to separate long item numbers.
Don't read the members of a rule's prec if its nil.

22 years ago* src/output.c (table_size, table_grow): New.
Akim Demaille [Mon, 22 Apr 2002 08:22:39 +0000 (08:22 +0000)] 
* src/output.c (table_size, table_grow): New.
(MAXTABLE): Remove, replace uses with table_size.
(pack_vector): Instead of dying when the table is too big, grow it.

22 years ago* data/bison.simple (yyr1): Its type is that of a token number.
Akim Demaille [Mon, 22 Apr 2002 08:22:22 +0000 (08:22 +0000)] 
* data/bison.simple (yyr1): Its type is that of a token number.
* data/bison.c++ (r1_): Likewise.
* tests/regression.at (Web2c Actions): Adjust.

22 years ago* src/reader.c (token_translations_init): 256 is now the default
Akim Demaille [Mon, 22 Apr 2002 08:22:11 +0000 (08:22 +0000)] 
* src/reader.c (token_translations_init): 256 is now the default
value for the error token, i.e., it will be assigned another
number if the user assigned 256 to one of her tokens.
(reader): Don't force 256 to error.
* doc/bison.texinfo (Symbols): Adjust.
* tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
(AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
etc. instead of 10, 20, 30 (which was used to `jump' over error
(256) and undefined (2)).

22 years agoPropagate more token_number_t.
Akim Demaille [Mon, 22 Apr 2002 08:21:55 +0000 (08:21 +0000)] 
Propagate more token_number_t.
* src/gram.h (token_number_as_item_number)
(item_number_as_token_number): New.
* src/output.c (GENERATE_OUTPUT_TABLE): New.
Use it to create output_item_number_table and
output_token_number_table.
* src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
* src/lex.c, src/nullable.c, src/output.c, src/print.c,
* src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
* src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.

22 years ago* src/output.h, src/output.c (get_lines_number): Remove.
Akim Demaille [Mon, 22 Apr 2002 08:21:19 +0000 (08:21 +0000)] 
* src/output.h, src/output.c (get_lines_number): Remove.

22 years agomore.
Akim Demaille [Fri, 19 Apr 2002 14:52:00 +0000 (14:52 +0000)] 
more.

22 years agoMore.
Akim Demaille [Fri, 19 Apr 2002 14:14:11 +0000 (14:14 +0000)] 
More.

22 years ago* doc/bison.texinfo (Actions): Make clear that `|' is not the same
Akim Demaille [Fri, 19 Apr 2002 14:04:31 +0000 (14:04 +0000)] 
* doc/bison.texinfo (Actions): Make clear that `|' is not the same
as Lex/Flex'.
(Debugging): More details about enabling the debugging features.
(Table of Symbols): Describe $$, $n, @$, and @n.
Suggested by Tim Josling.

22 years ago* doc/bison.texinfo: Remove the uses of the obsolete @refill.
Akim Demaille [Fri, 19 Apr 2002 13:35:08 +0000 (13:35 +0000)] 
* doc/bison.texinfo: Remove the uses of the obsolete @refill.

22 years agoMore.
Akim Demaille [Fri, 19 Apr 2002 08:41:46 +0000 (08:41 +0000)] 
More.

22 years agoAdd bootstrap.
Akim Demaille [Thu, 18 Apr 2002 16:41:19 +0000 (16:41 +0000)] 
Add bootstrap.

22 years agoMore.
Akim Demaille [Fri, 12 Apr 2002 10:35:07 +0000 (10:35 +0000)] 
More.

22 years agoNew.
Akim Demaille [Thu, 11 Apr 2002 16:59:08 +0000 (16:59 +0000)] 
New.

22 years agoIgnore Gettext file.
Akim Demaille [Thu, 11 Apr 2002 16:34:43 +0000 (16:34 +0000)] 
Ignore Gettext file.

22 years agoAdd copyright notice.
Akim Demaille [Thu, 11 Apr 2002 16:31:03 +0000 (16:31 +0000)] 
Add copyright notice.

22 years agoMore.
Akim Demaille [Thu, 11 Apr 2002 16:30:18 +0000 (16:30 +0000)] 
More.

22 years agoRemove from repo.
Akim Demaille [Thu, 11 Apr 2002 16:25:42 +0000 (16:25 +0000)] 
Remove from repo.

22 years ago* src/system.h: Rely on HAVE_LIMITS_H.
Akim Demaille [Wed, 10 Apr 2002 17:13:58 +0000 (17:13 +0000)] 
* src/system.h: Rely on HAVE_LIMITS_H.
Suggested by Paul Eggert.

22 years agoRegen.
Akim Demaille [Wed, 10 Apr 2002 17:13:15 +0000 (17:13 +0000)] 
Regen.

22 years agoMore ideas.
Akim Demaille [Wed, 10 Apr 2002 11:03:39 +0000 (11:03 +0000)] 
More ideas.

22 years agoMore ideas.
Akim Demaille [Wed, 10 Apr 2002 08:55:43 +0000 (08:55 +0000)] 
More ideas.

22 years ago* tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
Akim Demaille [Tue, 9 Apr 2002 19:20:10 +0000 (19:20 +0000)] 
* tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
full stderr, and strip it according to the bison options, instead
of composing the error message from different bits.
This makes it easier to check for several error messages.
Adjust all the invocations.
Add an invocation exercising the error token.
Add an invocation demonstrating a stupid error message.
(_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
Adjust the tests.
Error message are for stderr, not stdout.

22 years ago* src/gram.h, src/gram.c (error_token_number): Remove, use
Akim Demaille [Tue, 9 Apr 2002 19:19:59 +0000 (19:19 +0000)] 
* src/gram.h, src/gram.c (error_token_number): Remove, use
errtoken->number.
* src/reader.c (reader): Don't specify the user token number (2)
for $undefined, as it uselessly prevents using it.
* src/gram.h (token_number_t): Move to...
* src/symtab.h: here.
(state_t.number): Is a token_number_t.
* src/print.c, src/reader.c: Use undeftoken->number instead of
hard coded 2.
(Even though this 2 is not the same as above: the number of the
undeftoken remains being 2, it is its user token number which
might not be 2).
* src/output.c (prepare_tokens): Rename the `maxtok' muscle with
`user_token_number_max'.
Output `undef_token_number'.
* data/bison.simple, data/bison.c++: Use them.
Be sure to map invalid yylex return values to
`undef_token_number'.  This saves us from gratuitous SEGV.
* tests/conflicts.at (Solved SR Conflicts)
(Unresolved SR Conflicts): Adjust.
* tests/regression.at (Web2c Actions): Adjust.

22 years agoRegen.
Akim Demaille [Mon, 8 Apr 2002 12:34:08 +0000 (12:34 +0000)] 
Regen.

22 years agoFix.
Akim Demaille [Mon, 8 Apr 2002 12:33:13 +0000 (12:33 +0000)] 
Fix.

22 years ago* data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
Akim Demaille [Mon, 8 Apr 2002 12:31:15 +0000 (12:31 +0000)] 
* data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
Adding #line.
Remove the duplicate `typedefs'.
(RhsNumberType): Fix the declaration and various other typos.
Use __ofile__.
* data/bison.simple: Use __ofile__.
* src/scan-skel.l: Handle __ofile__.

22 years ago* src/gram.h (item_number_t): New, the type of item numbers in
Akim Demaille [Mon, 8 Apr 2002 11:46:26 +0000 (11:46 +0000)] 
* src/gram.h (item_number_t): New, the type of item numbers in
RITEM.  Note that it must be able to code symbol numbers as
positive number, and the negation of rule numbers as negative
numbers.
Adjust all dependencies (pretty many).
* src/reduce.c (rule): Remove this `short *' pointer: use
item_number_t.
* src/system.h (MINSHORT, MAXSHORT): Remove.
Include `limits.h'.
Adjust dependencies to using SHRT_MAX and SHRT_MIN.
(shortcpy): Remove.
(MAXTABLE): Move to...
* src/output.c (MAXTABLE): here.
(prepare_rules): Use output_int_table to output rhs.
* data/bison.simple, data/bison.c++: Adjust.
* tests/torture.at (Big triangle): Move the limit from 254 to
500.
* tests/regression.at (Web2c Actions): Ajust.
Trying with bigger grammars shows various phenomena: at 3000 (28Mb
of grammar file) bison is killed by my system, at 2000 (12Mb) bison
passes, but produces negative #line number, once fixed, GCC is
killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
C), it passes.
* src/state.h (state_h): Code input lines on ints, not shorts.

22 years ago* src/gram.h (item_number_t): New, the type of item numbers in
Akim Demaille [Mon, 8 Apr 2002 11:46:05 +0000 (11:46 +0000)] 
* src/gram.h (item_number_t): New, the type of item numbers in
RITEM.  Note that it must be able to code symbol numbers as
positive number, and the negation of rule numbers as negative
numbers.
Adjust all dependencies (pretty many).
* src/reduce.c (rule): Remove this `short *' pointer: use
item_number_t.
* src/system.h (MINSHORT, MAXSHORT): Remove.
Include `limits.h'.
Adjust dependencies to using SHRT_MAX and SHRT_MIN.
(shortcpy): Remove.
(MAXTABLE): Move to...
* src/output.c (MAXTABLE): here.
(prepare_rules): Use output_int_table to output rhs.
* data/bison.simple, data/bison.c++: Adjust.
* tests/torture.at (Big triangle): Move the limit from 254 to
500.
* tests/regression.at (Web2c Actions): Ajust.
Trying with bigger grammars shows various phenomena: at 3000 (28Mb
of grammar file) bison is killed by my system, at 2000 (12Mb) bison
passes, but produces negative #line number, once fixed, GCC is
killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
C), it passes.
* src/state.h (state_h): Code input lines on ints, not shorts.

22 years ago* src/reduce.c (reduce_grammar): First reduce the nonterminals,
Akim Demaille [Mon, 8 Apr 2002 11:45:29 +0000 (11:45 +0000)] 
* src/reduce.c (reduce_grammar): First reduce the nonterminals,
and then the grammar.

22 years ago* src/system.h: No longer using strndup.
Akim Demaille [Mon, 8 Apr 2002 11:45:16 +0000 (11:45 +0000)] 
* src/system.h: No longer using strndup.

22 years agoMore ideas.
Akim Demaille [Mon, 8 Apr 2002 10:02:19 +0000 (10:02 +0000)] 
More ideas.

22 years agoRegen.
Akim Demaille [Sun, 7 Apr 2002 17:46:22 +0000 (17:46 +0000)] 
Regen.

22 years ago* src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
Akim Demaille [Sun, 7 Apr 2002 17:44:59 +0000 (17:44 +0000)] 
* src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
* src/output.c (output_table_data): Return the longest number.
(prepare_tokens): Output `token_number_max').
* data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
New.
Use them to define yy_token_number_type/TokenNumberType.
Use this type for yytranslate.
* tests/torture.at (Big triangle): Push the limit from 124 to
253.
* tests/regression.at (Web2c Actions): Adjust.

22 years ago* tests/torture.at (Big triangle): New.
Akim Demaille [Sun, 7 Apr 2002 17:44:38 +0000 (17:44 +0000)] 
* tests/torture.at (Big triangle): New.
(GNU AWK Grammar, GNU Cim Grammar): Move to...
* tests/existing.at: here.

22 years ago* src/gram.h, src/gram.c (nitems): Remove, it is an alias of
Akim Demaille [Sun, 7 Apr 2002 17:44:24 +0000 (17:44 +0000)] 
* src/gram.h, src/gram.c (nitems): Remove, it is an alias of
nritems.
Adjust dependencies.

22 years ago* src/reader.c: Normalize increments to prefix form.
Akim Demaille [Sun, 7 Apr 2002 17:44:05 +0000 (17:44 +0000)] 
* src/reader.c: Normalize increments to prefix form.

22 years ago* src/reader.c, symtab.c: Remove debugging code.
Akim Demaille [Sun, 7 Apr 2002 17:43:53 +0000 (17:43 +0000)] 
* src/reader.c, symtab.c: Remove debugging code.

22 years agoRename all the `bucket's as `symbol_t'.
Akim Demaille [Sun, 7 Apr 2002 17:43:41 +0000 (17:43 +0000)] 
Rename all the `bucket's as `symbol_t'.
* src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
* src/reader.c, src/reader.h, src/reduce.c, src/state.h,
* src/symtab.c, src/symtab.h (bucket): Rename as...
(symbol_t): this.
(symbol_list_new, bucket_check_defined, bucket_make_alias)
(bucket_check_alias_consistence, bucket_pack, bucket_translation)
(bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
(buckets_new, buckets_free, buckets_do): Rename as...
(symbol_list_new, symbol_check_defined, symbol_make_alias)
(symbol_check_alias_consistence, symbol_pack, symbol_translation)
(symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
(symbols_new, symbols_free, symbols_do): these.

22 years agoUse lib/hash for the symbol table.
Akim Demaille [Sun, 7 Apr 2002 17:43:21 +0000 (17:43 +0000)] 
Use lib/hash for the symbol table.
* src/gram.c (ntokens): Initialize to 1, to reserve a slot for
EOF.
* src/lex.c (lex): Set the `number' member of new terminals.
* src/reader.c (bucket_check_defined, bucket_make_alias)
(bucket_check_alias_consistence, bucket_translation): New.
(reader, grammar_free, readgram, token_translations_init)
(packsymbols): Adjust.
(reader): Number the predefined tokens.
* src/reduce.c (inaccessable_symbols): Just use hard coded numbers
for predefined tokens.
* src/symtab.h (bucket): Remove all the hash table related
members.
* src/symtab.c (symtab): Replace by...
(bucket_table): this.
(bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
(buckets_new, buckets_do): New.

22 years ago* src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
Akim Demaille [Sun, 7 Apr 2002 17:42:49 +0000 (17:42 +0000)] 
* src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
(start_symbol, max_user_token_number, semantic_parser)
(error_token_number): Initialize.
* src/reader.c (grammar, start_flag, startval, typed, lastprec):
Initialize.
(reader): Don't.
(errtoken, eoftoken, undeftoken, axiom): Extern.

22 years ago* src/gram.h (rule_s): prec and precsym are now pointers
Akim Demaille [Sun, 7 Apr 2002 17:42:31 +0000 (17:42 +0000)] 
* src/gram.h (rule_s): prec and precsym are now pointers
to the bucket giving the priority/associativity.
Member `associativity' removed: useless.
* src/reduce.c, src/conflicts.c: Adjust.

22 years ago* src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
Akim Demaille [Sun, 7 Apr 2002 17:42:12 +0000 (17:42 +0000)] 
* src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
Properly escape the symbols' TAG when outputting them.

22 years ago* src/lalr.h (LA): Is a bitsetv, not bitset*.
Akim Demaille [Sun, 7 Apr 2002 17:41:59 +0000 (17:41 +0000)] 
* src/lalr.h (LA): Is a bitsetv, not bitset*.

22 years ago* src/lalr.h, src/lalr.c (LAruleno): Replace with...
Akim Demaille [Sun, 7 Apr 2002 17:41:44 +0000 (17:41 +0000)] 
* src/lalr.h, src/lalr.c (LAruleno): Replace with...
(LArule): this, which is an array to rule_t*.
* src/print.c, src/conflicts.c: Adjust.

22 years ago* src/gram.h (rule_t): Rename `number' as `user_number'.
Akim Demaille [Sun, 7 Apr 2002 17:41:28 +0000 (17:41 +0000)] 
* src/gram.h (rule_t): Rename `number' as `user_number'.
`number' is a new member.
Adjust dependencies.
* src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.

22 years agoAs a result of the previous patch, it is no longer needed
Akim Demaille [Sun, 7 Apr 2002 17:41:08 +0000 (17:41 +0000)] 
As a result of the previous patch, it is no longer needed
to reorder ritem itself.
* src/reduce.c (reduce_grammar_tables): Don't sort RITEM.

22 years agoBe sure never to walk through RITEMS, but use only data related to
Akim Demaille [Sun, 7 Apr 2002 17:40:56 +0000 (17:40 +0000)] 
Be sure never to walk through RITEMS, but use only data related to
the rules themselves. RITEMS should be banished.
* src/output.c (output_token_translations): Rename as...
(prepare_tokens): this.
In addition to `translate', prepare the muscles `tname' and
`toknum', which were handled by...
(output_rule_data): this.
Remove, and move the remainder of its outputs into...
(prepare_rules): this new routines, which also merges content from
(output_gram): this.
(prepare_rules): Be sure never to walk through RITEMS.
(output_stos): Rename as...
(prepare_stos): this.
(output): Always invoke prepare_states, after all, just don't use it
in the output if you don't need it.

22 years ago* src/LR0.c (new_state): Display `nstates' as the name of the
Akim Demaille [Sun, 7 Apr 2002 17:40:16 +0000 (17:40 +0000)] 
* src/LR0.c (new_state): Display `nstates' as the name of the
newly created state.
Adjust to initialize first_state and last_state if needed.
Be sure to distinguish the initial from the final state.
(new_states): Create the itemset of the initial state, and use
new_state.
* src/closure.c (closure): Now that the initial state has its
items properly set, there is no need for a special case when
creating `ruleset'.
As a result, now the rule 0, reducing to $axiom, is visible in the
outputs.  Adjust the test suite.
* tests/conflicts.at (Solved SR Conflicts)
(Unresolved SR Conflicts): Adjust.
* tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
* tests/conflicts.at (S/R in initial): New.

22 years ago* src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
Akim Demaille [Sun, 7 Apr 2002 17:38:37 +0000 (17:38 +0000)] 
* src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
the RHS of the rules.
* src/output.c (output_gram): Likewise.

22 years ago* src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
Akim Demaille [Sun, 7 Apr 2002 17:38:22 +0000 (17:38 +0000)] 
* src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
bucket.
Adjust all dependencies.
* src/reduce.c (nonterminals_reduce): Don't forget to renumber the
`number' of the buckets too.
* src/gram.h: Include `symtab.h'.
(associativity): Move to...
* src/symtab.h: here.
No longer include `gram.h'.

22 years ago* src/gram.h, src/gram.c (rules_rhs_length): New.
Akim Demaille [Sun, 7 Apr 2002 17:36:38 +0000 (17:36 +0000)] 
* src/gram.h, src/gram.c (rules_rhs_length): New.
(ritem_longest_rhs): Use it.
* src/gram.h (rule_t): `number' is a new member.
* src/reader.c (packgram): Set it.
* src/reduce.c (reduce_grammar_tables): Move the useless rules at
the end of `rules', and count them out of `nrules'.
(reduce_output, dump_grammar): Adjust.
* src/print.c (print_grammar): It is no longer needed to check for
the usefulness of a rule, as useless rules are beyond `nrules + 1'.
* tests/reduce.at (Reduced Automaton): New test.

22 years agoFix big patch application problems.
Akim Demaille [Sun, 7 Apr 2002 16:42:32 +0000 (16:42 +0000)] 
Fix big patch application problems.

22 years ago* src/gram.h, src/gram.c (rules_swap): New.
Akim Demaille [Sun, 7 Apr 2002 16:39:49 +0000 (16:39 +0000)] 
* src/gram.h, src/gram.c (rules_swap): New.
(ritem_longest_rhs): Use it.
* src/gram.h (rule_t): `number' is a new member.
* src/reader.c (packgram): Set it.
* src/reduce.c (reduce_grammar_tables): Move the useless rules at
the end of `rules', and count them out of `nrules'.
(reduce_output, dump_grammar): Adjust.
* src/print.c (print_grammar): It is no longer needed to check for
the usefulness of a rule, as useless rules are beyond `nrules + 1'.
* tests/reduce.at (Reduced Automaton): New test.

22 years ago* src/output.c (output_rule_data): Fix various range errors:
Akim Demaille [Sun, 7 Apr 2002 16:29:32 +0000 (16:29 +0000)] 
* src/output.c (output_rule_data): Fix various range errors:
`rules' starts at 1, not 0.

22 years agoRemove the useless rules from the parser.
Akim Demaille [Sun, 7 Apr 2002 16:28:39 +0000 (16:28 +0000)] 
Remove the useless rules from the parser.
* src/gram.h, src/gram.c (rules_swap, rule_rhs_length): New.
(ritem_longest_rhs): Use the latter.
* src/gram.h (rule_t): `number' is a new member.
* src/reader.c (packgram): Set it.
* src/reduce.c (reduce_grammar_tables): Move the useless rules at
the end of `rules', and count them out of `nrules'.
(reduce_output, dump_grammar): Adjust.
* src/print.c (print_grammar): It is no longer needed to check for
the usefulness of a rule, as useless rules are beyond `nrules + 1'.
* tests/reduce.at (Reduced Automaton): New test.
Changes in version 1.49a:
* False `Token not used' report fixed.
On a grammar such as
/* Allocate input grammar variables for bison,
This file is part of Bison, the GNU Compiler Compiler.
int error_token_number;
/*------------------------.
| Dump RITEM for traces.  |
`------------------------*/
size_t
ritem_longest_rhs (void)
{
int i;
return max;
}
typedef struct rule_s
{
short lhs;
short *rhs;
short prec;
extern int error_token_number;
/* Dump RITEM for traces. */
void ritem_print PARAMS ((FILE *out));
fprintf (out, "%snn", _("Grammar"));
fprintf (out, "  %sn", _("Number, Line, Rule"));
for (i = 1; i < nrules + 1; i++)
fputs ("nn", out);
while (p)
{
bucket *ruleprec = p->ruleprec;
rules[ruleno].lhs = p->sym->number;
rules[ruleno].rhs = ritem + itemno;
rules[ruleno].line = p->line;
bitset_set (V1, rules[i].precsym);
}
static void
reduce_grammar_tables (void)
{
if (nuseless_productions > 0)
{
int pn;
for (pn = 1; pn < nrules + 1; pn++)
rules[pn].useful = bitset_test (P, pn);
}
}
{
int i;
fprintf (out, "%snn", _("Useless rules:"));
fputs ("nn", out);
}
}
fprintf (out, "nn");
fprintf (out, "Rulesn-----nn");
fprintf (out, "Num (Prec, Assoc, Useful, Ritem Range) Lhs -> Rhs (Ritem range) [Num]n");
{
int rhs_count = 0;
/* Find the last RHS index in ritems. */
}
fprintf (out, "nn");
fprintf (out, "Rules interpretedn-----------------nn");
{
fprintf (out, "%-5d  %s :", i, symbols[rules[i].lhs]->tag);
for (r = rules[i].rhs; *r >= 0; r++)
## ------------------- ##
## Underivable Rules.  ##
## ------------------- ##

22 years agoRegen.
Akim Demaille [Sun, 7 Apr 2002 16:13:46 +0000 (16:13 +0000)] 
Regen.

22 years ago* src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
Akim Demaille [Sun, 7 Apr 2002 15:30:42 +0000 (15:30 +0000)] 
* src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
lacking `+ 1' to nrules, Bison reported as useless a token if it
was used solely to set the precedence of the last rule...

22 years ago* data/bison.c++, data/bison.simple: Don't output the current file
Akim Demaille [Sun, 7 Apr 2002 15:30:31 +0000 (15:30 +0000)] 
* data/bison.c++, data/bison.simple: Don't output the current file
name in #line, to avoid useless diffs between two identical
outputs under different names.

22 years ago* src/closure.c, src/print.c, src/reader.c, src/reduce.c:
Akim Demaille [Sun, 7 Apr 2002 15:30:20 +0000 (15:30 +0000)] 
* src/closure.c, src/print.c, src/reader.c, src/reduce.c:
Normalize loops to using `< nrules + 1', not `<= nrules'.