Commit Graph

  • bfb74f79b8 (YYSTD): New macro. (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE, YYFPRINTF, YYSTDERR): Use it to simplify macros, and fix some C++ porting problems reported by Hans Aberg. Paul Eggert 2001-12-17 23:50:16 +00:00
  • 897668ee8d * src/bison.simple: Don't hard code the skeleton line and filename. * src/output.c (output_parser): Rename 'line' as 'output_line'. New line counter 'skeleton_line' (skeleton-line muscle). Marc Autret 2001-12-17 20:28:51 +00:00
  • ab3399e0c6 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that YYDEBUG must be defined to a nonzero value. Paul Eggert 2001-12-17 19:43:46 +00:00
  • 4947ebdb4c Document that YYDEBUG must be defined to a nonzero value. Paul Eggert 2001-12-17 19:43:23 +00:00
  • c527b2d483 (yytname): Do not assume that the user defines YYDEBUG to a properly parenthesized expression. Paul Eggert 2001-12-17 19:41:46 +00:00
  • c520f816b1 * src/output.c (output): Define YYDEBUG to 0 if it is not defined and if we are not debugging. POSIX requires this. * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document this. Paul Eggert 2001-12-17 18:49:14 +00:00
  • cc6ed5f7f1 Define YYDEBUG to 0 if it is not defined and if we are not debugging. POSIX requires this. Paul Eggert 2001-12-17 18:48:43 +00:00
  • ac28f67c0b (output): Define YYDEBUG to 0 if it is not defined and if we are not debugging. POSIX requires this. Paul Eggert 2001-12-17 18:45:59 +00:00
  • 23a1adea4a Regen. Akim Demaille 2001-12-17 17:33:59 +00:00
  • 3877f72ba2 * src/state.h (state_t): Rename lookaheads as lookaheadsp. nlookaheads is a new member. Adjust all users. * src/lalr.h (nlookaheads): Remove this orphan declaration. * src/lalr.c (initialize_lookaheads): Set nlookaheads for each state. Akim Demaille 2001-12-17 17:32:59 +00:00
  • 331dbc1bb7 * src/files.h, src/files.c (open_files, close_files): Remove. * src/main.c (main): Don't open/close files, nor invoke lex_free, let... * src/reader.c (reader): Do it. Akim Demaille 2001-12-17 17:32:39 +00:00
  • be750e4c49 * src/conflicts.c (print_reductions): Formatting changes. Akim Demaille 2001-12-17 17:32:20 +00:00
  • 709ae8c6ee * src/conflicts.c (flush_shift): Also adjust lookaheadset. (flush_reduce): New. (resolve_sr_conflict): Adjust. Akim Demaille 2001-12-17 17:32:08 +00:00
  • f87685c324 * src/output.c (output_obstack): Be static and rename as... (format_obstack): this, to avoid any confusion with files.c's output_obstack. * src/reader.h (muscle_obstack): Move to... * src/output.h: here, since it's defined in output.c. Akim Demaille 2001-12-17 17:31:56 +00:00
  • 837491d810 * src/output.c (action_row, save_column, default_goto) (sort_actions, matching_state, pack_vector): Better variable locality. Akim Demaille 2001-12-17 17:31:37 +00:00
  • 796d61fbdd * src/output.c: Various formatting changes. Akim Demaille 2001-12-17 17:31:24 +00:00
  • 64d15509b6 * src/files.c (output_files): Free the output_obstack. * src/main.c (main): Call print and print_graph conditionally. * src/print.c (print): Work unconditionally. * src/print_graph.c (print_graph): Work unconditionally. * src/conflicts.c (log_resolution): Output only if verbose_flag. Akim Demaille 2001-12-17 17:31:10 +00:00
  • 367c7a47d4 Regen. Akim Demaille 2001-12-17 17:30:47 +00:00
  • fbc8ecb7ef * src/output.c (actions_output): Fix. When we use %no-lines, there is one less line per action. Marc Autret 2001-12-16 01:45:19 +00:00
  • f0440388e9 * src/bison.simple: Remove a useless #line directive. s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'. * src/output.c (get_lines_number): New. (output_parser): Adjust, now takes care about the lines of a output muscles. Fix line numbering. (actions_output): Computes the number of lines taken by actions. (output_master_parser): Insert new skeleton which is the name of the output parser file name. Marc Autret 2001-12-16 01:26:25 +00:00
  • a79986b830 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility. Marc Autret 2001-12-15 18:38:57 +00:00
  • bcb05e75f5 Update. Marc Autret 2001-12-15 17:58:58 +00:00
  • 4ec8e00f60 * src/output.c (output_gram): Keep track of the hairy one. Marc Autret 2001-12-15 17:34:37 +00:00
  • 5ee2aaf2fa Regen. Akim Demaille 2001-12-15 17:11:49 +00:00
  • a64d6fe0c3 Fix INCLUDES. Akim Demaille 2001-12-15 16:35:48 +00:00
  • 1a4648ff0d Make `make distcheck' work. * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses system.h which uses libgettext.h. Akim Demaille 2001-12-15 16:31:04 +00:00
  • 8165afc445 regen. Akim Demaille 2001-12-15 16:29:52 +00:00
  • f30e1ab65c * src/nullable.c (set_nullable): Useless rules must be skipped, otherwise, since we range over their symbols, we might look at a nonterminal which no longer `exists'', i.e., it is not counted in nvars', hence we overflow our arrays. Akim Demaille 2001-12-15 16:22:13 +00:00
  • 9c2c67e6fe * src/nullable.c (set_nullable): Useless rules must be skipped, otherwise, since we range over their symbols, we might look at a nonterminal which no longer `exists'', i.e., it is not counted in nvars', hence we overflow our arrays. Akim Demaille 2001-12-15 16:21:44 +00:00
  • 93ede233f5 The header can also be produced directly, without any obstack! Yahoo! * src/files.c, src/files.h (defines_obstack): Remove. (compute_header_macro): Global. (defines_obstack_save): Remove. * src/reader.c (parse_union_decl): No longer output to defines_obstack: its content can be found in the `stype' muscle anyway. (output_token_translations): Merge into... (symbols_output): this. Rename as... (symbols_save): this. (reader): Adjust. * src/output.c (header_output): New. (output): Call it. Akim Demaille 2001-12-15 16:06:50 +00:00
  • 2666f92821 * src/reader.c (parse_union_decl): Instead of handling two obstack simultaneously, use one to define the `stype' muscle, and use the value of the latter to fill defines_obstack. (copy_comment): Remove. (copy_comment2): Work for a single obstack. Rename as... (copy_comment): this. Akim Demaille 2001-12-15 15:25:15 +00:00
  • 428046f8d4 * src/lex.c, src/lex.h (xgetc): No longer static. * src/reader.c (parse_union_decl): Revamp. Akim Demaille 2001-12-15 15:13:36 +00:00
  • ea52d7066d Still making progress in separating Bison into (i) input, (ii) process, (iii) output: now we can directly output the parser file without using table_obstack at all. * src/files.c, src/files.h (table_obstack): Bye bye. (parser_file_name): New. * src/files.c (compute_output_file_names): Compute it. * src/output.c (actions_output, output_parser) (output_master_parser): To a file instead of an obstack. Akim Demaille 2001-12-15 14:35:57 +00:00
  • 3f96f4dc41 Attach actions to rules, instead of pre-outputting them to actions_obstack. * src/gram.h (rule_t): action and action_line are new members. * src/reader.c (symbol_list): Likewise. (copy_action): Save the actions within the rule. (packgram): Save them in rule_table. * src/output.c (actions_output): New. (output_parser): Use it on %%actions'. (output_rule_data): Don't free rule_table. (output): Do it. (prepare): Don't save the action' muscle. * src/bison.simple: s/%%action/%%actions/. Akim Demaille 2001-12-15 14:14:30 +00:00
  • 51576fb3c6 * src/reader.c (copy_action): When --yacc, don't append a `;' to the user action: let it fail if lacking. Suggested by Aharon Robbins and Tom Tromey. Akim Demaille 2001-12-15 11:09:05 +00:00
  • 50d780b566 Regen. Akim Demaille 2001-12-15 11:08:37 +00:00
  • 52e9776027 * src/reader.c (copy_action): When --yacc, don't append a `;' to the user action: let it fail if lacking. Suggested by Aharon Robbins and Tom Tromey. Akim Demaille 2001-12-15 11:07:56 +00:00
  • 21292982fe Regen. Akim Demaille 2001-12-15 10:59:00 +00:00
  • 2648a72df7 * src/lex.c (literalchar): Simply return the char you decoded, non longer mess around with obstacks and int pointers. Adjust all callers. Akim Demaille 2001-12-14 16:03:28 +00:00
  • 92790e5bf0 * src/lex.c (literalchar): Don't escape the special characters, just decode them, and keep them as char (before, eol was output as the 2 char string `n' etc.). * src/output.c (output_rule_data): Use quotearg to output the token strings. Akim Demaille 2001-12-14 15:39:05 +00:00
  • 927c155774 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE): Do not infringe on the global user namespace when using C++. (YYFPRINTF, YYSTDERR): New macros, needed for the above. All uses of fprintf' and stderr' changed. Paul Eggert 2001-12-14 01:54:30 +00:00
  • b7575ffe6f (const): Do not define; that is now config.h's job. (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE): Do not infringe on the global user namespace when using C++. (YYFPRINTF, YYSTDERR): New macros, needed for the above. All uses of fprintf' and stderr' changed. Paul Eggert 2001-12-14 01:52:50 +00:00
  • 02a81e05f9 Document YYFPRINTF, YYSTDERR. Paul Eggert 2001-12-14 01:51:33 +00:00
  • 9f0938ad32 Bump to 1.30h. Akim Demaille 2001-12-13 12:07:48 +00:00
  • cb948818d0 . Akim Demaille 2001-12-13 11:18:19 +00:00
  • c0760f18e0 Version 1.30g. v1.30g Akim Demaille 2001-12-13 11:14:19 +00:00
  • c884affb0b Update. Akim Demaille 2001-12-13 11:06:18 +00:00
  • ed8e1f68e9 The computation of nullable is broken: it doesn't handle empty RHS's properly. * tests/torture.at (GNU AWK Grammar): New. * tests/sets.at (Nullable): New. * src/nullable.c (set_nullable): Instead of blindly looping over ritems', loop over the rules, and then over their rhs's. Work around Autotest bugs. * src/warshall.c (bitmatrix_print): Don't use +--+' as table frame, because Autotest understand lines starting with a `+' as traces from the shell. Then, they are not processed properly. Admittedly an Autotest bug, but we don't have time to wait for Autotest to catch up. * tests/regression.at (Broken Closure): Adjust to the new table frames. Move to... * tests/sets.at: here. Akim Demaille 2001-12-13 11:02:21 +00:00
  • cb581495e6 * src/closure.c (closure): Use nrules instead of playing tricks with BITS_PER_WORD. Akim Demaille 2001-12-13 11:02:04 +00:00
  • 2e729273d6 * src/print.c (print_actions): Output the handling of `$' as the traces do: shifting the token EOF. Before EOF was treated as a nonterminal. * tests/regression.at: Adjust some tests. * src/print_graph.c (print_core): Complete the set of items via closure. The next-to-final and final states are still unsatisfying, but that's to be addressed elsewhere. No longer output the rule numbers, but do output the state number. A single loop for the shifts + gotos is enough, but picked a distinct color for each. (print_graph): Initialize and finalize closure. Akim Demaille 2001-12-13 11:01:51 +00:00
  • 107f7dfbd0 * src/reader.c (readgram): Remove dead code, an strip useless braces. (get_type): Remove, unused. Akim Demaille 2001-12-13 11:01:36 +00:00
  • f7e7f57941 The computation of nullable is broken: it doesn't handle empty RHS's properly. * tests/torture.at (GNU AWK Grammar): New. * tests/sets.at (Nullable): New. * src/nullable.c (set_nullable): Instead of blindly looping over ritems', loop over the rules, and then over their rhs's. Work around Autotest bugs. * src/warshall.c (bitmatrix_print): Don't use +--+' as table frame, because Autotest understand lines starting with a `+' as traces from the shell. Then, they are not processed properly. Admittedly an Autotest bug, but we don't have time to wait for Autotest to catch up. * tests/regression.at (Broken Closure): Adjust to the new table frames. Move to... * tests/sets.at: here. Akim Demaille 2001-12-13 10:59:37 +00:00
  • d1210d1d6e Document YYPRINTF, YYSTDERR. Paul Eggert 2001-12-13 02:45:14 +00:00
  • d5c2eff246 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE): Do not infringe on the global user namespace when using C++. (YYFPRINTF, YYSTDERR): New macros, needed for the above. All uses of fprintf' and stderr' changed. Paul Eggert 2001-12-13 02:22:05 +00:00
  • b59b91bb6e (output): Do not output "#include <stdio.h>"; that is bison.simple's job. stdio.h should be included only if necessary, to avoid infringing on the user name space when possible. Paul Eggert 2001-12-13 02:21:12 +00:00
  • 63e75f2e38 (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE): Do not infringe on the global user namespace when using C++. (YYFPRINTF, YYSTDERR): New macros, needed for the above. All uses of fprintf' and stderr' changed. Paul Eggert 2001-12-13 02:20:28 +00:00
  • 9b53a24f31 * src/complain.h, src/complain.c: Remove error_one_per_line, rely on that of lib/error.c. Akim Demaille 2001-12-12 15:22:46 +00:00
  • 69dc1147ba * src/complain.h, src/complain.c: Remove error_one_per_line, rely on that of lib/error.c. Akim Demaille 2001-12-12 15:21:59 +00:00
  • 3d9d5d34ff Regen. Akim Demaille 2001-12-12 15:19:25 +00:00
  • 701d80ffa0 Regen. Akim Demaille 2001-12-12 12:01:09 +00:00
  • dbfb6dcd33 Some hosts don't like `/' in includes. * src/system.h: Include libgettext.h without qualifying the path. * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove $(top_srcdir). Akim Demaille 2001-12-12 11:58:19 +00:00
  • c79cea6dff Regen. Akim Demaille 2001-12-12 11:56:52 +00:00
  • 88f06d2beb Some hosts don't like `/' in includes. * src/system.h: Include libgettext.h without qualifying the path. * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove $(top_srcdir). Akim Demaille 2001-12-12 11:55:56 +00:00
  • daa938e7f0 Regen. Akim Demaille 2001-12-12 11:55:29 +00:00
  • c3a8cbaaad Update. Marc Autret 2001-12-11 23:03:44 +00:00
  • c3995d9998 Update. Marc Autret 2001-12-11 20:21:09 +00:00
  • c25fb64881 * src/output.c (output_parser): Remove useless muscle. Marc Autret 2001-12-11 20:19:44 +00:00
  • 710ddc4f18 * src/bison.simple: Remove #line just before %%epilogue. It is now handled in ... * src/reader.c (read_additionnal_code): Add the output of a #line for the epilogue. Marc Autret 2001-12-11 20:10:22 +00:00
  • e83d80b8ed * src/reader.c (copy_definition): Re-use CPP-outed code which replace precedent remove. * src/bison.simple: Remove #line before %%prologue because %%input-line is wrong at this time. Marc Autret 2001-12-10 23:19:09 +00:00
  • fbbf9b3bb9 Update. Marc Autret 2001-12-10 22:56:40 +00:00
  • 971d51580b * src/reader.c (symbols_output): Clean up. * src/output.c (output_gram, output): Clean up. Marc Autret 2001-12-10 22:55:06 +00:00
  • f64b50a08c Typo. Akim Demaille 2001-12-10 09:11:42 +00:00
  • 5edafffd36 * src/lalr.c (initialize_lookaheads): New. Extracted from... * src/LR0.c (set_state_table): here. * src/lalr.c (lalr): Call it. Akim Demaille 2001-12-10 09:10:28 +00:00
  • 0279f8e90c * src/state.h (shifts): Remove the `number' member: shifts are attached to state, hence no longer need to be labelled with a state number. Akim Demaille 2001-12-10 09:10:10 +00:00
  • 190c4f5f0a Now that states have a complete set of members, the linked list of shifts is useless: just fill directly the state's shifts member. * src/state.h (shifts): Remove the `next' member. * src/LR0.c (first_state, last_state): Remove. Adjust the callers. (augment_automaton): Don't look for the shifts that must be added a shift on EOF: it is those of the state we looked for! But now, since shifts are attached, it is no longer needed to looking merely by its id: its number. Akim Demaille 2001-12-10 09:09:49 +00:00
  • 2a73b93df4 * src/LR0.c (augment_automaton): Better variable locality. Remove an impossible branch: if there is a state corresponding to the start symbol being shifted, then there is shift for the start symbol from the initial state. Akim Demaille 2001-12-10 09:09:28 +00:00
  • 74392f6a54 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state' only when appropriate: when insert_start_shifting_state' is not invoked. * tests/regression.at (Rule Line Numbers): Adjust. Akim Demaille 2001-12-10 09:09:14 +00:00
  • 37c82725c8 * src/LR0.c (augment_automaton): Now that all states have shifts, merge the two cases addition shifts to the initial state. Akim Demaille 2001-12-10 09:09:00 +00:00
  • 6a164e0c96 * src/lalr.c (set_state_table): Move to... * src/LR0.c: here. * src/lalr.c (lalr): Don't call it... * src/LR0.c (generate_states): do it. * src/LR0.h (first_state): Remove, only the table is used. Akim Demaille 2001-12-10 09:08:46 +00:00
  • 7215de245c * src/LR0.h (first_shift, first_reduction): Remove. * src/lalr.c: Don't use first_shift: find shifts through the states. Akim Demaille 2001-12-10 09:08:28 +00:00
  • 80e25d4d46 * src/LR0.c: Attach shifts to states as soon as they are computed. * src/lalr.c (set_state_table): Instead of assigning shifts to state, just assert that the mapping was properly done. Akim Demaille 2001-12-10 09:08:09 +00:00
  • 0ab3728b12 * src/LR0.c (insert_start_shift): Rename as... (insert_start_shifting_state): this. (insert_eof_shifting_state, insert_accepting_state): New. (augment_automaton): Adjust. Better locality of the variables. When looking if the start_symbol is shifted from the initial state, using while (... symbol != start_symbol ...)' sounds better than while (... symbol < start_symbol ...)': If fail to see how the order between symbols could be relevant! Akim Demaille 2001-12-10 09:07:55 +00:00
  • 78af9bbcd3 * src/getargs.h: Don't declare spec_name_prefix' and spec_file_prefix', declared by src/files.h. * src/files.c, src/files.h: Default for spec_name_prefix is "yy". * src/muscle_tab.c (muscle_init): Default prefix to NULL. * src/output.c (prepare): Adjust. * src/reader.c (symbols_output): Likewise. * src/vmsgetargs.c: Vaguely adjust, but who cares? Akim Demaille 2001-12-10 09:07:41 +00:00
  • bdef2a413a * src/muscle_tab.c (muscle_init): NULL is a better default than `"0"'. Akim Demaille 2001-12-10 09:07:17 +00:00
  • 3735969c7d * src/reader.c (reader): Calling symbols_output once is enough. Akim Demaille 2001-12-10 09:07:03 +00:00
  • 49701457c2 Now that states have a complete set of members, the linked list of reductions is useless: just fill directly the state's reductions member. * src/state.h (struct reductions): Remove member number' and next'. * src/LR0.c (first_reduction, last_reduction): Remove. (save_reductions): Don't link the new reductions, store them in this_state. * src/lalr.c (set_state_table): No need to attach reductions to states, it's already done. * src/output.c (output_actions): No longer free the shifts, then the reductions, then the states: free all the states and their members. Akim Demaille 2001-12-10 09:06:48 +00:00
  • 0edad74997 * src/options.c (OPTN, DRTV, BOTH): New. (option_table): Use them. * src/muscle_tab.c: Don't include xalloc.h and string.h: that's the job of system.h. * src/options.c: Don't include stdio.h and xalloc.h for the same reasons. Akim Demaille 2001-12-10 09:06:27 +00:00
  • 5449dd0f25 * src/output.c (output, prepare): Make sure the values of the muscles action' and prologue' are 0-terminated. Akim Demaille 2001-12-10 09:06:13 +00:00
  • a870c5670e Clean up GCC warnings. * src/reader.c (copy_action): buf' is not used. (parse_skel_decl): Be static. * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve const'. * src/options.h (create_long_option_table): Have a real prototype. * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete) (hash_delete_at): Return const void *. Adjust casts to preserve the const. Akim Demaille 2001-12-10 09:05:47 +00:00
  • 75addd5e5f Remove tests/Makefile.in and po/Makefile.in. Akim Demaille 2001-12-10 09:02:16 +00:00
  • 80df876864 * configure.in: Require 2.52g. M4 is not needed, but AUTOM4TE is. * m4/m4.m4: Remove. * tests/Makefile.am: Adjust. Akim Demaille 2001-12-10 09:00:36 +00:00
  • f693ad146e One structure for states is enough, even though theoretically there are LR(0) states and LALR(1) states. * src/lalr.h (state_t): Remove. (state_table): Be state_t **, not state_t *. * src/state.h (core, CORE_ALLOC): Rename as... (state_t, STATE_ALLOC): this. Add the LALR(1) members: shifts, reductions, errs. * src/LR0.c (state_table): Rename as... (state_hash): this, to avoid name clashes with the global `state_table'. * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust. Akim Demaille 2001-12-10 08:45:22 +00:00
  • 74ffbcb6bf Bison dumps core on bash.y. Reported by Pascal Bart. * src/warshall.c (bitmatrix_print): New. (TC): Use it. When performing a transitive closure R(i, j) && R(j, k) => R(i, k), j must be the outer loop. * tests/regression.at (Broken Closure): New. Akim Demaille 2001-12-10 08:44:49 +00:00
  • ed45e93ed8 Bison dumps core on bash.y. Reported by Pascal Bart. * src/warshall.c (bitmatrix_print): New. (TC): Use it. When performing a transitive closure R(i, j) && R(j, k) => R(i, k), j must be the outer loop. * tests/regression.at (Broken Closure): New. Akim Demaille 2001-12-10 08:43:38 +00:00
  • 74d757ab92 Fix an es.po problem. Akim Demaille 2001-12-06 14:24:41 +00:00
  • 4be25f1591 Version 1.30g. Akim Demaille 2001-12-05 15:24:53 +00:00
  • b7008317cf . Akim Demaille 2001-12-05 12:01:24 +00:00
  • 3f66ed1c8b Update. v1.30f Akim Demaille 2001-12-05 11:57:46 +00:00
  • 58dce15432 Version 1.30f. Akim Demaille 2001-12-05 11:46:05 +00:00
  • 07708e1946 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and its argument. Reported by Peter Hámorský. Akim Demaille 2001-12-05 10:59:35 +00:00