Compare commits

...
80 Commits
Author SHA1 Message Date
Akim Demaille 6918b5fcc9 Version 1.28d. 2001-08-29 12:32:10 +00:00
Robert Anisko 38e616f0f5 * src/bison.simple (yyparse): Don't take the address of an
item before the start of an array, as that doesn't conform to
the C Standard.
2001-08-29 12:21:38 +00:00
Akim Demaille db433e9db8 * doc/bison.texinfo (Location Tracking Calc): New node. 2001-08-29 12:16:04 +00:00
Robert Anisko 870f12c270 * src/output.c (output): Do not define const, as this now
causes more problems than it cures.
2001-08-29 12:13:03 +00:00
Akim Demaille e0a53a7f4a More ignores. 2001-08-29 12:08:41 +00:00
Akim Demaille 27c1ceb8da * doc/bison.texinfo: Modernize @node' and @top' use: just name
the nodes.
Be sure to tag the `detailmenu'.
2001-08-29 12:07:46 +00:00
Akim Demaille 8f5d3a2dd5 Update. 2001-08-29 10:46:39 +00:00
Akim Demaille adfd774c80 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
download in a tmp dir.
2001-08-29 10:46:17 +00:00
Marc Autret 057194c61e * config/depcomp: New file. 2001-08-28 16:25:45 +00:00
Marc Autret a6f622cd50 * doc/bison.1 (mandoc): Adjust.
From Juan Manuel Guerrero.
2001-08-28 13:58:27 +00:00
Marc Autret 2b8ce46775 * src/print_graph.c (print_state): Fix. 2001-08-28 11:33:36 +00:00
Marc Autret 19553c4e06 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
char * members.
Echo modifications to the functions prototypes.
* src/vcg.c (add_classname, add_infoname): Adjust arguments.
2001-08-27 22:16:23 +00:00
Marc Autret b1722803ec * src/vcg.c: Include `xalloc.h'.
(add_colorentry): New.
(add_classname): New.
(add_infoname): New.
* src/vcg.h: Add new prototypes.
2001-08-27 12:02:47 +00:00
Akim Demaille 6f5e0eea04 Regen. 2001-08-27 10:50:12 +00:00
Akim Demaille e4ad4676be * Makefile.maint: Sync. again with CVS Autoconf. 2001-08-27 10:44:39 +00:00
Akim Demaille 7b50efe542 Run update. 2001-08-27 10:14:26 +00:00
Akim Demaille cf90ca5d46 * Makefile.maint: Formatting changes.
(po-update, cvs-update, update): New targets.
(AMTAR): Remove.
2001-08-27 10:14:05 +00:00
Akim Demaille e373aad966 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
* Makefile.maint: Sync. with CVS Autoconf.
2001-08-27 09:33:34 +00:00
Marc Autret 3e4c37cf7b * src/vcg.h (struct infoname_s): New.
(struct colorentry_s): New.
(graph_s): New fields {vertical,horizontal}_order in structure.
Add `infoname' field.
Add `colorentry' field;
* src/vcg_defaults.h (G_VERTICAL_ORDER): New.
(G_HORIZONTAL_ORDER): New.
(G_INFONAME): New.
(G_COLORENTRY): New.
* src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
Add output of `infoname'.
Add output of `colorentry'.
2001-08-26 23:48:50 +00:00
Marc Autret dfaa776005 * src/reader.c (parse_dquoted_param): Rename variable index' to i'.
This one shadowed a global parameter.
2001-08-26 23:36:42 +00:00
Marc Autret aecd294cb0 Adjust 2001-08-26 23:31:49 +00:00
Marc Autret 52eddd8c33 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
instead of `unsigned'.
(print_state): Donnot call obstack_object_size () in obstack_grow ()
to avoid macro variables shadowing.
2001-08-24 18:47:20 +00:00
Marc Autret 60403d1bc1 * src/lex.c (percent_table): Typo: s/naem/name/.
Add graph option.
Normalize new options declarations.
2001-08-24 18:36:50 +00:00
Pascal Bart dd9f12de60 * tests/suite.at: Exercise %header_extension and %source_extension. 2001-08-21 07:30:37 +00:00
Marc Autret 6085f203e1 Update with new graph option. 2001-08-16 20:56:55 +00:00
Marc Autret 7a360eeaed * src/reader.c (parse_dquoted_param): New.
(parse_header_extension_decl): Use it.
(parse_source_extension_decl): Likewise.
2001-08-16 20:48:02 +00:00
Marc Autret af550e2927 * src/vcg.c: Remove includes of complain.h' and xalloc.h'.
(get_xxxx_str): Use assert () instead of complain ().
Remove return invokations in default cases.
(get_decision_str): Modify default behaviour. Remove second argument.
Echo modifications on calls.
(output_graph): Fix.
2001-08-16 20:01:14 +00:00
Marc Autret 78632bbcdc * src/getargs.c (usage): Update with ``-g, --graph''. 2001-08-16 18:50:04 +00:00
Marc Autret 483c899a17 * doc/bison.texinfo (Bison Options): Add items -g', --graph'.
(Option Cross Key): Likewise.
* doc/bison.1: Update.
2001-08-16 18:29:46 +00:00
Akim Demaille 8c7d6a3de8 . 2001-08-15 08:56:45 +00:00
Akim Demaille e795bd7376 (compute_header_macro): Unconstify the result. 2001-08-15 08:53:15 +00:00
Akim Demaille 7cae438bd8 po/POTFILES.in: Complete it even more. 2001-08-15 08:49:20 +00:00
Akim Demaille c427611526 po/POTFILES.in: Complete. 2001-08-15 08:47:15 +00:00
Akim Demaille 45f8dd1ec5 Version 1.28c. 2001-08-15 08:44:16 +00:00
Akim Demaille e5aa395b38 More cvsignore. 2001-08-15 08:43:44 +00:00
Akim Demaille 0b8afb7723 * src/reader.c (readgram): Indent output macro YYSTYPE.
(packsymbols): Likewise.
(output_token_defines): Likewise.
* src/files.c: Standardize.
(compute_header_macro): New.
(defines_obstack_save): New. Use compute_header_macro.
(output_files): Update. Use defines_obstack_save.
2001-08-15 08:40:19 +00:00
Akim Demaille 683e29a634 Regen. 2001-08-15 08:38:25 +00:00
Akim Demaille f0130d39ff Formatting changes. 2001-08-15 08:32:42 +00:00
Akim Demaille f9a8293a3f * doc/bison.texinfo (Table of Symbols): Document
YYSTACK_USE_ALLOCA.
2001-08-15 08:25:10 +00:00
Akim Demaille 150ca7a72e * missing: Update from CVS Automake.
* config/config.guess, config/config.sub, config/texinfo.tex:
Update from gnu.org.
2001-08-15 08:09:19 +00:00
Akim Demaille 0a3b9e5fb5 Makefile.maint (CVS): New var. 2001-08-15 08:08:56 +00:00
Akim Demaille 69b5cec495 * Makefile.maint: Sync with CVS Autoconf. 2001-08-15 07:56:58 +00:00
Pascal Bart f2b5126e47 Apply GNU Free Documentation License to manual. 2001-08-14 14:13:16 +00:00
Marc Autret 4ecbf79698 Turn on %{source,header}_extension features.
* src/lex.c (percent_table): Un-CPP out header_extension and
source_extension.
* src/files.c (compute_exts_from_gf): Compare pointers with NULL.
(compute_exts_from_src): Remove conditions. It restores priorities
between options.
2001-08-14 11:28:48 +00:00
Marc Autret 95fb566259 * src/files.c (compute_base_names): Add extensions computing when
`--file-prefix' used.
Standardize function calls.
2001-08-14 10:38:12 +00:00
Marc Autret 78d09da9a5 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
defining it (defined but null disables alloca).
2001-08-13 21:37:22 +00:00
Marc Autret 5a009f2c4c * src/bison.simple (_yy_memcpy): CPP reformat. 2001-08-13 21:10:10 +00:00
Pascal Bart 1e41465a20 * tests/atconfig.in (CPPFLAGS): Fix. 2001-08-13 19:30:26 +00:00
Akim Demaille 79282c6c57 alloca.c, alloca.h and allocate.c are really to be removed. 2001-08-13 14:54:50 +00:00
Akim Demaille fabd3b431d Typos and Copyright. 2001-08-13 14:51:15 +00:00
Akim Demaille ec0926311c Update. 2001-08-13 14:49:18 +00:00
Pascal Bart b02deb443c Add unlink GPL file 2001-08-10 17:32:25 +00:00
Pascal Bart c67a198d15 Add GPL in an include file 2001-08-10 17:21:49 +00:00
Marc Autret 09a6de7e50 * src/print_graph.h: Fix.
* src/reader.c (read_declarations): Use parse_header_extension_decl ().
2001-08-10 10:44:44 +00:00
Akim Demaille b77b9ee0a3 * src/system.h: Provide default declarations for stpcpy, strndup,
and strnlen.
2001-08-10 09:35:50 +00:00
Akim Demaille a940e84e29 Regen. 2001-08-10 09:35:01 +00:00
Marc Autret 6f42a3e682 * doc/bison.texinfo (Locations): Update @$ stuff. 2001-08-10 08:40:02 +00:00
Marc Autret f1c63ceddc * doc/bison.texinfo (Locations): Update @$ stuff. 2001-08-10 08:16:14 +00:00
Marc Autret 3e259915e1 * doc/bison.texinfo (Locations): Update @$ stuff. 2001-08-09 22:35:26 +00:00
Marc Autret ca96bc2d17 * src/bison.simple (YYLLOC_DEFAULT): Update.
(yyparse): Adjust.
2001-08-09 19:59:29 +00:00
Marc Autret fd6b609da9 Adjust 2001-08-09 09:59:08 +00:00
Akim Demaille b6de699170 Add. 2001-08-09 09:59:03 +00:00
Akim Demaille 459ff06402 Regen. 2001-08-09 09:39:49 +00:00
Akim Demaille 4e8ef709e6 Update. 2001-08-09 06:57:09 +00:00
Marc Autret 08a161353c Update. 2001-08-08 23:16:44 +00:00
Marc Autret fdc6758b79 doc/bison.texinfo: Change @samp{$<@dots{}>} to @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule. 2001-08-08 21:55:36 +00:00
Marc Autret 957d4dbf16 ChangeLog: Adjust. 2001-08-08 21:23:04 +00:00
Marc Autret 600cad3b84 VCG updates 2001-08-08 20:31:21 +00:00
Akim Demaille 0eca3194d6 More cvsignore. 2001-08-07 13:06:08 +00:00
Akim Demaille 976e528f02 * tests/atconfig.in (CPPFLAGS): Fix. 2001-08-07 13:03:20 +00:00
Akim Demaille 20e8e5cadf * src/print_graph.c (quote): New.
(print_core): Use it.
2001-08-07 08:18:32 +00:00
Akim Demaille c4b661269e * src/vcg.c (complain.h): Include it.
Unepitaize `return' invocations.
[NDEBUG] (main): Remove.
* src/vcg.h (node_t, edge_t, graph_t): Constify the char * memebers.
* src/files.c (open_files): Initialize graph_obstack.
* src/print_graph.c (print_actions): CPP out useless code.
(print_core): Don't output the last `n' in labels.
Use `quote'.
* src/files.c (output_files): Output the VCG file.
* src/main.c (main): Invoke print_graph ();
2001-08-07 07:58:43 +00:00
Akim Demaille ea4e548a4a PO Update. 2001-08-06 10:23:28 +00:00
Akim Demaille 3e3da79762 * src/print_graph.c (print_actions): CPP out useless code.
* src/vcg.c (complain.h): Include it.
Unepitaize `return' invocations.
* src/vcg.c [NDEBUG] (main): Remove.
2001-08-06 09:50:38 +00:00
Akim Demaille 78348431f2 PO Update. 2001-08-06 09:28:14 +00:00
Akim Demaille 22c2cbc078 Automaton VCG graph output.
Using option ``-g'' or long option ``--graph'', you can generate
a gram_filename.vcg file containing a VCG description of the LALR (1)
automaton of your grammar.
* src/main.c: Call to print_graph() function.
* src/getargs.h: Update.
* src/getargs.c (options): Update to catch `-g' and `--graph' options.
(graph_flag): New flag.
(longopts): Update.
(getargs): Add case `g'.
* src/files.c (graph_obstack): New obstack struct.
(open_files): Initialize new obstack.
(output_files): Saves graph_obstack if required.
* src/files.h (graph_obstack): New extern declaration.
* src/Makefile.am: Add new source files.
2001-08-06 09:22:33 +00:00
Akim Demaille ce4d5ce009 * src/print_graph.c, src/print_graph.h (graph): New.
* src/vcg.h: New file.
* src/vcg.c: New file, VCG graph handling.
2001-08-06 09:05:53 +00:00
Akim Demaille 7333d40316 Add of %source_extension and %header_extension which specify
the source or/and the header output file extension.
* src/files.c (compute_base_names): Remove initialisation of
src_extension and header_extension.
(compute_exts_from_gf): Update.
(compute_exts_from_src): Update.
(output_files): Update.
* src/reader.c (parse_header_extension_decl): New.
(parse_source_extension_decl): New.
(read_declarations): New case statements for the new tokens.
* src/lex.c (percent_table): Add entries for %source_extension
and %header_extension.
* src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
2001-08-06 08:51:41 +00:00
Akim Demaille 8416323152 * configure.in: Bump to 1.28c.
* doc/bison.texinfo: Texinfo thingies.
2001-08-06 08:35:21 +00:00
Akim Demaille 8303fc422a * tests/atconfig.in (CPPFLAGS): Add.
* tests/calc.at (AT_CHECK): Use CPPFLAGS.
2001-08-04 14:00:09 +00:00
81 changed files with 12278 additions and 5300 deletions
+7 -3
View File
@@ -3,6 +3,10 @@ config.cache
config.h
config.log
config.status
stamp-h
bison-*.tar.gz
patches update-log
stamp-h*
bison-*
patches
*.patch *.log log patches applied
*.prj
releases
autom4te.cache
+323
View File
@@ -1,3 +1,326 @@
2001-08-29 Akim Demaille <[email protected]>
Version 1.28d.
2001-08-29 Paul Eggert <[email protected]>
* src/bison.simple (yyparse): Don't take the address of an
item before the start of an array, as that doesn't conform to
the C Standard.
2001-08-29 Robert Anisko <[email protected]>
* doc/bison.texinfo (Location Tracking Calc): New node.
2001-08-29 Paul Eggert <[email protected]>
* src/output.c (output): Do not define const, as this now
causes more problems than it cures.
2001-08-29 Akim Demaille <[email protected]>
* doc/bison.texinfo: Modernize `@node' and `@top' use: just name
the nodes.
Be sure to tag the `detailmenu'.
2001-08-29 Akim Demaille <[email protected]>
* Makefile.maint (do-po-update): Wget refuses to overwrite files:
download in a tmp dir.
2001-08-28 Marc Autret <[email protected]>
* config/depcomp: New file.
2001-08-28 Marc Autret <[email protected]>
* doc/bison.1 (mandoc): Adjust.
From Juan Manuel Guerrero.
2001-08-28 Marc Autret <[email protected]>
* src/print_graph.c (print_state): Fix.
2001-08-27 Marc Autret <[email protected]>
* src/vcg.h (classname_s, infoname_s, node_s): Constify the
char * members.
Echo modifications to the functions prototypes.
* src/vcg.c (add_classname, add_infoname): Adjust arguments.
2001-08-27 Marc Autret <[email protected]>
* src/vcg.c: Include `xalloc.h'.
(add_colorentry): New.
(add_classname): New.
(add_infoname): New.
* src/vcg.h: Add new prototypes.
2001-08-27 Akim Demaille <[email protected]>
* Makefile.maint: Sync. again with CVS Autoconf.
2001-08-27 Akim Demaille <[email protected]>
* Makefile.maint: Formatting changes.
(po-update, cvs-update, update): New targets.
(AMTAR): Remove.
2001-08-27 Akim Demaille <[email protected]>
* Makefile.am (AUTOMAKE_OPTIONS): 1.5.
* Makefile.maint: Sync. with CVS Autoconf.
2001-08-27 Marc Autret <[email protected]>
* src/vcg.h (struct infoname_s): New.
(struct colorentry_s): New.
(graph_s): New fields {vertical,horizontal}_order in structure.
Add `infoname' field.
Add `colorentry' field;
* src/vcg_defaults.h (G_VERTICAL_ORDER): New.
(G_HORIZONTAL_ORDER): New.
(G_INFONAME): New.
(G_COLORENTRY): New.
* src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
Add output of `infoname'.
Add output of `colorentry'.
2001-08-27 Marc Autret <[email protected]>
* src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
This one shadowed a global parameter.
2001-08-24 Marc Autret <[email protected]>
* src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
instead of `unsigned'.
(print_state): Do not call obstack_object_size () in obstack_grow ()
to avoid macro variables shadowing.
2001-08-23 Marc Autret <[email protected]>
* src/lex.c (percent_table): Typo: s/naem/name/.
Add graph option.
Normalize new options declarations.
2001-08-20 Pascal Bart <[email protected]>
* tests/suite.at: Exercise %header_extension and %source_extension.
2001-08-16 Marc Autret <[email protected]>
* src/reader.c (parse_dquoted_param): New.
(parse_header_extension_decl): Use it.
(parse_source_extension_decl): Likewise.
2001-08-16 Marc Autret <[email protected]>
* src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
(get_xxxx_str): Use assert () instead of complain ().
Remove return invokations in default cases.
(get_decision_str): Modify default behaviour. Remove second argument.
Echo modifications on calls.
(output_graph): Fix.
2001-08-16 Marc Autret <[email protected]>
* src/getargs.c (usage): Update with ``-g, --graph''.
2001-08-16 Marc Autret <[email protected]>
* doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
(Option Cross Key): Likewise.
* doc/bison.1: Update.
2001-08-15 Akim Demaille <[email protected]>
Version 1.28c.
2001-08-15 Marc Autret <[email protected]>
* src/reader.c (readgram): Indent output macro YYSTYPE.
(packsymbols): Likewise.
(output_token_defines): Likewise.
* src/files.c: Standardize.
(compute_header_macro): New.
(defines_obstack_save): New. Use compute_header_macro.
(output_files): Update. Use defines_obstack_save.
2001-08-15 Akim Demaille <[email protected]>
* doc/bison.texinfo (Table of Symbols): Document
YYSTACK_USE_ALLOCA.
2001-08-15 Akim Demaille <[email protected]>
* missing: Update from CVS Automake.
* config/config.guess, config/config.sub, config/texinfo.tex:
Update from gnu.org.
2001-08-15 Akim Demaille <[email protected]>
* Makefile.maint: Sync with CVS Autoconf.
2001-08-14 Pascal Bart <[email protected]>
* doc/bison.texinfo: Include GNU Free Documentation License from
`fdl.texi'.
* doc/fdl.texi: Add to package.
2001-08-14 Marc Autret <[email protected]>
Turn on %{source,header}_extension features.
* src/lex.c (percent_table): Un-CPP out header_extension and
source_extension.
* src/files.c (compute_exts_from_gf): Compare pointers with NULL.
(compute_exts_from_src): Remove conditions. It restores priorities
between options.
2001-08-14 Marc Autret <[email protected]>
* src/files.c (compute_base_names): Add extensions computing when
`--file-prefix' used.
Standardize function calls.
2001-08-13 Marc Autret <[email protected]>
* src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
defining it (defined but null disables alloca).
2001-08-13 Marc Autret <[email protected]>
* src/bison.simple (_yy_memcpy): CPP reformat.
2001-08-13 Pascal Bart <[email protected]>
* tests/atconfig.in (CPPFLAGS): Fix.
2001-08-10 Pascal Bart <[email protected]>
* doc/bison.texinfo: Include GNU General Public License from
`gpl.texi'.
* doc/gpl.texi: Add to package.
2001-08-10 Marc Autret <[email protected]>
* src/print_graph.h: Fix.
* src/reader.c (read_declarations): Use parse_header_extension_decl ().
2001-08-10 Akim Demaille <[email protected]>
* src/system.h: Provide default declarations for stpcpy, strndup,
and strnlen.
2001-08-10 Robert Anisko <[email protected]>
* doc/bison.texinfo (Locations): Update @$ stuff.
2001-08-09 Robert Anisko <[email protected]>
* src/bison.simple (YYLLOC_DEFAULT): Update.
(yyparse): Adjust.
2001-08-08 Marc Autret <[email protected]>
* doc/bison.texinfo: Change @samp{$<@dots{}>} to
@samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
Reported by Fabrice Bauzac.
2001-08-08 Marc Autret <[email protected]>
* src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
* src/vcg.c (output_node): Fix.
* src/vcg.h: Cleanup.
* src/print_graph.c: Add comments.
(node_output_size): New global variable. Simplify the formatting of
the VCG graph output.
(print_actions): Unused code is now used. It notifies the final state
and no action states in the VCG graph. It also give the reduce actions.
The `shift and goto' edges are red and the `go to state' edges are
blue.
Get the current node name and node_obstack by argument.
(node_obstack): New variable.
(print_state): Manage node_obstack.
(print_core): Use node_obstack given by argument.
A node is not only computed here but in print_actions also.
(print_graph): CPP out useless code instead of commenting it.
2001-08-07 Pascal Bart <[email protected]>
* tests/atconfig.in (CPPFLAGS): Fix.
2001-08-07 Akim Demaille <[email protected]>
* src/print_graph.c (quote): New.
(print_core): Use it.
2001-08-06 Akim Demaille <[email protected]>, Marc Autret <[email protected]>
* src/vcg.c (complain.h): Include it.
Unepitaize `return' invocations.
[NDEBUG] (main): Remove.
* src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
* src/files.c (open_files): Initialize graph_obstack.
* src/print_graph.c (print_actions): CPP out useless code.
(print_core): Don't output the last `\n' in labels.
Use `quote'.
* src/files.c (output_files): Output the VCG file.
* src/main.c (main): Invoke print_graph ();
2001-08-06 Marc Autret <[email protected]>
Automaton VCG graph output.
Using option ``-g'' or long option ``--graph'', you can generate
a gram_filename.vcg file containing a VCG description of the LALR (1)
automaton of your grammar.
* src/main.c: Call to print_graph() function.
* src/getargs.h: Update.
* src/getargs.c (options): Update to catch `-g' and `--graph' options.
(graph_flag): New flag.
(longopts): Update.
(getargs): Add case `g'.
* src/files.c (graph_obstack): New obstack struct.
(open_files): Initialize new obstack.
(output_files): Saves graph_obstack if required.
* src/files.h (graph_obstack): New extern declaration.
* src/Makefile.am: Add new source files.
2001-08-06 Marc Autret <[email protected]>
* src/print_graph.c, src/print_graph.h (graph): New.
* src/vcg.h: New file.
* src/vcg.c: New file, VCG graph handling.
2001-08-06 Marc Autret <[email protected]>
Add of %source_extension and %header_extension which specify
the source or/and the header output file extension.
* src/files.c (compute_base_names): Remove initialisation of
src_extension and header_extension.
(compute_exts_from_gf): Update.
(compute_exts_from_src): Update.
(output_files): Update.
* src/reader.c (parse_header_extension_decl): New.
(parse_source_extension_decl): New.
(read_declarations): New case statements for the new tokens.
* src/lex.c (percent_table): Add entries for %source_extension
and %header_extension.
* src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
2001-08-06 Marc Autret <[email protected]>
* configure.in: Bump to 1.28c.
* doc/bison.texinfo: Texinfo thingies.
2001-08-04 Pascal Bart <[email protected]>
* tests/atconfig.in (CPPFLAGS): Add.
* tests/calc.at (AT_CHECK): Use CPPFLAGS.
2001-08-03 Akim Demaille <[email protected]>
Version 1.28b.
+3 -1
View File
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
AUTOMAKE_OPTIONS = 1.4 check-news readme-alpha
AUTOMAKE_OPTIONS = 1.5 check-news readme-alpha
ACLOCAL_AMFLAGS = -I m4
@@ -26,3 +26,5 @@ alpha_url_dir = gnu/bison
# Files to update automatically.
wget_files = $(srcdir)/config/config.guess $(srcdir)/config/config.sub \
$(srcdir)/config/texinfo.tex
cvs_files = $(srcdir)/config/missing
+218 -174
View File
@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@@ -59,20 +57,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AT_TESTPATH = @AT_TESTPATH@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
@@ -81,9 +84,9 @@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -93,8 +96,11 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = 1.4 check-news readme-alpha
AUTOMAKE_OPTIONS = 1.5 check-news readme-alpha
ACLOCAL_AMFLAGS = -I m4
@@ -114,69 +120,74 @@ alpha_host = alpha.gnu.org
alpha_url_dir = gnu/bison
# Files to update automatically.
wget_files = $(srcdir)/config/config.guess $(srcdir)/config/config.sub $(srcdir)/config/texinfo.tex
wget_files = $(srcdir)/config/config.guess $(srcdir)/config/config.sub \
$(srcdir)/config/texinfo.tex
cvs_files = $(srcdir)/config/missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
INSTALL Makefile.am Makefile.in NEWS README-alpha THANKS aclocal.m4 \
config.hin configure configure.in
CONFIG_CLEAN_FILES = intl/Makefile
DIST_SOURCES =
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
uninstall-info-recursive all-recursive install-data-recursive \
install-exec-recursive installdirs-recursive install-recursive \
uninstall-recursive check-recursive installcheck-recursive
DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
INSTALL Makefile.am Makefile.in NEWS README-alpha THANKS \
aclocal.m4 config.hin configure configure.in missing \
mkinstalldirs
DIST_SUBDIRS = $(SUBDIRS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in m4/atconfig.m4 m4/c-bs-a.m4 m4/codeset.m4 \
m4/error.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 \
m4/isc-posix.m4 m4/lcmessage.m4 m4/m4.m4 m4/malloc.m4 \
m4/mbstate_t.m4 m4/prereq.m4 m4/progtest.m4 \
m4/realloc.m4 m4/strerror_r.m4 m4/warning.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): configure.in m4/atconfig.m4 m4/c-bs-a.m4 m4/codeset.m4 m4/error.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/m4.m4 m4/malloc.m4 m4/mbstate_t.m4 m4/prereq.m4 m4/progtest.m4 m4/realloc.m4 m4/strerror_r.m4 m4/warning.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h
@if test ! -f $@; then \
rm -f stamp-h; \
$(MAKE) stamp-h; \
else :; fi
stamp-h: $(srcdir)/config.hin $(top_builddir)/config.status
@rm -f stamp-h stamp-hT
@echo timestamp > stamp-hT 2> /dev/null
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h:config.hin \
$(SHELL) ./config.status
@echo timestamp > stamp-h 2> /dev/null
$(srcdir)/config.hin: $(srcdir)/stamp-h.in
@mv stamp-hT stamp-h
$(srcdir)/config.hin: $(srcdir)/./stamp-h.in
@if test ! -f $@; then \
rm -f $(srcdir)/stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \
rm -f $(srcdir)/./stamp-h.in; \
$(MAKE) $(srcdir)/./stamp-h.in; \
else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
$(srcdir)/./stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
@rm -f $(srcdir)/./stamp-h.in $(srcdir)/./stamp-h.inT
@echo timestamp > $(srcdir)/./stamp-h.inT 2> /dev/null
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
@mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -184,12 +195,7 @@ maintainer-clean-hdr:
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
$(RECURSIVE_TARGETS):
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
@@ -212,11 +218,16 @@ mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
@@ -235,93 +246,71 @@ tags-recursive:
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.hin$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.hin $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags config.hin $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = .
# Avoid unsightly `./'.
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) dist
-rm -rf $(distdir)
@banner="$(distdir).tar.gz is ready for distribution"; \
dashes=`echo "$$banner" | sed s/./=/g`; \
echo "$$dashes"; \
echo "$$banner"; \
echo "$$dashes"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
GZIP_ENV = --best
distdir: $(DISTFILES)
@if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" > /dev/null; then :; else \
@if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" >/dev/null; \
then :; else \
echo "NEWS not updated; not releasing" 1>&2; \
exit 1; \
fi
-rm -rf $(distdir)
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
$(mkinstalldirs) $(distdir)/intl $(distdir)/po $(distdir)/tests
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
for subdir in $(SUBDIRS); do \
@@ -329,85 +318,140 @@ distdir: $(DISTFILES)
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
chmod 777 $(distdir)/$$subdir; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" \
distdir=../$(distdir)/$$subdir \
distdir) \
|| exit 1; \
fi; \
done
info-am:
info: info-recursive
dvi-am:
dvi: dvi-recursive
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
chmod a-w $(distdir)
dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
&& cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
--with-included-gettext \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
|| (echo "Error: files left after uninstall" 1>&2; \
exit 1) ) \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& $(MAKE) $(AM_MAKEFLAGS) distclean \
&& rm -f $(distdir).tar.gz \
&& (test `find . -type f -print | wc -l` -eq 0 \
|| (echo "Error: files left after distclean" 1>&2; \
exit 1) )
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
@echo "$(distdir).tar.gz is ready for distribution" | \
sed 'h;s/./=/g;p;x;p;x'
check-am: all-am
check: check-recursive
installcheck-am:
installcheck: installcheck-recursive
all-recursive-am: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
install-exec-am:
install-exec: install-exec-recursive
install-data-am:
install-data: install-data-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-recursive
uninstall-am:
uninstall: uninstall-recursive
all-am: Makefile config.h
all-redirect: all-recursive-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
dist-all: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
distclean: distclean-recursive
-rm -f config.status config.cache config.log
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
info: info-recursive
info-am:
install-data-am:
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
mostlyclean-am: mostlyclean-generic
clean: clean-recursive
uninstall-am: uninstall-info-am
distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
distclean: distclean-recursive
-rm -f config.status
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-recursive
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
install-data-recursive uninstall-data-recursive install-exec-recursive \
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
all-recursive check-recursive installcheck-recursive info-recursive \
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
install-exec-am install-exec install-data-am install-data install-am \
install uninstall-am uninstall all-redirect all-am all installdirs-am \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
clean-generic clean-recursive dist dist-all distcheck distclean \
distclean-generic distclean-hdr distclean-recursive \
distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
info-recursive install install-am install-data install-data-am \
install-data-recursive install-exec install-exec-am \
install-exec-recursive install-info install-info-am \
install-info-recursive install-man install-recursive \
install-strip installcheck installcheck-am installdirs \
installdirs-am installdirs-recursive maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive mostlyclean \
mostlyclean-generic mostlyclean-recursive tags tags-recursive \
uninstall uninstall-am uninstall-info-am \
uninstall-info-recursive uninstall-recursive
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
+130 -61
View File
@@ -2,6 +2,28 @@
# This Makefile fragment is shared between fileutils, sh-utils, textutils,
# CPPI, Bison, and Autoconf.
## Copyright 2001 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2, or (at your option)
## any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
# Do not save the original name or timestamp in the .tar.gz file.
GZIP_ENV = '--no-name --best'
CVS = cvs
prev_version_file ?= .prev-version
THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
@@ -21,12 +43,102 @@ release_archive_dir ?= ../release
## ---------------- ##
## Updating files. ##
## ---------------- ##
WGET = wget
ftp-gnu = ftp://ftp.gnu.org/gnu
# Use mv, if you don't have/want move-if-change.
move_if_change ?= move-if-change
# ------------------- #
# Updating PO files. #
# ------------------- #
po_repo = http://www.iro.umontreal.ca/contrib/po/maint/$(PACKAGE)
.PHONY: do-po-update po-update
do-po-update:
tmppo=/tmp/$(PACKAGE)-$(VERSION)-po &&\
rm -rf $$tmppo && \
mkdir $$tmppo && \
(cd $$tmppo && $(WGET) -r -l1 -nd --no-parent -A '*.po' $(po_repo)) &&\
cp $$tmppo/*.po po
cd po && $(MAKE) update-po
$(MAKE) po-check
po-update:
if test -d "po"; then \
$(MAKE) do-po-update; \
fi
# -------------------------- #
# Updating GNU build tools. #
# -------------------------- #
# The following pseudo table associates a local directory and a URL
# with each of the files that belongs to some other package and is
# regularly updated from the specified URL.
wget_files ?= $(srcdir)/config.guess $(srcdir)/config.sub \
$(srcdir)/src/ansi2knr.c \
$(srcdir)/doc/texinfo.tex
wget-targets = $(patsubst %, get-%, $(wget_files))
config.guess-url_prefix = $(ftp-gnu)/config/
config.sub-url_prefix = $(ftp-gnu)/config/
ansi2knr.c-url_prefix = ftp://ftp.cs.wisc.edu/ghost/
texinfo.tex-url_prefix = $(ftp-gnu)/texinfo/
standards.texi-url_prefix = $(ftp-gnu)/GNUinfo/
make-stds.texi-url_prefix = $(ftp-gnu)/GNUinfo/
target = $(patsubst get-%, %, $@)
url = $($(notdir $(target))-url_prefix)$(notdir $(target))
.PHONY: $(wget-targets)
$(wget-targets):
$(WGET) $(url) -O $(target).t \
&& $(move_if_change) $(target).t $(target)
.PHONY: wget-update
wget-update: $(wget-targets)
# Updating tools via CVS.
cvs_files ?= depcomp missing
cvs-targets = $(patsubst %, get-%, $(cvs_files))
automake_repo = :pserver:[email protected]:/cvs/automake
.PHONY: $(cvs-targets)
$(cvs-targets):
$(CVS) -d $(automake_repo) co -p automake/lib/$(notdir $(target)) \
>$(target).t \
&& $(move_if_change) $(target).t $(target);
.PHONY: cvs-update
cvs-update: $(cvs-targets)
# --------------------- #
# Updating everything. #
# --------------------- #
.PHONY: update
update: wget-update cvs-update po-update
## --------------- ##
## Sanity checks. ##
## --------------- ##
# Checks that don't require cvs.
local-check: changelog-check po-check writable-files copyright-check
# Run `changelog-check' as previous test may reveal problems requiring
# new ChangeLog entries.
local-check: po-check copyright-check writable-files changelog-check
changelog-check:
if head ChangeLog | grep 'Version $(VERSION)' >/dev/null; then \
@@ -71,19 +183,18 @@ copyright-check:
# Sanity checks with the CVS repository.
cvs-tag-check:
echo $(this-cvs-tag); \
if cvs -n log -h README | grep -e $(this-cvs-tag): >/dev/null; then \
if $(CVS) -n log -h README | grep -e $(this-cvs-tag): >/dev/null; then \
echo "$(this-cvs-tag) as already been used; not tagging" 1>&2; \
exit 1; \
else :; fi
cvs-diff-check:
cvs diff | grep -v '^?' >cvs-diffs; \
if grep . cvs-diff >/dev/null; then \
echo "Some files are locally modified:" >&2; \
cat cvs-diffs >&2; \
exit 1; \
else \
if $(CVS) diff >cvs-diffs; then \
rm cvs-diffs; \
else \
echo "Some files are locally modified:" 1>&2; \
cat cvs-diffs; \
exit 1; \
fi
cvs-check: cvs-diff-check cvs-tag-check
@@ -93,18 +204,18 @@ maintainer-distcheck: changelog-check
$(MAKE) my-distcheck
# Do not save the original name or timestamp in the .tar.gz file.
GZIP_ENV = '--no-name --best'
# Automake 1.4 does not define AMTAR.
AMTAR ?= $(TAR)
## -------------- ##
## Making dists. ##
## -------------- ##
# Tag before making distribution. Also, don't make a distribution if
# checks fail. Also, make sure the NEWS file is up-to-date.
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
cvs-dist: cvs-check maintainer-distcheck
cvs update po
cvs tag -c $(this-cvs-tag)
cvs-dist: local-check cvs-check maintainer-distcheck
$(CVS) update po
$(CVS) tag -c $(this-cvs-tag)
$(MAKE) dist
# Use this to make sure we don't run these programs when building
@@ -159,7 +270,7 @@ rel-check:
md5_tmp=/tmp/rel-check-md5-$$$$; \
set -e; \
trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
wget -q --output-document=$$tarz $(url); \
$(WGET) -q --output-document=$$tarz $(url); \
echo "$(md5) -" > $$md5_tmp; \
md5sum -c $$md5_tmp < $$tarz
@@ -204,54 +315,12 @@ announcement: NEWS ChangeLog $(rel-files)
echo; \
echo ChangeLog entries:; \
find . -name ChangeLog -maxdepth 2 \
| xargs cvs diff -up -r$(prev-cvs-tag) -rHEAD \
| xargs $(CVS) diff -up -r$(prev-cvs-tag) -rHEAD \
| sed -n 's/^+//p' \
| perl -ne 'm!^\+\+ (\./)?! or print,next;' \
-e 'print "\n"."*"x70 ."\n"; s///; print; print "*"x70 ."\n"'; \
)
WGET = wget
ftp-gnu = ftp://ftp.gnu.org/gnu
# Use mv, if you don't have/want move-if-change.
move_if_change ?= move-if-change
# The following pseudo table associates a local directory and a URL
# with each of the files that belongs to some other package and is
# regularly updated from the specified URL.
wget_files ?= $(srcdir)/config.guess $(srcdir)/config.sub \
$(srcdir)/src/ansi2knr.c \
$(srcdir)/doc/texinfo.tex
get-targets = $(patsubst %, get-%, $(wget_files))
config.guess-url_prefix = $(ftp-gnu)/config/
config.sub-url_prefix = $(ftp-gnu)/config/
ansi2knr.c-url_prefix = ftp://ftp.cs.wisc.edu/ghost/
texinfo.tex-url_prefix = $(ftp-gnu)/texinfo/
standards.texi-url_prefix = $(ftp-gnu)/GNUinfo/
make-stds.texi-url_prefix = $(ftp-gnu)/GNUinfo/
target = $(patsubst get-%, %, $@)
url = $($(notdir $(target))-url_prefix)$(notdir $(target))
.PHONY: $(get-targets)
$(get-targets):
$(WGET) $(url) -O $(target).t \
&& $(move_if_change) $(target).t $(target)
automake_repo=:pserver:[email protected]:/cvs/automake
.PHONY: wget-update
wget-update: $(get-targets)
for f in depcomp missing; do \
test -f $$f || continue; \
echo checking out $$f...; \
cvs -d $(automake_repo) co -p automake/lib/$$f > $$f.t \
&& $(move_if_change) $$f.t $$f; \
done
define emit-rsync-commands
echo =====================================
echo =====================================
@@ -266,12 +335,12 @@ endef
$(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
xdelta delta -9 $^ $@ || :
alpha: local-check
alpha:
$(MAKE) cvs-dist
$(MAKE) $(xd-delta)
$(MAKE) -s announcement > /tmp/announce-$(my_distdir)
ln $(rel-files) $(release_archive_dir)
chmod a-w $(rel-files)
echo $(VERSION) > $(prev_version_file)
cvs ci -m. $(prev_version_file)
$(CVS) ci -m. $(prev_version_file)
@$(emit-rsync-commands)
+10 -4
View File
@@ -1,9 +1,15 @@
Bison News
----------
Changes in version 1.28b:
Changes in version 1.28d:
* the input and the output files has automatically a similar extension.
* Output file does not redefine const; that is now config.h's job.
* Added `-g' and `--graph'.
* The Bison manual is now distributed under the terms of the GNU FDL.
* The input and the output files has automatically a similar extension.
* Russian translation added.
@@ -21,8 +27,8 @@ Changes in version 1.28b:
of the #line lines with path names including backslashes.
* New directives.
`%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
`%debug'.
`%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose',
`%debug', `%source_extension' and `%header_extension'.
Changes in version 1.28:
+4
View File
@@ -1,15 +1,19 @@
Bison was originally written by Robert Corbett. It would not be what
it is today without the invaluable help of these people:
Akim Demaille [email protected]
Daniel Hagerty [email protected]
David J. MacKenzie [email protected]
Fabrice Bauzac [email protected]
Hans Aberg [email protected]
Jesse Thilo [email protected]
Jim Meyering [email protected]
Juan Manuel Guerrero [email protected]
Laurent Mascherpa [email protected]
Marc Autret [email protected]
Neil Booth [email protected]
Noah Friedman [email protected]
Pascal Bart [email protected]
Paul Eggert [email protected]
Piotr Gackiewicz [email protected]
Richard Stallman [email protected]
Vendored
+517 -83
View File
@@ -1,70 +1,133 @@
dnl aclocal.m4 generated automatically by aclocal 1.4-p4
# aclocal.m4 generated automatically by aclocal 1.5
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Copyright 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
# serial 1
# serial 5
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
AC_SUBST(VERSION)
dnl test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
# We require 2.13 because we rely on SHELL being computed by configure.
AC_PREREQ([2.13])
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
# -----------------------------------------------------------
# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
# The purpose of this macro is to provide the user with a means to
# check macros which are provided without letting her know how the
# information is coded.
# If this macro is not defined by Autoconf, define it here.
ifdef([AC_PROVIDE_IFELSE],
[],
[define([AC_PROVIDE_IFELSE],
[ifdef([AC_PROVIDE_$1],
[$2], [$3])])])
# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
# ----------------------------------------------
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_REQUIRE([AC_PROG_INSTALL])dnl
# test to see if srcdir already configured
if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
fi
# Define the identity of the package.
PACKAGE=$1
AC_SUBST(PACKAGE)dnl
VERSION=$2
AC_SUBST(VERSION)dnl
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
# the ones we care about.
ifdef([m4_pattern_allow],
[m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
# Autoconf 2.50 always computes EXEEXT. However we need to be
# compatible with 2.13, for now. So we always define EXEEXT, but we
# don't compute it.
AC_SUBST(EXEEXT)
# Similar for OBJEXT -- only we only use OBJEXT if the user actually
# requests that it be used. This is a bit dumb.
: ${OBJEXT=o}
AC_SUBST(OBJEXT)
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG(ACLOCAL, aclocal)
AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake)
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AM_MISSING_PROG(AMTAR, tar)
AM_PROG_INSTALL_SH
AM_PROG_INSTALL_STRIP
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_PROVIDE_IFELSE([AC_PROG_][CC],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_][CC],
defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_][CXX],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_][CXX],
defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
])
#
# Check to make sure that the build environment is sane.
#
AC_DEFUN(AM_SANITY_CHECK,
# serial 3
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftestfile
echo timestamp > conftest.file
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
if test "[$]*" = "X"; then
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
set X `ls -t $srcdir/configure conftest.file`
fi
if test "[$]*" != "X $srcdir/configure conftestfile" \
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
@@ -74,7 +137,7 @@ if (
alias in your environment])
fi
test "[$]2" = conftestfile
test "$[2]" = conftest.file
)
then
# Ok.
@@ -83,47 +146,417 @@ else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG,
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT(found)
else
$1="$3/missing $2"
AC_MSG_RESULT(missing)
fi
# serial 2
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
am_backtick='`'
AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
fi
])
# AM_AUX_DIR_EXPAND
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND], [
# expand $ac_aux_dir to an absolute path
am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
])
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
install_sh=${install_sh-"$am_aux_dir/install-sh"}
AC_SUBST(install_sh)])
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# serial 4 -*- Autoconf -*-
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ---------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX" or "OBJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
for depmode in $am_compiler_list; do
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
echo '#include "conftest.h"' > conftest.c
echo 'int i;' > conftest.h
echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
case $depmode in
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
none) break ;;
esac
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode=$depmode \
source=conftest.c object=conftest.o \
depfile=conftest.Po tmpdepfile=conftest.TPo \
$SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
grep conftest.h conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
AC_SUBST([$1DEPMODE])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[rm -f .deps 2>/dev/null
mkdir .deps 2>/dev/null
if test -d .deps; then
DEPDIR=.deps
else
# MS-DOS does not allow filenames that begin with a dot.
DEPDIR=_deps
fi
rmdir .deps 2>/dev/null
AC_SUBST(DEPDIR)
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
[ --disable-dependency-tracking Speeds up one-time builds
--enable-dependency-tracking Do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
pushdef([subst], defn([AC_SUBST]))
subst(AMDEPBACKSLASH)
popdef([subst])
])
# Generate code to set up dependency tracking.
# This macro should only be invoked once -- use via AC_REQUIRE.
# Usage:
# AM_OUTPUT_DEPENDENCY_COMMANDS
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each `.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
AC_OUTPUT_COMMANDS([
test x"$AMDEP_TRUE" != x"" ||
for mf in $CONFIG_FILES; do
case "$mf" in
Makefile) dirpart=.;;
*/Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
*) continue;;
esac
grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
# Extract the definition of DEP_FILES from the Makefile without
# running `make'.
DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
test -z "$DEPDIR" && continue
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n -e '/^U = / s///p' < "$mf"`
test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
# We invoke sed twice because it is the simplest approach to
# changing $(DEPDIR) to its actual value in the expansion.
for file in `sed -n -e '
/^DEP_FILES = .*\\\\$/ {
s/^DEP_FILES = //
:loop
s/\\\\$//
p
n
/\\\\$/ b loop
p
}
/^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
$ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
], [AMDEP_TRUE="$AMDEP_TRUE"
ac_aux_dir="$ac_aux_dir"])])
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
doit:
@echo done
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include='#'
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# We grep out `Entering directory' and `Leaving directory'
# messages which can occur if `w' ends up in MAKEFLAGS.
# In particular we don't look at `^make:' because GNU make might
# be invoked under some other name (usually "gmake"), in which
# case it prints its new name instead of `make'.
if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
am__include=include
am__quote=
_am_result=GNU
fi
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
am__include=.include
am__quote='"'
_am_result=BSD
fi
fi
AC_SUBST(am__include)
AC_SUBST(am__quote)
AC_MSG_RESULT($_am_result)
rm -f confinc confmf
])
# serial 3
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
#
# FIXME: Once using 2.50, use this:
# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_DEFUN([AM_CONDITIONAL],
[ifelse([$1], [TRUE],
[errprint(__file__:__line__: [$0: invalid condition: $1
])dnl
m4exit(1)])dnl
ifelse([$1], [FALSE],
[errprint(__file__:__line__: [$0: invalid condition: $1
])dnl
m4exit(1)])dnl
AC_SUBST([$1_TRUE])
AC_SUBST([$1_FALSE])
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi])
# Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER,
[AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1])
dnl When config.status generates a header, we must update the stamp-h file.
dnl This file resides in the same directory as the config header
dnl that is generated. We must strip everything past the first ":",
dnl and everything past the last "/".
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
<<am_indx=1
for am_file in <<$1>>; do
case " <<$>>CONFIG_HEADERS " in
*" <<$>>am_file "*<<)>>
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
# serial 3
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. We must strip everything past the first ":",
# and everything past the last "/".
AC_PREREQ([2.12])
AC_DEFUN([AM_CONFIG_HEADER],
[ifdef([AC_FOREACH],dnl
[dnl init our file count if it isn't already
m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
dnl prepare to store our destination file list for use in config.status
AC_FOREACH([_AM_File], [$1],
[m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
dnl and add it to the list of files AC keeps track of, along
dnl with our hook
AC_CONFIG_HEADERS(_AM_File,
dnl COMMANDS, [, INIT-CMDS]
[# update the timestamp
echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
m4_popdef([_AM_Dest])])],dnl
[AC_CONFIG_HEADER([$1])
AC_OUTPUT_COMMANDS(
ifelse(patsubst([$1], [[^ ]], []),
[],
[test -z "$CONFIG_HEADERS" || echo timestamp >dnl
patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
[am_indx=1
for am_file in $1; do
case " \$CONFIG_HEADERS " in
*" \$am_file "*)
am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
if test -n "\$am_dir"; then
am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
am_tmpdir=\$am_tmpdir\$am_subdir/
if test ! -d \$am_tmpdir; then
mkdir \$am_tmpdir
fi
done
fi
echo timestamp > "\$am_dir"stamp-h\$am_indx
;;
esac
am_indx=`expr "<<$>>am_indx" + 1`
done<<>>dnl>>)
changequote([,]))])
am_indx=\`expr \$am_indx + 1\`
done])
])]) # AM_CONFIG_HEADER
# _AM_DIRNAME(PATH)
# -----------------
# Like AS_DIRNAME, only do it during macro expansion
AC_DEFUN([_AM_DIRNAME],
[m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
m4_if(m4_regexp([$1], [^/.*]), -1,
[.],
m4_patsubst([$1], [^\(/\).*], [\1])),
m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
]) # _AM_DIRNAME
# serial 2
@@ -181,7 +614,7 @@ AC_DEFUN([AC_ISC_POSIX],
# program @code{ansi2knr}, which comes with Ghostscript.
# @end defmac
AC_DEFUN(AM_PROG_CC_STDC,
AC_DEFUN([AM_PROG_CC_STDC],
[AC_REQUIRE([AC_PROG_CC])
AC_BEFORE([$0], [AC_C_INLINE])
AC_BEFORE([$0], [AC_C_CONST])
@@ -191,7 +624,7 @@ dnl like #elif.
dnl FIXME: can't do this because then AC_AIX won't work due to a
dnl circular dependency.
dnl AC_BEFORE([$0], [AC_PROG_CPP])
AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
AC_CACHE_VAL(am_cv_prog_cc_stdc,
[am_cv_prog_cc_stdc=no
ac_save_CC="$CC"
@@ -199,9 +632,10 @@ ac_save_CC="$CC"
# breaks some systems' header files.
# AIX -qlanglvl=ansi
# Ultrix and OSF/1 -std1
# HP-UX -Aa -D_HPUX_SOURCE
# HP-UX 10.20 and later -Ae
# HP-UX older versions -Aa -D_HPUX_SOURCE
# SVR4 -Xc -D__EXTENSIONS__
for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
AC_TRY_COMPILE(
@@ -243,7 +677,7 @@ CC="$ac_save_CC"
if test -z "$am_cv_prog_cc_stdc"; then
AC_MSG_RESULT([none needed])
else
AC_MSG_RESULT($am_cv_prog_cc_stdc)
AC_MSG_RESULT([$am_cv_prog_cc_stdc])
fi
case "x$am_cv_prog_cc_stdc" in
x|xno) ;;
@@ -283,7 +717,7 @@ CFLAGS="$ac_save_CFLAGS"])
# serial 1
AC_DEFUN(AM_C_PROTOTYPES,
AC_DEFUN([AM_C_PROTOTYPES],
[AC_REQUIRE([AM_PROG_CC_STDC])
AC_REQUIRE([AC_PROG_CPP])
AC_MSG_CHECKING([for function prototypes])
@@ -294,10 +728,10 @@ if test "$am_cv_prog_cc_stdc" != no; then
else
AC_MSG_RESULT(no)
U=_ ANSI2KNR=./ansi2knr
# Ensure some checks needed by ansi2knr itself.
AC_HEADER_STDC
AC_CHECK_HEADERS(string.h)
fi
# Ensure some checks needed by ansi2knr itself.
AC_HEADER_STDC
AC_CHECK_HEADERS(string.h)
AC_SUBST(U)dnl
AC_SUBST(ANSI2KNR)dnl
])
+1
View File
@@ -1 +1,2 @@
Makefile
*.t
+90 -73
View File
@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@@ -59,20 +57,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AT_TESTPATH = @AT_TESTPATH@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
@@ -81,9 +84,9 @@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -93,112 +96,126 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
EXTRA_DIST = move-if-change prev-version.txt
subdir = config
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in config.guess config.sub \
install-sh mdate-sh missing mkinstalldirs texinfo.tex
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DIST_COMMON = Makefile.am Makefile.in config.guess config.sub depcomp \
install-sh mdate-sh missing mkinstalldirs texinfo.tex
all: all-am
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu config/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu config/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
uninstall-info-am:
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
subdir = config
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu config/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
all-am: Makefile
install-data-am:
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-generic clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: tags distdir info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic uninstall uninstall-am uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
+23 -4
View File
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
timestamp='2001-07-12'
timestamp='2001-08-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -227,6 +227,9 @@ EOF
2-307)
UNAME_MACHINE="alphaev67"
;;
2-1307)
UNAME_MACHINE="alphaev68"
;;
esac
fi
rm -f $dummy.s $dummy
@@ -330,6 +333,9 @@ EOF
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit 0 ;;
sparc*:NetBSD:*)
echo `uname -p`-unknown-netbsd${UNAME_RELEASE}
exit 0 ;;
atari*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
@@ -778,6 +784,9 @@ EOF
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
exit 0 ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
exit 0 ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -786,7 +795,7 @@ EOF
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
@@ -993,8 +1002,8 @@ EOF
echo ns32k-sni-sysv
fi
exit 0 ;;
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <[email protected]>
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <[email protected]>
echo i586-unisys-sysv4
exit 0 ;;
*:UNIX_System_V:4*:FTX*)
@@ -1006,6 +1015,10 @@ EOF
# From [email protected].
echo i860-stratus-sysv4
exit 0 ;;
*:VOS:*:*)
# From [email protected].
echo hppa1.1-stratus-vos
exit 0 ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit 0 ;;
@@ -1098,6 +1111,12 @@ EOF
*:ITS:*:*)
echo pdp10-unknown-its
exit 0 ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit 0 ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
+83 -48
View File
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
timestamp='2001-06-08'
timestamp='2001-08-23'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -223,26 +223,35 @@ esac
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
| arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
| pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 \
| x86 | ppcbe | mipsbe | mipsle | shbe | shle \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
| hppa64 \
| alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
| alphaev6[78] \
| we32k | ns16k | clipper | i370 | sh | sh[34] \
| powerpc | powerpcle \
| 1750a | dsp16xx | pdp10 | pdp11 \
| mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
| mips64vr5000 | mips64vr5000el | mcore | s390 | s390x \
| sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \
| v850 | c4x \
| thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
| pj | pjl | h8500 | z8k)
1750a | 580 \
| a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
| c4x | clipper \
| d10v | d30v | dsp16xx \
| fr30 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| m32r | m68000 | m68k | m88k | mcore \
| mips16 | mips64 | mips64el | mips64orion | mips64orionel \
| mips64vr4100 | mips64vr4100el | mips64vr4300 \
| mips64vr4300el | mips64vr5000 | mips64vr5000el \
| mipsbe | mipsel | mipsle | mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| ns16k | ns32k \
| openrisc \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| s390 | s390x \
| sh | sh[34] | sh[34]eb | shbe | shle \
| sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
| stormy16 | strongarm \
| tahoe | thumb | tic80 | tron \
| v850 \
| we32k \
| x86 | xscale \
| z8k)
basic_machine=$basic_machine-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12)
@@ -265,31 +274,43 @@ case $basic_machine in
exit 1
;;
# Recognize the basic CPU types with company name.
# FIXME: clean up the formatting here.
vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
| arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
| xmp-* | ymp-* \
| x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
| hppa2.0n-* | hppa64-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
| alphaev6[78]-* \
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
| clipper-* | orion-* \
| sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \
| powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \
| mips16-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
| mipstx39-* | mipstx39el-* | mcore-* \
| f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
| [cjt]90-* \
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
| thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
| bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
580-* \
| a29k-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alphapca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armv*-* \
| bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c54x-* \
| clipper-* | cray2-* | cydra-* \
| d10v-* | d30v-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| m32r-* \
| m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | mcore-* \
| mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
| mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipsel-* \
| mipsle-* | mipstx39-* | mipstx39el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
| s390-* | s390x-* \
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
| sparc-* | sparc64-* | sparc86x-* | sparclite-* \
| sparcv9-* | sparcv9b-* | stormy16-* | strongarm-* | sv1-* \
| t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
| v850-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \
| ymp-* \
| z8k-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@@ -735,6 +756,16 @@ case $basic_machine in
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
;;
@@ -946,7 +977,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
sh3 | sh4)
sh3 | sh4 | sh3eb | sh4eb)
basic_machine=sh-unknown
;;
sparc | sparcv9 | sparcv9b)
@@ -1035,7 +1066,8 @@ case $os in
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1359,6 +1391,9 @@ case $basic_machine in
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
vendor=atari
;;
-vos*)
vendor=stratus
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
Executable
+411
View File
@@ -0,0 +1,411 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
# Copyright 1999, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <[email protected]>.
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# `libtool' can also be set to `yes' or `no'.
depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. This file always lives in the current directory.
# Also, the AIX compiler puts `$object:' at the start of each line;
# $object doesn't have directory information.
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 AIX compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
tmpdepfile1="$object.d"
tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
if test "$libtool" = yes; then
"$@" -Wc,-MD
else
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
if test -f "$tmpdepfile1"; then
tmpdepfile="$tmpdepfile1"
else
tmpdepfile="$tmpdepfile2"
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a space and a tab in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
test -z "$dashmflag" && dashmflag=-M
( IFS=" "
case " $* " in
*" --mode=compile "*) # this is libtool, let us make it quiet
for arg
do # cycle over the arguments
case "$arg" in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
# X makedepend
(
shift
cleared=no
for arg in "$@"; do
case $cleared in no)
set ""; shift
cleared=yes
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift;;
-*)
;;
*)
set fnord "$@" "$arg"; shift;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tail +3 "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
( IFS=" "
case " $* " in
*" --mode=compile "*)
for arg
do # cycle over the arguments
case $arg in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" -E |
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
( IFS=" "
case " $* " in
*" --mode=compile "*)
for arg
do # cycle over the arguments
case $arg in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
+101 -8
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Franc,ois Pinard <[email protected]>, 1996.
# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <[email protected]>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,11 +18,37 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
-h|--h|--he|--hel|--help)
@@ -35,6 +61,7 @@ error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
@@ -43,13 +70,15 @@ Supported PROGRAM values:
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing - GNU libit 0.0"
echo "missing 0.3 - GNU automake"
;;
-*)
@@ -61,7 +90,7 @@ Supported PROGRAM values:
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`configure.in'. You might want
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
@@ -70,7 +99,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`configure.in'. You might want to install the
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
@@ -79,10 +108,10 @@ WARNING: \`$1' is missing on your system. You should only need it if
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
@@ -98,7 +127,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
automake)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
@@ -159,7 +188,32 @@ WARNING: \`$1' is missing on your system. You should only need it if
fi
;;
help2man)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
# We have makeinfo, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -175,6 +229,45 @@ WARNING: \`$1' is missing on your system. You should only need it if
touch $file
;;
tar)
shift
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar ${1+"$@"} && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar ${1+"$@"} && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" ${1+"$@"} && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" ${1+"$@"} && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
+1 -1
View File
@@ -1 +1 @@
1.28
1.28c
+8 -4
View File
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
\def\texinfoversion{2001-06-21.10}
\def\texinfoversion{2001-07-25.07}
%
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
% 2000, 01 Free Software Foundation, Inc.
@@ -1614,6 +1614,10 @@ where each line of input produces a line of output.}
\oldpage
\endgroup
%
% Need this before the \...aftertitlepage checks so that if they are
% in effect the toc pages will come out with page numbers.
\HEADINGSon
%
% If they want short, they certainly want long too.
\ifsetshortcontentsaftertitlepage
\shortcontents
@@ -1629,8 +1633,6 @@ where each line of input produces a line of output.}
\fi
%
\ifpdf \pdfmakepagedesttrue \fi
%
\HEADINGSon
}
\def\finishtitlepage{%
@@ -2392,13 +2394,15 @@ width0pt\relax} \fi
%
\def\ignore{\doignore{ignore}}
% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
% Also ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu,
% @documentdescription, and @direntry text.
%
\def\ifinfo{\doignore{ifinfo}}
\def\ifhtml{\doignore{ifhtml}}
\def\ifnottex{\doignore{ifnottex}}
\def\html{\doignore{html}}
\def\menu{\doignore{menu}}
\def\documentdescription{\doignore{documentdescription}}
\def\direntry{\doignore{direntry}}
% @dircategory CATEGORY -- specify a category of the dir file
Vendored
+3220 -1859
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,8 +1,8 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
AC_INIT(bison, 1.28b, [email protected])
AC_INIT(bison, 1.28d, [email protected])
AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE(bison, 1.28b)
AM_INIT_AUTOMAKE(bison, 1.28d)
AM_CONFIG_HEADER(config.h:config.hin)
# Initialize the test suite.
+1
View File
@@ -3,6 +3,7 @@ AUTOMAKE_OPTIONS = 1.4
info_TEXINFOS = bison.texinfo
man_MANS = bison.1
bison_TEXINFOS = gpl.texi fdl.texi
EXTRA_DIST = FAQ bison.1 bison.rnh refcard.tex
+174 -184
View File
@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@@ -59,20 +57,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AT_TESTPATH = @AT_TESTPATH@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
@@ -81,9 +84,9 @@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -93,52 +96,53 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = 1.4
info_TEXINFOS = bison.texinfo
man_MANS = bison.1
bison_TEXINFOS = gpl.texi fdl.texi
EXTRA_DIST = FAQ bison.1 bison.rnh refcard.tex
CLEANFILES = refcard.dvi refcard.log refcard.ps
subdir = doc
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex
INFO_DEPS = bison.info
DVIS = bison.dvi
TEXINFOS = bison.texinfo
man1dir = $(mandir)/man1
MANS = $(man_MANS)
NROFF = nroff
DIST_COMMON = Makefile.am Makefile.in mdate-sh stamp-vti version.texi
MANS = $(man_MANS)
DIST_COMMON = $(bison_TEXINFOS) Makefile.am Makefile.in stamp-vti \
version.texi
all: all-am
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile
.SUFFIXES: .dvi .info .ps .texinfo
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(srcdir)/version.texi: stamp-vti
$(srcdir)/version.texi: $(srcdir)/stamp-vti
@:
$(srcdir)/stamp-vti: bison.texinfo $(top_srcdir)/configure.in
@echo "@set UPDATED `$(SHELL) $(top_srcdir)/config/mdate-sh $(srcdir)/bison.texinfo`" > vti.tmp
@echo "@set EDITION $(VERSION)" >> vti.tmp
@echo "@set VERSION $(VERSION)" >> vti.tmp
@(set `$(SHELL) $(top_srcdir)/config/mdate-sh $(srcdir)/bison.texinfo`; \
echo "@set UPDATED $$1 $$2 $$3"; \
echo "@set UPDATED-MONTH $$2 $$3"; \
echo "@set EDITION $(VERSION)"; \
echo "@set VERSION $(VERSION)") > vti.tmp
@cmp -s vti.tmp $(srcdir)/version.texi \
|| (echo "Updating $(srcdir)/version.texi"; \
cp vti.tmp $(srcdir)/version.texi)
@@ -148,134 +152,84 @@ $(srcdir)/stamp-vti: bison.texinfo $(top_srcdir)/configure.in
mostlyclean-vti:
-rm -f vti.tmp
clean-vti:
distclean-vti:
maintainer-clean-vti:
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
bison.info: bison.texinfo version.texi
bison.dvi: bison.texinfo version.texi
DVIPS = dvips
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=$(top_srcdir)/config/texinfo.tex:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
bison.info: bison.texinfo $(srcdir)/version.texi $(bison_TEXINFOS)
bison.dvi: bison.texinfo $(srcdir)/version.texi $(bison_TEXINFOS)
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=$(top_srcdir)/config:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2DVI) $<
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=$(top_srcdir)/config/texinfo.tex:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=$(top_srcdir)/config/texinfo.tex:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
MAKEINFO = @MAKEINFO@
TEXI2DVI = texi2dvi
DVIPS = dvips
.dvi.ps:
$(DVIPS) $< -o $@
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
uninstall-info-am:
$(PRE_UNINSTALL)
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
done; \
else : ; fi
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
else :; fi
@$(NORMAL_UNINSTALL)
list='$(INFO_DEPS)'; \
@list='$(INFO_DEPS)'; \
for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
(if cd $(DESTDIR)$(infodir); then \
echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
else :; fi); \
done
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f bison.aux bison.cp bison.cps bison.dvi bison.fn bison.fns \
bison.ky bison.kys bison.ps bison.log bison.pg bison.toc \
bison.tp bison.tps bison.vr bison.vrs bison.op bison.tr \
bison.cv bison.cn
clean-aminfo:
distclean-aminfo:
-rm -f bison.aux bison.cp bison.cps bison.dvi bison.fn bison.ky bison.log \
bison.pg bison.ps bison.toc bison.tp bison.vr
maintainer-clean-aminfo:
cd $(srcdir) && for i in $(INFO_DEPS); do \
cd $(srcdir) && \
for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
install-man1:
man1dir = $(mandir)/man1
install-man1: $(man1_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
@@ -285,14 +239,16 @@ install-man1:
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
done
uninstall-man1:
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@$(NORMAL_UNINSTALL)
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
@@ -300,113 +256,147 @@ uninstall-man1:
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
rm -f $(DESTDIR)$(man1dir)/$$inst; \
done
install-man: $(MANS)
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-man1
uninstall-man:
@$(NORMAL_UNINSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-man1
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
subdir = doc
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info-am: $(INFO_DEPS)
info: info-am
dvi-am: $(DVIS)
dvi: dvi-am
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="${top_distdir}" distdir="$(distdir)" \
dist-info
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
all-am: Makefile $(INFO_DEPS) $(MANS)
install-data-am: install-info-am install-man
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-info uninstall-man
uninstall: uninstall-am
all-am: Makefile $(INFO_DEPS) $(MANS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-vti clean-aminfo clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-vti distclean-aminfo distclean-generic clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-vti maintainer-clean-aminfo \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am: $(DVIS)
info: info-am
info-am: $(INFO_DEPS)
install-data-am: install-info-am install-man
install-exec-am:
install-info: install-info-am
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
else : ; fi
install-man: install-man1
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-vti distclean-vti clean-vti maintainer-clean-vti \
install-info-am uninstall-info mostlyclean-aminfo distclean-aminfo \
clean-aminfo maintainer-clean-aminfo install-man1 uninstall-man1 \
install-man uninstall-man tags distdir info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
maintainer-clean-generic maintainer-clean-vti
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
uninstall-am: uninstall-info-am uninstall-man
uninstall-man: uninstall-man1
.PHONY: all all-am check check-am clean clean-generic dist-info \
distclean distclean-generic distdir dvi dvi-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-man1 install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-aminfo \
maintainer-clean-generic maintainer-clean-vti mostlyclean \
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti \
uninstall uninstall-am uninstall-info-am uninstall-man \
uninstall-man1
refcard.dvi: refcard.tex
tex refcard.tex
refcard.ps: refcard.dvi
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+17 -2
View File
@@ -12,6 +12,10 @@ bison \- GNU Project parser generator (yacc replacement)
] [
.B \-\-defines
] [
.B \-g
] [
.B \-\-graph
] [
.B \-k
] [
.B \-\-token-table
@@ -145,6 +149,17 @@ in a separate source file, because
needs to be able to refer to token type codes and the variable
.BR yylval .
.TP
.BI \-g
.br
.ns
.TP
.BI \-\-graph
Output a VCG definition of the LALR(1) grammar automaton computed by
Bison. If the grammar file is
.BR foo.y
, the VCG output file will be
.BR foo.vcg .
.TP
.B \-k
.br
.ns
@@ -315,9 +330,9 @@ bison \-y $*
.sp
.RE
.SH FILES
/usr/local/lib/bison.simple simple parser
/usr/local/share/bison/bison.simple simple parser
.br
/usr/local/lib/bison.hairy complicated parser
/usr/local/share/bison/bison.hairy complicated parser
.SH "ENVIRONMENT VARIABLES"
.TP
.SM BISON_SIMPLE
+109 -103
View File
@@ -8,7 +8,7 @@ END-INFO-DIR-ENTRY
This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
2000 Free Software Foundation, Inc.
2000, 2001 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -30,110 +30,116 @@ instead of in the original English.

Indirect:
bison.info-1: 1307
bison.info-2: 50189
bison.info-3: 99814
bison.info-4: 149692
bison.info-5: 196961
bison.info-1: 1313
bison.info-2: 50688
bison.info-3: 100578
bison.info-4: 150128
bison.info-5: 197515

Tag Table:
(Indirect)
Node: Top1307
Node: Introduction8543
Node: Conditions9818
Node: Copying11282
Node: Concepts30472
Node: Language and Grammar31551
Node: Grammar in Bison36567
Node: Semantic Values38491
Node: Semantic Actions40592
Node: Locations Overview41781
Node: Bison Parser43228
Node: Stages45540
Node: Grammar Layout46823
Node: Examples48080
Node: RPN Calc49215
Node: Rpcalc Decls50189
Node: Rpcalc Rules51776
Node: Rpcalc Input53576
Node: Rpcalc Line55037
Node: Rpcalc Expr56152
Node: Rpcalc Lexer58097
Node: Rpcalc Main60669
Node: Rpcalc Error61067
Node: Rpcalc Gen62075
Node: Rpcalc Compile63224
Node: Infix Calc64099
Node: Simple Error Recovery66806
Node: Multi-function Calc68692
Node: Mfcalc Decl70258
Node: Mfcalc Rules72281
Node: Mfcalc Symtab73661
Node: Exercises80034
Node: Grammar File80540
Node: Grammar Outline81388
Node: C Declarations82122
Node: Bison Declarations82702
Node: Grammar Rules83114
Node: C Code83574
Node: Symbols84504
Node: Rules89585
Node: Recursion91224
Node: Semantics92943
Node: Value Type94037
Node: Multiple Types94709
Node: Actions95726
Node: Action Types98511
Node: Mid-Rule Actions99814
Node: Locations105383
Node: Location Type106048
Node: Actions and Locations106606
Node: Location Default Action107770
Node: Declarations108977
Node: Token Decl110296
Node: Precedence Decl112309
Node: Union Decl113860
Node: Type Decl114704
Node: Expect Decl115610
Node: Start Decl117156
Node: Pure Decl117534
Node: Decl Summary119211
Node: Multiple Parsers124594
Node: Interface126088
Node: Parser Function126960
Node: Lexical127795
Node: Calling Convention129201
Node: Token Values131972
Node: Token Positions133121
Node: Pure Calling134006
Node: Error Reporting136938
Node: Action Features139060
Node: Algorithm142355
Node: Look-Ahead144648
Node: Shift/Reduce146780
Node: Precedence149692
Node: Why Precedence150343
Node: Using Precedence152208
Node: Precedence Examples153176
Node: How Precedence153877
Node: Contextual Precedence155026
Node: Parser States156817
Node: Reduce/Reduce158060
Node: Mystery Conflicts161621
Node: Stack Overflow165007
Node: Error Recovery166380
Node: Context Dependency171516
Node: Semantic Tokens172364
Node: Lexical Tie-ins175381
Node: Tie-in Recovery176929
Node: Debugging179101
Node: Invocation182402
Node: Bison Options183658
Node: Environment Variables187092
Node: Option Cross Key187940
Node: VMS Invocation188784
Node: Table of Symbols189568
Node: Glossary196961
Node: Index203251
Node: Top1313
Node: Introduction8966
Node: Conditions10241
Node: Copying11705
Node: Concepts30908
Node: Language and Grammar31987
Node: Grammar in Bison37003
Node: Semantic Values38927
Node: Semantic Actions41028
Node: Locations Overview42217
Node: Bison Parser43664
Node: Stages45976
Node: Grammar Layout47259
Node: Examples48516
Node: RPN Calc49714
Node: Rpcalc Decls50688
Node: Rpcalc Rules52275
Node: Rpcalc Input54075
Node: Rpcalc Line55536
Node: Rpcalc Expr56651
Node: Rpcalc Lexer58596
Node: Rpcalc Main61168
Node: Rpcalc Error61566
Node: Rpcalc Gen62574
Node: Rpcalc Compile63723
Node: Infix Calc64598
Node: Simple Error Recovery67305
Node: Location Tracking Calc69194
Node: Ltcalc Decls69924
Node: Ltcalc Rules70833
Node: Ltcalc Lexer72894
Node: Multi-function Calc75232
Node: Mfcalc Decl76799
Node: Mfcalc Rules78822
Node: Mfcalc Symtab80202
Node: Exercises86575
Node: Grammar File87081
Node: Grammar Outline87929
Node: C Declarations88663
Node: Bison Declarations89243
Node: Grammar Rules89655
Node: C Code90115
Node: Symbols91045
Node: Rules96126
Node: Recursion97765
Node: Semantics99484
Node: Value Type100578
Node: Multiple Types101250
Node: Actions102267
Node: Action Types105052
Node: Mid-Rule Actions106355
Node: Locations111925
Node: Location Type112573
Node: Actions and Locations113131
Node: Location Default Action115287
Node: Declarations116750
Node: Token Decl118069
Node: Precedence Decl120082
Node: Union Decl121633
Node: Type Decl122477
Node: Expect Decl123383
Node: Start Decl124929
Node: Pure Decl125307
Node: Decl Summary126984
Node: Multiple Parsers132367
Node: Interface133861
Node: Parser Function134733
Node: Lexical135568
Node: Calling Convention136974
Node: Token Values139745
Node: Token Positions140894
Node: Pure Calling141779
Node: Error Reporting144711
Node: Action Features146833
Node: Algorithm150128
Node: Look-Ahead152421
Node: Shift/Reduce154553
Node: Precedence157465
Node: Why Precedence158116
Node: Using Precedence159981
Node: Precedence Examples160949
Node: How Precedence161650
Node: Contextual Precedence162799
Node: Parser States164590
Node: Reduce/Reduce165833
Node: Mystery Conflicts169394
Node: Stack Overflow172780
Node: Error Recovery174153
Node: Context Dependency179289
Node: Semantic Tokens180137
Node: Lexical Tie-ins183154
Node: Tie-in Recovery184702
Node: Debugging186874
Node: Invocation190175
Node: Bison Options191427
Node: Environment Variables195039
Node: Option Cross Key195887
Node: VMS Invocation196731
Node: Table of Symbols197515
Node: Glossary205154
Node: Copying This Manual211458
Node: GNU Free Documentation License211667
Node: Index231532

End Tag Table
+27 -13
View File
@@ -8,7 +8,7 @@ END-INFO-DIR-ENTRY
This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
2000 Free Software Foundation, Inc.
2000, 2001 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -29,9 +29,12 @@ included in translations approved by the Free Software Foundation
instead of in the original English.

File: bison.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
File: bison.info, Node: Top, Next: Introduction, Up: (dir)
This manual documents version 1.28a of Bison.
Bison
*****
This manual documents version 1.28d of Bison, updated 29 August 2001.
* Menu:
@@ -55,9 +58,9 @@ Reference sections:
* Invocation:: How to run Bison (to produce the parser source file).
* Table of Symbols:: All the keywords of the Bison language are explained.
* Glossary:: Basic concepts are explained.
* Copying This Manual:: License for copying this manual.
* Index:: Cross-references to the text.
--- The Detailed Node Listing ---
The Concepts of Bison
@@ -80,6 +83,7 @@ Examples
* Infix Calc:: Infix (algebraic) notation calculator.
Operator precedence is introduced.
* Simple Error Recovery:: Continuing after syntax errors.
* Location Tracking Calc:: Demonstrating the use of @N and @$.
* Multi-function Calc:: Calculator with memory and trig functions.
It uses multiple data-types for semantic values.
* Exercises:: Ideas for improving the multi-function calculator.
@@ -100,6 +104,12 @@ Grammar Rules for `rpcalc'
* Rpcalc Line::
* Rpcalc Expr::
Location Tracking Calculator: `ltcalc'
* Decls: Ltcalc Decls. Bison and C declarations for ltcalc.
* Rules: Ltcalc Rules. Grammar rules for ltcalc, with explanations.
* Lexer: Ltcalc Lexer. The lexical analyzer.
Multi-Function Calculator: `mfcalc'
* Decl: Mfcalc Decl. Bison declarations for multi-function calculator.
@@ -195,6 +205,10 @@ Invoking Bison
* Option Cross Key:: Alphabetical list of long options.
* VMS Invocation:: Bison command syntax on VMS.
Copying This Manual
* GNU Free Documentation License:: License for copying this manual.

File: bison.info, Node: Introduction, Next: Conditions, Prev: Top, Up: Top
@@ -223,7 +237,7 @@ Bison in detail.
it Yacc-compatible. Wilfred Hansen of Carnegie Mellon University added
multi-character string literals and other features.
This edition corresponds to version 1.28a of Bison.
This edition corresponds to version 1.28d of Bison.

File: bison.info, Node: Conditions, Next: Copying, Prev: Introduction, Up: Top
@@ -263,8 +277,9 @@ GNU GENERAL PUBLIC LICENSE
**************************
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -552,8 +567,8 @@ modification follow.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
=============================================
Appendix: How to Apply These Terms to Your New Programs
=======================================================
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -566,7 +581,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
Copyright (C) 19YY NAME OF AUTHOR
Copyright (C) YYYY NAME OF AUTHOR
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -580,8 +595,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Also add information on how to contact you by electronic and paper
mail.
@@ -590,8 +604,7 @@ mail.
this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'.
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -1030,6 +1043,7 @@ the Info file and into a source file to try them.
* Infix Calc:: Infix (algebraic) notation calculator.
Operator precedence is introduced.
* Simple Error Recovery:: Continuing after syntax errors.
* Location Tracking Calc:: Demonstrating the use of @N and @$.
* Multi-function Calc:: Calculator with memory and trig functions.
It uses multiple data-types for semantic values.
* Exercises:: Ideas for improving the multi-function calculator.
+188 -147
View File
@@ -8,7 +8,7 @@ END-INFO-DIR-ENTRY
This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
2000 Free Software Foundation, Inc.
2000, 2001 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -494,7 +494,7 @@ Precedence.
9

File: bison.info, Node: Simple Error Recovery, Next: Multi-function Calc, Prev: Infix Calc, Up: Examples
File: bison.info, Node: Simple Error Recovery, Next: Location Tracking Calc, Prev: Infix Calc, Up: Examples
Simple Error Recovery
=====================
@@ -533,7 +533,192 @@ the current line of input. We won't discuss this issue further because
it is not specific to Bison programs.

File: bison.info, Node: Multi-function Calc, Next: Exercises, Prev: Simple Error Recovery, Up: Examples
File: bison.info, Node: Location Tracking Calc, Next: Multi-function Calc, Prev: Simple Error Recovery, Up: Examples
Location Tracking Calculator: `ltcalc'
======================================
This example extends the infix notation calculator with location
tracking. This feature will be used to improve error reporting, and
provide better error messages.
For the sake of clarity, we will switch for this example to an
integer calculator, since most of the work needed to use locations will
be done in the lexical analyser.
* Menu:
* Decls: Ltcalc Decls. Bison and C declarations for ltcalc.
* Rules: Ltcalc Rules. Grammar rules for ltcalc, with explanations.
* Lexer: Ltcalc Lexer. The lexical analyzer.

File: bison.info, Node: Ltcalc Decls, Next: Ltcalc Rules, Up: Location Tracking Calc
Declarations for `ltcalc'
-------------------------
The C and Bison declarations for the location tracking calculator
are the same as the declarations for the infix notation calculator.
/* Location tracking calculator. */
%{
#define YYSTYPE int
#include <math.h>
%}
/* Bison declarations. */
%token NUM
%left '-' '+'
%left '*' '/'
%left NEG
%right '^'
%% /* Grammar follows */
In the code above, there are no declarations specific to locations.
Defining a data type for storing locations is not needed: we will use
the type provided by default (*note Data Types of Locations: Location
Type.), which is a four member structure with the following integer
fields: `first_line', `first_column', `last_line' and `last_column'.

File: bison.info, Node: Ltcalc Rules, Next: Ltcalc Lexer, Prev: Ltcalc Decls, Up: Location Tracking Calc
Grammar Rules for `ltcalc'
--------------------------
Whether you choose to handle locations or not has no effect on the
syntax of your language. Therefore, grammar rules for this example
will be very close to those of the previous example: we will only
modify them to benefit from the new informations we will have.
Here, we will use locations to report divisions by zero, and locate
the wrong expressions or subexpressions.
input : /* empty */
| input line
;
line : '\n'
| exp '\n' { printf ("%d\n", $1); }
;
exp : NUM { $$ = $1; }
| exp '+' exp { $$ = $1 + $3; }
| exp '-' exp { $$ = $1 - $3; }
| exp '*' exp { $$ = $1 * $3; }
| exp '/' exp
{
if ($3)
$$ = $1 / $3;
else
{
$$ = 1;
printf("Division by zero, l%d,c%d-l%d,c%d",
@3.first_line, @3.first_column,
@3.last_line, @3.last_column);
}
}
| '-' exp %preg NEG { $$ = -$2; }
| exp '^' exp { $$ = pow ($1, $3); }
| '(' exp ')' { $$ = $2; }
This code shows how to reach locations inside of semantic actions, by
using the pseudo-variables `@N' for rule components, and the
pseudo-variable `@$' for groupings.
In this example, we never assign a value to `@$', because the output
parser can do this automatically. By default, before executing the C
code of each action, `@$' is set to range from the beginning of `@1' to
the end of `@N', for a rule with N components.
Of course, this behavior can be redefined (*note Default Action for
Locations: Location Default Action.), and for very specific rules, `@$'
can be computed by hand.

File: bison.info, Node: Ltcalc Lexer, Prev: Ltcalc Rules, Up: Location Tracking Calc
The `ltcalc' Lexical Analyzer.
------------------------------
Until now, we relied on Bison's defaults to enable location
tracking. The next step is to rewrite the lexical analyser, and make it
able to feed the parser with locations of tokens, as he already does
for semantic values.
To do so, we must take into account every single character of the
input text, to avoid the computed locations of being fuzzy or wrong:
int
yylex (void)
{
int c;
/* skip white space */
while ((c = getchar ()) == ' ' || c == '\t')
++yylloc.last_column;
/* step */
yylloc.first_line = yylloc.last_line;
yylloc.first_column = yylloc.last_column;
/* process numbers */
if (isdigit (c))
{
yylval = c - '0';
++yylloc.last_column;
while (isdigit (c = getchar ()))
{
++yylloc.last_column;
yylval = yylval * 10 + c - '0';
}
ungetc (c, stdin);
return NUM;
}
/* return end-of-file */
if (c == EOF)
return 0;
/* return single chars and update location */
if (c == '\n')
{
++yylloc.last_line;
yylloc.last_column = 0;
}
else
++yylloc.last_column;
return c;
}
Basically, the lexical analyzer does the same processing as before:
it skips blanks and tabs, and reads numbers or single-character tokens.
In addition to this, it updates the `yylloc' global variable (of type
`YYLTYPE'), where the location of tokens is stored.
Now, each time this function returns a token, the parser has it's
number as well as it's semantic value, and it's position in the text.
The last needed change is to initialize `yylloc', for example in the
controlling function:
int
main (void)
{
yylloc.first_line = yylloc.last_line = 1;
yylloc.first_column = yylloc.last_column = 0;
return yyparse ();
}
Remember that computing locations is not a matter of syntax. Every
character must be associated to a location update, whether it is in
valid input, in comments, in literal strings, and so on...

File: bison.info, Node: Multi-function Calc, Next: Exercises, Prev: Location Tracking Calc, Up: Examples
Multi-Function Calculator: `mfcalc'
===================================
@@ -1240,147 +1425,3 @@ associated with X and Y.
This says when, why and how to use the exceptional
action in the middle of a rule.

File: bison.info, Node: Value Type, Next: Multiple Types, Up: Semantics
Data Types of Semantic Values
-----------------------------
In a simple program it may be sufficient to use the same data type
for the semantic values of all language constructs. This was true in
the RPN and infix calculator examples (*note Reverse Polish Notation
Calculator: RPN Calc.).
Bison's default is to use type `int' for all semantic values. To
specify some other type, define `YYSTYPE' as a macro, like this:
#define YYSTYPE double
This macro definition must go in the C declarations section of the
grammar file (*note Outline of a Bison Grammar: Grammar Outline.).

File: bison.info, Node: Multiple Types, Next: Actions, Prev: Value Type, Up: Semantics
More Than One Value Type
------------------------
In most programs, you will need different data types for different
kinds of tokens and groupings. For example, a numeric constant may
need type `int' or `long', while a string constant needs type `char *',
and an identifier might need a pointer to an entry in the symbol table.
To use more than one data type for semantic values in one parser,
Bison requires you to do two things:
* Specify the entire collection of possible data types, with the
`%union' Bison declaration (*note The Collection of Value Types:
Union Decl.).
* Choose one of those types for each symbol (terminal or
nonterminal) for which semantic values are used. This is done for
tokens with the `%token' Bison declaration (*note Token Type
Names: Token Decl.) and for groupings with the `%type' Bison
declaration (*note Nonterminal Symbols: Type Decl.).

File: bison.info, Node: Actions, Next: Action Types, Prev: Multiple Types, Up: Semantics
Actions
-------
An action accompanies a syntactic rule and contains C code to be
executed each time an instance of that rule is recognized. The task of
most actions is to compute a semantic value for the grouping built by
the rule from the semantic values associated with tokens or smaller
groupings.
An action consists of C statements surrounded by braces, much like a
compound statement in C. It can be placed at any position in the rule;
it is executed at that position. Most rules have just one action at
the end of the rule, following all the components. Actions in the
middle of a rule are tricky and used only for special purposes (*note
Actions in Mid-Rule: Mid-Rule Actions.).
The C code in an action can refer to the semantic values of the
components matched by the rule with the construct `$N', which stands for
the value of the Nth component. The semantic value for the grouping
being constructed is `$$'. (Bison translates both of these constructs
into array element references when it copies the actions into the parser
file.)
Here is a typical example:
exp: ...
| exp '+' exp
{ $$ = $1 + $3; }
This rule constructs an `exp' from two smaller `exp' groupings
connected by a plus-sign token. In the action, `$1' and `$3' refer to
the semantic values of the two component `exp' groupings, which are the
first and third symbols on the right hand side of the rule. The sum is
stored into `$$' so that it becomes the semantic value of the
addition-expression just recognized by the rule. If there were a
useful semantic value associated with the `+' token, it could be
referred to as `$2'.
If you don't specify an action for a rule, Bison supplies a default:
`$$ = $1'. Thus, the value of the first symbol in the rule becomes the
value of the whole rule. Of course, the default rule is valid only if
the two data types match. There is no meaningful default action for an
empty rule; every empty rule must have an explicit action unless the
rule's value does not matter.
`$N' with N zero or negative is allowed for reference to tokens and
groupings on the stack _before_ those that match the current rule.
This is a very risky practice, and to use it reliably you must be
certain of the context in which the rule is applied. Here is a case in
which you can use this reliably:
foo: expr bar '+' expr { ... }
| expr bar '-' expr { ... }
;
bar: /* empty */
{ previous_expr = $0; }
;
As long as `bar' is used only in the fashion shown here, `$0' always
refers to the `expr' which precedes `bar' in the definition of `foo'.

File: bison.info, Node: Action Types, Next: Mid-Rule Actions, Prev: Actions, Up: Semantics
Data Types of Values in Actions
-------------------------------
If you have chosen a single data type for semantic values, the `$$'
and `$N' constructs always have that data type.
If you have used `%union' to specify a variety of data types, then
you must declare a choice among these types for each terminal or
nonterminal symbol that can have a semantic value. Then each time you
use `$$' or `$N', its data type is determined by which symbol it refers
to in the rule. In this example,
exp: ...
| exp '+' exp
{ $$ = $1 + $3; }
`$1' and `$3' refer to instances of `exp', so they all have the data
type declared for the nonterminal symbol `exp'. If `$2' were used, it
would have the data type declared for the terminal symbol `'+'',
whatever that might be.
Alternatively, you can specify the data type when you refer to the
value, by inserting `<TYPE>' after the `$' at the beginning of the
reference. For example, if you have defined types as shown here:
%union {
int itype;
double dtype;
}
then you can write `$<itype>1' to refer to the first subunit of the
rule as an integer, or `$<dtype>1' to refer to it as a double.
+206 -211
View File
@@ -8,7 +8,7 @@ END-INFO-DIR-ENTRY
This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
2000 Free Software Foundation, Inc.
2000, 2001 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -28,6 +28,150 @@ License", "Conditions for Using Bison" and this permission notice may be
included in translations approved by the Free Software Foundation
instead of in the original English.

File: bison.info, Node: Value Type, Next: Multiple Types, Up: Semantics
Data Types of Semantic Values
-----------------------------
In a simple program it may be sufficient to use the same data type
for the semantic values of all language constructs. This was true in
the RPN and infix calculator examples (*note Reverse Polish Notation
Calculator: RPN Calc.).
Bison's default is to use type `int' for all semantic values. To
specify some other type, define `YYSTYPE' as a macro, like this:
#define YYSTYPE double
This macro definition must go in the C declarations section of the
grammar file (*note Outline of a Bison Grammar: Grammar Outline.).

File: bison.info, Node: Multiple Types, Next: Actions, Prev: Value Type, Up: Semantics
More Than One Value Type
------------------------
In most programs, you will need different data types for different
kinds of tokens and groupings. For example, a numeric constant may
need type `int' or `long', while a string constant needs type `char *',
and an identifier might need a pointer to an entry in the symbol table.
To use more than one data type for semantic values in one parser,
Bison requires you to do two things:
* Specify the entire collection of possible data types, with the
`%union' Bison declaration (*note The Collection of Value Types:
Union Decl.).
* Choose one of those types for each symbol (terminal or
nonterminal) for which semantic values are used. This is done for
tokens with the `%token' Bison declaration (*note Token Type
Names: Token Decl.) and for groupings with the `%type' Bison
declaration (*note Nonterminal Symbols: Type Decl.).

File: bison.info, Node: Actions, Next: Action Types, Prev: Multiple Types, Up: Semantics
Actions
-------
An action accompanies a syntactic rule and contains C code to be
executed each time an instance of that rule is recognized. The task of
most actions is to compute a semantic value for the grouping built by
the rule from the semantic values associated with tokens or smaller
groupings.
An action consists of C statements surrounded by braces, much like a
compound statement in C. It can be placed at any position in the rule;
it is executed at that position. Most rules have just one action at
the end of the rule, following all the components. Actions in the
middle of a rule are tricky and used only for special purposes (*note
Actions in Mid-Rule: Mid-Rule Actions.).
The C code in an action can refer to the semantic values of the
components matched by the rule with the construct `$N', which stands for
the value of the Nth component. The semantic value for the grouping
being constructed is `$$'. (Bison translates both of these constructs
into array element references when it copies the actions into the parser
file.)
Here is a typical example:
exp: ...
| exp '+' exp
{ $$ = $1 + $3; }
This rule constructs an `exp' from two smaller `exp' groupings
connected by a plus-sign token. In the action, `$1' and `$3' refer to
the semantic values of the two component `exp' groupings, which are the
first and third symbols on the right hand side of the rule. The sum is
stored into `$$' so that it becomes the semantic value of the
addition-expression just recognized by the rule. If there were a
useful semantic value associated with the `+' token, it could be
referred to as `$2'.
If you don't specify an action for a rule, Bison supplies a default:
`$$ = $1'. Thus, the value of the first symbol in the rule becomes the
value of the whole rule. Of course, the default rule is valid only if
the two data types match. There is no meaningful default action for an
empty rule; every empty rule must have an explicit action unless the
rule's value does not matter.
`$N' with N zero or negative is allowed for reference to tokens and
groupings on the stack _before_ those that match the current rule.
This is a very risky practice, and to use it reliably you must be
certain of the context in which the rule is applied. Here is a case in
which you can use this reliably:
foo: expr bar '+' expr { ... }
| expr bar '-' expr { ... }
;
bar: /* empty */
{ previous_expr = $0; }
;
As long as `bar' is used only in the fashion shown here, `$0' always
refers to the `expr' which precedes `bar' in the definition of `foo'.

File: bison.info, Node: Action Types, Next: Mid-Rule Actions, Prev: Actions, Up: Semantics
Data Types of Values in Actions
-------------------------------
If you have chosen a single data type for semantic values, the `$$'
and `$N' constructs always have that data type.
If you have used `%union' to specify a variety of data types, then
you must declare a choice among these types for each terminal or
nonterminal symbol that can have a semantic value. Then each time you
use `$$' or `$N', its data type is determined by which symbol it refers
to in the rule. In this example,
exp: ...
| exp '+' exp
{ $$ = $1 + $3; }
`$1' and `$3' refer to instances of `exp', so they all have the data
type declared for the nonterminal symbol `exp'. If `$2' were used, it
would have the data type declared for the terminal symbol `'+'',
whatever that might be.
Alternatively, you can specify the data type when you refer to the
value, by inserting `<TYPE>' after the `$' at the beginning of the
reference. For example, if you have defined types as shown here:
%union {
int itype;
double dtype;
}
then you can write `$<itype>1' to refer to the first subunit of the
rule as an integer, or `$<dtype>1' to refer to it as a double.

File: bison.info, Node: Mid-Rule Actions, Prev: Action Types, Up: Semantics
@@ -52,7 +196,7 @@ N to use in `$N'.
set its value with an assignment to `$$', and actions later in the rule
can refer to the value using `$N'. Since there is no symbol to name
the action, there is no way to declare a data type for the value in
advance, so you must use the `$<...>' construct to specify a data type
advance, so you must use the `$<...>N' construct to specify a data type
each time you refer to this value.
There is no way to set the value of the entire rule with a mid-rule
@@ -165,7 +309,7 @@ Tracking Locations
Though grammar rules and semantic actions are enough to write a fully
functional parser, it can be useful to process some additionnal
informations, especially locations of tokens and groupings.
informations, especially symbol locations.
The way locations are handled is defined by providing a data type,
and actions to take when rules are matched.
@@ -213,19 +357,47 @@ elements being matched. The location of the Nth component of the right
hand side is `@N', while the location of the left hand side grouping is
`@$'.
Here is a simple example using the default data type for locations:
Here is a basic example using the default data type for locations:
exp: ...
| exp '+' exp
| exp '/' exp
{
@$.first_column = @1.first_column;
@$.first_line = @1.first_line;
@$.last_column = @3.last_column;
@$.last_line = @3.last_line;
$$ = $1 + $3;
if ($3)
$$ = $1 / $3;
else
{
$$ = 1;
printf("Division by zero, l%d,c%d-l%d,c%d",
@3.first_line, @3.first_column,
@3.last_line, @3.last_column);
}
}
In the example above, there is no need to set the beginning of `@$'. The
output parser always sets `@$' to `@1' before executing the C code of a
given action, whether you provide a processing for locations or not.
As for semantic values, there is a default action for locations that
is run each time a rule is matched. It sets the beginning of `@$' to the
beginning of the first symbol, and the end of `@$' to the end of the
last symbol.
With this default action, the location tracking can be fully
automatic. The example above simply rewrites this way:
exp: ...
| exp '/' exp
{
if ($3)
$$ = $1 / $3;
else
{
$$ = 1;
printf("Division by zero, l%d,c%d-l%d,c%d",
@3.first_line, @3.first_column,
@3.last_line, @3.last_column);
}
}

File: bison.info, Node: Location Default Action, Prev: Actions and Locations, Up: Locations
@@ -235,26 +407,35 @@ Default Action for Locations
Actually, actions are not the best place to compute locations. Since
locations are much more general than semantic values, there is room in
the output parser to define a default action to take for each rule. The
`YYLLOC_DEFAULT' macro is called each time a rule is matched, before
the associated action is run.
the output parser to redefine the default action to take for each rule.
The `YYLLOC_DEFAULT' macro is called each time a rule is matched,
before the associated action is run.
This macro takes two parameters, the first one being the location of
the grouping (the result of the computation), and the second one being
the location of the last element matched. Of course, before
`YYLLOC_DEFAULT' is run, the result is set to the location of the first
component matched.
Most of the time, this macro is general enough to suppress location
dedicated code from semantic actions.
By default, this macro computes a location that ranges from the
beginning of the first element to the end of the last element. It is
defined this way:
The `YYLLOC_DEFAULT' macro takes three parameters. The first one is
the location of the grouping (the result of the computation). The
second one is an array holding locations of all right hand side
elements of the rule being matched. The last one is the size of the
right hand side rule.
#define YYLLOC_DEFAULT(Current, Last) \
Current.last_line = Last.last_line; \
Current.last_column = Last.last_column;
By default, it is defined this way:
Most of the time, the default action for locations is general enough to
suppress location dedicated code from most actions.
#define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
When defining `YYLLOC_DEFAULT', you should consider that:
* All arguments are free of side-effects. However, only the first
one (the result) should be modified by `YYLLOC_DEFAULT'.
* Before `YYLLOC_DEFAULT' is executed, the output parser sets `@$'
to `@1'.
* For consistency with semantic actions, valid indexes for the
location array range from 1 to N.

File: bison.info, Node: Declarations, Next: Multiple Parsers, Prev: Locations, Up: Grammar File
@@ -1134,189 +1315,3 @@ useful in actions.
textual position of the Nth component of the current rule. *Note
Tracking Locations: Locations.

File: bison.info, Node: Algorithm, Next: Error Recovery, Prev: Interface, Up: Top
The Bison Parser Algorithm
**************************
As Bison reads tokens, it pushes them onto a stack along with their
semantic values. The stack is called the "parser stack". Pushing a
token is traditionally called "shifting".
For example, suppose the infix calculator has read `1 + 5 *', with a
`3' to come. The stack will have four elements, one for each token
that was shifted.
But the stack does not always have an element for each token read.
When the last N tokens and groupings shifted match the components of a
grammar rule, they can be combined according to that rule. This is
called "reduction". Those tokens and groupings are replaced on the
stack by a single grouping whose symbol is the result (left hand side)
of that rule. Running the rule's action is part of the process of
reduction, because this is what computes the semantic value of the
resulting grouping.
For example, if the infix calculator's parser stack contains this:
1 + 5 * 3
and the next input token is a newline character, then the last three
elements can be reduced to 15 via the rule:
expr: expr '*' expr;
Then the stack contains just these three elements:
1 + 15
At this point, another reduction can be made, resulting in the single
value 16. Then the newline token can be shifted.
The parser tries, by shifts and reductions, to reduce the entire
input down to a single grouping whose symbol is the grammar's
start-symbol (*note Languages and Context-Free Grammars: Language and
Grammar.).
This kind of parser is known in the literature as a bottom-up parser.
* Menu:
* Look-Ahead:: Parser looks one token ahead when deciding what to do.
* Shift/Reduce:: Conflicts: when either shifting or reduction is valid.
* Precedence:: Operator precedence works by resolving conflicts.
* Contextual Precedence:: When an operator's precedence depends on context.
* Parser States:: The parser is a finite-state-machine with stack.
* Reduce/Reduce:: When two rules are applicable in the same situation.
* Mystery Conflicts:: Reduce/reduce conflicts that look unjustified.
* Stack Overflow:: What happens when stack gets full. How to avoid it.

File: bison.info, Node: Look-Ahead, Next: Shift/Reduce, Up: Algorithm
Look-Ahead Tokens
=================
The Bison parser does _not_ always reduce immediately as soon as the
last N tokens and groupings match a rule. This is because such a
simple strategy is inadequate to handle most languages. Instead, when a
reduction is possible, the parser sometimes "looks ahead" at the next
token in order to decide what to do.
When a token is read, it is not immediately shifted; first it
becomes the "look-ahead token", which is not on the stack. Now the
parser can perform one or more reductions of tokens and groupings on
the stack, while the look-ahead token remains off to the side. When no
more reductions should take place, the look-ahead token is shifted onto
the stack. This does not mean that all possible reductions have been
done; depending on the token type of the look-ahead token, some rules
may choose to delay their application.
Here is a simple case where look-ahead is needed. These three rules
define expressions which contain binary addition operators and postfix
unary factorial operators (`!'), and allow parentheses for grouping.
expr: term '+' expr
| term
;
term: '(' expr ')'
| term '!'
| NUMBER
;
Suppose that the tokens `1 + 2' have been read and shifted; what
should be done? If the following token is `)', then the first three
tokens must be reduced to form an `expr'. This is the only valid
course, because shifting the `)' would produce a sequence of symbols
`term ')'', and no rule allows this.
If the following token is `!', then it must be shifted immediately so
that `2 !' can be reduced to make a `term'. If instead the parser were
to reduce before shifting, `1 + 2' would become an `expr'. It would
then be impossible to shift the `!' because doing so would produce on
the stack the sequence of symbols `expr '!''. No rule allows that
sequence.
The current look-ahead token is stored in the variable `yychar'.
*Note Special Features for Use in Actions: Action Features.

File: bison.info, Node: Shift/Reduce, Next: Precedence, Prev: Look-Ahead, Up: Algorithm
Shift/Reduce Conflicts
======================
Suppose we are parsing a language which has if-then and if-then-else
statements, with a pair of rules like this:
if_stmt:
IF expr THEN stmt
| IF expr THEN stmt ELSE stmt
;
Here we assume that `IF', `THEN' and `ELSE' are terminal symbols for
specific keyword tokens.
When the `ELSE' token is read and becomes the look-ahead token, the
contents of the stack (assuming the input is valid) are just right for
reduction by the first rule. But it is also legitimate to shift the
`ELSE', because that would lead to eventual reduction by the second
rule.
This situation, where either a shift or a reduction would be valid,
is called a "shift/reduce conflict". Bison is designed to resolve
these conflicts by choosing to shift, unless otherwise directed by
operator precedence declarations. To see the reason for this, let's
contrast it with the other alternative.
Since the parser prefers to shift the `ELSE', the result is to attach
the else-clause to the innermost if-statement, making these two inputs
equivalent:
if x then if y then win (); else lose;
if x then do; if y then win (); else lose; end;
But if the parser chose to reduce when possible rather than shift,
the result would be to attach the else-clause to the outermost
if-statement, making these two inputs equivalent:
if x then if y then win (); else lose;
if x then do; if y then win (); end; else lose;
The conflict exists because the grammar as written is ambiguous:
either parsing of the simple nested if-statement is legitimate. The
established convention is that these ambiguities are resolved by
attaching the else-clause to the innermost if-statement; this is what
Bison accomplishes by choosing to shift rather than reduce. (It would
ideally be cleaner to write an unambiguous grammar, but that is very
hard to do in this case.) This particular ambiguity was first
encountered in the specifications of Algol 60 and is called the
"dangling `else'" ambiguity.
To avoid warnings from Bison about predictable, legitimate
shift/reduce conflicts, use the `%expect N' declaration. There will be
no warning as long as the number of shift/reduce conflicts is exactly N.
*Note Suppressing Conflict Warnings: Expect Decl.
The definition of `if_stmt' above is solely to blame for the
conflict, but the conflict does not actually appear without additional
rules. Here is a complete Bison input file that actually manifests the
conflict:
%token IF THEN ELSE variable
%%
stmt: expr
| if_stmt
;
if_stmt:
IF expr THEN stmt
| IF expr THEN stmt ELSE stmt
;
expr: variable
;
+197 -212
View File
@@ -8,7 +8,7 @@ END-INFO-DIR-ENTRY
This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
2000 Free Software Foundation, Inc.
2000, 2001 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -28,6 +28,192 @@ License", "Conditions for Using Bison" and this permission notice may be
included in translations approved by the Free Software Foundation
instead of in the original English.

File: bison.info, Node: Algorithm, Next: Error Recovery, Prev: Interface, Up: Top
The Bison Parser Algorithm
**************************
As Bison reads tokens, it pushes them onto a stack along with their
semantic values. The stack is called the "parser stack". Pushing a
token is traditionally called "shifting".
For example, suppose the infix calculator has read `1 + 5 *', with a
`3' to come. The stack will have four elements, one for each token
that was shifted.
But the stack does not always have an element for each token read.
When the last N tokens and groupings shifted match the components of a
grammar rule, they can be combined according to that rule. This is
called "reduction". Those tokens and groupings are replaced on the
stack by a single grouping whose symbol is the result (left hand side)
of that rule. Running the rule's action is part of the process of
reduction, because this is what computes the semantic value of the
resulting grouping.
For example, if the infix calculator's parser stack contains this:
1 + 5 * 3
and the next input token is a newline character, then the last three
elements can be reduced to 15 via the rule:
expr: expr '*' expr;
Then the stack contains just these three elements:
1 + 15
At this point, another reduction can be made, resulting in the single
value 16. Then the newline token can be shifted.
The parser tries, by shifts and reductions, to reduce the entire
input down to a single grouping whose symbol is the grammar's
start-symbol (*note Languages and Context-Free Grammars: Language and
Grammar.).
This kind of parser is known in the literature as a bottom-up parser.
* Menu:
* Look-Ahead:: Parser looks one token ahead when deciding what to do.
* Shift/Reduce:: Conflicts: when either shifting or reduction is valid.
* Precedence:: Operator precedence works by resolving conflicts.
* Contextual Precedence:: When an operator's precedence depends on context.
* Parser States:: The parser is a finite-state-machine with stack.
* Reduce/Reduce:: When two rules are applicable in the same situation.
* Mystery Conflicts:: Reduce/reduce conflicts that look unjustified.
* Stack Overflow:: What happens when stack gets full. How to avoid it.

File: bison.info, Node: Look-Ahead, Next: Shift/Reduce, Up: Algorithm
Look-Ahead Tokens
=================
The Bison parser does _not_ always reduce immediately as soon as the
last N tokens and groupings match a rule. This is because such a
simple strategy is inadequate to handle most languages. Instead, when a
reduction is possible, the parser sometimes "looks ahead" at the next
token in order to decide what to do.
When a token is read, it is not immediately shifted; first it
becomes the "look-ahead token", which is not on the stack. Now the
parser can perform one or more reductions of tokens and groupings on
the stack, while the look-ahead token remains off to the side. When no
more reductions should take place, the look-ahead token is shifted onto
the stack. This does not mean that all possible reductions have been
done; depending on the token type of the look-ahead token, some rules
may choose to delay their application.
Here is a simple case where look-ahead is needed. These three rules
define expressions which contain binary addition operators and postfix
unary factorial operators (`!'), and allow parentheses for grouping.
expr: term '+' expr
| term
;
term: '(' expr ')'
| term '!'
| NUMBER
;
Suppose that the tokens `1 + 2' have been read and shifted; what
should be done? If the following token is `)', then the first three
tokens must be reduced to form an `expr'. This is the only valid
course, because shifting the `)' would produce a sequence of symbols
`term ')'', and no rule allows this.
If the following token is `!', then it must be shifted immediately so
that `2 !' can be reduced to make a `term'. If instead the parser were
to reduce before shifting, `1 + 2' would become an `expr'. It would
then be impossible to shift the `!' because doing so would produce on
the stack the sequence of symbols `expr '!''. No rule allows that
sequence.
The current look-ahead token is stored in the variable `yychar'.
*Note Special Features for Use in Actions: Action Features.

File: bison.info, Node: Shift/Reduce, Next: Precedence, Prev: Look-Ahead, Up: Algorithm
Shift/Reduce Conflicts
======================
Suppose we are parsing a language which has if-then and if-then-else
statements, with a pair of rules like this:
if_stmt:
IF expr THEN stmt
| IF expr THEN stmt ELSE stmt
;
Here we assume that `IF', `THEN' and `ELSE' are terminal symbols for
specific keyword tokens.
When the `ELSE' token is read and becomes the look-ahead token, the
contents of the stack (assuming the input is valid) are just right for
reduction by the first rule. But it is also legitimate to shift the
`ELSE', because that would lead to eventual reduction by the second
rule.
This situation, where either a shift or a reduction would be valid,
is called a "shift/reduce conflict". Bison is designed to resolve
these conflicts by choosing to shift, unless otherwise directed by
operator precedence declarations. To see the reason for this, let's
contrast it with the other alternative.
Since the parser prefers to shift the `ELSE', the result is to attach
the else-clause to the innermost if-statement, making these two inputs
equivalent:
if x then if y then win (); else lose;
if x then do; if y then win (); else lose; end;
But if the parser chose to reduce when possible rather than shift,
the result would be to attach the else-clause to the outermost
if-statement, making these two inputs equivalent:
if x then if y then win (); else lose;
if x then do; if y then win (); end; else lose;
The conflict exists because the grammar as written is ambiguous:
either parsing of the simple nested if-statement is legitimate. The
established convention is that these ambiguities are resolved by
attaching the else-clause to the innermost if-statement; this is what
Bison accomplishes by choosing to shift rather than reduce. (It would
ideally be cleaner to write an unambiguous grammar, but that is very
hard to do in this case.) This particular ambiguity was first
encountered in the specifications of Algol 60 and is called the
"dangling `else'" ambiguity.
To avoid warnings from Bison about predictable, legitimate
shift/reduce conflicts, use the `%expect N' declaration. There will be
no warning as long as the number of shift/reduce conflicts is exactly N.
*Note Suppressing Conflict Warnings: Expect Decl.
The definition of `if_stmt' above is solely to blame for the
conflict, but the conflict does not actually appear without additional
rules. Here is a complete Bison input file that actually manifests the
conflict:
%token IF THEN ELSE variable
%%
stmt: expr
| if_stmt
;
if_stmt:
IF expr THEN stmt
| IF expr THEN stmt ELSE stmt
;
expr: variable
;

File: bison.info, Node: Precedence, Next: Contextual Precedence, Prev: Shift/Reduce, Up: Algorithm
@@ -867,10 +1053,12 @@ manipulate filenames like `-o' or `-d'.
For example :
bison -d INFILE.YXX
will produce `infile.tab.cxx' and `infile.tab.hxx'. and
will produce `infile.tab.cxx' and `infile.tab.hxx'. and
bison -d INFILE.Y -o OUTPUT.C++
will produce `output.c++' and `outfile.h++'.
will produce `output.c++' and `outfile.h++'.
* Menu:
@@ -988,6 +1176,12 @@ Adjust the output:
The other output files' names are constructed from OUTFILE as
described under the `-v' and `-d' options.
`-g'
`--graph'
Output a VCG definition of the LALR(1) grammar automaton computed
by Bison. If the grammar file is `foo.y', the VCG output file will
be `foo.vcg'.

File: bison.info, Node: Environment Variables, Next: Option Cross Key, Prev: Bison Options, Up: Invocation
@@ -1056,212 +1250,3 @@ is equivalent to the following command under POSIX.
In the above example, the output file would instead be named
`foo_tab.c'.

File: bison.info, Node: Table of Symbols, Next: Glossary, Prev: Invocation, Up: Top
Bison Symbols
*************
`error'
A token name reserved for error recovery. This token may be used
in grammar rules so as to allow the Bison parser to recognize an
error in the grammar without halting the process. In effect, a
sentence containing an error may be recognized as valid. On a
parse error, the token `error' becomes the current look-ahead
token. Actions corresponding to `error' are then executed, and
the look-ahead token is reset to the token that originally caused
the violation. *Note Error Recovery::.
`YYABORT'
Macro to pretend that an unrecoverable syntax error has occurred,
by making `yyparse' return 1 immediately. The error reporting
function `yyerror' is not called. *Note The Parser Function
`yyparse': Parser Function.
`YYACCEPT'
Macro to pretend that a complete utterance of the language has been
read, by making `yyparse' return 0 immediately. *Note The Parser
Function `yyparse': Parser Function.
`YYBACKUP'
Macro to discard a value from the parser stack and fake a
look-ahead token. *Note Special Features for Use in Actions:
Action Features.
`YYERROR'
Macro to pretend that a syntax error has just been detected: call
`yyerror' and then perform normal error recovery if possible
(*note Error Recovery::), or (if recovery is impossible) make
`yyparse' return 1. *Note Error Recovery::.
`YYERROR_VERBOSE'
Macro that you define with `#define' in the Bison declarations
section to request verbose, specific error message strings when
`yyerror' is called.
`YYINITDEPTH'
Macro for specifying the initial size of the parser stack. *Note
Stack Overflow::.
`YYLEX_PARAM'
Macro for specifying an extra argument (or list of extra
arguments) for `yyparse' to pass to `yylex'. *Note Calling
Conventions for Pure Parsers: Pure Calling.
`YYLTYPE'
Macro for the data type of `yylloc'; a structure with four
members. *Note Data Types of Locations: Location Type.
`yyltype'
Default value for YYLTYPE.
`YYMAXDEPTH'
Macro for specifying the maximum size of the parser stack. *Note
Stack Overflow::.
`YYPARSE_PARAM'
Macro for specifying the name of a parameter that `yyparse' should
accept. *Note Calling Conventions for Pure Parsers: Pure Calling.
`YYRECOVERING'
Macro whose value indicates whether the parser is recovering from a
syntax error. *Note Special Features for Use in Actions: Action
Features.
`YYSTYPE'
Macro for the data type of semantic values; `int' by default.
*Note Data Types of Semantic Values: Value Type.
`yychar'
External integer variable that contains the integer value of the
current look-ahead token. (In a pure parser, it is a local
variable within `yyparse'.) Error-recovery rule actions may
examine this variable. *Note Special Features for Use in Actions:
Action Features.
`yyclearin'
Macro used in error-recovery rule actions. It clears the previous
look-ahead token. *Note Error Recovery::.
`yydebug'
External integer variable set to zero by default. If `yydebug' is
given a nonzero value, the parser will output information on input
symbols and parser action. *Note Debugging Your Parser: Debugging.
`yyerrok'
Macro to cause parser to recover immediately to its normal mode
after a parse error. *Note Error Recovery::.
`yyerror'
User-supplied function to be called by `yyparse' on error. The
function receives one argument, a pointer to a character string
containing an error message. *Note The Error Reporting Function
`yyerror': Error Reporting.
`yylex'
User-supplied lexical analyzer function, called with no arguments
to get the next token. *Note The Lexical Analyzer Function
`yylex': Lexical.
`yylval'
External variable in which `yylex' should place the semantic value
associated with a token. (In a pure parser, it is a local
variable within `yyparse', and its address is passed to `yylex'.)
*Note Semantic Values of Tokens: Token Values.
`yylloc'
External variable in which `yylex' should place the line and column
numbers associated with a token. (In a pure parser, it is a local
variable within `yyparse', and its address is passed to `yylex'.)
You can ignore this variable if you don't use the `@' feature in
the grammar actions. *Note Textual Positions of Tokens: Token
Positions.
`yynerrs'
Global variable which Bison increments each time there is a parse
error. (In a pure parser, it is a local variable within
`yyparse'.) *Note The Error Reporting Function `yyerror': Error
Reporting.
`yyparse'
The parser function produced by Bison; call this function to start
parsing. *Note The Parser Function `yyparse': Parser Function.
`%debug'
Equip the parser for debugging. *Note Decl Summary::.
`%defines'
Bison declaration to create a header file meant for the scanner.
*Note Decl Summary::.
`%left'
Bison declaration to assign left associativity to token(s). *Note
Operator Precedence: Precedence Decl.
`%no_lines'
Bison declaration to avoid generating `#line' directives in the
parser file. *Note Decl Summary::.
`%nonassoc'
Bison declaration to assign non-associativity to token(s). *Note
Operator Precedence: Precedence Decl.
`%prec'
Bison declaration to assign a precedence to a specific rule.
*Note Context-Dependent Precedence: Contextual Precedence.
`%pure_parser'
Bison declaration to request a pure (reentrant) parser. *Note A
Pure (Reentrant) Parser: Pure Decl.
`%right'
Bison declaration to assign right associativity to token(s).
*Note Operator Precedence: Precedence Decl.
`%start'
Bison declaration to specify the start symbol. *Note The
Start-Symbol: Start Decl.
`%token'
Bison declaration to declare token(s) without specifying
precedence. *Note Token Type Names: Token Decl.
`%token_table'
Bison declaration to include a token name table in the parser file.
*Note Decl Summary::.
`%type'
Bison declaration to declare nonterminals. *Note Nonterminal
Symbols: Type Decl.
`%union'
Bison declaration to specify several possible data types for
semantic values. *Note The Collection of Value Types: Union Decl.
These are the punctuation and delimiters used in Bison input:
`%%'
Delimiter used to separate the grammar rule section from the Bison
declarations section or the additional C code section. *Note The
Overall Layout of a Bison Grammar: Grammar Layout.
`%{ %}'
All code listed between `%{' and `%}' is copied directly to the
output file uninterpreted. Such code forms the "C declarations"
section of the input file. *Note Outline of a Bison Grammar:
Grammar Outline.
`/*...*/'
Comment delimiters, as in C.
`:'
Separates a rule's result from its components. *Note Syntax of
Grammar Rules: Rules.
`;'
Terminates a rule. *Note Syntax of Grammar Rules: Rules.
`|'
Separates alternate rules for the same result nonterminal. *Note
Syntax of Grammar Rules: Rules.
+617 -3
View File
@@ -8,7 +8,7 @@ END-INFO-DIR-ENTRY
This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
2000 Free Software Foundation, Inc.
2000, 2001 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -29,7 +29,222 @@ included in translations approved by the Free Software Foundation
instead of in the original English.

File: bison.info, Node: Glossary, Next: Index, Prev: Table of Symbols, Up: Top
File: bison.info, Node: Table of Symbols, Next: Glossary, Prev: Invocation, Up: Top
Bison Symbols
*************
`error'
A token name reserved for error recovery. This token may be used
in grammar rules so as to allow the Bison parser to recognize an
error in the grammar without halting the process. In effect, a
sentence containing an error may be recognized as valid. On a
parse error, the token `error' becomes the current look-ahead
token. Actions corresponding to `error' are then executed, and
the look-ahead token is reset to the token that originally caused
the violation. *Note Error Recovery::.
`YYABORT'
Macro to pretend that an unrecoverable syntax error has occurred,
by making `yyparse' return 1 immediately. The error reporting
function `yyerror' is not called. *Note The Parser Function
`yyparse': Parser Function.
`YYACCEPT'
Macro to pretend that a complete utterance of the language has been
read, by making `yyparse' return 0 immediately. *Note The Parser
Function `yyparse': Parser Function.
`YYBACKUP'
Macro to discard a value from the parser stack and fake a
look-ahead token. *Note Special Features for Use in Actions:
Action Features.
`YYERROR'
Macro to pretend that a syntax error has just been detected: call
`yyerror' and then perform normal error recovery if possible
(*note Error Recovery::), or (if recovery is impossible) make
`yyparse' return 1. *Note Error Recovery::.
`YYERROR_VERBOSE'
Macro that you define with `#define' in the Bison declarations
section to request verbose, specific error message strings when
`yyerror' is called.
`YYINITDEPTH'
Macro for specifying the initial size of the parser stack. *Note
Stack Overflow::.
`YYLEX_PARAM'
Macro for specifying an extra argument (or list of extra
arguments) for `yyparse' to pass to `yylex'. *Note Calling
Conventions for Pure Parsers: Pure Calling.
`YYLTYPE'
Macro for the data type of `yylloc'; a structure with four
members. *Note Data Types of Locations: Location Type.
`yyltype'
Default value for YYLTYPE.
`YYMAXDEPTH'
Macro for specifying the maximum size of the parser stack. *Note
Stack Overflow::.
`YYPARSE_PARAM'
Macro for specifying the name of a parameter that `yyparse' should
accept. *Note Calling Conventions for Pure Parsers: Pure Calling.
`YYRECOVERING'
Macro whose value indicates whether the parser is recovering from a
syntax error. *Note Special Features for Use in Actions: Action
Features.
`YYSTACK_USE_ALLOCA'
Macro used to control the use of `alloca'. If defined to `0', the
parser will not use `alloca' but `malloc' when trying to grow its
internal stacks. Do _not_ define `YYSTACK_USE_ALLOCA' to anything
else.
`YYSTYPE'
Macro for the data type of semantic values; `int' by default.
*Note Data Types of Semantic Values: Value Type.
`yychar'
External integer variable that contains the integer value of the
current look-ahead token. (In a pure parser, it is a local
variable within `yyparse'.) Error-recovery rule actions may
examine this variable. *Note Special Features for Use in Actions:
Action Features.
`yyclearin'
Macro used in error-recovery rule actions. It clears the previous
look-ahead token. *Note Error Recovery::.
`yydebug'
External integer variable set to zero by default. If `yydebug' is
given a nonzero value, the parser will output information on input
symbols and parser action. *Note Debugging Your Parser: Debugging.
`yyerrok'
Macro to cause parser to recover immediately to its normal mode
after a parse error. *Note Error Recovery::.
`yyerror'
User-supplied function to be called by `yyparse' on error. The
function receives one argument, a pointer to a character string
containing an error message. *Note The Error Reporting Function
`yyerror': Error Reporting.
`yylex'
User-supplied lexical analyzer function, called with no arguments
to get the next token. *Note The Lexical Analyzer Function
`yylex': Lexical.
`yylval'
External variable in which `yylex' should place the semantic value
associated with a token. (In a pure parser, it is a local
variable within `yyparse', and its address is passed to `yylex'.)
*Note Semantic Values of Tokens: Token Values.
`yylloc'
External variable in which `yylex' should place the line and column
numbers associated with a token. (In a pure parser, it is a local
variable within `yyparse', and its address is passed to `yylex'.)
You can ignore this variable if you don't use the `@' feature in
the grammar actions. *Note Textual Positions of Tokens: Token
Positions.
`yynerrs'
Global variable which Bison increments each time there is a parse
error. (In a pure parser, it is a local variable within
`yyparse'.) *Note The Error Reporting Function `yyerror': Error
Reporting.
`yyparse'
The parser function produced by Bison; call this function to start
parsing. *Note The Parser Function `yyparse': Parser Function.
`%debug'
Equip the parser for debugging. *Note Decl Summary::.
`%defines'
Bison declaration to create a header file meant for the scanner.
*Note Decl Summary::.
`%left'
Bison declaration to assign left associativity to token(s). *Note
Operator Precedence: Precedence Decl.
`%no_lines'
Bison declaration to avoid generating `#line' directives in the
parser file. *Note Decl Summary::.
`%nonassoc'
Bison declaration to assign non-associativity to token(s). *Note
Operator Precedence: Precedence Decl.
`%prec'
Bison declaration to assign a precedence to a specific rule.
*Note Context-Dependent Precedence: Contextual Precedence.
`%pure_parser'
Bison declaration to request a pure (reentrant) parser. *Note A
Pure (Reentrant) Parser: Pure Decl.
`%right'
Bison declaration to assign right associativity to token(s).
*Note Operator Precedence: Precedence Decl.
`%start'
Bison declaration to specify the start symbol. *Note The
Start-Symbol: Start Decl.
`%token'
Bison declaration to declare token(s) without specifying
precedence. *Note Token Type Names: Token Decl.
`%token_table'
Bison declaration to include a token name table in the parser file.
*Note Decl Summary::.
`%type'
Bison declaration to declare nonterminals. *Note Nonterminal
Symbols: Type Decl.
`%union'
Bison declaration to specify several possible data types for
semantic values. *Note The Collection of Value Types: Union Decl.
These are the punctuation and delimiters used in Bison input:
`%%'
Delimiter used to separate the grammar rule section from the Bison
declarations section or the additional C code section. *Note The
Overall Layout of a Bison Grammar: Grammar Layout.
`%{ %}'
All code listed between `%{' and `%}' is copied directly to the
output file uninterpreted. Such code forms the "C declarations"
section of the input file. *Note Outline of a Bison Grammar:
Grammar Outline.
`/*...*/'
Comment delimiters, as in C.
`:'
Separates a rule's result from its components. *Note Syntax of
Grammar Rules: Rules.
`;'
Terminates a rule. *Note Syntax of Grammar Rules: Rules.
`|'
Separates alternate rules for the same result nonterminal. *Note
Syntax of Grammar Rules: Rules.

File: bison.info, Node: Glossary, Next: Copying This Manual, Prev: Table of Symbols, Up: Top
Glossary
********
@@ -195,7 +410,402 @@ Terminal symbol
Grammar.

File: bison.info, Node: Index, Prev: Glossary, Up: Top
File: bison.info, Node: Copying This Manual, Next: Index, Prev: Glossary, Up: Top
Copying This Manual
*******************
* Menu:
* GNU Free Documentation License:: License for copying this manual.

File: bison.info, Node: GNU Free Documentation License, Up: Copying This Manual
GNU Free Documentation License
==============================
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other
written document "free" in the sense of freedom: to assure everyone
the effective freedom to copy and redistribute it, with or without
modifying it, either commercially or noncommercially. Secondarily,
this License preserves for the author and publisher a way to get
credit for their work, while not being considered responsible for
modifications made by others.
This License is a kind of "copyleft", which means that derivative
works of the document must themselves be free in the same sense.
It complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for
free software, because free software needs free documentation: a
free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to
software manuals; it can be used for any textual work, regardless
of subject matter or whether it is published as a printed book.
We recommend this License principally for works whose purpose is
instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a
notice placed by the copyright holder saying it can be distributed
under the terms of this License. The "Document", below, refers to
any such manual or work. Any member of the public is a licensee,
and is addressed as "you".
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter
section of the Document that deals exclusively with the
relationship of the publishers or authors of the Document to the
Document's overall subject (or to related matters) and contains
nothing that could fall directly within that overall subject.
(For example, if the Document is in part a textbook of
mathematics, a Secondary Section may not explain any mathematics.)
The relationship could be a matter of historical connection with
the subject or with related matters, or of legal, commercial,
philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose
titles are designated, as being those of Invariant Sections, in
the notice that says that the Document is released under this
License.
The "Cover Texts" are certain short passages of text that are
listed, as Front-Cover Texts or Back-Cover Texts, in the notice
that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, whose contents can be viewed and edited directly
and straightforwardly with generic text editors or (for images
composed of pixels) generic paint programs or (for drawings) some
widely available drawing editor, and that is suitable for input to
text formatters or for automatic translation to a variety of
formats suitable for input to text formatters. A copy made in an
otherwise Transparent file format whose markup has been designed
to thwart or discourage subsequent modification by readers is not
Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format,
SGML or XML using a publicly available DTD, and
standard-conforming simple HTML designed for human modification.
Opaque formats include PostScript, PDF, proprietary formats that
can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally
available, and the machine-generated HTML produced by some word
processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the
material this License requires to appear in the title page. For
works in formats which do not have any title page as such, "Title
Page" means the text near the most prominent appearance of the
work's title, preceding the beginning of the body of the text.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License
applies to the Document are reproduced in all copies, and that you
add no other conditions whatsoever to those of this License. You
may not use technical measures to obstruct or control the reading
or further copying of the copies you make or distribute. However,
you may accept compensation in exchange for copies. If you
distribute a large enough number of copies you must also follow
the conditions in section 3.
You may also lend copies, under the same conditions stated above,
and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than
100, and the Document's license notice requires Cover Texts, you
must enclose the copies in covers that carry, clearly and legibly,
all these Cover Texts: Front-Cover Texts on the front cover, and
Back-Cover Texts on the back cover. Both covers must also clearly
and legibly identify you as the publisher of these copies. The
front cover must present the full title with all words of the
title equally prominent and visible. You may add other material
on the covers in addition. Copying with changes limited to the
covers, as long as they preserve the title of the Document and
satisfy these conditions, can be treated as verbatim copying in
other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto
adjacent pages.
If you publish or distribute Opaque copies of the Document
numbering more than 100, you must either include a
machine-readable Transparent copy along with each Opaque copy, or
state in or with each Opaque copy a publicly-accessible
computer-network location containing a complete Transparent copy
of the Document, free of added material, which the general
network-using public has access to download anonymously at no
charge using public-standard network protocols. If you use the
latter option, you must take reasonably prudent steps, when you
begin distribution of Opaque copies in quantity, to ensure that
this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you
distribute an Opaque copy (directly or through your agents or
retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of
the Document well before redistributing any large number of
copies, to give them a chance to provide you with an updated
version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document
under the conditions of sections 2 and 3 above, provided that you
release the Modified Version under precisely this License, with
the Modified Version filling the role of the Document, thus
licensing distribution and modification of the Modified Version to
whoever possesses a copy of it. In addition, you must do these
things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title
distinct from that of the Document, and from those of
previous versions (which should, if there were any, be listed
in the History section of the Document). You may use the
same title as a previous version if the original publisher of
that version gives permission.
B. List on the Title Page, as authors, one or more persons or
entities responsible for authorship of the modifications in
the Modified Version, together with at least five of the
principal authors of the Document (all of its principal
authors, if it has less than five).
C. State on the Title page the name of the publisher of the
Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license
notice giving the public permission to use the Modified
Version under the terms of this License, in the form shown in
the Addendum below.
G. Preserve in that license notice the full lists of Invariant
Sections and required Cover Texts given in the Document's
license notice.
H. Include an unaltered copy of this License.
I. Preserve the section entitled "History", and its title, and
add to it an item stating at least the title, year, new
authors, and publisher of the Modified Version as given on
the Title Page. If there is no section entitled "History" in
the Document, create one stating the title, year, authors,
and publisher of the Document as given on its Title Page,
then add an item describing the Modified Version as stated in
the previous sentence.
J. Preserve the network location, if any, given in the Document
for public access to a Transparent copy of the Document, and
likewise the network locations given in the Document for
previous versions it was based on. These may be placed in
the "History" section. You may omit a network location for a
work that was published at least four years before the
Document itself, or if the original publisher of the version
it refers to gives permission.
K. In any section entitled "Acknowledgments" or "Dedications",
preserve the section's title, and preserve in the section all
the substance and tone of each of the contributor
acknowledgments and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section
titles.
M. Delete any section entitled "Endorsements". Such a section
may not be included in the Modified Version.
N. Do not retitle any existing section as "Endorsements" or to
conflict in title with any Invariant Section.
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no
material copied from the Document, you may at your option
designate some or all of these sections as invariant. To do this,
add their titles to the list of Invariant Sections in the Modified
Version's license notice. These titles must be distinct from any
other section titles.
You may add a section entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties--for example, statements of peer review or that the text
has been approved by an organization as the authoritative
definition of a standard.
You may add a passage of up to five words as a Front-Cover Text,
and a passage of up to 25 words as a Back-Cover Text, to the end
of the list of Cover Texts in the Modified Version. Only one
passage of Front-Cover Text and one of Back-Cover Text may be
added by (or through arrangements made by) any one entity. If the
Document already includes a cover text for the same cover,
previously added by you or by arrangement made by the same entity
you are acting on behalf of, you may not add another; but you may
replace the old one, on explicit permission from the previous
publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this
License give permission to use their names for publicity for or to
assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under
this License, under the terms defined in section 4 above for
modified versions, provided that you include in the combination
all of the Invariant Sections of all of the original documents,
unmodified, and list them all as Invariant Sections of your
combined work in its license notice.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name
but different contents, make the title of each such section unique
by adding at the end of it, in parentheses, the name of the
original author or publisher of that section if known, or else a
unique number. Make the same adjustment to the section titles in
the list of Invariant Sections in the license notice of the
combined work.
In the combination, you must combine any sections entitled
"History" in the various original documents, forming one section
entitled "History"; likewise combine any sections entitled
"Acknowledgments", and any sections entitled "Dedications". You
must delete all sections entitled "Endorsements."
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other
documents released under this License, and replace the individual
copies of this License in the various documents with a single copy
that is included in the collection, provided that you follow the
rules of this License for verbatim copying of each of the
documents in all other respects.
You may extract a single document from such a collection, and
distribute it individually under this License, provided you insert
a copy of this License into the extracted document, and follow
this License in all other respects regarding verbatim copying of
that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other
separate and independent documents or works, in or on a volume of
a storage or distribution medium, does not as a whole count as a
Modified Version of the Document, provided no compilation
copyright is claimed for the compilation. Such a compilation is
called an "aggregate", and this License does not apply to the
other self-contained works thus compiled with the Document, on
account of their being thus compiled, if they are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one
quarter of the entire aggregate, the Document's Cover Texts may be
placed on covers that surround only the Document within the
aggregate. Otherwise they must appear on covers around the whole
aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section
4. Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License provided that you also include the
original English version of this License. In case of a
disagreement between the translation and the original English
version of this License, the original English version will prevail.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document
except as expressly provided for under this License. Any other
attempt to copy, modify, sublicense or distribute the Document is
void, and will automatically terminate your rights under this
License. However, parties who have received copies, or rights,
from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of
the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
`http://www.gnu.org/copyleft/'.
Each version of the License is given a distinguishing version
number. If the Document specifies that a particular numbered
version of this License "or any later version" applies to it, you
have the option of following the terms and conditions either of
that specified version or of any later version that has been
published (not as a draft) by the Free Software Foundation. If
the Document does not specify a version number of this License,
you may choose any version ever published (not as a draft) by the
Free Software Foundation.
ADDENDUM: How to use this License for your documents
----------------------------------------------------
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and license
notices just after the title page:
Copyright (C) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
If you have no Invariant Sections, write "with no Invariant Sections"
instead of saying which ones are invariant. If you have no Front-Cover
Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
LIST"; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License, to
permit their use in free software.

File: bison.info, Node: Index, Prev: Copying This Manual, Up: Top
Index
*****
@@ -245,6 +855,7 @@ Index
* C-language interface: Interface.
* calc: Infix Calc.
* calculator, infix notation: Infix Calc.
* calculator, location tracking: Location Tracking Calc.
* calculator, multi-function: Multi-function Calc.
* calculator, simple: RPN Calc.
* character token: Symbols.
@@ -285,6 +896,7 @@ Index
* error reporting routine: Rpcalc Error.
* examples, simple: Examples.
* exercises: Exercises.
* FDL, GNU Free Documentation License: GNU Free Documentation License.
* file format: Grammar Layout.
* finite-state machine: Parser States.
* formal grammar: Grammar in Bison.
@@ -314,8 +926,10 @@ Index
* location <1>: Locations.
* location: Locations Overview.
* location actions: Actions and Locations.
* location tracking calculator: Location Tracking Calc.
* look-ahead token: Look-Ahead.
* LR(1): Mystery Conflicts.
* ltcalc: Location Tracking Calc.
* main function in simple example: Rpcalc Main.
* mfcalc: Multi-function Calc.
* mid-rule actions: Mid-Rule Actions.
+436 -523
View File
File diff suppressed because it is too large Load Diff
+401
View File
@@ -0,0 +1,401 @@
@node GNU Free Documentation License
@appendixsec GNU Free Documentation License
@cindex FDL, GNU Free Documentation License
@center Version 1.1, March 2000
@display
Copyright @copyright{} 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@end display
@enumerate 0
@item
PREAMBLE
The purpose of this License is to make a manual, textbook, or other
written document @dfn{free} in the sense of freedom: to assure everyone
the effective freedom to copy and redistribute it, with or without
modifying it, either commercially or noncommercially. Secondarily,
this License preserves for the author and publisher a way to get
credit for their work, while not being considered responsible for
modifications made by others.
This License is a kind of ``copyleft'', which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
@item
APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a
notice placed by the copyright holder saying it can be distributed
under the terms of this License. The ``Document'', below, refers to any
such manual or work. Any member of the public is a licensee, and is
addressed as ``you''.
A ``Modified Version'' of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A ``Secondary Section'' is a named appendix or a front-matter section of
the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall subject
(or to related matters) and contains nothing that could fall directly
within that overall subject. (For example, if the Document is in part a
textbook of mathematics, a Secondary Section may not explain any
mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The ``Invariant Sections'' are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License.
The ``Cover Texts'' are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License.
A ``Transparent'' copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, whose contents can be viewed and edited directly and
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup has been designed to thwart or discourage
subsequent modification by readers is not Transparent. A copy that is
not ``Transparent'' is called ``Opaque''.
Examples of suitable formats for Transparent copies include plain
@sc{ascii} without markup, Texinfo input format, La@TeX{} input format,
@acronym{SGML} or @acronym{XML} using a publicly available
@acronym{DTD}, and standard-conforming simple @acronym{HTML} designed
for human modification. Opaque formats include PostScript,
@acronym{PDF}, proprietary formats that can be read and edited only by
proprietary word processors, @acronym{SGML} or @acronym{XML} for which
the @acronym{DTD} and/or processing tools are not generally available,
and the machine-generated @acronym{HTML} produced by some word
processors for output purposes only.
The ``Title Page'' means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, ``Title Page'' means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
@item
VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
@item
COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100,
and the Document's license notice requires Cover Texts, you must enclose
the copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the
general network-using public has access to download anonymously at no
charge using public-standard network protocols. If you use the latter
option, you must take reasonably prudent steps, when you begin
distribution of Opaque copies in quantity, to ensure that this
Transparent copy will remain thus accessible at the stated location
until at least one year after the last time you distribute an Opaque
copy (directly or through your agents or retailers) of that edition to
the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
@item
MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
@enumerate A
@item
Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
@item
List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has less than five).
@item
State on the Title page the name of the publisher of the
Modified Version, as the publisher.
@item
Preserve all the copyright notices of the Document.
@item
Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
@item
Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
@item
Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
@item
Include an unaltered copy of this License.
@item
Preserve the section entitled ``History'', and its title, and add to
it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section entitled ``History'' in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
@item
Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the ``History'' section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
@item
In any section entitled ``Acknowledgments'' or ``Dedications'',
preserve the section's title, and preserve in the section all the
substance and tone of each of the contributor acknowledgments
and/or dedications given therein.
@item
Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
@item
Delete any section entitled ``Endorsements''. Such a section
may not be included in the Modified Version.
@item
Do not retitle any existing section as ``Endorsements''
or to conflict in title with any Invariant Section.
@end enumerate
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section entitled ``Endorsements'', provided it contains
nothing but endorsements of your Modified Version by various
parties---for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
@item
COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled ``History''
in the various original documents, forming one section entitled
``History''; likewise combine any sections entitled ``Acknowledgments'',
and any sections entitled ``Dedications''. You must delete all sections
entitled ``Endorsements.''
@item
COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
@item
AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, does not as a whole count as a Modified Version
of the Document, provided no compilation copyright is claimed for the
compilation. Such a compilation is called an ``aggregate'', and this
License does not apply to the other self-contained works thus compiled
with the Document, on account of their being thus compiled, if they
are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one quarter
of the entire aggregate, the Document's Cover Texts may be placed on
covers that surround only the Document within the aggregate.
Otherwise they must appear on covers around the whole aggregate.
@item
TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License provided that you also include the
original English version of this License. In case of a disagreement
between the translation and the original English version of this
License, the original English version will prevail.
@item
TERMINATION
You may not copy, modify, sublicense, or distribute the Document except
as expressly provided for under this License. Any other attempt to
copy, modify, sublicense or distribute the Document is void, and will
automatically terminate your rights under this License. However,
parties who have received copies, or rights, from you under this
License will not have their licenses terminated so long as such
parties remain in full compliance.
@item
FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
@uref{http://www.gnu.org/copyleft/}.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License ``or any later version'' applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation.
@end enumerate
@page
@appendixsubsec ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
@smallexample
@group
Copyright (C) @var{year} @var{your name}.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with the Invariant Sections being @var{list their titles}, with the
Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
@end group
@end smallexample
If you have no Invariant Sections, write ``with no Invariant Sections''
instead of saying which ones are invariant. If you have no
Front-Cover Texts, write ``no Front-Cover Texts'' instead of
``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
@c Local Variables:
@c ispell-local-pdict: "ispell-dict"
@c End:
+392
View File
@@ -0,0 +1,392 @@
@node Copying
@unnumbered GNU GENERAL PUBLIC LICENSE
@center Version 2, June 1991
@c This file is intended to be included in another file.
@display
Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@end display
@unnumberedsec Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software---to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
@iftex
@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@end iftex
@ifinfo
@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@end ifinfo
@enumerate 0
@item
This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The ``Program'', below,
refers to any such program or work, and a ``work based on the Program''
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term ``modification''.) Each licensee is addressed as ``you''.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
@item
You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
@item
You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
@enumerate a
@item
You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
@item
You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
@item
If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
@end enumerate
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
@item
You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
@enumerate a
@item
Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
@item
Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
@item
Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
@end enumerate
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
@item
You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
@item
You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
@item
Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
@item
If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
@item
If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
@item
The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and ``any
later version'', you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
@item
If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
@iftex
@heading NO WARRANTY
@end iftex
@ifinfo
@center NO WARRANTY
@end ifinfo
@item
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
@item
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
@end enumerate
@iftex
@heading END OF TERMS AND CONDITIONS
@end iftex
@ifinfo
@center END OF TERMS AND CONDITIONS
@end ifinfo
@page
@unnumberedsec Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the ``copyright'' line and a pointer to where the full notice is found.
@smallexample
@var{one line to give the program's name and a brief idea of what it does.}
Copyright (C) @var{yyyy} @var{name of author}
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@end smallexample
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
@smallexample
Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@end smallexample
The hypothetical commands @samp{show w} and @samp{show c} should show
the appropriate parts of the General Public License. Of course, the
commands you use may be called something other than @samp{show w} and
@samp{show c}; they could even be mouse-clicks or menu items---whatever
suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a ``copyright disclaimer'' for the program, if
necessary. Here is a sample; alter the names:
@example
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
@var{signature of Ty Coon}, 1 April 1989
Ty Coon, President of Vice
@end example
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
-92
View File
@@ -1,92 +0,0 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# written by Ulrich Drepper <[email protected]>, June 1995
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Prevent date giving response in another language.
LANG=C
export LANG
LC_ALL=C
export LC_ALL
LC_TIME=C
export LC_TIME
# Get the extended ls output of the file or directory.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
if ls -L /dev/null 1>/dev/null 2>&1; then
set - x`ls -L -l -d $1`
else
set - x`ls -l -d $1`
fi
# The month is at least the fourth argument
# (3 shifts here, the next inside the loop).
shift
shift
shift
# Find the month. Next argument is day, followed by the year or time.
month=
until test $month
do
shift
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
Apr) month=April; nummonth=4;;
May) month=May; nummonth=5;;
Jun) month=June; nummonth=6;;
Jul) month=July; nummonth=7;;
Aug) month=August; nummonth=8;;
Sep) month=September; nummonth=9;;
Oct) month=October; nummonth=10;;
Nov) month=November; nummonth=11;;
Dec) month=December; nummonth=12;;
esac
done
day=$2
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.
case $3 in
*:*) set `date`; eval year=\$$#
case $2 in
Jan) nummonthtod=1;;
Feb) nummonthtod=2;;
Mar) nummonthtod=3;;
Apr) nummonthtod=4;;
May) nummonthtod=5;;
Jun) nummonthtod=6;;
Jul) nummonthtod=7;;
Aug) nummonthtod=8;;
Sep) nummonthtod=9;;
Oct) nummonthtod=10;;
Nov) nummonthtod=11;;
Dec) nummonthtod=12;;
esac
# For the first six month of the year the time notation can also
# be used for files modified in the last year.
if (expr $nummonth \> $nummonthtod) > /dev/null;
then
year=`expr $year - 1`
fi;;
*) year=$3;;
esac
# The result.
echo $day $month $year
+4 -3
View File
@@ -1,3 +1,4 @@
@set UPDATED 1 August 2001
@set EDITION 1.28a
@set VERSION 1.28a
@set UPDATED 29 August 2001
@set UPDATED-MONTH August 2001
@set EDITION 1.28d
@set VERSION 1.28d
+4 -3
View File
@@ -1,3 +1,4 @@
@set UPDATED 1 August 2001
@set EDITION 1.28a
@set VERSION 1.28a
@set UPDATED 29 August 2001
@set UPDATED-MONTH August 2001
@set EDITION 1.28d
@set VERSION 1.28d
+58 -20
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# commit version 0.9.3
# clcommit version 0.9.5
# Copyright (C) 1999, 2000, Free Software Foundation
@@ -9,7 +9,7 @@
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
# Originally by Gary V. Vaughan <[email protected]>
# Heavily modified by Alexandre Oliva <oliva@dcc.unicamp.br>
# Pretty much rewritten by Alexandre Oliva <aoliva@redhat.com>
# This scripts eases checking in changes to CVS-maintained projects
# with ChangeLog files. It will check that there have been no
@@ -30,23 +30,26 @@
# are checked in, unless `-n' was specified, in which case nothing is
# checked in.
# usage: commit [-v] [-h] [-f] [-l] [-n] [-q] [-z N] [-C ChangeLog_file]
# [-m msg|-F msg_file] [--] [file|dir ...]
# usage: clcommit [-v] [-h] [-f] [-l] [-n] [-q] [-z N] [-C ChangeLog_file]
# [-m msg|-F msg_file|-1] [--] [file|dir ...]
# -f --fast don't check (unless *followed* by -n), and just
# --force display commit message instead of running $PAGER
# -f --force don't check (unless *followed* by -n), and just
# display commit message instead of running $PAGER
# -l --local don't descend into subdirectories
# -m msg --message=msg set commit message
# --msg=msg same as -m
# -F file --file=file read commit message from file
# -1 --first extract first entry from ChangeLog, no cvs diff
# -C file --changelog=file extract commit message from specified ChangeLog
# --fast same as --force --first
# -n --dry-run don't commit anything
# -q --quiet run cvs in quiet mode
# -zN --compress=N set compression level (0-9, 0=none, 9=max)
# -v --version print version information
# -h,-? --help print short or long help message
name=commit
name=clcommit
: ${CVS=cvs}
cvsopt=
updateopt=
commitopt=
@@ -54,6 +57,7 @@ dry_run=false
commit=:
update=:
log_file="${TMPDIR-/tmp}/commitlog.$$"
first=false
rm -f "$log_file"
trap 'rm -f "$log_file"; exit 1' 1 2 15
@@ -65,7 +69,12 @@ while $main_repeat; do
repeat="test $# -gt 0"
while $repeat; do
case "$1" in
-f|--force|--fast)
--fast)
shift
set fnord --force --first ${1+"$@"}
shift
;;
-f|--force)
update=false
PAGER=cat
shift
@@ -80,8 +89,8 @@ while $repeat; do
echo "$name: missing argument for $1" >&2
break
fi
if test -f "$log_file"; then
echo "$name: you can have at most one of -m and -F" >&2
if $first || test -f "$log_file"; then
echo "$name: you can have at most one of -m, -F and -1" >&2
break
fi
shift
@@ -89,8 +98,8 @@ while $repeat; do
shift
;;
-F|--file)
if test -f "$log_file"; then
echo "$name: you can have at most one of -m and -F" >&2
if $first || test -f "$log_file"; then
echo "$name: you can have at most one of -m, -F and -1" >&2
break
fi
if test $# = 1; then
@@ -103,6 +112,14 @@ while $repeat; do
fi
shift
;;
-1|--first)
if test -f "$log_File"; then
echo "$name: you can have at most one of -m, -F and -1" >&2
break
fi
first=:
shift
;;
-C|--[cC]hange[lL]og)
if test $# = 1; then
echo "$name: missing argument for $1" >&2
@@ -114,6 +131,7 @@ while $repeat; do
break
fi
ChangeLog="$1"
shift
;;
-n|--dry-run)
commit=false
@@ -124,6 +142,10 @@ while $repeat; do
cvsopt="$cvsopt -q"
shift
;;
-v|--verbose)
cvsopt="$cvsopt -t"
shift
;;
-z|--compress)
if test $# = 1; then
echo "$name: missing argument for $1" >&2
@@ -185,7 +207,7 @@ $repeat && break
$update && \
if echo "$name: checking for conflicts..." >&2
(cvs $cvsopt -q -n update $updateopt ${1+"$@"} 2>/dev/null \
($CVS $cvsopt -q -n update $updateopt ${1+"$@"} 2>/dev/null \
| while read line; do
echo "$line"
echo "$line" >&3
@@ -211,9 +233,24 @@ if test ! -f "$log_file"; then
fi
echo "$name: checking commit message..." >&2
cvs $cvsopt diff -u $ChangeLog \
| while read line; do
if $first; then
skipping=:
sed 's,^,+,' < ${ChangeLog-ChangeLog} |
while read line; do
case "$line" in
"+2"*) if $skipping; then skipping=false; else break; fi;;
"+ "*)
echo "$name: *** Warning: lines should start with tabs, not spaces; ignoring line:" >&2
echo "$line" | sed 's/^.//' >&2;;
"+ "*)
$skipping || echo "$line" ;;
esac
done |
sed 's,^\+ ,,' > "$log_file" || break
else
$CVS $cvsopt diff -u ${ChangeLog-ChangeLog} |
while read line; do
case $line in
"--- "*) :;;
"-"*)
echo "$name: *** Warning: the following line in ChangeLog diff is suspicious:" >&2
@@ -224,9 +261,10 @@ if test ! -f "$log_file"; then
"+") echo;;
"+ "*) echo "$line";;
esac
done \
| sed -e 's,\+ ,,' -e '/./p' -e '/./d' -e '1d' -e '$d' > "$log_file" \
|| break
done |
sed -e 's,\+ ,,' -e '/./p' -e '/./d' -e '1d' -e '$d' > "$log_file" \
|| break
fi
# The sed script above removes "+TAB" from the beginning of a line, then
# deletes the first and/or the last line, when they happen to be empty
fi
@@ -237,7 +275,7 @@ if grep '[^ ]' < "$log_file" > /dev/null; then :; else
fi
if grep '^$' < "$log_file" > /dev/null; then
echo "$name: *** Warning: blank lines should not appear within a commit messages." >&2
echo "$name: *** Warning: blank lines should not appear within commit messages." >&2
echo "$name: *** They should be used to separate distinct commits." >&2
fi
@@ -249,7 +287,7 @@ sleep 1 # give the user some time for a ^C
# zeroed it out. If s/he did, it was probably intentional.
if $commit; then
cvs $cvsopt commit $commitopt -F $log_file ${1+"$@"} || break
$CVS $cvsopt commit $commitopt -F $log_file ${1+"$@"} || break
fi
main_repeat=false
+1
View File
@@ -0,0 +1 @@
Makefile
+1 -1
View File
@@ -18,5 +18,5 @@ libbison_a_SOURCES = \
quote.h quote.c quotearg.h quotearg.c \
xalloc.h xmalloc.c xstrdup.c
libbison_a_LIBADD = @LIBOBJS@ @ALLOCA@
libbison_a_LIBADD = @LIBOBJS@
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
+207 -206
View File
@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@@ -59,20 +57,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AT_TESTPATH = @AT_TESTPATH@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
@@ -81,9 +84,9 @@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -93,6 +96,9 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = ansi2knr
@@ -100,300 +106,295 @@ noinst_LIBRARIES = libbison.a
INCLUDES = -I.. -I$(srcdir) -I../intl
# Heck, we are still using an old version of Automake which does not
# understand LIBOBJ additions using $objext...
EXTRA_DIST = malloc.c realloc.c
libbison_a_SOURCES = error.c error.h getopt.h getopt.c getopt1.c obstack.h obstack.c quote.h quote.c quotearg.h quotearg.c xalloc.h xmalloc.c xstrdup.c
libbison_a_SOURCES = \
error.c error.h \
getopt.h getopt.c getopt1.c \
obstack.h obstack.c \
quote.h quote.c quotearg.h quotearg.c \
xalloc.h xmalloc.c xstrdup.c
libbison_a_LIBADD = @LIBOBJS@ @ALLOCA@
libbison_a_LIBADD = @LIBOBJS@
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
subdir = lib
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
libbison_a_AR = $(AR) cru
am_libbison_a_OBJECTS = error$U.$(OBJEXT) getopt$U.$(OBJEXT) \
getopt1$U.$(OBJEXT) obstack$U.$(OBJEXT) quote$U.$(OBJEXT) \
quotearg$U.$(OBJEXT) xmalloc$U.$(OBJEXT) xstrdup$U.$(OBJEXT)
libbison_a_OBJECTS = $(am_libbison_a_OBJECTS)
DEFS = @DEFS@ -I. -I$(srcdir) -I..
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
ANSI2KNR = @ANSI2KNR@
libbison_a_OBJECTS = error$U.o getopt$U.o getopt1$U.o obstack$U.o \
quote$U.o quotearg$U.o xmalloc$U.o xstrdup$U.o
AR = ar
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/error$U.Po $(DEPDIR)/getopt$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/getopt1$U.Po $(DEPDIR)/malloc.Po \
@AMDEP_TRUE@ $(DEPDIR)/memchr.Po $(DEPDIR)/obstack$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/quote$U.Po $(DEPDIR)/quotearg$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/realloc.Po $(DEPDIR)/stpcpy.Po \
@AMDEP_TRUE@ $(DEPDIR)/strndup.Po $(DEPDIR)/strnlen.Po \
@AMDEP_TRUE@ $(DEPDIR)/strspn.Po $(DEPDIR)/xmalloc$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/xstrdup$U.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = Makefile.am Makefile.in alloca.c ansi2knr.1 ansi2knr.c \
memchr.c stpcpy.c strndup.c strnlen.c strspn.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
DEP_FILES = .deps/alloca.P .deps/error.P .deps/getopt.P .deps/getopt1.P \
.deps/memchr.P .deps/obstack.P .deps/quote.P .deps/quotearg.P \
.deps/stpcpy.P .deps/strndup.P .deps/strnlen.P .deps/strspn.P \
.deps/xmalloc.P .deps/xstrdup.P
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libbison_a_SOURCES)
DIST_COMMON = Makefile.am Makefile.in ansi2knr.1 ansi2knr.c malloc.c \
memchr.c realloc.c stpcpy.c strndup.c strnlen.c strspn.c
SOURCES = $(libbison_a_SOURCES)
OBJECTS = $(libbison_a_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu lib/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
AR = ar
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
libbison.a: $(libbison_a_OBJECTS) $(libbison_a_DEPENDENCIES)
-rm -f libbison.a
$(libbison_a_AR) libbison.a $(libbison_a_OBJECTS) $(libbison_a_LIBADD)
$(RANLIB) libbison.a
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
mostlyclean-krextra:
ANSI2KNR = @ANSI2KNR@
ansi2knr: ansi2knr.$(OBJEXT)
$(LINK) ansi2knr.$(OBJEXT) $(LIBS)
ansi2knr.$(OBJEXT): $(CONFIG_HEADER)
clean-krextra:
-rm -f ansi2knr
distclean-krextra:
maintainer-clean-krextra:
ansi2knr: ansi2knr.o
$(LINK) ansi2knr.o $(LIBS)
ansi2knr.o: $(CONFIG_HEADER)
mostlyclean-kr:
-rm -f *_.c
clean-kr:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/error$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memchr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/obstack$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/quote$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/quotearg$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stpcpy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strndup.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strnlen.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strspn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/xmalloc$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/xstrdup$U.Po@am__quote@
distclean-kr:
distclean-depend:
-rm -rf $(DEPDIR)
maintainer-clean-kr:
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
libbison.a: $(libbison_a_OBJECTS) $(libbison_a_DEPENDENCIES)
-rm -f libbison.a
$(AR) cru libbison.a $(libbison_a_OBJECTS) $(libbison_a_LIBADD)
$(RANLIB) libbison.a
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
alloca_.c: alloca.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c || rm -f alloca_.c
error_.c: error.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c || rm -f error_.c
getopt_.c: getopt.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c || rm -f getopt_.c
getopt1_.c: getopt1.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c || rm -f getopt1_.c
malloc_.c: malloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/malloc.c; then echo $(srcdir)/malloc.c; else echo malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > malloc_.c || rm -f malloc_.c
memchr_.c: memchr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memchr.c; then echo $(srcdir)/memchr.c; else echo memchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memchr_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memchr.c; then echo $(srcdir)/memchr.c; else echo memchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memchr_.c || rm -f memchr_.c
obstack_.c: obstack.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c || rm -f obstack_.c
quote_.c: quote.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quote.c; then echo $(srcdir)/quote.c; else echo quote.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quote_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quote.c; then echo $(srcdir)/quote.c; else echo quote.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quote_.c || rm -f quote_.c
quotearg_.c: quotearg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c || rm -f quotearg_.c
realloc_.c: realloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/realloc.c; then echo $(srcdir)/realloc.c; else echo realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > realloc_.c || rm -f realloc_.c
stpcpy_.c: stpcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c || rm -f stpcpy_.c
strndup_.c: strndup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c || rm -f strndup_.c
strnlen_.c: strnlen.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strnlen.c; then echo $(srcdir)/strnlen.c; else echo strnlen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strnlen_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strnlen.c; then echo $(srcdir)/strnlen.c; else echo strnlen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strnlen_.c || rm -f strnlen_.c
strspn_.c: strspn.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strspn.c; then echo $(srcdir)/strspn.c; else echo strspn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strspn_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strspn.c; then echo $(srcdir)/strspn.c; else echo strspn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strspn_.c || rm -f strspn_.c
xmalloc_.c: xmalloc.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c || rm -f xmalloc_.c
xstrdup_.c: xstrdup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c
alloca_.o error_.o getopt_.o getopt1_.o memchr_.o obstack_.o quote_.o \
quotearg_.o stpcpy_.o strndup_.o strnlen_.o strspn_.o xmalloc_.o \
xstrdup_.o : $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c || rm -f xstrdup_.c
alloca_.$(OBJEXT) error_.$(OBJEXT) getopt_.$(OBJEXT) getopt1_.$(OBJEXT) \
malloc_.$(OBJEXT) memchr_.$(OBJEXT) obstack_.$(OBJEXT) quote_.$(OBJEXT) \
quotearg_.$(OBJEXT) realloc_.$(OBJEXT) stpcpy_.$(OBJEXT) \
strndup_.$(OBJEXT) strnlen_.$(OBJEXT) strspn_.$(OBJEXT) \
xmalloc_.$(OBJEXT) xstrdup_.$(OBJEXT) : $(ANSI2KNR)
uninstall-info-am:
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = lib
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu lib/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
all-am: Makefile $(ANSI2KNR) $(LIBRARIES)
install-data-am:
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(ANSI2KNR) $(LIBRARIES)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-krextra mostlyclean-kr mostlyclean-tags \
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-krextra clean-kr \
clean-tags clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-krextra distclean-kr distclean-tags \
distclean-depend distclean-generic clean-am
clean-am: clean-generic clean-krextra clean-noinstLIBRARIES \
mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-krextra \
maintainer-clean-kr maintainer-clean-tags \
maintainer-clean-depend maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-krextra distclean-krextra \
clean-krextra maintainer-clean-krextra mostlyclean-kr distclean-kr \
clean-kr maintainer-clean-kr tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir mostlyclean-depend \
distclean-depend clean-depend maintainer-clean-depend info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic mostlyclean-kr
uninstall-am: uninstall-info-am
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-krextra clean-noinstLIBRARIES distclean distclean-compile \
distclean-depend distclean-generic distclean-tags distdir dvi \
dvi-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-kr tags uninstall uninstall-am \
uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
+107 -73
View File
@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@@ -59,20 +57,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AT_TESTPATH = @AT_TESTPATH@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
@@ -81,9 +84,9 @@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -93,112 +96,143 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
EXTRA_DIST = atconfig.m4 c-bs-a.m4 codeset.m4 error.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 m4.m4 malloc.m4 mbstate_t.m4 prereq.m4 progtest.m4 realloc.m4 strerror_r.m4 warning.m4
EXTRA_DIST = \
atconfig.m4 \
c-bs-a.m4 \
codeset.m4 \
error.m4 \
gettext.m4 \
glibc21.m4 \
iconv.m4 \
isc-posix.m4 \
lcmessage.m4 \
m4.m4 \
malloc.m4 \
mbstate_t.m4 \
prereq.m4 \
progtest.m4 \
realloc.m4 \
strerror_r.m4 \
warning.m4
subdir = m4
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DIST_COMMON = Makefile.am Makefile.in
all: all-am
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu m4/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
uninstall-info-am:
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
subdir = m4
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu m4/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
all-am: Makefile
install-data-am:
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-generic clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: tags distdir info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic uninstall uninstall-am uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
+101 -8
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Franc,ois Pinard <[email protected]>, 1996.
# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <[email protected]>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,11 +18,37 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
-h|--h|--he|--hel|--help)
@@ -35,6 +61,7 @@ error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
@@ -43,13 +70,15 @@ Supported PROGRAM values:
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing - GNU libit 0.0"
echo "missing 0.3 - GNU automake"
;;
-*)
@@ -61,7 +90,7 @@ Supported PROGRAM values:
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`configure.in'. You might want
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
@@ -70,7 +99,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`configure.in'. You might want to install the
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
@@ -79,10 +108,10 @@ WARNING: \`$1' is missing on your system. You should only need it if
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
@@ -98,7 +127,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
automake)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
@@ -159,7 +188,32 @@ WARNING: \`$1' is missing on your system. You should only need it if
fi
;;
help2man)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
# We have makeinfo, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -175,6 +229,45 @@ WARNING: \`$1' is missing on your system. You should only need it if
touch $file
;;
tar)
shift
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar ${1+"$@"} && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar ${1+"$@"} && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" ${1+"$@"} && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" ${1+"$@"} && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
+41
View File
@@ -0,0 +1,41 @@
2001-08-03 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.39.
* cat-id-tbl.c: Remove file.
2001-07-14 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.38.
* cat-id-tbl.c: Remove file.
* stamp-cat-id: Remove file.
2000-11-02 Akim Demaille <[email protected]>
* POTFILES.in: Adjust.
1999-07-26 Jesse Thilo <[email protected]>
* po/ru.po: Added Russian translation.
1999-06-14 Jesse Thilo <[email protected]>
* po/POTFILES.in: Got rid of version.c.
1999-04-18 Jesse Thilo <[email protected]>
* po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
Adjusted paths to reflect directory reorganization.
1999-03-23 Jesse Thilo <[email protected]>
* po/.cvsignore: Added i18n support.
1999-03-15 Jesse Thilo <[email protected]>
* po/es.po, po/fr.po, po/nl.po, po/de.po:
Added PO files from Translation Project.
1999-02-05 Jesse Thilo <[email protected]>
* po/Makefile.in.in, po/POTFILES.in:
Add `po' directory skeleton.
+1 -3
View File
@@ -4,17 +4,15 @@ src/conflicts.c
src/derives.c
src/files.c
src/getargs.c
# src/gram.c
src/lalr.c
src/lex.c
src/main.c
src/nullable.c
src/output.c
src/print.c
src/print_graph.c
src/reader.c
src/reduce.c
# src/symtab.c
# src/warshall.c
lib/error.c
lib/getopt.c
BIN
View File
Binary file not shown.
+88 -80
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-08-03 11:38+0200\n"
"POT-Creation-Date: 2001-08-29 14:32+0200\n"
"PO-Revision-Date: 1996-10-10 17:54 MET DST\n"
"Last-Translator: Ulrich Drepper <[email protected]>\n"
"Language-Team: German <[email protected]>\n"
@@ -129,33 +129,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s leitet ab"
#: src/files.c:98
#: src/files.c:130
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:117
#: src/files.c:149
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:81
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:85
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:89
#: src/getargs.c:91
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:95
#: src/getargs.c:97
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -163,7 +163,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:102
#: src/getargs.c:104
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -175,53 +175,55 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:114
#: src/getargs.c:116
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -v, --verbose also produce an explanation of the automaton\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output-file=FILE leave output to FILE\n"
" -g, --graph also produce a VCG graph description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:122
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:136
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:141
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:149
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
#: src/getargs.c:202 src/lex.c:633
#: src/getargs.c:210 src/lex.c:636
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:226
#: src/getargs.c:234
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:233
#: src/getargs.c:241
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: keine Grammatik-Datei angegeben\n"
#: src/getargs.c:237
#: src/getargs.c:245
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n"
@@ -276,7 +278,7 @@ msgstr "unerwarteter Typname"
msgid "use \"...\" for multi-character literal tokens"
msgstr "für Literal mit mehreren Zeichen bitte \"...\" verwenden"
#: src/main.c:104
#: src/main.c:108
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interner Fehler, %s\n"
@@ -377,6 +379,16 @@ msgstr " auf der linken Seite:"
msgid " on right:"
msgstr " auf der rechten Seite:"
#: src/print_graph.c:174
#, fuzzy, c-format
msgid "%-4s\terror (nonassociative)"
msgstr " %-4s\tFehler (nicht assoziativ)\n"
#: src/print_graph.c:187
#, fuzzy, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\treduziere mit Regel %d (%s)\n"
#: src/reader.c:79
msgid " Skipping to next \\n"
msgstr " Überspringe Zeichen bis zum nächsten \\n"
@@ -437,7 +449,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "Symbol %s noch einmal definiert"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1231
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1306
#, c-format
msgid "type redeclaration for %s"
msgstr "erneute Deklaration des Typs für %s"
@@ -452,7 +464,7 @@ msgstr "
msgid "multiple %s declarations"
msgstr "mehr als eine %start Deklaration"
#: src/reader.c:563 src/reader.c:1209
#: src/reader.c:563 src/reader.c:893 src/reader.c:918 src/reader.c:1284
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "ungültige %start Deklaration"
@@ -481,7 +493,7 @@ msgstr "unzul
msgid "unexpected item: %s"
msgstr "unerwartetes Symbol: %s"
#: src/reader.c:759 src/reader.c:1035 src/reader.c:1106
#: src/reader.c:759 src/reader.c:1110 src/reader.c:1181
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "»{« hat kein Gegenstück"
@@ -501,105 +513,115 @@ msgstr "unerwartetes Symbol %s, hier wird ein Bezeichner erwartet"
msgid "expected string constant instead of %s"
msgstr "hier wird eine Zeichenkette erwartet, nicht %s"
#: src/reader.c:951
#: src/reader.c:930
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "erneute %union Definition"
#: src/reader.c:940
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "erneute %union Definition"
#: src/reader.c:1026
#, c-format
msgid "unrecognized: %s"
msgstr "unbekannt: %s"
#: src/reader.c:956
#: src/reader.c:1031
msgid "no input grammar"
msgstr "keine Eingabe-Grammatik"
#: src/reader.c:961
#: src/reader.c:1036
#, c-format
msgid "unknown character: %s"
msgstr "unbekanntes Zeichen: %s"
#: src/reader.c:1129
#: src/reader.c:1204
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "unbeendeter %%guard Fall"
#: src/reader.c:1296
#: src/reader.c:1371
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr ""
"falsch geformte Regel: führendes Symbol wird nicht von einem Semikolon "
"gefolgt"
#: src/reader.c:1303
#: src/reader.c:1378
msgid "grammar starts with vertical bar"
msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an"
#: src/reader.c:1334
#: src/reader.c:1409
#, c-format
msgid "rule given for %s, which is a token"
msgstr "Regel für %s vorhanden, welches aber ein Token ist"
#: src/reader.c:1436
#: src/reader.c:1511
msgid "two @prec's in a row"
msgstr "zwei @prec Anweisungen nacheinander"
#: src/reader.c:1444
#, fuzzy, c-format
#: src/reader.c:1519
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr ""
"%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben"
#: src/reader.c:1453
#: src/reader.c:1528
msgid "two actions at end of one rule"
msgstr "Zwei Aktionen am Ende einer Regel"
#: src/reader.c:1467
#: src/reader.c:1542
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion"
#: src/reader.c:1473
#: src/reader.c:1548
msgid "empty rule for typed nonterminal, and no action"
msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion"
#: src/reader.c:1517
#: src/reader.c:1592
#, c-format
msgid "invalid input: %s"
msgstr "ungültige Eingabe: %s"
#: src/reader.c:1525
#: src/reader.c:1600
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "zu viele Symbols (Token plus Nicht-Terminal); Maximum %s"
#: src/reader.c:1528
#: src/reader.c:1603
msgid "no rules in the input grammar"
msgstr "Eingabegrammatik enthält keine Regeln"
#: src/reader.c:1552
#: src/reader.c:1627
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"Symbol %s wird benutzt, ist aber nicht als Token definiert und hat keine "
"Regel"
#: src/reader.c:1657
#: src/reader.c:1732
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich"
#: src/reader.c:1669
#: src/reader.c:1744
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "assoc Werte für %s nd %s widersprechen sich"
#: src/reader.c:1720
#: src/reader.c:1795
#, fuzzy, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "Token %s und %s haben die selbe nummer %s"
#: src/reader.c:1733
#: src/reader.c:1808
#, c-format
msgid "the start symbol %s is undefined"
msgstr "das Startsymbol %s ist undefiniert"
#: src/reader.c:1735
#: src/reader.c:1810
#, c-format
msgid "the start symbol %s is a token"
msgstr "das Startsymbol %s ist ein Token"
@@ -788,32 +810,6 @@ msgstr ""
msgid "'"
msgstr ""
#, fuzzy
#~ msgid "Memory exhausted"
#~ msgstr "%s: Hauptspeicher erschöpft\n"
#~ msgid "$%s is invalid"
#~ msgstr "$%s ist unzulässig"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "schließende geschweifte Klammer (»}«) hat kein Gegenstück"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "schließende geschweifte Klammer (»}«) hat kein Gegenstück"
#~ msgid "multiple %union declarations"
#~ msgstr "erneute %union Definition"
#~ msgid "unterminated comment at end of file"
#~ msgstr "unbeendeter Kommentar am Dateiende"
#~ msgid "ill-formed %type declaration"
#~ msgstr "falsch geformte %type Deklaration"
#~ msgid "gotos"
#~ msgstr "»goto« Anweisungen"
#, fuzzy
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
@@ -821,8 +817,6 @@ msgstr ""
#~ " [--no-parser] [--token-table]\n"
#~ " [--file-prefix=prefix] [--name-prefix=prefix]\n"
#~ " [--output=outfile] grammar-file\n"
#~ "\n"
#~ "Report bugs to [email protected]\n"
#~ msgstr ""
#~ "Benutzung: %s [-dhklntvyV] [-b Datei-Präfix] [-o Ausgabe-Datei]\n"
#~ " [-p Namen-Präfix] [--debug] [--defines] [--fixed-output-"
@@ -832,15 +826,8 @@ msgstr ""
#~ " [--file-prefix=Präfix] [--name-prefix=Präfix]\n"
#~ " [--output=Ausgabe-Datei] Grammatik-Datei\n"
#, fuzzy
#~ msgid "%s:%d: fatal error: "
#~ msgstr "fataler Fehler: %s\n"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "unbeendeter Kommentar in »%{« Definition"
#~ msgid "invalid @-construct"
#~ msgstr "unzulässig @-Konstruktion"
#~ msgid "gotos"
#~ msgstr "»goto« Anweisungen"
#~ msgid "\"%s\", line %d: %s\n"
#~ msgstr "»%s«, Zeile %d: %s\n"
@@ -853,3 +840,24 @@ msgstr ""
#~ msgid "limit of %d exceeded, too many %s"
#~ msgstr "Grenze von %d erreicht, zu viele %s"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "unbeendeter Kommentar in »%{« Definition"
#~ msgid "unterminated comment at end of file"
#~ msgstr "unbeendeter Kommentar am Dateiende"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "schließende geschweifte Klammer (»}«) hat kein Gegenstück"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "schließende geschweifte Klammer (»}«) hat kein Gegenstück"
#~ msgid "$%s is invalid"
#~ msgstr "$%s ist unzulässig"
#~ msgid "invalid @-construct"
#~ msgstr "unzulässig @-Konstruktion"
#~ msgid "ill-formed %type declaration"
#~ msgstr "falsch geformte %type Deklaration"
BIN
View File
Binary file not shown.
+99 -98
View File
@@ -30,7 +30,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.25\n"
"POT-Creation-Date: 2001-08-03 11:38+0200\n"
"POT-Creation-Date: 2001-08-29 14:32+0200\n"
"PO-Revision-Date: 1998-09-21 10:19+0200\n"
"Last-Translator: Nicolás García-Pedrajas <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
@@ -192,33 +192,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s deriva"
#: src/files.c:98
#: src/files.c:130
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:117
#: src/files.c:149
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:81
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:85
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:89
#: src/getargs.c:91
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:95
#: src/getargs.c:97
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -226,7 +226,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:102
#: src/getargs.c:104
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -238,56 +238,58 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:114
#: src/getargs.c:116
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -v, --verbose also produce an explanation of the automaton\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output-file=FILE leave output to FILE\n"
" -g, --graph also produce a VCG graph description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:122
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:136
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:141
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:149
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
#: src/getargs.c:202 src/lex.c:633
#: src/getargs.c:210 src/lex.c:636
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:226
#: src/getargs.c:234
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
# Me parece menos "computadora" decir "ningún fichero de gramática" - cll
#
#: src/getargs.c:233
#: src/getargs.c:241
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: no se ha especificado ningún fichero de gramática\n"
# Ignorar es no saber, to ignore es no hacer caso, que no es lo mismo. sv
#: src/getargs.c:237
#: src/getargs.c:245
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: los argumentos extra después de '%s' no se tendrán en cuenta\n"
@@ -344,7 +346,7 @@ msgstr "nombre de tipo sin terminar"
msgid "use \"...\" for multi-character literal tokens"
msgstr "use \"...\" para terminales literales multicarácter"
#: src/main.c:104
#: src/main.c:108
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "error interno, %s\n"
@@ -454,6 +456,16 @@ msgstr " en la izquierda:"
msgid " on right:"
msgstr " en la derecha:"
#: src/print_graph.c:174
#, fuzzy, c-format
msgid "%-4s\terror (nonassociative)"
msgstr " %-4s\terror (no asociativo)\n"
#: src/print_graph.c:187
#, fuzzy, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\treduce usando la regla %d (%s)\n"
#: src/reader.c:79
msgid " Skipping to next \\n"
msgstr " Saltando al siguiente \\n"
@@ -514,7 +526,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "redefinido el símbolo %s"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1231
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1306
#, c-format
msgid "type redeclaration for %s"
msgstr "redeclaración del tipo de %s"
@@ -529,7 +541,7 @@ msgstr "`%s' no es v
msgid "multiple %s declarations"
msgstr "múltiples declaraciones de %start"
#: src/reader.c:563 src/reader.c:1209
#: src/reader.c:563 src/reader.c:893 src/reader.c:918 src/reader.c:1284
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "declaración de %start no válida"
@@ -568,7 +580,7 @@ msgid "unexpected item: %s"
msgstr "ítem inesperado: %s"
# Cambio el orden y el sexo. Ahora está "en español". sv
#: src/reader.c:759 src/reader.c:1035 src/reader.c:1106
#: src/reader.c:759 src/reader.c:1110 src/reader.c:1181
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "`{' desemparejada"
@@ -594,16 +606,26 @@ msgstr "no se reconoce el
msgid "expected string constant instead of %s"
msgstr "se esperaba una cadena constante en lugar de %s"
#: src/reader.c:951
#: src/reader.c:930
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "declaraciones múltiples de %union"
#: src/reader.c:940
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "declaraciones múltiples de %union"
#: src/reader.c:1026
#, c-format
msgid "unrecognized: %s"
msgstr "no reconocido: %s"
#: src/reader.c:956
#: src/reader.c:1031
msgid "no input grammar"
msgstr "no hay gramática de entrada"
#: src/reader.c:961
#: src/reader.c:1036
#, c-format
msgid "unknown character: %s"
msgstr "carácter desconocido: %s"
@@ -612,93 +634,93 @@ msgstr "car
# mejor que `sin terminar' que me parece más "computerizado" - cll
# quizás un poco cacofónico lo de claúsula inconclusa - ngp
#
#: src/reader.c:1129
#: src/reader.c:1204
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "cláusula %%guard sin terminar"
#: src/reader.c:1296
#: src/reader.c:1371
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "regla mal formada: el símbolo inicial no está seguido por :"
#: src/reader.c:1303
#: src/reader.c:1378
msgid "grammar starts with vertical bar"
msgstr "la gramática comienza con una barra vertical"
#: src/reader.c:1334
#: src/reader.c:1409
#, c-format
msgid "rule given for %s, which is a token"
msgstr "se ha dado una regla para %s, que es un terminal"
#: src/reader.c:1436
#: src/reader.c:1511
msgid "two @prec's in a row"
msgstr "dos @prec en una línea"
# Insisto, el empleo de participios a secas me parece como hablar en
# indio. Por favor, permíteme que añada un "está" :) - cll
# ok - ngp
#: src/reader.c:1444
#, fuzzy, c-format
#: src/reader.c:1519
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard presente pero %%semantic_parser está sin especificar"
#: src/reader.c:1453
#: src/reader.c:1528
msgid "two actions at end of one rule"
msgstr "dos acciones al final de una regla"
#: src/reader.c:1467
#: src/reader.c:1542
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "los tipos (`%s' `%s') no concuerdan en la acción por defecto"
#: src/reader.c:1473
#: src/reader.c:1548
msgid "empty rule for typed nonterminal, and no action"
msgstr "regla vacía para un no terminal con tipo y no hay ninguna acción"
#: src/reader.c:1517
#: src/reader.c:1592
#, c-format
msgid "invalid input: %s"
msgstr "entrada no válida: %s"
#: src/reader.c:1525
#: src/reader.c:1600
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "demasiados símbolos (terminales y no terminales); máximo %s"
#: src/reader.c:1528
#: src/reader.c:1603
msgid "no rules in the input grammar"
msgstr "no hay reglas en la gramática de entrada"
# `token' se debe traducir como `literal' - cll
# en terminología de compiladores token es más un terminal - ngp
#
#: src/reader.c:1552
#: src/reader.c:1627
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"se usa el símbolo %s, pero no está definido como terminal y no tiene reglas"
#: src/reader.c:1657
#: src/reader.c:1732
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedencias en conflicto entre %s y %s"
#: src/reader.c:1669
#: src/reader.c:1744
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflicto de valores assoc para %s y %s"
#: src/reader.c:1720
#: src/reader.c:1795
#, fuzzy, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "los terminales %s y %s tienen asignados ambos el número %s"
#: src/reader.c:1733
#: src/reader.c:1808
#, c-format
msgid "the start symbol %s is undefined"
msgstr "el símbolo de inicio (axioma) %s no está definido"
#: src/reader.c:1735
#: src/reader.c:1810
#, c-format
msgid "the start symbol %s is a token"
msgstr "el símbolo de inicio (axioma) %s es un terminal"
@@ -923,40 +945,6 @@ msgstr ""
msgid "'"
msgstr ""
#, fuzzy
#~ msgid "Memory exhausted"
#~ msgstr "%s: memoria agotada\n"
#~ msgid "$%s is invalid"
#~ msgstr "$%s no es válida"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "llave de cierre (`}') desemparejada"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "llave derecha (`}') desemparejada"
#~ msgid "multiple %union declarations"
#~ msgstr "declaraciones múltiples de %union"
#~ msgid "unterminated comment at end of file"
#~ msgstr "comentario sin terminar al final del fichero"
#~ msgid "ill-formed %type declaration"
#~ msgstr "declaración %type incorrectamente formada"
# Duda: desconozco en qué caso se emplea esto. Estúdialo bien y
# comprueba que realmente es necesario emplear una palabra no
# española. Recuerda que el acuerdo que existe en la lista de correo en
# español es, en el peor de los casos, poner algo en español y luego en
# inglés a modo de recordatorio. Por ejemplo: "tubería (pipe)" - cll
#
# miré el código, lo que indica es el número de gotos del código
# ngp
#
#~ msgid "gotos"
#~ msgstr "saltos (gotos)"
# ¿Por qué no lo pones en mayúsculas? Al fin y al cabo, eso es lo que
# haces luego con "FDERIVES" que traduces como "FDERIVACIONES", ... -
# cll
@@ -1008,7 +996,6 @@ msgstr ""
#~ "\n"
#~ "%s deriva\n"
#, fuzzy
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
@@ -1016,8 +1003,6 @@ msgstr ""
#~ " [--no-parser] [--token-table]\n"
#~ " [--file-prefix=prefix] [--name-prefix=prefix]\n"
#~ " [--output=outfile] grammar-file\n"
#~ "\n"
#~ "Report bugs to [email protected]\n"
#~ msgstr ""
#~ "Uso: %s [-dhklntvyV] [-b prefijo-ficheros] [-o fichero-salida] [-p "
#~ "prefijo-nombres]\n"
@@ -1027,26 +1012,17 @@ msgstr ""
#~ " [--file-prefix=prefijo] [--name-prefix=prefijo]\n"
#~ " [--output=fichero-salida ] fichero-de-gramática\n"
# Duda: desconozco cuál será el convenio en la lista de correo a
# propósito de "fatal". Por favor, comprueba que "error grave" es
# preferido por todos los miembros a "error fatal" - cll
# veremos que dice la mayoría, como hay otros 2 revisores
# La verdad es que a mi lo de error fatal me suena fatal
# Duda: desconozco en qué caso se emplea esto. Estúdialo bien y
# comprueba que realmente es necesario emplear una palabra no
# española. Recuerda que el acuerdo que existe en la lista de correo en
# español es, en el peor de los casos, poner algo en español y luego en
# inglés a modo de recordatorio. Por ejemplo: "tubería (pipe)" - cll
#
# miré el código, lo que indica es el número de gotos del código
# ngp
#
#, fuzzy
#~ msgid "%s:%d: fatal error: "
#~ msgstr "error grave: %s\n"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "comentario sin terminar en la definición `%{'"
# Duda: ¿`construct' no se refiere a `construcción'? Si es así, el
# mensaje debiera ser "@-construcción no válida" - cll
# O incluso "construcción @" sv
# en ese caso supongo que sería @-construction ngp
#~ msgid "invalid @-construct"
#~ msgstr "@-constructo no válido"
#~ msgid "gotos"
#~ msgstr "saltos (gotos)"
#~ msgid "\"%s\", line %d: %s\n"
#~ msgstr "\"%s\", línea %d: %s\n"
@@ -1061,3 +1037,28 @@ msgstr ""
# de gettext dice cómo ha de hacerse, no de cualquier manera. sv
#~ msgid "limit of %d exceeded, too many %s"
#~ msgstr "excedido el límite de %d, demasiados %s"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "comentario sin terminar en la definición `%{'"
#~ msgid "unterminated comment at end of file"
#~ msgstr "comentario sin terminar al final del fichero"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "llave de cierre (`}') desemparejada"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "llave derecha (`}') desemparejada"
#~ msgid "$%s is invalid"
#~ msgstr "$%s no es válida"
# Duda: ¿`construct' no se refiere a `construcción'? Si es así, el
# mensaje debiera ser "@-construcción no válida" - cll
# O incluso "construcción @" sv
# en ese caso supongo que sería @-construction ngp
#~ msgid "invalid @-construct"
#~ msgstr "@-constructo no válido"
#~ msgid "ill-formed %type declaration"
#~ msgstr "declaración %type incorrectamente formada"
BIN
View File
Binary file not shown.
+131 -212
View File
@@ -1,12 +1,12 @@
# Estonian translations for bison.
# Copyright (C) 2000 Free Software Foundation, Inc.
# Toomas Soome <[email protected]>, 2000.
# Copyright (C) 2001 Free Software Foundation, Inc.
# Toomas Soome <[email protected]>, 2001.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-08-03 11:38+0200\n"
"PO-Revision-Date: 2000-04-11 22:19+02:00\n"
"Project-Id-Version: bison 1.28c\n"
"POT-Creation-Date: 2001-08-29 14:32+0200\n"
"PO-Revision-Date: 2001-08-21 21:53+02:00\n"
"Last-Translator: Toomas Soome <[email protected]>\n"
"Language-Team: Estonian <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -20,16 +20,15 @@ msgstr "liiga palju olekuid (maks %d)"
#: lib/error.c:117 src/complain.c:100
msgid "Unknown system error"
msgstr ""
msgstr "Tundmatu süsteemi viga"
#: src/complain.c:154
msgid "warning: "
msgstr ""
msgstr "hoiatus: "
#: src/complain.c:242 src/complain.c:283
#, fuzzy
msgid "fatal error: "
msgstr "fataalne viga: %s\n"
msgstr "fataalne viga: "
#: src/conflicts.c:49
#, c-format
@@ -121,41 +120,35 @@ msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\tredutseerin kasutades reeglit %d (%s)\n"
#: src/derives.c:44
#, fuzzy
msgid "DERIVES"
msgstr ""
"\n"
"\n"
"\n"
"DERIVES\n"
"\n"
msgstr "DERIVES"
#: src/derives.c:49
#, c-format
msgid "%s derives"
msgstr "%s derives"
#: src/files.c:98
#: src/files.c:130
#, c-format
msgid "cannot open file `%s'"
msgstr ""
msgstr "faili `%s' ei saa avada"
#: src/files.c:117
#: src/files.c:149
msgid "cannot close file"
msgstr ""
msgstr "faili ei õnnestu sulgeda"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:81
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genereerib parsereid LALR(1) grammatikatele.\n"
#: src/getargs.c:85
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Kasuta: %s [VÕTI]...FAIL\n"
#: src/getargs.c:89
#: src/getargs.c:91
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
@@ -163,7 +156,7 @@ msgstr ""
"Kui pikk võti näitab, et argument on kohustuslik, siis on see kohustuslik \n"
"ka lühikese võtme korral. Sama ka vabalt valitavate võtmete korral.\n"
#: src/getargs.c:95
#: src/getargs.c:97
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -175,8 +168,7 @@ msgstr ""
" -V, --version esita versiooniinfo ja lõpeta töö\n"
" -y, --yacc emuleeri POSIX yacc\n"
#: src/getargs.c:102
#, fuzzy
#: src/getargs.c:104
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -188,20 +180,24 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
"Parser:\n"
" -S, --skeleton=FAIL kasutatava skeleti kirjeldus\n"
" -t, --debug varusta parser silumisinfoga\n"
" --locations luba asukohtade arvestamine\n"
" -p, --name-prefix=PREFIKS lisa välissümbolite nimedele PREFIKS\n"
" -l, --no-lines ära genereeri `#line' direktiive\n"
" -n, --no-parser genereeri ainult tabelid\n"
" -r, --raw sümbolite number alates 3\n"
" -k, --token-table lisa ka sümbolite nimede tabel\n"
#: src/getargs.c:114
#: src/getargs.c:116
#, fuzzy
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -v, --verbose also produce an explanation of the automaton\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output-file=FILE leave output to FILE\n"
" -g, --graph also produce a VCG graph description of the "
"automaton\n"
msgstr ""
"Väljund:\n"
" -d, --defines loo ka päisfail\n"
@@ -209,44 +205,48 @@ msgstr ""
" -b, --file-prefix=PREFIKS kasuta väljundfailide nimedes PREFIKSit\n"
" -o, --output-file=FAIL jäta väljund FAILi\n"
#: src/getargs.c:122
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr "Teatage palun vigadest aadressil <[email protected]>.\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:136
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:141
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
"Autoriõigus 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, "
"Inc.\n"
#: src/getargs.c:145
#: src/getargs.c:149
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"See on vaba tarkvara; kopeerimistingimused leiate lähtetekstidest. Garantii\n"
"PUUDUB; ka müügiks või mingil eesmärgil kasutamiseks.\n"
#: src/getargs.c:202 src/lex.c:633
#: src/getargs.c:210 src/lex.c:636
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
msgstr "`%s' ei ole enam toetatud"
#: src/getargs.c:226
#: src/getargs.c:234
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
msgstr "Lisainfo saamiseks proovige `%s --help'.\n"
#: src/getargs.c:233
#: src/getargs.c:241
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: puudub grammatikafail\n"
#: src/getargs.c:237
#: src/getargs.c:245
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
@@ -299,7 +299,7 @@ msgstr "l
msgid "use \"...\" for multi-character literal tokens"
msgstr "kasuta mitmesümboliliste literaalidega \"...\" konstruktsiooni"
#: src/main.c:104
#: src/main.c:108
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: sisemine viga: %s\n"
@@ -352,20 +352,13 @@ msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tliigu olekule %d\n"
#: src/print.c:202
#, fuzzy, c-format
#, c-format
msgid "state %d"
msgstr ""
"\n"
"\n"
"olek %d\n"
"\n"
msgstr "olek %d"
#: src/print.c:233
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Grammatika\n"
msgstr "Grammatika"
#: src/print.c:240
#, c-format
@@ -377,20 +370,12 @@ msgid "\t\t/* empty */"
msgstr "\t\t/* tühi */"
#: src/print.c:253
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
"\n"
"Terminalid, koos reeglitega, kus nad ilmuvad\n"
"\n"
msgstr "Terminalid, koos reeglitega, kus nad ilmuvad"
#: src/print.c:302
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
"\n"
"Mitteterminalid, koos reeglitega, kus nad ilmuvad\n"
"\n"
msgstr "Mitteterminalid, koos reeglitega, kus nad ilmuvad"
#: src/print.c:329
msgid " on left:"
@@ -400,6 +385,16 @@ msgstr " vasakul:"
msgid " on right:"
msgstr " paremal:"
#: src/print_graph.c:174
#, c-format
msgid "%-4s\terror (nonassociative)"
msgstr "%-4s\tviga (mitteassotsiatiivne)"
#: src/print_graph.c:187
#, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr "$default\tredutseerin kasutades reeglit %d (%s)"
#: src/reader.c:79
msgid " Skipping to next \\n"
msgstr " Liigun järgmisele \\n"
@@ -422,9 +417,9 @@ msgid "unterminated string"
msgstr "lõpetamata sõne"
#: src/reader.c:326 src/reader.c:390
#, fuzzy, c-format
#, c-format
msgid "%s is invalid"
msgstr "@%s on vigane"
msgstr "%s on vigane"
#: src/reader.c:366
#, c-format
@@ -448,19 +443,19 @@ msgstr "Enneaegne EOF peale %s"
#: src/reader.c:499
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
msgstr "sümbolit `%s' on kasutatud enam kui kord literaal sõnena"
#: src/reader.c:502
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
msgstr "sümbolile `%s' on antud enam kui üks literaal sõne"
#: src/reader.c:524 src/reader.c:667
#, c-format
msgid "symbol %s redefined"
msgstr "sümbol %s on uuesti defineeritud"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1231
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1306
#, c-format
msgid "type redeclaration for %s"
msgstr "%s tüübi uuesti deklareerimine"
@@ -471,14 +466,14 @@ msgid "`%s' is invalid in %s"
msgstr "`%s' ei ole %s sees lubatud"
#: src/reader.c:561 src/reader.c:721
#, fuzzy, c-format
#, c-format
msgid "multiple %s declarations"
msgstr "korduvad %start deklaratsioonid"
msgstr "korduvad %s deklaratsioonid"
#: src/reader.c:563 src/reader.c:1209
#, fuzzy, c-format
#: src/reader.c:563 src/reader.c:893 src/reader.c:918 src/reader.c:1284
#, c-format
msgid "invalid %s declaration"
msgstr "vigane %start deklaratsioon"
msgstr "vigane %s deklaratsioon"
#: src/reader.c:583
msgid "%type declaration has no <typename>"
@@ -504,15 +499,15 @@ msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit"
msgid "unexpected item: %s"
msgstr "ootamatu element: %s"
#: src/reader.c:759 src/reader.c:1035 src/reader.c:1106
#, fuzzy, c-format
#: src/reader.c:759 src/reader.c:1110 src/reader.c:1181
#, c-format
msgid "unmatched %s"
msgstr "puudub `{'"
msgstr "puudub %s"
#: src/reader.c:791
#, fuzzy, c-format
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "%expect argument ei ole täisarv"
msgstr "%%expect argument ei ole täisarv"
#: src/reader.c:838
#, c-format
@@ -524,130 +519,127 @@ msgstr "tundmatu element %s, eeldasin identifikaatorit"
msgid "expected string constant instead of %s"
msgstr "eeldasin %s asemel sõnekonstanti"
#: src/reader.c:951
#: src/reader.c:930
#, c-format
msgid "multiple %%header_extension declarations"
msgstr "korduvad %%header_extension eklaratsioonid"
#: src/reader.c:940
#, c-format
msgid "multiple %%source_extension declarations"
msgstr "korduvad %%source_extension deklaratsioonid"
#: src/reader.c:1026
#, c-format
msgid "unrecognized: %s"
msgstr "tundmatu: %s"
#: src/reader.c:956
#: src/reader.c:1031
msgid "no input grammar"
msgstr "sisendgrammatikat pole"
#: src/reader.c:961
#: src/reader.c:1036
#, c-format
msgid "unknown character: %s"
msgstr "tundmatu sümbol: %s"
#: src/reader.c:1129
#: src/reader.c:1204
#, c-format
msgid "unterminated %guard clause"
msgstr "lõpetamata %guard klausel"
#: src/reader.c:1296
#: src/reader.c:1371
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit"
#: src/reader.c:1303
#: src/reader.c:1378
msgid "grammar starts with vertical bar"
msgstr "grammatika algab püstkriipsuga"
#: src/reader.c:1334
#: src/reader.c:1409
#, c-format
msgid "rule given for %s, which is a token"
msgstr "%s jaoks on antud reegel, aga see on märk"
#: src/reader.c:1436
#: src/reader.c:1511
msgid "two @prec's in a row"
msgstr "kaks @prec ühel real"
#: src/reader.c:1444
#, fuzzy, c-format
#: src/reader.c:1519
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%guard on määratud, aga %semantic_parser ei ole"
msgstr "%%guard on määratud, aga %%semantic_parser ei ole"
#: src/reader.c:1453
#: src/reader.c:1528
msgid "two actions at end of one rule"
msgstr "kaks tegevust ühe reegli lõpus"
#: src/reader.c:1467
#: src/reader.c:1542
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')"
#: src/reader.c:1473
#: src/reader.c:1548
msgid "empty rule for typed nonterminal, and no action"
msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
#: src/reader.c:1517
#: src/reader.c:1592
#, c-format
msgid "invalid input: %s"
msgstr "vigane sisend: %s"
#: src/reader.c:1525
#: src/reader.c:1600
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d"
#: src/reader.c:1528
#: src/reader.c:1603
msgid "no rules in the input grammar"
msgstr "sisendgrammatikas pole reegleid"
#: src/reader.c:1552
#: src/reader.c:1627
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad "
"reeglid"
#: src/reader.c:1657
#: src/reader.c:1732
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "%s ja %s omavad konfliktseid prioriteete"
#: src/reader.c:1669
#: src/reader.c:1744
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid"
#: src/reader.c:1720
#: src/reader.c:1795
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "märkidele %s ja %s on mõlemale omistatud number %d"
#: src/reader.c:1733
#: src/reader.c:1808
#, c-format
msgid "the start symbol %s is undefined"
msgstr "stardisümbol %s ei ole defineeritud"
#: src/reader.c:1735
#: src/reader.c:1810
#, c-format
msgid "the start symbol %s is a token"
msgstr "stardisümbol %s on märk"
#: src/reduce.c:404
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"Kasutamata mitteterminalid:\n"
"\n"
msgstr "Kasutamata mitteterminalid:"
#: src/reduce.c:419
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
"\n"
"\n"
"Terminalid, mida ei kasutatud:\n"
"\n"
msgstr "Terminalid, mida ei kasutatud:"
#: src/reduce.c:430
#, fuzzy
msgid "Useless rules:"
msgstr ""
"\n"
"\n"
"Kasutamata reeglid:\n"
"\n"
msgstr "Kasutamata reeglid:"
#: src/reduce.c:459
msgid ""
@@ -782,9 +774,8 @@ msgstr "%s: v
#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
#. before exiting when memory is exhausted. Goes through gettext.
#: lib/obstack.c:477 lib/xmalloc.c:66
#, fuzzy
msgid "memory exhausted"
msgstr "%s: mälu on otsas\n"
msgstr "mälu on otsas"
#. Get translations for open and closing quotation marks.
#.
@@ -802,113 +793,41 @@ msgstr "%s: m
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:259
msgid "`"
msgstr ""
msgstr "`"
#: lib/quotearg.c:260
msgid "'"
msgstr ""
msgstr "'"
#, fuzzy
#~ msgid "Memory exhausted"
#~ msgstr "%s: mälu on otsas\n"
#~ msgid "vcg graph: no such color."
#~ msgstr "vcg graph: sellist värvi pole."
#~ msgid "$%s is invalid"
#~ msgstr "$%s on vigane"
#~ msgid "vcg graph: no such text mode"
#~ msgstr "vcg graph: sellist teksti moodi pole"
#~ msgid "multiple %union declarations"
#~ msgstr "korduvad %union deklaratsioonid"
#~ msgid "vcg graph: no such shape"
#~ msgstr "vcg graph: sellist vormi pole"
#~ msgid "unterminated comment at end of file"
#~ msgstr "lõpetamata kommentaar faili lõpus"
#~ msgid "vcg graph: no such decision"
#~ msgstr "vcg graph: sellist otsust pole"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "puudub sulgev loogeline sulg (`}')"
#~ msgid "vcg graph: no such an orientation"
#~ msgstr "vcg graph: sellist orientatsiooni pole"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "puudub sulgev loogeline sulg (`}')"
#~ msgid "vcg graph: no such an alignement"
#~ msgstr "vcg graph: sellist joondamist pole"
#~ msgid "ill-formed %type declaration"
#~ msgstr "vigaselt formeeritud %type deklaratsioon"
#~ msgid "vcg graph: no such an arrow mode"
#~ msgstr "vcg graph: sellist noole moodi pole"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "FIRSTS\n"
#~ "\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "FIRSTS\n"
#~ "\n"
#~ msgid "vcg graph: no such crossing_type"
#~ msgstr "vcg graph: sellist ristumise tüüpi pole"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "%s firsts\n"
#~ "\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "%s firsts\n"
#~ "\n"
#~ msgid "vcg graph: no such view"
#~ msgstr "vcg graph: sellist vaadet pole"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "FDERIVES\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "FDERIVES\n"
#~ msgid "vcg graph: no such linestyle"
#~ msgstr "vcg graph: sellist joone stiili pole"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "%s derives\n"
#~ "\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "%s derives\n"
#~ "\n"
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
#~ " [--verbose] [--version] [--help] [--yacc]\n"
#~ " [--no-parser] [--token-table]\n"
#~ " [--file-prefix=prefix] [--name-prefix=prefix]\n"
#~ " [--output=outfile] grammar-file\n"
#~ msgstr ""
#~ "Kasuta: %s [-dhklntvyV] [-b faili-prefiks] [-o väljundfail] [-p nime-"
#~ "prefiks]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
#~ " [--verbose] [--version] [--help] [--yacc]\n"
#~ " [--no-parser] [--token-table]\n"
#~ " [--file-prefix=prefiks] [--name-prefix=prefiks]\n"
#~ " [--output=väljundfail] grammatika-fail\n"
#~ msgid "gotos"
#~ msgstr "gotod"
#~ msgid "\"%s\", line %d: %s\n"
#~ msgstr "\"%s\", rida %d: %s\n"
#~ msgid "error: %s\n"
#~ msgstr "viga: %s\n"
#~ msgid "(\"%s\", line %d) error: %s\n"
#~ msgstr "(\"%s\", rida %d) viga: %s\n"
#~ msgid "limit of %d exceeded, too many %s"
#~ msgstr "limiit %d ületatud, liiga palju %s"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "lõpetamata kommentaar `%{' definitsioonis"
#~ msgid "invalid @-construct"
#~ msgstr "vigane @-konstruktsioon"
#~ msgid "vcg graph: no such an arrowstyle"
#~ msgstr "vcg graph: sellist noole stiili pole"
BIN
View File
Binary file not shown.
+217 -183
View File
@@ -1,14 +1,15 @@
# Messages français pour Bison.
# Copyright (C) 1996 Free Software Foundation, Inc.
# Dominique Boucher <boucherd@IRO.UMontreal.CA>, 1996.
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 2000
# Dominique Boucher a été le traducteur de 1996 à 2000
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-08-03 11:38+0200\n"
"PO-Revision-Date: 1996-03-19 20:05 EST\n"
"Last-Translator: Dominique Boucher <boucherd@IRO.UMontreal.CA>\n"
"Language-Team: French <fr@li.org>\n"
"Project-Id-Version: GNU bison 1.28c\n"
"POT-Creation-Date: 2001-08-29 14:32+0200\n"
"PO-Revision-Date: 2001-08-28 08:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
@@ -16,20 +17,19 @@ msgstr ""
#: src/LR0.c:207
#, c-format
msgid "too many states (max %d)"
msgstr ""
msgstr "nombre trop grand d'états (max %d)"
#: lib/error.c:117 src/complain.c:100
msgid "Unknown system error"
msgstr ""
msgstr "Erreur système inconnue"
#: src/complain.c:154
msgid "warning: "
msgstr ""
msgstr "AVERTISSEMENT: "
#: src/complain.c:242 src/complain.c:283
#, fuzzy
msgid "fatal error: "
msgstr "erreur fatale: %s\n"
msgstr "erreur fatale: "
#: src/conflicts.c:49
#, c-format
@@ -122,55 +122,56 @@ msgid " $default\treduce using rule %d (%s)\n"
msgstr " $défaut\tréduction par la règle %d (%s)\n"
#: src/derives.c:44
#, fuzzy
msgid "DERIVES"
msgstr ""
"\n"
"\n"
"\n"
"DERIVES\n"
"\n"
msgstr "DÉRIVES"
#: src/derives.c:49
#, c-format
msgid "%s derives"
msgstr "%s dérive"
#: src/files.c:98
#: src/files.c:130
#, c-format
msgid "cannot open file `%s'"
msgstr ""
msgstr "ne peut ouvrir le fichier `%s'"
#: src/files.c:117
#: src/files.c:149
msgid "cannot close file"
msgstr ""
msgstr "ne peut fermer le fichier"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:81
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
msgstr "GNU bison génère des analyseurs pour les grammaires de type LALR(1).\n"
#: src/getargs.c:85
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
msgstr "Usage: %s [OPTION]... FICHIER\n"
#: src/getargs.c:89
#: src/getargs.c:91
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
"Si une option de forme longue montre un paramètre comme étant obligatoire,\n"
"il est alors obligatoire également pour une option de forme courte.\n"
"Il en est de même pour les paramètres optionnels.\n"
#: src/getargs.c:95
#: src/getargs.c:97
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Modes d'utilisation:\n"
" -h, --help afficher l'aide-mémoire\n"
" -V, --version afficher le nom et la version du logiciel\n"
" -y, --yacc émuler yacc en mode POSIX\n"
#: src/getargs.c:102
#: src/getargs.c:104
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -181,62 +182,84 @@ msgid ""
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Analyseur:\n"
" -S, --skeleton=FICHIER utiliser le FICHIER squelette\n"
" -t, --debug activer le mode de mise au point\n"
" de l'analyseur\n"
" --locations permettre le calcul des localisations\n"
" -p, --name-prefix=PREFIXE accoler le PREFIXE aux symboles externes\n"
" -l, --no-lines ne pas générer les directives `#line'\n"
" -n, --no-parser générer les tables seulement\n"
" -r, --raw compter les jetons à partir de 3\n"
" -k, --token-table inclure la table des noms de jetons\n"
#: src/getargs.c:114
#: src/getargs.c:116
#, fuzzy
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -v, --verbose also produce an explanation of the automaton\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output-file=FILE leave output to FILE\n"
" -g, --graph also produce a VCG graph description of the "
"automaton\n"
msgstr ""
"Sortie:\n"
" -d, --defines produire un fichier d'en-tête\n"
" -v, --verbose produire une explication de l'automate\n"
" -b, --file-prefix=PREFIXE utiliser le PREFIXE pour le fichier de sortie\n"
" -o, --output-file=FICHIER produire la sortie dans le FICHIER\n"
#: src/getargs.c:122
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
msgstr "Rapporter toutes anomalies à <[email protected]>.\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:136
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:141
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
#: src/getargs.c:145
#: src/getargs.c:149
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"Ce logiciel est libre; voir les sources pour les conditions de\n"
"reproduction. AUCUNE garantie n'est donnée; tant pour des raisons\n"
"COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n"
#: src/getargs.c:202 src/lex.c:633
#: src/getargs.c:210 src/lex.c:636
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
msgstr "`%s' n'est plus supporté"
#: src/getargs.c:226
#: src/getargs.c:234
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
msgstr "Pour en savoir davantage, faites: `%s --help'.\n"
#: src/getargs.c:233
#: src/getargs.c:241
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: grammaire manquante\n"
#: src/getargs.c:237
#, fuzzy, c-format
#: src/getargs.c:245
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: paramètres supplémentaires ignorés après «%s»\n"
msgstr "%s: paramètres supplémentaires ignorés après `%s'\n"
#: src/lalr.c:312
#, c-format
msgid "too many gotos (max %d)"
msgstr ""
msgstr "nombre trop grand de \"goto\" (Max %d)"
#: src/lex.c:70
msgid "unexpected `/' found and ignored"
@@ -247,7 +270,6 @@ msgid "unterminated comment"
msgstr "le commentaire ne se termine pas"
#: src/lex.c:131
#, fuzzy
msgid "unexpected end of file"
msgstr "Fin de fichier inattendue"
@@ -282,19 +304,19 @@ msgstr "le nom de type ne se termine pas"
msgid "use \"...\" for multi-character literal tokens"
msgstr "utilisez \"...\" pour les terminaux litéraux de plusieurs caractères"
#: src/main.c:104
#, fuzzy, c-format
#: src/main.c:108
#, c-format
msgid "%s: internal error: %s\n"
msgstr "erreur interne, %s\n"
msgstr "%s: erreur interne: %s\n"
#: src/nullable.c:52
msgid "Entering set_nullable"
msgstr "Entré dans set_nullable"
#: src/output.c:993
#, fuzzy, c-format
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "taille maximum des tables (%s) dépassée"
msgstr "taille maximale de la table (%d) dépassée"
#: src/print.c:38
#, c-format
@@ -335,20 +357,13 @@ msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\taller à l'état %d\n"
#: src/print.c:202
#, fuzzy, c-format
#, c-format
msgid "state %d"
msgstr ""
"\n"
"\n"
"état %d\n"
"\n"
msgstr "état %d"
#: src/print.c:233
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Grammaire\n"
msgstr "Grammaire"
#: src/print.c:240
#, c-format
@@ -360,20 +375,12 @@ msgid "\t\t/* empty */"
msgstr "\t\t/* epsilon */"
#: src/print.c:253
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
"\n"
"Terminaux, suivis des règles où ils apparaissent\n"
"\n"
msgstr "Terminaux, suivis des règles où ils apparaissent"
#: src/print.c:302
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
"\n"
"Catégories, suivis des règles où elles apparaissent\n"
"\n"
msgstr "Non-terminaux, suivis des règles où ils apparaissent"
#: src/print.c:329
msgid " on left:"
@@ -383,6 +390,16 @@ msgstr "
msgid " on right:"
msgstr " à droite:"
#: src/print_graph.c:174
#, c-format
msgid "%-4s\terror (nonassociative)"
msgstr "%-4s\terreur (non-associatif)"
#: src/print_graph.c:187
#, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr "$défaut\tréduction par la règle %d (%s)"
#: src/reader.c:79
msgid " Skipping to next \\n"
msgstr " Saut jusqu'au prochain \\n"
@@ -405,9 +422,9 @@ msgid "unterminated string"
msgstr "chaîne de caractère non terminée"
#: src/reader.c:326 src/reader.c:390
#, fuzzy, c-format
#, c-format
msgid "%s is invalid"
msgstr "@%s n'est pas valide"
msgstr "%s n'est pas valide"
#: src/reader.c:366
#, c-format
@@ -415,9 +432,9 @@ msgid "$$ of `%s' has no declared type"
msgstr "$$ de `%s' n'a pas son type déclaré"
#: src/reader.c:383
#, fuzzy, c-format
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%s cd `%s' n'a pas son type déclaré"
msgstr "$%d de `%s' n'a pas de type déclaré"
#: src/reader.c:437
msgid "unterminated `%{' definition"
@@ -426,24 +443,24 @@ msgstr "La section de d
#: src/reader.c:482 src/reader.c:598 src/reader.c:648
#, c-format
msgid "Premature EOF after %s"
msgstr ""
msgstr "Fin de fichier prématutée après %s"
#: src/reader.c:499
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
msgstr "symbole `%s' utilisé plus d'une fois dans une chaîne litérale"
#: src/reader.c:502
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
msgstr "symbole `%s' présent dans plus d'une chaîne litérale"
#: src/reader.c:524 src/reader.c:667
#, c-format
msgid "symbol %s redefined"
msgstr "symbole %s redéfini"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1231
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1306
#, c-format
msgid "type redeclaration for %s"
msgstr "redéclaration du type de %s"
@@ -454,23 +471,23 @@ msgid "`%s' is invalid in %s"
msgstr "`%s' n'est pas valide dans %s"
#: src/reader.c:561 src/reader.c:721
#, fuzzy, c-format
#, c-format
msgid "multiple %s declarations"
msgstr "multiples déclarations %start"
msgstr "multiples déclarations %s"
#: src/reader.c:563 src/reader.c:1209
#, fuzzy, c-format
#: src/reader.c:563 src/reader.c:893 src/reader.c:918 src/reader.c:1284
#, c-format
msgid "invalid %s declaration"
msgstr "la déclaration %start n'est pas valide"
msgstr "la déclaration %s n'est pas valide"
#: src/reader.c:583
msgid "%type declaration has no <typename>"
msgstr "la déclaration %type n'a pas de <nom_de_type>"
#: src/reader.c:618
#, fuzzy, c-format
#, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "la déclaration %%type n'est pas valide à cause de l'item: %s"
msgstr "la déclaration %%type n'est pas valide en raison de l'item: %s"
#: src/reader.c:663
#, c-format
@@ -488,15 +505,15 @@ msgstr ""
msgid "unexpected item: %s"
msgstr "item inattendu: %s"
#: src/reader.c:759 src/reader.c:1035 src/reader.c:1106
#, fuzzy, c-format
#: src/reader.c:759 src/reader.c:1110 src/reader.c:1181
#, c-format
msgid "unmatched %s"
msgstr "accolade ouvrante `{' non appariée"
msgstr "non appariement de %s"
#: src/reader.c:791
#, fuzzy, c-format
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "le paramètre de %expect n'est pas un entier"
msgstr "le paramètre de %%expect n'est pas un entier"
#: src/reader.c:838
#, c-format
@@ -508,130 +525,127 @@ msgstr "item %s non reconnu, un identificateur est attendu"
msgid "expected string constant instead of %s"
msgstr "chaîne de caractères constante attendue plutôt que %s"
#: src/reader.c:951
#: src/reader.c:930
#, c-format
msgid "multiple %%header_extension declarations"
msgstr "multiples déclarations %%header_extension"
#: src/reader.c:940
#, c-format
msgid "multiple %%source_extension declarations"
msgstr "multiples déclarations %%source_extension"
#: src/reader.c:1026
#, c-format
msgid "unrecognized: %s"
msgstr "non reconnu: %s"
#: src/reader.c:956
#: src/reader.c:1031
msgid "no input grammar"
msgstr "aucune grammaire en entrée"
#: src/reader.c:961
#: src/reader.c:1036
#, c-format
msgid "unknown character: %s"
msgstr "caractère inconnu: %s"
#: src/reader.c:1129
#, fuzzy, c-format
#: src/reader.c:1204
#, c-format
msgid "unterminated %guard clause"
msgstr "clause %%guard non terminée"
msgstr "clause %guard non terminée"
#: src/reader.c:1296
#: src/reader.c:1371
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "règle mal formée: le symbole initial n'est pas suivi de `:'"
#: src/reader.c:1303
#: src/reader.c:1378
msgid "grammar starts with vertical bar"
msgstr "la grammaire débute par une barre verticale"
#: src/reader.c:1334
#: src/reader.c:1409
#, c-format
msgid "rule given for %s, which is a token"
msgstr "la règle pour %s, qui est un terminal"
#: src/reader.c:1436
#: src/reader.c:1511
msgid "two @prec's in a row"
msgstr "deux @prec de suite"
#: src/reader.c:1444
#, fuzzy, c-format
#: src/reader.c:1519
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard est présent mais %%semantic_parser n'est pas spécifié"
msgstr "%guard est présent mais %%semantic_parser n'est pas spécifié"
#: src/reader.c:1453
#: src/reader.c:1528
msgid "two actions at end of one rule"
msgstr "deux actions à la fin d'une même règle"
#: src/reader.c:1467
#: src/reader.c:1542
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "conflit de type (`%s' `%s') pour l'action par défaut"
#: src/reader.c:1473
#: src/reader.c:1548
msgid "empty rule for typed nonterminal, and no action"
msgstr "règle vide pour une catégorie typée et aucune action"
#: src/reader.c:1517
#: src/reader.c:1592
#, c-format
msgid "invalid input: %s"
msgstr "entrée non valide: %s"
#: src/reader.c:1525
#, fuzzy, c-format
#: src/reader.c:1600
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "trop de symboles (terminaux et catégories); maximum de %s"
msgstr "trop de symboles (jeton plus non terminaux); maximum %d"
#: src/reader.c:1528
#: src/reader.c:1603
msgid "no rules in the input grammar"
msgstr "la grammaire n'a pas de règles"
#: src/reader.c:1552
#: src/reader.c:1627
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"le symbole %s est utilisé mais ce n'est pas un terminal et il ne possède pas "
"de règle"
#: src/reader.c:1657
#: src/reader.c:1732
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "les priorités pour %s et %s entrent en conflit"
#: src/reader.c:1669
#: src/reader.c:1744
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "les valeurs d'association de %s et %s entrent en conflit"
#: src/reader.c:1720
#, fuzzy, c-format
#: src/reader.c:1795
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "les terminaux %s et %s se sont vus assigner le nombre %s"
msgstr "les jetons %s et %s se sont vus assigner le nombre %d"
#: src/reader.c:1733
#: src/reader.c:1808
#, c-format
msgid "the start symbol %s is undefined"
msgstr "le symbole de départ %s n'est pas défini"
#: src/reader.c:1735
#: src/reader.c:1810
#, c-format
msgid "the start symbol %s is a token"
msgstr "le symbole de départ %s est un terminal"
#: src/reduce.c:404
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"Catégories non productives:\n"
"\n"
msgstr "Non-terminaux inutiles:"
#: src/reduce.c:419
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
"\n"
"\n"
"Terminaux non utilisés:\n"
"\n"
msgstr "Terminaux non utilisés:"
#: src/reduce.c:430
#, fuzzy
msgid "Useless rules:"
msgstr ""
"\n"
"\n"
"Règles non productives:\n"
"\n"
msgstr "Règles inutiles:"
#: src/reduce.c:459
msgid ""
@@ -689,7 +703,7 @@ msgstr " et "
#: src/reduce.c:509
#, c-format
msgid "%d useless rule%s"
msgstr "%d règle(s) non productive(s)"
msgstr "%d règle(s) non productive(s)%s"
#: src/reduce.c:542
#, c-format
@@ -751,24 +765,23 @@ msgstr "%s: option non valide -- %c\n"
#: lib/getopt.c:815 lib/getopt.c:945
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: Cette option requiert un paramètre -- %c\n"
msgstr "%s: l'option requiert un paramètre -- %c\n"
#: lib/getopt.c:862
#, fuzzy, c-format
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: l'option %s est ambigüe\n"
msgstr "%s: l'option `-W %s' est ambig\n"
#: lib/getopt.c:880
#, fuzzy, c-format
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: l'option --%s n'admet pas de paramètre\n"
msgstr "%s: l'option `-W %s' n'admet pas de paramètre\n"
#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
#. before exiting when memory is exhausted. Goes through gettext.
#: lib/obstack.c:477 lib/xmalloc.c:66
#, fuzzy
msgid "memory exhausted"
msgstr "%s: mémoire épuisée\n"
msgstr "mémoire épuisée"
#. Get translations for open and closing quotation marks.
#.
@@ -786,37 +799,73 @@ msgstr "%s: m
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:259
msgid "`"
msgstr ""
msgstr "`"
#: lib/quotearg.c:260
msgid "'"
msgstr ""
msgstr "'"
#, fuzzy
#~ msgid "Memory exhausted"
#~ msgstr "%s: mémoire épuisée\n"
#~ msgid "vcg graph: no such color."
#~ msgstr "graphe vcg: pas de telle couleur"
#~ msgid "$%s is invalid"
#~ msgstr "$%s n'est pas valide"
#~ msgid "vcg graph: no such text mode"
#~ msgstr "graphe vcg: pas de tel mode texte"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "accolade fermante `}' non appariée"
#~ msgid "vcg graph: no such shape"
#~ msgstr "graphe vcg: pas de telle forme"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "accolade fermante `}' non appariée"
#~ msgid "vcg graph: no such decision"
#~ msgstr "graphe vcg: pas de telle décision"
#~ msgid "multiple %union declarations"
#~ msgstr "multiples déclarations %union"
#~ msgid "vcg graph: no such an orientation"
#~ msgstr "graphe vcg: pas de telle orientation"
#~ msgid "vcg graph: no such an alignement"
#~ msgstr "graphe vcg: pas de tel alignement"
#~ msgid "vcg graph: no such an arrow mode"
#~ msgstr "graphe vcg: pas de tel mode de flèche"
#~ msgid "vcg graph: no such crossing_type"
#~ msgstr "graphe vcg: pas de tel type de croisement (crossing_type)"
#~ msgid "vcg graph: no such view"
#~ msgstr "graphe vcg: pas de tel vue"
#~ msgid "vcg graph: no such linestyle"
#~ msgstr "graphe vcg: pas de tel style de ligne"
#~ msgid "vcg graph: no such an arrowstyle"
#~ msgstr "graphe vcg: pas de tel style de flèche"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "DERIVES\n"
#~ "\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "DERIVES\n"
#~ "\n"
#~ msgid "unterminated comment at end of file"
#~ msgstr "le commentaire ne se termine pas avant la fin du fichier"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "accolade fermante `}' non appariée"
#~ msgid "@%s is invalid"
#~ msgstr "@%s n'est pas valide"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "accolade fermante `}' non appariée"
#~ msgid "ill-formed %type declaration"
#~ msgstr "déclaration %type mal formée"
#~ msgid "gotos"
#~ msgstr "gotos"
#~ msgid ""
#~ "\n"
#~ "\n"
@@ -841,17 +890,6 @@ msgstr ""
#~ "%s firsts\n"
#~ "\n"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "FDERIVES\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "\n"
#~ "FDERIVES\n"
#~ msgid ""
#~ "\n"
#~ "\n"
@@ -863,7 +901,6 @@ msgstr ""
#~ "%s derives\n"
#~ "\n"
#, fuzzy
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
@@ -871,8 +908,6 @@ msgstr ""
#~ " [--no-parser] [--token-table]\n"
#~ " [--file-prefix=prefix] [--name-prefix=prefix]\n"
#~ " [--output=outfile] grammar-file\n"
#~ "\n"
#~ "Report bugs to [email protected]\n"
#~ msgstr ""
#~ "Usage: %s [-dhklntvyV] [-b préfixe-de-fichier] [-o sortie] [-p préfixe-de-"
#~ "nom]\n"
@@ -882,15 +917,8 @@ msgstr ""
#~ " [--file-prefix=préfixe] [--name-prefix=préfixe]\n"
#~ " [--output=outfile] grammaire\n"
#, fuzzy
#~ msgid "%s:%d: fatal error: "
#~ msgstr "erreur fatale: %s\n"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "le commentaire ne se termine pas dans la section de définition (%{)"
#~ msgid "invalid @-construct"
#~ msgstr "la construction `@' n'est pas valide"
#~ msgid "gotos"
#~ msgstr "gotos"
#~ msgid "\"%s\", line %d: %s\n"
#~ msgstr "\"%s\", ligne %d: %s\n"
@@ -903,3 +931,9 @@ msgstr ""
#~ msgid "limit of %d exceeded, too many %s"
#~ msgstr "limite de %d dépassée, trop de %s"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "le commentaire ne se termine pas dans la section de définition (%{)"
#~ msgid "invalid @-construct"
#~ msgstr "la construction `@' n'est pas valide"
BIN
View File
Binary file not shown.
+68 -53
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.28\n"
"POT-Creation-Date: 2001-08-03 11:38+0200\n"
"POT-Creation-Date: 2001-08-29 14:32+0200\n"
"PO-Revision-Date: 1999-09-28 21:10+0900\n"
"Last-Translator: Daisuke Yamashita <[email protected]>\n"
"Language-Team: Japanese <[email protected]>\n"
@@ -135,33 +135,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s は以下から派生"
#: src/files.c:98
#: src/files.c:130
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:117
#: src/files.c:149
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:81
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:85
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:89
#: src/getargs.c:91
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:95
#: src/getargs.c:97
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -169,7 +169,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:102
#: src/getargs.c:104
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -181,53 +181,55 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:114
#: src/getargs.c:116
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -v, --verbose also produce an explanation of the automaton\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output-file=FILE leave output to FILE\n"
" -g, --graph also produce a VCG graph description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:122
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:136
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:141
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:149
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
#: src/getargs.c:202 src/lex.c:633
#: src/getargs.c:210 src/lex.c:636
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:226
#: src/getargs.c:234
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:233
#: src/getargs.c:241
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: 文法ファイルが指定されていません\n"
#: src/getargs.c:237
#: src/getargs.c:245
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' より後ろの余分な引数は無視されました\n"
@@ -281,7 +283,7 @@ msgstr "
msgid "use \"...\" for multi-character literal tokens"
msgstr "複数文字のリテラルトークンには \"...\" を使いましょう"
#: src/main.c:104
#: src/main.c:108
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: 内部エラー: %s\n"
@@ -382,6 +384,16 @@ msgstr "
msgid " on right:"
msgstr " 右辺:"
#: src/print_graph.c:174
#, fuzzy, c-format
msgid "%-4s\terror (nonassociative)"
msgstr " %-4s\tエラー (非結合)\n"
#: src/print_graph.c:187
#, fuzzy, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\t規則 %d を利用して還元 (%s)\n"
#: src/reader.c:79
msgid " Skipping to next \\n"
msgstr " 次の \\n にスキップ"
@@ -442,7 +454,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "シンボル %s が再定義されました"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1231
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1306
#, c-format
msgid "type redeclaration for %s"
msgstr "%s の型が再定義されました"
@@ -457,7 +469,7 @@ msgstr "%2$s
msgid "multiple %s declarations"
msgstr "複数の %start が宣言されました"
#: src/reader.c:563 src/reader.c:1209
#: src/reader.c:563 src/reader.c:893 src/reader.c:918 src/reader.c:1284
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "無効な %start が宣言されました"
@@ -486,7 +498,7 @@ msgstr "̵
msgid "unexpected item: %s"
msgstr "予期せぬアイテム: %s"
#: src/reader.c:759 src/reader.c:1035 src/reader.c:1106
#: src/reader.c:759 src/reader.c:1110 src/reader.c:1181
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "対応のない `{' です"
@@ -506,102 +518,112 @@ msgstr "ǧ
msgid "expected string constant instead of %s"
msgstr "ここでは %s ではなく文字列定数が期待されます"
#: src/reader.c:951
#: src/reader.c:930
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "複数の %union 宣言です"
#: src/reader.c:940
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "複数の %union 宣言です"
#: src/reader.c:1026
#, c-format
msgid "unrecognized: %s"
msgstr "認識できない: %s"
#: src/reader.c:956
#: src/reader.c:1031
msgid "no input grammar"
msgstr "文法の入力が無い"
#: src/reader.c:961
#: src/reader.c:1036
#, c-format
msgid "unknown character: %s"
msgstr "未知の文字: %s"
#: src/reader.c:1129
#: src/reader.c:1204
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "閉じられていない %%guard 節です"
#: src/reader.c:1296
#: src/reader.c:1371
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "邪悪な規則: 初期化シンボルにコロン (:) が続いていません"
#: src/reader.c:1303
#: src/reader.c:1378
msgid "grammar starts with vertical bar"
msgstr "文法は縦棒 (|) で始めます"
#: src/reader.c:1334
#: src/reader.c:1409
#, c-format
msgid "rule given for %s, which is a token"
msgstr "%s に規則が与えられ、それはトークンとなります"
#: src/reader.c:1436
#: src/reader.c:1511
msgid "two @prec's in a row"
msgstr "@prec のもの二つが同列になっています"
#: src/reader.c:1444
#, fuzzy, c-format
#: src/reader.c:1519
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard がありますが %%semantic_parser が指定されていません"
#: src/reader.c:1453
#: src/reader.c:1528
msgid "two actions at end of one rule"
msgstr "一つの規則の終りに二つの動作を指定しています"
#: src/reader.c:1467
#: src/reader.c:1542
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "初期状態の動作では型 (`%s' `%s') が衝突します"
#: src/reader.c:1473
#: src/reader.c:1548
msgid "empty rule for typed nonterminal, and no action"
msgstr "空の型付き非終端アイテム用規則であり、動作が起りません"
#: src/reader.c:1517
#: src/reader.c:1592
#, c-format
msgid "invalid input: %s"
msgstr "無効な入力: %s"
#: src/reader.c:1525
#: src/reader.c:1600
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "シンボルが多すぎます (トークンと非終端アイテム) -- 最大 %s"
#: src/reader.c:1528
#: src/reader.c:1603
msgid "no rules in the input grammar"
msgstr "入力した文法に規則が定義されていません"
#: src/reader.c:1552
#: src/reader.c:1627
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"シンボル %s が使われていますが、トークンとして定義されておらず、規則を持ちま"
"せん"
#: src/reader.c:1657
#: src/reader.c:1732
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "先行している %s と %s で競合が生じています"
#: src/reader.c:1669
#: src/reader.c:1744
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "非結合値 %s と %s で競合が生じています"
#: src/reader.c:1720
#: src/reader.c:1795
#, fuzzy, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "トークン %s と %s の双方が番号 %s に割り当てられました"
#: src/reader.c:1733
#: src/reader.c:1808
#, c-format
msgid "the start symbol %s is undefined"
msgstr "開始シンボル %s は定義されていません"
#: src/reader.c:1735
#: src/reader.c:1810
#, c-format
msgid "the start symbol %s is a token"
msgstr "開始シンボル %s はトークンです"
@@ -790,13 +812,6 @@ msgstr ""
msgid "'"
msgstr ""
#, fuzzy
#~ msgid "Memory exhausted"
#~ msgstr "%s: メモリを使い果たしました\n"
#~ msgid "$%s is invalid"
#~ msgstr "$%s は無効です"
#~ msgid ""
#~ "\n"
#~ "\n"
@@ -877,9 +892,6 @@ msgstr ""
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "`%{' 定義 に閉じられていないコメントがあります"
#~ msgid "multiple %union declarations"
#~ msgstr "複数の %union 宣言です"
#~ msgid "unterminated comment at end of file"
#~ msgstr "ファイル末尾に閉じられていないコメントがあります"
@@ -889,6 +901,9 @@ msgstr ""
#~ msgid "unmatched right brace (`}')"
#~ msgstr "対応のない右ブレース (`}') です"
#~ msgid "$%s is invalid"
#~ msgstr "$%s は無効です"
#~ msgid "invalid @-construct"
#~ msgstr "無効な @-コンストラクトです"
BIN
View File
Binary file not shown.
+90 -80
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-08-03 11:38+0200\n"
"POT-Creation-Date: 2001-08-29 14:32+0200\n"
"PO-Revision-Date: 1996-08-27 15:34 MET DST\n"
"Last-Translator: Erick Branderhorst <[email protected]>\n"
"Language-Team: Dutch <[email protected]>\n"
@@ -135,33 +135,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s afgeleiden"
#: src/files.c:98
#: src/files.c:130
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:117
#: src/files.c:149
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:81
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:85
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:89
#: src/getargs.c:91
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:95
#: src/getargs.c:97
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -169,7 +169,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:102
#: src/getargs.c:104
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -181,53 +181,55 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:114
#: src/getargs.c:116
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -v, --verbose also produce an explanation of the automaton\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output-file=FILE leave output to FILE\n"
" -g, --graph also produce a VCG graph description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:122
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:136
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:141
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:149
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
#: src/getargs.c:202 src/lex.c:633
#: src/getargs.c:210 src/lex.c:636
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:226
#: src/getargs.c:234
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:233
#: src/getargs.c:241
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: geen grammatica bestand gegeven\n"
#: src/getargs.c:237
#: src/getargs.c:245
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argumenten genegeerd na '%s'\n"
@@ -281,7 +283,7 @@ msgstr "niet getermineerd type naam"
msgid "use \"...\" for multi-character literal tokens"
msgstr "gebruik \"...\" voor meerdere karakters literal tekens"
#: src/main.c:104
#: src/main.c:108
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interne fout, %s\n"
@@ -382,6 +384,18 @@ msgstr " links:"
msgid " on right:"
msgstr " rechts:"
#: src/print_graph.c:174
#, c-format
msgid "%-4s\terror (nonassociative)"
msgstr ""
#: src/print_graph.c:187
#, fuzzy, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr ""
" $default\treduce using rule %d (%s)\n"
"\n"
#: src/reader.c:79
msgid " Skipping to next \\n"
msgstr " Verder naar volgende \\n"
@@ -442,7 +456,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "symbool %s opnieuw gedefinieerd"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1231
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1306
#, c-format
msgid "type redeclaration for %s"
msgstr "type herdeclaratie voor %s"
@@ -457,7 +471,7 @@ msgstr "`%s' is onjuist in %s"
msgid "multiple %s declarations"
msgstr "meerdere %start declaraties"
#: src/reader.c:563 src/reader.c:1209
#: src/reader.c:563 src/reader.c:893 src/reader.c:918 src/reader.c:1284
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "onjuiste %start declaratie"
@@ -486,7 +500,7 @@ msgstr "onjuiste tekst (%s) - nummer hoort na de identifier"
msgid "unexpected item: %s"
msgstr "onbekend item: %s"
#: src/reader.c:759 src/reader.c:1035 src/reader.c:1106
#: src/reader.c:759 src/reader.c:1110 src/reader.c:1181
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "niet overeenkomstige `{'"
@@ -506,103 +520,113 @@ msgstr "onbekend item %s, verwacht een identifier"
msgid "expected string constant instead of %s"
msgstr "verwacht string constante in plaats van %s"
#: src/reader.c:951
#: src/reader.c:930
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "meerdere %union declaraties"
#: src/reader.c:940
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "meerdere %union declaraties"
#: src/reader.c:1026
#, c-format
msgid "unrecognized: %s"
msgstr "onbekend: %s"
#: src/reader.c:956
#: src/reader.c:1031
msgid "no input grammar"
msgstr "geen invoer grammatica"
#: src/reader.c:961
#: src/reader.c:1036
#, c-format
msgid "unknown character: %s"
msgstr "onbekend karakter: %s"
#: src/reader.c:1129
#: src/reader.c:1204
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "niet getermineerde %%guard voorwaarde"
#: src/reader.c:1296
#: src/reader.c:1371
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr ""
"slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt"
#: src/reader.c:1303
#: src/reader.c:1378
msgid "grammar starts with vertical bar"
msgstr "grammatica start met een verticale bar"
#: src/reader.c:1334
#: src/reader.c:1409
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regel geven voor %s, welke een teken is"
#: src/reader.c:1436
#: src/reader.c:1511
msgid "two @prec's in a row"
msgstr "twee @prec's in een regel"
#: src/reader.c:1444
#, fuzzy, c-format
#: src/reader.c:1519
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd"
#: src/reader.c:1453
#: src/reader.c:1528
msgid "two actions at end of one rule"
msgstr "twee akties aan het einde van een regel"
#: src/reader.c:1467
#: src/reader.c:1542
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "type clash (`%s' `%s') bij standaard aktie"
#: src/reader.c:1473
#: src/reader.c:1548
msgid "empty rule for typed nonterminal, and no action"
msgstr "lege regel voor getypte niet terminal, en geen aktie"
#: src/reader.c:1517
#: src/reader.c:1592
#, c-format
msgid "invalid input: %s"
msgstr "ongeldige invoer: %s"
#: src/reader.c:1525
#: src/reader.c:1600
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "te veel symbolen (tekens plus nietterminals); maximum %s"
#: src/reader.c:1528
#: src/reader.c:1603
msgid "no rules in the input grammar"
msgstr "geen regels voor invoer grammatica"
#: src/reader.c:1552
#: src/reader.c:1627
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"symbool %s is gebruikt, maar is niet gedefinieerd als een teken en\n"
"heeft geen regels"
#: src/reader.c:1657
#: src/reader.c:1732
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "conflictuerende precedentein voor %s en %s"
#: src/reader.c:1669
#: src/reader.c:1744
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflictuerende associatieve waarden voor %s en %s"
#: src/reader.c:1720
#: src/reader.c:1795
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr ""
#: src/reader.c:1733
#: src/reader.c:1808
#, c-format
msgid "the start symbol %s is undefined"
msgstr ""
#: src/reader.c:1735
#: src/reader.c:1810
#, c-format
msgid "the start symbol %s is a token"
msgstr "het start symbool %s is een token"
@@ -791,31 +815,6 @@ msgstr ""
msgid "'"
msgstr ""
#, fuzzy
#~ msgid "Memory exhausted"
#~ msgstr "%s: geen geheugen meer beschikbaar\n"
#~ msgid "$%s is invalid"
#~ msgstr "$%s is onjuist"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "niet overeenkomstige afsluit-haakje (`}')"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "niet overeenkomstig rechter haakje (`}')"
#~ msgid "multiple %union declarations"
#~ msgstr "meerdere %union declaraties"
#~ msgid "unterminated comment at end of file"
#~ msgstr "niet getermineerd commentaar aan einde van bestand"
#~ msgid "ill-formed %type declaration"
#~ msgstr "slecht geformuleerde %type declaratie"
#~ msgid "gotos"
#~ msgstr "ganaar"
#~ msgid ""
#~ "\n"
#~ "\n"
@@ -862,7 +861,6 @@ msgstr ""
#~ "%s afgeleiden\n"
#~ "\n"
#, fuzzy
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
@@ -870,8 +868,6 @@ msgstr ""
#~ " [--no-parser] [--token-table]\n"
#~ " [--file-prefix=prefix] [--name-prefix=prefix]\n"
#~ " [--output=outfile] grammar-file\n"
#~ "\n"
#~ "Report bugs to [email protected]\n"
#~ msgstr ""
#~ "Gebruik: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
@@ -880,15 +876,8 @@ msgstr ""
#~ " [--file-prefix=prefix] [--name-prefix=prefix]\n"
#~ " [--output=outfile] grammar-bestand\n"
#, fuzzy
#~ msgid "%s:%d: fatal error: "
#~ msgstr "fatale fout: %s\n"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "niet getermineerd commentaar in `%{' definitie"
#~ msgid "invalid @-construct"
#~ msgstr "ongeldige @-constructie"
#~ msgid "gotos"
#~ msgstr "ganaar"
#~ msgid "\"%s\", line %d: %s\n"
#~ msgstr "\"%s\", regel %d: %s\n"
@@ -901,3 +890,24 @@ msgstr ""
#~ msgid "limit of %d exceeded, too many %s"
#~ msgstr "limiet van %d overschreden, te veel %s"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "niet getermineerd commentaar in `%{' definitie"
#~ msgid "unterminated comment at end of file"
#~ msgstr "niet getermineerd commentaar aan einde van bestand"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "niet overeenkomstige afsluit-haakje (`}')"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "niet overeenkomstig rechter haakje (`}')"
#~ msgid "$%s is invalid"
#~ msgstr "$%s is onjuist"
#~ msgid "invalid @-construct"
#~ msgstr "ongeldige @-constructie"
#~ msgid "ill-formed %type declaration"
#~ msgstr "slecht geformuleerde %type declaratie"
BIN
View File
Binary file not shown.
+65 -45
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.28a\n"
"POT-Creation-Date: 2001-08-03 11:38+0200\n"
"POT-Creation-Date: 2001-08-29 14:32+0200\n"
"PO-Revision-Date: 2000-04-12 13:16+04:00\n"
"Last-Translator: Dmitry S. Sivachenko <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
@@ -136,27 +136,27 @@ msgstr ""
msgid "%s derives"
msgstr "%s ×Ù×ÏÄÉÔ"
#: src/files.c:98
#: src/files.c:130
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:117
#: src/files.c:149
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:81
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison ÇÅÎÅÒÉÒÕÅÔ ÁÎÁÌÉÚÁÔÏÒÙ ÄÌÑ ÇÒÁÍÍÁÔÉË LALR(1).\n"
#: src/getargs.c:85
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþé]... æáêì\n"
#: src/getargs.c:89
#: src/getargs.c:91
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
@@ -165,7 +165,7 @@ msgstr ""
"Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ ÄÌÑ ËÏÒÏÔËÏÊ ÆÏÒÍÙ. ôÏ ÖÅ ËÁÓÁÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÈ\n"
"ÁÒÇÕÍÅÎÔÏ×.\n"
#: src/getargs.c:95
#: src/getargs.c:97
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -177,7 +177,7 @@ msgstr ""
" -V, --version ×Ù×ÅÓÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
" -y, --yacc ÜÍÕÌÉÒÏ×ÁÔØ POSIX yacc\n"
#: src/getargs.c:102
#: src/getargs.c:104
#, fuzzy
msgid ""
"Parser:\n"
@@ -197,13 +197,16 @@ msgstr ""
" -r, --raw ÎÕÍÅÒÏ×ÁÔØ ÌÅËÓÅÍÙ, ÎÁÞÉÎÁÑ Ó 3\n"
" -k, --token-table ×ËÌÀÞÉÔØ ÔÁÂÌÉÃÕ ÉÍÅÎ ÌÅËÓÅÍ\n"
#: src/getargs.c:114
#: src/getargs.c:116
#, fuzzy
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -v, --verbose also produce an explanation of the automaton\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output-file=FILE leave output to FILE\n"
" -g, --graph also produce a VCG graph description of the "
"automaton\n"
msgstr ""
"÷Ù×ÏÄ:\n"
" -d, --defines ÓÏÚÄÁÔØ ÔÁËÖÅ ÆÁÊÌ ÚÁÇÏÌÏ×ËÏ×\n"
@@ -211,44 +214,44 @@ msgstr ""
" -b, --file-prefix=ðòåæéëó ÕËÁÚÁÔØ ðòåæéëó ÄÌÑ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×\n"
" -o, --output-file=æáêì ÐÏÍÅÓÔÉÔØ ÒÅÚÕÌØÔÁÔ × æáêì\n"
#: src/getargs.c:122
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr "ïÛÉÂËÉ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ <[email protected]>.\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:136
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:141
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:149
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
#: src/getargs.c:202 src/lex.c:633
#: src/getargs.c:210 src/lex.c:636
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:226
#: src/getargs.c:234
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:233
#: src/getargs.c:241
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: ÎÅ ÚÁÄÁÎ ÆÁÊÌ Ó ÇÒÁÍÍÁÔÉËÏÊ\n"
#: src/getargs.c:237
#: src/getargs.c:245
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
@@ -301,7 +304,7 @@ msgstr "
msgid "use \"...\" for multi-character literal tokens"
msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
#: src/main.c:104
#: src/main.c:108
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n"
@@ -402,6 +405,16 @@ msgstr "
msgid " on right:"
msgstr " ÎÁÐÒÁ×Ï:"
#: src/print_graph.c:174
#, fuzzy, c-format
msgid "%-4s\terror (nonassociative)"
msgstr " %-4s\tÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
#: src/print_graph.c:187
#, fuzzy, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#: src/reader.c:79
msgid " Skipping to next \\n"
msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n"
@@ -462,7 +475,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1231
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1306
#, c-format
msgid "type redeclaration for %s"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
@@ -477,7 +490,7 @@ msgstr "`%s'
msgid "multiple %s declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %start"
#: src/reader.c:563 src/reader.c:1209
#: src/reader.c:563 src/reader.c:893 src/reader.c:918 src/reader.c:1284
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %start"
@@ -506,7 +519,7 @@ msgstr "
msgid "unexpected item: %s"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
#: src/reader.c:759 src/reader.c:1035 src/reader.c:1106
#: src/reader.c:759 src/reader.c:1110 src/reader.c:1181
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "ÎÅÐÁÒÎÁÑ `{'"
@@ -526,101 +539,111 @@ msgstr "
msgid "expected string constant instead of %s"
msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
#: src/reader.c:951
#: src/reader.c:930
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %union"
#: src/reader.c:940
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %union"
#: src/reader.c:1026
#, c-format
msgid "unrecognized: %s"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s"
#: src/reader.c:956
#: src/reader.c:1031
msgid "no input grammar"
msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
#: src/reader.c:961
#: src/reader.c:1036
#, c-format
msgid "unknown character: %s"
msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s"
#: src/reader.c:1129
#: src/reader.c:1204
#, c-format
msgid "unterminated %guard clause"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard"
#: src/reader.c:1296
#: src/reader.c:1371
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
#: src/reader.c:1303
#: src/reader.c:1378
msgid "grammar starts with vertical bar"
msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
#: src/reader.c:1334
#: src/reader.c:1409
#, c-format
msgid "rule given for %s, which is a token"
msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
#: src/reader.c:1436
#: src/reader.c:1511
msgid "two @prec's in a row"
msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
#: src/reader.c:1444
#: src/reader.c:1519
#, fuzzy, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %semantic_parser ÎÅ ÚÁÄÁÎ"
#: src/reader.c:1453
#: src/reader.c:1528
msgid "two actions at end of one rule"
msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
#: src/reader.c:1467
#: src/reader.c:1542
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
#: src/reader.c:1473
#: src/reader.c:1548
msgid "empty rule for typed nonterminal, and no action"
msgstr ""
"ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
#: src/reader.c:1517
#: src/reader.c:1592
#, c-format
msgid "invalid input: %s"
msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s"
#: src/reader.c:1525
#: src/reader.c:1600
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
#: src/reader.c:1528
#: src/reader.c:1603
msgid "no rules in the input grammar"
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
#: src/reader.c:1552
#: src/reader.c:1627
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
#: src/reader.c:1657
#: src/reader.c:1732
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
#: src/reader.c:1669
#: src/reader.c:1744
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
#: src/reader.c:1720
#: src/reader.c:1795
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %d"
#: src/reader.c:1733
#: src/reader.c:1808
#, c-format
msgid "the start symbol %s is undefined"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
#: src/reader.c:1735
#: src/reader.c:1810
#, c-format
msgid "the start symbol %s is a token"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
@@ -809,9 +832,6 @@ msgstr ""
msgid "'"
msgstr ""
#~ msgid "multiple %union declarations"
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %union"
#~ msgid "unterminated comment at end of file"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ × ËÏÎÃÅ ÆÁÊÌÁ"
+1
View File
@@ -2,3 +2,4 @@
.deps
Makefile
bison
*.log
+3 -2
View File
@@ -14,7 +14,7 @@ bison_SOURCES = LR0.c closure.c complain.c conflicts.c \
derives.c \
files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
output.c \
print.c reader.c reduce.c symtab.c warshall.c
print.c reader.c reduce.c symtab.c warshall.c vcg.c print_graph.c
EXTRA_bison_SOURCES = vmsgetargs.c
@@ -22,7 +22,8 @@ noinst_HEADERS = LR0.h closure.h complain.h conflicts.h \
derives.h \
files.h getargs.h gram.h lalr.h lex.h nullable.h \
output.h state.h \
print.h reader.h reduce.h symtab.h warshall.h system.h types.h
print.h reader.h reduce.h symtab.h warshall.h system.h types.h \
vcg.h vcg_defaults.h print_graph.h
pkgdata_DATA = bison.simple bison.hairy
+254 -242
View File
@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@@ -59,20 +57,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AT_TESTPATH = @AT_TESTPATH@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
@@ -81,9 +84,9 @@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -93,9 +96,15 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = 1.4 ../lib/ansi2knr
DEFS = @DEFS@ -DBISON_SIMPLE=\"$(pkgdatadir)/bison.simple\" -DBISON_HAIRY=\"$(pkgdatadir)/bison.hairy\" -DLOCALEDIR=\"$(datadir)/locale\"
DEFS = @DEFS@ \
-DBISON_SIMPLE=\"$(pkgdatadir)/bison.simple\" \
-DBISON_HAIRY=\"$(pkgdatadir)/bison.hairy\" \
-DLOCALEDIR=\"$(datadir)/locale\"
INCLUDES = -I../intl -I$(top_srcdir)/lib -I..
@@ -103,357 +112,360 @@ LDADD = @INTLLIBS@ ../lib/libbison.a
bin_PROGRAMS = bison
bison_SOURCES = LR0.c closure.c complain.c conflicts.c derives.c files.c getargs.c gram.c lalr.c lex.c main.c nullable.c output.c print.c reader.c reduce.c symtab.c warshall.c
bison_SOURCES = LR0.c closure.c complain.c conflicts.c \
derives.c \
files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
output.c \
print.c reader.c reduce.c symtab.c warshall.c vcg.c print_graph.c
EXTRA_bison_SOURCES = vmsgetargs.c
noinst_HEADERS = LR0.h closure.h complain.h conflicts.h derives.h files.h getargs.h gram.h lalr.h lex.h nullable.h output.h state.h print.h reader.h reduce.h symtab.h warshall.h system.h types.h
noinst_HEADERS = LR0.h closure.h complain.h conflicts.h \
derives.h \
files.h getargs.h gram.h lalr.h lex.h nullable.h \
output.h state.h \
print.h reader.h reduce.h symtab.h warshall.h system.h types.h \
vcg.h vcg_defaults.h print_graph.h
pkgdata_DATA = bison.simple bison.hairy
EXTRA_DIST = $(pkgdata_DATA) build.com bison.cld vmshlp.mar
subdir = src
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
bin_PROGRAMS = bison$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
am_bison_OBJECTS = LR0$U.$(OBJEXT) closure$U.$(OBJEXT) \
complain$U.$(OBJEXT) conflicts$U.$(OBJEXT) derives$U.$(OBJEXT) \
files$U.$(OBJEXT) getargs$U.$(OBJEXT) gram$U.$(OBJEXT) \
lalr$U.$(OBJEXT) lex$U.$(OBJEXT) main$U.$(OBJEXT) \
nullable$U.$(OBJEXT) output$U.$(OBJEXT) print$U.$(OBJEXT) \
reader$U.$(OBJEXT) reduce$U.$(OBJEXT) symtab$U.$(OBJEXT) \
warshall$U.$(OBJEXT) vcg$U.$(OBJEXT) print_graph$U.$(OBJEXT)
bison_OBJECTS = $(am_bison_OBJECTS)
bison_LDADD = $(LDADD)
bison_DEPENDENCIES = ../lib/libbison.a
bison_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
ANSI2KNR = ../lib/ansi2knr
bison_OBJECTS = LR0$U.o closure$U.o complain$U.o conflicts$U.o \
derives$U.o files$U.o getargs$U.o gram$U.o lalr$U.o lex$U.o main$U.o \
nullable$U.o output$U.o print$U.o reader$U.o reduce$U.o symtab$U.o \
warshall$U.o
bison_LDADD = $(LDADD)
bison_DEPENDENCIES = ../lib/libbison.a
bison_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/LR0$U.Po $(DEPDIR)/closure$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/complain$U.Po $(DEPDIR)/conflicts$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/derives$U.Po $(DEPDIR)/files$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/getargs$U.Po $(DEPDIR)/gram$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/lalr$U.Po $(DEPDIR)/lex$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/main$U.Po $(DEPDIR)/nullable$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/output$U.Po $(DEPDIR)/print$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/print_graph$U.Po $(DEPDIR)/reader$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/reduce$U.Po $(DEPDIR)/symtab$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/vcg$U.Po $(DEPDIR)/vmsgetargs$U.Po \
@AMDEP_TRUE@ $(DEPDIR)/warshall$U.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(pkgdata_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(bison_SOURCES) $(EXTRA_bison_SOURCES)
DATA = $(pkgdata_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
DEP_FILES = .deps/LR0.P .deps/closure.P .deps/complain.P \
.deps/conflicts.P .deps/derives.P .deps/files.P .deps/getargs.P \
.deps/gram.P .deps/lalr.P .deps/lex.P .deps/main.P .deps/nullable.P \
.deps/output.P .deps/print.P .deps/reader.P .deps/reduce.P \
.deps/symtab.P .deps/vmsgetargs.P .deps/warshall.P
DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in
SOURCES = $(bison_SOURCES) $(EXTRA_bison_SOURCES)
OBJECTS = $(bison_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-binPROGRAMS:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
distclean-binPROGRAMS:
maintainer-clean-binPROGRAMS:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
else :; fi; \
done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(bin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
rm -f $(DESTDIR)$(bindir)/$$f; \
done
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
bison$(EXEEXT): $(bison_OBJECTS) $(bison_DEPENDENCIES)
@rm -f bison$(EXEEXT)
$(LINK) $(bison_LDFLAGS) $(bison_OBJECTS) $(bison_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
../lib/ansi2knr: ../lib/ansi2knr.o
ANSI2KNR = ../lib/ansi2knr
../lib/ansi2knr:
cd ../lib && $(MAKE) $(AM_MAKEFLAGS) ansi2knr
../lib/ansi2knr.o:
cd ../lib && $(MAKE) $(AM_MAKEFLAGS) ansi2knr.o
mostlyclean-kr:
-rm -f *_.c
clean-kr:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/LR0$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/closure$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/complain$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/conflicts$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/derives$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/files$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getargs$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/gram$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lalr$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lex$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/main$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/nullable$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/output$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/print$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/print_graph$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/reader$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/reduce$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/symtab$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vcg$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vmsgetargs$U.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/warshall$U.Po@am__quote@
distclean-kr:
distclean-depend:
-rm -rf $(DEPDIR)
maintainer-clean-kr:
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
bison: $(bison_OBJECTS) $(bison_DEPENDENCIES)
@rm -f bison
$(LINK) $(bison_LDFLAGS) $(bison_OBJECTS) $(bison_LDADD) $(LIBS)
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
LR0_.c: LR0.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/LR0.c; then echo $(srcdir)/LR0.c; else echo LR0.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > LR0_.c
alloca_.c: alloca.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/LR0.c; then echo $(srcdir)/LR0.c; else echo LR0.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > LR0_.c || rm -f LR0_.c
closure_.c: closure.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/closure.c; then echo $(srcdir)/closure.c; else echo closure.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > closure_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/closure.c; then echo $(srcdir)/closure.c; else echo closure.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > closure_.c || rm -f closure_.c
complain_.c: complain.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/complain.c; then echo $(srcdir)/complain.c; else echo complain.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > complain_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/complain.c; then echo $(srcdir)/complain.c; else echo complain.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > complain_.c || rm -f complain_.c
conflicts_.c: conflicts.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/conflicts.c; then echo $(srcdir)/conflicts.c; else echo conflicts.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > conflicts_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/conflicts.c; then echo $(srcdir)/conflicts.c; else echo conflicts.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > conflicts_.c || rm -f conflicts_.c
derives_.c: derives.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/derives.c; then echo $(srcdir)/derives.c; else echo derives.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > derives_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/derives.c; then echo $(srcdir)/derives.c; else echo derives.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > derives_.c || rm -f derives_.c
files_.c: files.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/files.c; then echo $(srcdir)/files.c; else echo files.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > files_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/files.c; then echo $(srcdir)/files.c; else echo files.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > files_.c || rm -f files_.c
getargs_.c: getargs.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getargs.c; then echo $(srcdir)/getargs.c; else echo getargs.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getargs_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getargs.c; then echo $(srcdir)/getargs.c; else echo getargs.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getargs_.c || rm -f getargs_.c
gram_.c: gram.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/gram.c; then echo $(srcdir)/gram.c; else echo gram.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gram_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/gram.c; then echo $(srcdir)/gram.c; else echo gram.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > gram_.c || rm -f gram_.c
lalr_.c: lalr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lalr.c; then echo $(srcdir)/lalr.c; else echo lalr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lalr_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lalr.c; then echo $(srcdir)/lalr.c; else echo lalr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lalr_.c || rm -f lalr_.c
lex_.c: lex.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lex.c; then echo $(srcdir)/lex.c; else echo lex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lex_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lex.c; then echo $(srcdir)/lex.c; else echo lex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lex_.c || rm -f lex_.c
main_.c: main.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/main.c; then echo $(srcdir)/main.c; else echo main.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > main_.c
memchr_.c: memchr.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memchr.c; then echo $(srcdir)/memchr.c; else echo memchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memchr_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/main.c; then echo $(srcdir)/main.c; else echo main.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > main_.c || rm -f main_.c
nullable_.c: nullable.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/nullable.c; then echo $(srcdir)/nullable.c; else echo nullable.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > nullable_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/nullable.c; then echo $(srcdir)/nullable.c; else echo nullable.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > nullable_.c || rm -f nullable_.c
output_.c: output.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/output.c; then echo $(srcdir)/output.c; else echo output.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > output_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/output.c; then echo $(srcdir)/output.c; else echo output.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > output_.c || rm -f output_.c
print_.c: print.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/print.c; then echo $(srcdir)/print.c; else echo print.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > print_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/print.c; then echo $(srcdir)/print.c; else echo print.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > print_.c || rm -f print_.c
print_graph_.c: print_graph.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/print_graph.c; then echo $(srcdir)/print_graph.c; else echo print_graph.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > print_graph_.c || rm -f print_graph_.c
reader_.c: reader.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reader.c; then echo $(srcdir)/reader.c; else echo reader.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reader_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reader.c; then echo $(srcdir)/reader.c; else echo reader.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reader_.c || rm -f reader_.c
reduce_.c: reduce.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reduce.c; then echo $(srcdir)/reduce.c; else echo reduce.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reduce_.c
stpcpy_.c: stpcpy.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c
strndup_.c: strndup.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c
strnlen_.c: strnlen.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strnlen.c; then echo $(srcdir)/strnlen.c; else echo strnlen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strnlen_.c
strspn_.c: strspn.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strspn.c; then echo $(srcdir)/strspn.c; else echo strspn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strspn_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reduce.c; then echo $(srcdir)/reduce.c; else echo reduce.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reduce_.c || rm -f reduce_.c
symtab_.c: symtab.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/symtab.c; then echo $(srcdir)/symtab.c; else echo symtab.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > symtab_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/symtab.c; then echo $(srcdir)/symtab.c; else echo symtab.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > symtab_.c || rm -f symtab_.c
vcg_.c: vcg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/vcg.c; then echo $(srcdir)/vcg.c; else echo vcg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > vcg_.c || rm -f vcg_.c
vmsgetargs_.c: vmsgetargs.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/vmsgetargs.c; then echo $(srcdir)/vmsgetargs.c; else echo vmsgetargs.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > vmsgetargs_.c
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/vmsgetargs.c; then echo $(srcdir)/vmsgetargs.c; else echo vmsgetargs.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > vmsgetargs_.c || rm -f vmsgetargs_.c
warshall_.c: warshall.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/warshall.c; then echo $(srcdir)/warshall.c; else echo warshall.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > warshall_.c
LR0_.o alloca_.o closure_.o complain_.o conflicts_.o derives_.o \
files_.o getargs_.o gram_.o lalr_.o lex_.o main_.o memchr_.o \
nullable_.o output_.o print_.o reader_.o reduce_.o stpcpy_.o strndup_.o \
strnlen_.o strspn_.o symtab_.o vmsgetargs_.o warshall_.o : $(ANSI2KNR)
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/warshall.c; then echo $(srcdir)/warshall.c; else echo warshall.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > warshall_.c || rm -f warshall_.c
LR0_.$(OBJEXT) closure_.$(OBJEXT) complain_.$(OBJEXT) \
conflicts_.$(OBJEXT) derives_.$(OBJEXT) files_.$(OBJEXT) \
getargs_.$(OBJEXT) gram_.$(OBJEXT) lalr_.$(OBJEXT) lex_.$(OBJEXT) \
main_.$(OBJEXT) nullable_.$(OBJEXT) output_.$(OBJEXT) print_.$(OBJEXT) \
print_graph_.$(OBJEXT) reader_.$(OBJEXT) reduce_.$(OBJEXT) \
symtab_.$(OBJEXT) vcg_.$(OBJEXT) vmsgetargs_.$(OBJEXT) \
warshall_.$(OBJEXT) : $(ANSI2KNR)
uninstall-info-am:
install-pkgdataDATA: $(pkgdata_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
@list='$(pkgdata_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
fi; fi; \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f"; \
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f; \
done
uninstall-pkgdataDATA:
@$(NORMAL_UNINSTALL)
list='$(pkgdata_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
@list='$(pkgdata_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(pkgdatadir)/$$f"; \
rm -f $(DESTDIR)$(pkgdatadir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = src
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-binPROGRAMS
install-exec: install-exec-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am: install-pkgdataDATA
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(pkgdatadir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-binPROGRAMS uninstall-pkgdataDATA
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(pkgdatadir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
mostlyclean-kr mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-binPROGRAMS clean-compile clean-kr clean-tags \
clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-binPROGRAMS distclean-compile distclean-kr \
distclean-tags distclean-depend distclean-generic \
clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-binPROGRAMS \
maintainer-clean-compile maintainer-clean-kr \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am: install-pkgdataDATA
install-exec-am: install-binPROGRAMS
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-kr distclean-kr clean-kr \
maintainer-clean-kr uninstall-pkgdataDATA install-pkgdataDATA tags \
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
distdir mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic mostlyclean-kr
uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
uninstall-pkgdataDATA
.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
clean-generic distclean distclean-compile distclean-depend \
distclean-generic distclean-tags distdir dvi dvi-am info \
info-am install install-am install-binPROGRAMS install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-pkgdataDATA install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-kr tags uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-info-am uninstall-pkgdataDATA
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
View File
View File
+23 -33
View File
@@ -1,7 +1,7 @@
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line
/* Skeleton output parser for bison,
Copyright 1984, 1989, 1990, 2000 Free Software Foundation, Inc.
Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -30,14 +30,14 @@
#ifndef YYSTACK_USE_ALLOCA
# ifdef alloca
# define YYSTACK_USE_ALLOCA
# define YYSTACK_USE_ALLOCA 1
# else /* alloca not defined */
# ifdef __GNUC__
# define YYSTACK_USE_ALLOCA
# define YYSTACK_USE_ALLOCA 1
# define alloca __builtin_alloca
# else /* not GNU C. */
# if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
# define YYSTACK_USE_ALLOCA
# define YYSTACK_USE_ALLOCA 1
# include <alloca.h>
# else /* not sparc */
/* We think this test detects Watcom and Microsoft C. */
@@ -55,13 +55,13 @@
namespace. So I turned it off. rms, 2 May 1997. */
/* #include <malloc.h> */
#pragma alloca
# define YYSTACK_USE_ALLOCA
# define YYSTACK_USE_ALLOCA 1
# else /* not MSDOS, or __TURBOC__, or _AIX */
# if 0
/* [email protected] says this works for HPUX 9.05 and up, and on
HPUX 10. Eventually we can turn this on. */
# ifdef __hpux
# define YYSTACK_USE_ALLOCA
# define YYSTACK_USE_ALLOCA 1
# define alloca __builtin_alloca
# endif /* __hpux */
# endif
@@ -72,7 +72,7 @@
# endif /* alloca not defined */
#endif /* YYSTACK_USE_ALLOCA not defined */
#ifdef YYSTACK_USE_ALLOCA
#if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
#else
# define YYSTACK_ALLOC malloc
@@ -119,9 +119,9 @@ while (0)
its range to the last symbol. */
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Last) \
Current.last_line = Last.last_line; \
Current.last_column = Last.last_column;
# define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
#endif
@@ -185,40 +185,27 @@ int yydebug;
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
# define __yy_memcpy(To, From, Count) __builtin_memcpy (To, From, Count)
#else /* not GNU C or C++ */
# ifndef __cplusplus
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
# ifndef __cplusplus
__yy_memcpy (to, from, count)
char *to;
char *from;
const char *from;
unsigned int count;
{
register char *f = from;
register char *t = to;
register int i = count;
while (i-- > 0)
*t++ = *f++;
}
# else /* __cplusplus */
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
__yy_memcpy (char *to, char *from, unsigned int count)
__yy_memcpy (char *to, const char *from, unsigned int count)
# endif
{
register const char *f = from;
register char *t = to;
register char *f = from;
register int i = count;
while (i-- > 0)
*t++ = *f++;
}
# endif
#endif
#line
@@ -356,21 +343,24 @@ yyparse (YYPARSE_PARAM_ARG)
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyssp = yyss - 1;
yyssp = yyss;
yyvsp = yyvs;
#if YYLSP_NEEDED
yylsp = yyls;
#endif
goto yysetstate;
/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
yynewstate:
yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. so pushing a state here evens the stacks.
*/
*++yyssp = yystate;
yyssp++;
yysetstate:
*yyssp = yystate;
if (yyssp >= yyss + yystacksize - 1)
{
@@ -592,7 +582,7 @@ yyreduce:
/* Similarly for the default location. Let the user run additional
commands if for instance locations are ranges. */
yyloc = yylsp[1-yylen];
YYLLOC_DEFAULT (yyloc, yylsp[0]);
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
#endif
#if YYDEBUG
+120 -39
View File
@@ -1,5 +1,5 @@
/* Open and close files for bison,
Copyright 1984, 1986, 1989, 1992, 2000 Free Software Foundation, Inc.
Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -34,10 +34,11 @@ struct obstack table_obstack;
struct obstack defines_obstack;
struct obstack guard_obstack;
struct obstack output_obstack;
struct obstack graph_obstack;
char *spec_outfile = NULL; /* for -o. */
char *spec_file_prefix = NULL; /* for -b. */
char *spec_name_prefix = NULL; /* for -p. */
char *spec_file_prefix = NULL; /* for -b. */
char *spec_name_prefix = NULL; /* for -p. */
char *infile = NULL;
char *attrsfile = NULL;
@@ -45,12 +46,12 @@ char *attrsfile = NULL;
static char *base_name = NULL;
static char *short_base_name = NULL;
/* C source file extension (the parser source). */
static const char *src_extension = NULL;
/* Header file extension (if option ``-d'' is specified). */
static const char *header_extension = NULL;
/* C source file extension (the parser source). */
const char *src_extension = NULL;
/* Header file extension (if option ``-d'' is specified). */
const char *header_extension = NULL;
/*--------------------------.
| Is SUFFIX ending STRING? |
`--------------------------*/
@@ -83,6 +84,37 @@ stringappend (const char *string1, const char *string2)
return res;
}
/*---------------------------------------------------------------.
| Computes the macro name used to avoid double inclusion in the |
| header of the parser and store it in header_macro_name. |
`---------------------------------------------------------------*/
static char *
compute_header_macro (void)
{
int ite;
char *macro_name;
macro_name = XMALLOC (char,
strlen (base_name) +
strlen (header_extension) + 1);
stpcpy (macro_name, base_name);
strcat (macro_name, header_extension);
for (ite = 0; macro_name[ite]; ite++)
if (macro_name[ite] == '.')
macro_name[ite] = '_';
else
{
if (islower (macro_name[ite]))
macro_name[ite] -= ('a' - 'A');
}
return macro_name;
}
/*-----------------------------------------------------------------.
| Try to open file NAME with mode MODE, and print an error message |
| if fails. |
@@ -132,6 +164,25 @@ obstack_save (struct obstack *obs, const char *filename)
xfclose (out);
}
/*---------------------------------------------------------------------.
| Output double inclusion protection macros and saves defines_obstack |
`---------------------------------------------------------------------*/
static void
defines_obstack_save (const char *filename)
{
FILE *out = xfopen (filename, "w");
size_t size = obstack_object_size (&defines_obstack);
char *macro_name = compute_header_macro ();
fprintf (out, "#ifndef %s\n", macro_name);
fprintf (out, "# define %s\n\n", macro_name);
fwrite (obstack_finish (&defines_obstack), 1, size, out);
fprintf (out, "\n#endif /* not %s */\n", macro_name);
free (macro_name);
xfclose (out);
}
/*------------------------------------------------------------------.
| Return the path to the skeleton which locaction might be given in |
@@ -159,16 +210,16 @@ skeleton_find (const char *envvar, const char *skeleton_name)
return res;
}
/*----------------------------------------------------------------.
| Compute BASE_NAME, SHORT_BASE_NAME and output files extensions. |
`----------------------------------------------------------------*/
/* Replace all characters FROM by TO in the string IN.
and returns a new allocated string. */
and returns a new allocated string. */
static char *
tr(const char *in, char from, char to)
tr (const char *in, char from, char to)
{
char *temp;
char *out;
@@ -184,12 +235,12 @@ tr(const char *in, char from, char to)
return (temp);
}
/* Gets the extension index in FILENAME. Returns 0 if fails to
find an extension. */
/* Gets the extension index in FILENAME. Returns 0 if fails to
find an extension. */
static int
get_extension_index(const char *filename)
get_extension_index (const char *filename)
{
int len;
int len;
len = strlen (filename);
@@ -207,21 +258,34 @@ get_extension_index(const char *filename)
/* Computes extensions from the grammar file extension. */
static void
compute_exts_from_gf(const char *ext)
compute_exts_from_gf (const char *ext)
{
src_extension = tr(ext, 'y', 'c');
src_extension = tr(src_extension, 'Y', 'C');
header_extension = tr(ext, 'y', 'h');
header_extension = tr(header_extension, 'Y', 'H');
/* Checks if SRC_EXTENSION is NULL. In the other case, %source_extension
was specified in the grammar file. */
if (src_extension == NULL)
{
src_extension = tr (ext, 'y', 'c');
src_extension = tr (src_extension, 'Y', 'C');
}
/* Checks if HEADER_EXTENSION is NULL. In the other case,
%header_extension was specified in the grammar file. */
if (header_extension == NULL)
{
header_extension = tr (ext, 'y', 'h');
header_extension = tr (header_extension, 'Y', 'H');
}
}
/* Computes extensions from the given c source file extension. */
static void
compute_exts_from_src(const char *ext)
compute_exts_from_src (const char *ext)
{
src_extension = xstrdup(ext);
header_extension = tr(ext, 'c', 'h');
header_extension = tr(header_extension, 'C', 'H');
/* We use this function when the user specifies `-o' or `--output',
so the extenions must be computed unconditionally from the file name
given by this option. */
src_extension = xstrdup (ext);
header_extension = tr (ext, 'c', 'h');
header_extension = tr (header_extension, 'C', 'H');
}
/* FIXME: Should use xstrndup. */
@@ -233,10 +297,6 @@ compute_base_names (void)
size_t short_base_length;
size_t ext_index;
/* Set default extensions */
src_extension = ".c";
header_extension = ".h";
/* If --output=foo.c was specified (SPEC_OUTFILE == foo.c),
BASE_NAME and SHORT_BASE_NAME are `foo'.
@@ -254,14 +314,15 @@ compute_base_names (void)
base_length = strlen (spec_outfile);
ext_index = get_extension_index (spec_outfile);
/* if the initial segment of extension contains 'c' or a 'C', I assume
that it is a C or C++ source file */
/* If the initial segment of extension contains 'c' or a 'C', I assume
that it is a C or C++ source file. */
if (ext_index)
ext_index = (strspn(spec_outfile + ext_index + 1, "cC")) ? ext_index : 0;
ext_index =
(strspn (spec_outfile + ext_index + 1, "cC")) ? ext_index : 0;
if (ext_index)
{
base_length -= strlen (spec_outfile + ext_index);
compute_exts_from_src(spec_outfile + ext_index);
compute_exts_from_src (spec_outfile + ext_index);
}
base_name = strndup (spec_outfile, base_length);
@@ -288,6 +349,15 @@ compute_base_names (void)
strlen (short_base_name) + strlen (EXT_TAB) + 1);
stpcpy (stpcpy (base_name, short_base_name), EXT_TAB);
/* Computes the extensions from the garmmar file name. */
ext_index = get_extension_index (infile);
/* If the initial segment of extension contains a 'y' or a 'Y', I assume
that it is a yacc or bison grammar file. */
if (ext_index)
ext_index = (strspn (infile + ext_index + 1, "yY")) ? ext_index : 0;
if (ext_index)
compute_exts_from_gf (infile + ext_index);
return;
}
@@ -304,14 +374,14 @@ compute_base_names (void)
base_length = strlen (name_base);
ext_index = get_extension_index (name_base);
/* if the initial segment of extension contains a 'y' or a 'Y', I assume
that it is a yacc or bison grammar file */
/* If the initial segment of extension contains a 'y' or a 'Y', I assume
that it is a yacc or bison grammar file. */
if (ext_index)
ext_index = (strspn(name_base + ext_index + 1, "yY")) ? ext_index : 0;
ext_index = (strspn (name_base + ext_index + 1, "yY")) ? ext_index : 0;
if (ext_index)
{
base_length -= strlen (name_base + ext_index);
compute_exts_from_gf(name_base + ext_index);
compute_exts_from_gf (name_base + ext_index);
}
short_base_length = base_length;
@@ -342,6 +412,7 @@ open_files (void)
obstack_init (&defines_obstack);
obstack_init (&guard_obstack);
obstack_init (&output_obstack);
obstack_init (&graph_obstack);
}
@@ -357,6 +428,12 @@ output_files (void)
compute_base_names ();
/* Set default extensions */
if (!src_extension)
src_extension = ".c";
if (!header_extension)
header_extension = ".h";
attrsfile = stringappend (short_base_name, EXT_STYPE_H);
#ifndef MSDOS
stringappend (attrsfile, header_extension);
@@ -366,11 +443,11 @@ output_files (void)
if (spec_outfile)
obstack_save (&table_obstack, spec_outfile);
else
obstack_save (&table_obstack, stringappend (base_name, src_extension));
obstack_save (&table_obstack, stringappend (base_name, src_extension));
/* Output the header file if wanted. */
if (defines_flag)
obstack_save (&defines_obstack, stringappend (base_name, header_extension));
defines_obstack_save (stringappend (base_name, header_extension));
/* If we output only the table, dump the actions in ACTFILE. */
if (no_parser_flag)
@@ -393,5 +470,9 @@ output_files (void)
if (verbose_flag)
/* We used to use just .out if spec_name_prefix (-p) was used, but
that conflicts with Posix. */
obstack_save (&output_obstack, stringappend (short_base_name, EXT_OUTPUT));
obstack_save (&output_obstack,
stringappend (short_base_name, EXT_OUTPUT));
if (graph_flag)
obstack_save (&graph_obstack, stringappend (short_base_name, ".vcg"));
}
+5
View File
@@ -56,10 +56,15 @@ extern struct obstack guard_obstack;
/* The verbose output. */
extern struct obstack output_obstack;
/* The VCG graph output. */
extern struct obstack graph_obstack;
extern char *infile;
extern char *attrsfile;
extern const char *src_extension;
extern const char *header_extension;
void open_files PARAMS((void));
void output_files PARAMS((void));
+10 -2
View File
@@ -34,11 +34,12 @@ int token_table_flag = 0;
int verbose_flag = 0;
int statistics_flag = 0;
int yacc_flag = 0; /* for -y */
int graph_flag = 0;
const char *skeleton = NULL;
extern char *program_name;
const char *shortopts = "yvdhrltknVo:b:p:S:";
const char *shortopts = "yvgdhrltknVo:b:p:S:";
static struct option longopts[] =
{
/* Operation modes. */
@@ -63,6 +64,7 @@ static struct option longopts[] =
{"verbose", no_argument, 0, 'v'},
{"file-prefix", required_argument, 0, 'b'},
{"output-file", required_argument, 0, 'o'},
{"graph", no_argument, 0, 'g'},
/* Hidden. */
{"statistics", no_argument, &statistics_flag, 1},
@@ -116,7 +118,9 @@ Output:\n\
-d, --defines also produce a header file\n\
-v, --verbose also produce an explanation of the automaton\n\
-b, --file-prefix=PREFIX specify a PREFIX for output files\n\
-o, --output-file=FILE leave output to FILE\n"), stream);
-o, --output-file=FILE leave output to FILE\n\
-g, --graph also produce a VCG graph description of the \
automaton\n"), stream);
putc ('\n', stream);
fputs (_("\
@@ -178,6 +182,10 @@ getargs (int argc, char *argv[])
version (stdout);
exit (0);
case 'g':
graph_flag = 1;
break;
case 'v':
verbose_flag = 1;
break;
+1
View File
@@ -34,6 +34,7 @@ extern int no_parser_flag; /* for -n */
extern int statistics_flag;
extern int token_table_flag; /* for -k */
extern int verbose_flag; /* for -v */
extern int graph_flag; /* for -g */
extern int yacc_flag; /* for -y */
void getargs PARAMS ((int argc, char *argv[]));
+4 -1
View File
@@ -543,15 +543,18 @@ struct percent_table_struct percent_table[] =
{ "fixed_output_files",&yacc_flag, tok_noop }, /* -y */
{ "defines", &defines_flag, tok_noop }, /* -d */
{ "no_parser", &no_parser_flag, tok_noop }, /* -n */
{ "graph", &graph_flag, tok_noop }, /* -g */
#if 0
/* For the time being, this is not enabled yet, while it's possible
though, since we use obstacks. The only risk is with semantic
parsers which will output an `include' of an output file: be sure
that the naem included is indeed the name of the output file. */
that the name included is indeed the name of the output file. */
{ "output_file", &spec_outfile, tok_setopt }, /* -o */
{ "file_prefix", &spec_file_prefix, tok_setopt }, /* -b */
{ "name_prefix", &spec_name_prefix, tok_setopt }, /* -p */
#endif
{ "header_extension", NULL, tok_hdrext },
{ "source_extension", NULL, tok_srcext },
{ "verbose", &verbose_flag, tok_noop }, /* -v */
{ "debug", &debug_flag, tok_noop }, /* -t */
{ "semantic_parser", &semantic_parser, tok_noop },
+2
View File
@@ -47,6 +47,8 @@ typedef enum token_e
tok_number,
tok_expect,
tok_thong,
tok_hdrext,
tok_srcext,
tok_noop,
tok_setopt,
tok_illegal,
+4
View File
@@ -33,6 +33,7 @@
#include "print.h"
#include "LR0.h"
#include "conflicts.h"
#include "print_graph.h"
/* The name this program was run with, for messages. */
char *program_name;
@@ -83,6 +84,9 @@ main (int argc, char *argv[])
/* Print information about results, if requested. */
print_results ();
/* Output the VCG graph. */
print_graph ();
/* Output the tables and the parser to ftable. In file output. */
output ();
+3 -12
View File
@@ -1,5 +1,5 @@
/* Output the generated parsing program for bison,
Copyright 1984, 1986, 1989, 1992, 2000 Free Software Foundation, Inc.
Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -293,7 +293,7 @@ output_token_translations (void)
{
obstack_sgrow (&table_obstack, "\
\n\
/* YYRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */\n");
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */\n");
if (translations)
{
@@ -304,7 +304,7 @@ output_token_translations (void)
max_user_token_number, nsyms);
output_short_or_char_table (&table_obstack,
"YYRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX",
"YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX",
ntokens < 127 ? "char" : "short",
"yytranslate", token_translations,
0, 1, max_user_token_number + 1);
@@ -1340,15 +1340,6 @@ output (void)
if (!no_parser_flag)
obstack_sgrow (&table_obstack, "#include <stdio.h>\n\n");
/* Make "const" do nothing if not in ANSI C. */
obstack_sgrow (&table_obstack, "\
#ifndef __cplusplus\n\
# ifndef __STDC__\n\
# define const\n\
# endif\n\
#endif\n\
\n");
free_itemsets ();
output_defines ();
output_token_translations ();
+296
View File
@@ -0,0 +1,296 @@
/* Output a VCG description on generated parser, for Bison,
Copyright 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
Bison is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Bison is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Bison; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "system.h"
#include "xalloc.h"
#include "files.h"
#include "gram.h"
#include "LR0.h"
#include "lalr.h"
#include "conflicts.h"
#include "complain.h"
#include "getargs.h"
#include "state.h"
#include "reader.h"
#include "obstack.h"
#include "print_graph.h"
#include "vcg.h"
#include "quotearg.h"
static graph_t graph;
static size_t node_output_size = 0;
/* Return an unambiguous printable representated, allocated in slot 0,
for NAME, suitable for C strings. */
static char const *
quote (char const *name)
{
return quotearg_n_style (0, escape_quoting_style, name);
}
/* This part will construct the label of nodes. */
static void
print_core (int state, struct obstack *node_obstack)
{
int i;
int k;
int rule;
core *statep;
short *sp;
short *sp1;
statep = state_table[state];
k = statep->nitems;
if (k == 0)
return;
for (i = 0; i < k; i++)
{
if (i)
obstack_sgrow (node_obstack, "\\n");
sp1 = sp = ritem + statep->items[i];
while (*sp > 0)
sp++;
rule = -(*sp);
obstack_fgrow1 (node_obstack, "%d: ", rule);
obstack_fgrow1 (node_obstack, " %s -> ", quote (tags[rlhs[rule]]));
for (sp = ritem + rrhs[rule]; sp < sp1; sp++)
obstack_fgrow1 (node_obstack, "%s ", quote (tags[*sp]));
obstack_1grow (node_obstack, '.');
while (*sp > 0)
obstack_fgrow1 (node_obstack, " %s", quote (tags[*sp++]));
}
}
/* Output in graph_obstack edges specifications in incidence with current
node. */
static void
print_actions (int state, const char *node_name, struct obstack *node_obstack)
{
int i;
int k;
int state1;
int symbol;
shifts *shiftp;
errs *errp;
reductions *redp;
int rule;
static char buff[10];
edge_t edge;
shiftp = shift_table[state];
redp = reduction_table[state];
errp = err_table[state];
if (!shiftp && !redp)
{
if (final_state == state)
obstack_sgrow (node_obstack, "$default: accept");
else
obstack_sgrow (node_obstack, "NO ACTIONS");
return;
}
if (shiftp)
{
k = shiftp->nshifts;
for (i = 0; i < k; i++)
{
if (!shiftp->shifts[i])
continue;
state1 = shiftp->shifts[i];
symbol = accessing_symbol[state1];
if (ISVAR (symbol))
break;
{
new_edge (&edge);
if (state > state1)
edge.type = back_edge;
open_edge (&edge, &graph_obstack);
/* The edge source is the current node. */
edge.sourcename = node_name;
sprintf (buff, "%d", state1);
edge.targetname = buff;
edge.color = (symbol == 0) ? red : blue;
/* FIXME: Be aware that quote uses static memory. The string
must be output immediately (which is the case here). */
edge.label = tags[symbol] ? quote (tags[symbol]) : NULL;
output_edge (&edge, &graph_obstack);
close_edge (&graph_obstack);
}
}
}
else
{
i = 0;
k = 0;
}
if (errp)
{
int j, nerrs;
nerrs = errp->nerrs;
for (j = 0; j < nerrs; j++)
{
if (!errp->errs[j])
continue;
symbol = errp->errs[j];
/* If something has been added in the NODE_OBSTACK after
the declaration of the label, then we need a `\n'. */
if (obstack_object_size (node_obstack) > node_output_size)
obstack_sgrow (node_obstack, "\\n");
obstack_fgrow1 (node_obstack, _("%-4s\terror (nonassociative)"),
tags[symbol]);
}
if (j > 0)
obstack_sgrow (node_obstack, "\\n");
}
if (consistent[state] && redp)
{
rule = redp->rules[0];
symbol = rlhs[rule];
if (obstack_object_size (node_obstack) > node_output_size)
obstack_sgrow (node_obstack, "\\n");
obstack_fgrow2 (node_obstack, _("$default\treduce using rule %d (%s)"),
rule, tags[symbol]);
}
if (i < k)
{
for (; i < k; i++)
{
if (!shiftp->shifts[i])
continue;
state1 = shiftp->shifts[i];
symbol = accessing_symbol[state1];
new_edge (&edge);
open_edge (&edge, &graph_obstack);
edge.sourcename = node_name;
sprintf (buff, "%d", state1);
edge.targetname = buff;
edge.color = red;
edge.label = tags[symbol] ? quote (tags[symbol]) : NULL;
output_edge (&edge, &graph_obstack);
close_edge (&graph_obstack);
}
}
}
/* Output in GRAPH_OBSTACK the current node specifications and edges
which go out from that node. */
static void
print_state (int state)
{
static char name[10];
struct obstack node_obstack;
node_t node;
obstack_init (&node_obstack);
new_node (&node); /* Set node attributs default value. */
sprintf (name, "%d", state);
node.title = name; /* Give a name to the node. */
open_node (&node_obstack);
/* Output a VCG formatted attributs list. */
output_node (&node, &node_obstack);
{
/* Here we begin to compute the node label. */
obstack_sgrow (&node_obstack, "\t\tlabel:\t\""); /* Open Label */
/* Keep the size of NODE_OBSTACK before computing the label. It is
useful to format the label. */
node_output_size = obstack_object_size (&node_obstack);
/* Compute the labels of nodes on the fly. */
print_core (state, &node_obstack);
/* Compute edges and additionnal parts of node label. */
print_actions (state, node.title, &node_obstack);
obstack_sgrow (&node_obstack, "\"\n"); /* Close Label. */
close_node (&node_obstack);
}
/* `obstack_cat' NODE_OBSTACK to GRAPH_OBSTACK. */
{
size_t obs_size;
obs_size = obstack_object_size (&node_obstack);
obstack_grow (&graph_obstack,
obstack_base (&node_obstack),
obs_size);
obstack_free (&node_obstack, 0);
}
}
void
print_graph (void)
{
int i;
if (!graph_flag)
return;
new_graph (&graph);
#if 0
graph.smanhattan_edges = yes;
graph.manhattan_edges = yes;
#endif
graph.display_edge_labels = yes;
graph.layoutalgorithm = 0;
graph.port_sharing = no;
graph.finetuning = yes;
graph.straight_phase = yes;
graph.priority_phase = yes;
graph.splines = yes;
graph.crossing_weight = median;
/* Output graph options. */
open_graph (&graph_obstack);
output_graph (&graph, &graph_obstack);
for (i = 0; i < nstates; i++)
/* Output nodes & edges. */
print_state (i);
/* Close graph. */
close_graph (&graph, &graph_obstack);
}
+26
View File
@@ -0,0 +1,26 @@
/* Output a VCG description on generated parser, for bison,
Copyright 2000 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
Bison is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Bison is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Bison; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef PRINT_GRAPH_H_
# define PRINT_GRAPH_H_
void print_graph PARAMS ((void));
#endif /* !PRINT_GRAPH_H_ */
+81 -6
View File
@@ -874,6 +874,73 @@ parse_thong_decl (void)
nsyms--;
}
/*--------------------------------------------------------------.
| Parse what comes after %header_extension and %source_etension |
`--------------------------------------------------------------*/
static const char *
parse_dquoted_param (const char *from)
{
char buff[32];
int c;
int i;
c = skip_white_space ();
if (c != '"')
{
ungetc (c, finput);
complain (_("invalid %s declaration"), from);
return NULL;
}
c = getc (finput);
for (i = 0; (c >= '!') && (c <= '~'); i++)
{
if (c == '"')
break;
if (c == '\\')
{
c = getc (finput);
if ((c < '!') && (c > '~'))
break;
}
buff[i] = c;
c = getc (finput);
}
buff[i] = '\0';
if (c != '"')
{
ungetc (c, finput);
complain (_("invalid %s declaration"), from);
return NULL;
}
return xstrdup (buff);
}
/* %header_extension case. */
static void
parse_header_extension_decl (void)
{
if (header_extension)
complain (_("multiple %%header_extension declarations"));
header_extension = parse_dquoted_param ("%header_extension");
}
/* %source_extension case. */
static void
parse_source_extension_decl (void)
{
if (src_extension)
complain (_("multiple %%source_extension declarations"));
src_extension = parse_dquoted_param ("%source_extension");
}
/*----------------------------------------------------------------.
| Read from finput until `%%' is seen. Discard the `%%'. Handle |
@@ -944,6 +1011,14 @@ read_declarations (void)
parse_assoc_decl (non_assoc);
break;
case tok_hdrext:
parse_header_extension_decl ();
break;
case tok_srcext:
parse_source_extension_decl ();
break;
case tok_noop:
break;
@@ -1538,9 +1613,9 @@ readgram (void)
"#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n");
if (defines_flag)
obstack_sgrow (&defines_obstack, "\
#ifndef YYSTYPE\n\
# define YYSTYPE int\n\
#endif\n");
# ifndef YYSTYPE\n\
# define YYSTYPE int\n\
# endif\n");
}
/* Report any undefined symbols and consider them nonterminals. */
@@ -1597,11 +1672,11 @@ output_token_defines (struct obstack *oout)
if (c != '\0')
continue;
obstack_fgrow2 (oout, "#define\t%s\t%d\n",
obstack_fgrow2 (oout, "# define\t%s\t%d\n",
symbol,
(translations ? bp->user_token_number : bp->value));
if (semantic_parser)
obstack_fgrow2 (oout, "#define\tT%s\t%d\n", symbol, bp->value);
obstack_fgrow2 (oout, "# define\tT%s\t%d\n", symbol, bp->value);
}
obstack_1grow (oout, '\n');
@@ -1756,7 +1831,7 @@ packsymbols (void)
/* don't make these for dummy nonterminals made by gensym. */
if (*tags[i] != '@')
obstack_fgrow2 (&defines_obstack,
"#define\tNT%s\t%d\n", tags[i], i);
"# define\tNT%s\t%d\n", tags[i], i);
}
#if 0
/* `fdefines' is now a temporary file, so we need to copy its
+20
View File
@@ -73,6 +73,26 @@ extern int errno;
# define PARAMS(p) ()
#endif
/*---------------------.
| Missing prototypes. |
`---------------------*/
#if !HAVE_DECL_STPCPY
char *stpcpy PARAMS ((char *dest, const char *src));
#endif
#if !HAVE_DECL_STRNDUP
char *strndup PARAMS ((const char *s, size_t size));
#endif
#if !HAVE_DECL_STRNLEN
size_t strnlen PARAMS ((const char *s, size_t maxlen));
#endif
/*-----------------.
| GCC extensions. |
`-----------------*/
+888
View File
@@ -0,0 +1,888 @@
/* VCG description handler for Bison.
Copyright 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
Bison is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Bison is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Bison; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "system.h"
#include "xalloc.h"
#include "vcg.h"
#include "vcg_defaults.h"
/* Initialize a graph with the default values. */
void
new_graph (graph_t *g)
{
g->title = G_TITLE;
g->label = G_LABEL;
g->infos[0] = G_INFOS1;
g->infos[1] = G_INFOS2;
g->infos[2] = G_INFOS3;
g->color = G_COLOR;
g->textcolor = G_TEXTCOLOR;
g->bordercolor = G_BORDERCOLOR;
g->width = G_WIDTH;
g->height = G_HEIGHT;
g->borderwidth = G_BORDERWIDTH;
g->x = G_X;
g->y = G_Y;
g->folding = G_FOLDING;
g->shrink = G_SHRINK;
g->stretch = G_STRETCH;
g->textmode = G_TEXTMODE;
g->shape = G_SHAPE;
g->vertical_order = G_VERTICAL_ORDER;
g->horizontal_order = G_HORIZONTAL_ORDER;
g->xmax = G_XMAX; /* Not output. */
g->ymax = G_YMAX; /* Not output. */
g->xbase = G_XBASE;
g->ybase = G_YBASE;
g->xspace = G_XSPACE;
g->yspace = G_YSPACE;
g->xlspace = G_XLSPACE; /* Not output. */
g->xraster = G_XRASTER;
g->yraster = G_YRASTER;
g->xlraster = G_XLRASTER;
g->hidden = G_HIDDEN; /* No default value. */
g->classname = G_CLASSNAME; /* No class name association. */
g->layoutalgorithm = G_LAYOUTALGORITHM;
g->layout_downfactor = G_LAYOUT_DOWNFACTOR;
g->layout_upfactor = G_LAYOUT_UPFACTOR;
g->layout_nearfactor = G_LAYOUT_NEARFACTOR;
g->layout_splinefactor = G_LAYOUT_SPLINEFACTOR;
g->late_edge_labels = G_LATE_EDGE_LABELS;
g->display_edge_labels = G_DISPLAY_EDGE_LABELS;
g->dirty_edge_labels = G_DIRTY_EDGE_LABELS;
g->finetuning = G_FINETUNING;
g->ignore_singles = G_IGNORE_SINGLES;
g->straight_phase = G_STRAIGHT_PHASE;
g->priority_phase = G_PRIORITY_PHASE;
g->manhattan_edges = G_MANHATTAN_EDGES;
g->smanhattan_edges = G_SMANHATTAN_EDGES;
g->near_edges = G_NEAR_EDGES;
g->orientation = G_ORIENTATION;
g->node_alignement = G_NODE_ALIGNEMENT;
g->port_sharing = G_PORT_SHARING;
g->arrow_mode = G_ARROW_MODE;
g->treefactor = G_TREEFACTOR;
g->spreadlevel = G_SPREADLEVEL;
g->crossing_weight = G_CROSSING_WEIGHT;
g->crossing_phase2 = G_CROSSING_PHASE2;
g->crossing_optimization = G_CROSSING_OPTIMIZATION;
g->view = G_VIEW;
g->edges = G_EDGES;
g->nodes = G_NODES;
g->splines = G_SPLINES;
g->bmax = G_BMAX;
g->cmin = G_CMIN;
g->cmax = G_CMAX;
g->pmin = G_PMIN;
g->pmax = G_PMAX;
g->rmin = G_RMIN;
g->rmax = G_RMAX;
g->smax = G_SMAX;
g->node_list = G_NODE_LIST;
g->edge_list = G_EDGE_LIST;
new_edge(&g->edge);
new_node(&g->node);
}
/* Initialize a node with the defalut values. */
void
new_node (node_t *node)
{
node->title = N_TITLE;
node->label = N_LABEL;
node->locx = N_LOCX; /* Default unspcified. */
node->locy = N_LOCY; /* Default unspcified. */
node->vertical_order = N_VERTICAL_ORDER; /* Default unspcified. */
node->horizontal_order = N_HORIZONTAL_ORDER; /* Default unspcified. */
node->width = N_WIDTH; /* We assume that we can't define it now. */
node->height = N_HEIGHT; /* Also. */
node->shrink = N_SHRINK;
node->stretch = N_STRETCH;
node->folding = N_FOLDING; /* No explicit default value. */
node->shape = N_SHAPE;
node->textmode = N_TEXTMODE;
node->borderwidth = N_BORDERWIDTH;
node->color = N_COLOR;
node->textcolor = N_TEXTCOLOR;
node->bordercolor = N_BORDERCOLOR;
node->infos[0] = N_INFOS1;
node->infos[1] = N_INFOS2;
node->infos[2] = N_INFOS3;
node->next = N_NEXT;
}
/* Initialize a edge with the defalut values. */
void
new_edge (edge_t *edge)
{
edge->type = E_EDGE_TYPE;
edge->sourcename = E_SOURCENAME;
edge->targetname = E_TARGETNAME;
edge->label = E_LABEL;
edge->linestyle = E_LINESTYLE;
edge->thickness = E_THICKNESS;
edge->class = E_CLASS;
edge->color = E_COLOR;
edge->textcolor = E_TEXTCOLOR;
edge->arrowcolor = E_ARROWCOLOR;
edge->backarrowcolor = E_BACKARROWCOLOR;
edge->arrowsize = E_ARROWSIZE;
edge->backarrowsize = E_BACKARROWSIZE;
edge->arrowstyle = E_ARROWSTYLE;
edge->backarrowstyle = E_BACKARROWSTYLE;
edge->priority = E_PRIORITY;
edge->anchor = E_ANCHOR;
edge->horizontal_order = E_HORIZONTAL_ORDER;
edge->next = E_NEXT;
}
/*----------------------------------------------.
| Get functions. |
| Return string corresponding to an enum value. |
`----------------------------------------------*/
static const char *
get_color_str (enum color_e c)
{
switch (c)
{
case white: return "white";
case blue: return "blue";
case red: return "red";
case green: return "green";
case yellow: return "yellow";
case magenta: return "magenta";
case cyan: return "cyan";
case darkgrey: return "darkgrey";
case darkblue: return "darkblue";
case darkred: return "darkred";
case darkgreen: return "darkgreen";
case darkyellow: return "darkyellow";
case darkmagenta: return "darkmagenta";
case darkcyan: return "darkcyan";
case gold: return "gold";
case lightgrey: return "lightgrey";
case lightblue: return "lightblue";
case lightred: return "lightred";
case lightgreen: return "lightgreen";
case lightyellow: return "lightyellow";
case lightmagenta: return "lightmagenta";
case lightcyan: return "lightcyan";
case lilac: return "lilac";
case turquoise: return "turquoise";
case aquamarine: return "aquamarine";
case khaki: return "khaki";
case purple: return "purple";
case yellowgreen: return "yellowgreen";
case pink: return "pink";
case orange: return "orange";
case orchid: return "orchid";
case black: return "black";
default:
assert (!"Not a default color.");
}
return NULL;
}
static const char *
get_textmode_str (enum textmode_e t)
{
switch (t)
{
case centered: return "center";
case left_justify: return "left_justify";
case right_justify: return "right_justify";
default:
assert (!"Not a text mode.");
}
return NULL;
}
static const char *
get_shape_str (enum shape_e s)
{
switch (s)
{
case box: return "box";
case rhomb: return "rhomb";
case ellipse: return "ellipse";
case triangle: return "triangle";
default:
assert (!"Not a shape.");
}
return NULL;
}
static const char *
get_layoutalgorithm_str (enum layoutalgorithm_e l)
{
switch (l)
{
case normal: return "normal";
case maxdepth: return "maxdepth";
case mindepth: return "mindepth";
case maxdepthslow: return "maxdepthslow";
case mindepthslow: return "mindepthslow";
case maxdegree: return "maxdegree";
case mindegree: return "mindegree";
case maxindegree: return "maxindegree";
case minindegree: return "minindegree";
case maxoutdegree: return "maxoutdegree";
case minoutdegree: return "minoutdegree";
case minbackward: return "minbackward";
case dfs: return "dfs";
case tree: return "tree";
default:
assert (!"Not a layout algorithm.");
}
return NULL;
}
static const char *
get_decision_str (enum decision_e d)
{
switch (d)
{
case no: return "no";
case yes: return "yes";
default:
assert (!"Either yes nor no.");
}
return NULL;
}
static const char *
get_orientation_str (enum orientation_e o)
{
switch (o)
{
case top_to_bottom: return "top_to_bottom";
case bottom_to_top: return "bottom_to_top";
case left_to_right: return "left_to_right";
case right_to_left: return "right_to_left";
default:
assert (!"Not an orientation.");
}
return NULL;
}
static const char *
get_node_alignement_str (enum alignement_e a)
{
switch (a)
{
case center: return "center";
case top: return "top";
case bottom: return "bottom";
default:
assert (!"Not an alignement.");
}
return NULL;
}
static const char *
get_arrow_mode_str (enum arrow_mode_e a)
{
switch (a)
{
case fixed: return "fixed";
case free_a: return "free";
default:
assert (!"Not an arrow mode.");
}
return NULL;
}
static const char *
get_crossing_type_str (enum crossing_type_e c)
{
switch (c)
{
case bary: return "bary";
case median: return "median";
case barymedian: return "barymedian";
case medianbary: return "medianbary";
default:
assert (!"Not a crossing type.");
}
return NULL;
}
static const char *
get_view_str (enum view_e v)
{
switch (v)
{
case normal_view: return "normal_view";
case cfish: return "cfish";
case pfish: return "pfish";
case fcfish: return "fcfish";
case fpfish: return "fpfish";
default:
assert (!"Not a view.");
}
return NULL;
}
static const char *
get_linestyle_str (enum linestyle_e l)
{
switch (l)
{
case continuous: return "continuous";
case dashed: return "dashed";
case dotted: return "dotted";
case invisible: return "invisible";
default:
assert (!"Not a line style.");
}
return NULL;
}
static const char *
get_arrowstyle_str (enum arrowstyle_e a)
{
switch (a)
{
case solid: return "solid";
case line: return "line";
case none: return "none";
default:
assert (!"Not an arrow style.");
}
return NULL;
}
/*----------------------------.
| Add functions. |
| Edge and Nodes int a graph. |
`----------------------------*/
void
add_node (graph_t *graph, node_t *node)
{
node->next = graph->node_list;
graph->node_list = node;
}
void
add_edge (graph_t *graph, edge_t *edge)
{
edge->next = graph->edge_list;
graph->edge_list = edge;
}
void
add_classname (graph_t *g, int val, const char *name)
{
struct classname_s *classname;
classname = XMALLOC (struct classname_s, 1);
classname->no = val;
classname->name = name;
classname->next = g->classname;
g->classname = classname;
}
void
add_infoname (graph_t *g, int integer, const char *string)
{
struct infoname_s *infoname;
infoname = XMALLOC (struct infoname_s, 1);
infoname->integer = integer;
infoname->string = string;
infoname->next = g->infoname;
g->infoname = infoname;
}
/* Build a colorentry struct and add it to the list. */
void
add_colorentry (graph_t *g, int color_idx, int red_cp,
int green_cp, int blue_cp)
{
struct colorentry_s *ce;
ce = XMALLOC (struct colorentry_s, 1);
ce->color_index = color_idx;
ce->red_cp = red_cp;
ce->green_cp = green_cp;
ce->blue_cp = blue_cp;
ce->next = g->colorentry;
g->colorentry = ce;
}
/*-------------------------------------.
| Open and close functions (formatted) |
`-------------------------------------*/
void
open_edge(edge_t *edge, struct obstack *os)
{
switch (edge->type)
{
case normal_edge:
obstack_sgrow (os, "\tedge: {\n");
break;
case back_edge:
obstack_sgrow (os, "\tbackedge: {\n");
break;
case near_edge:
obstack_sgrow (os, "\tnearedge: {\n");
break;
case bent_near_edge:
obstack_sgrow (os, "\tbentnearedge: {\n");
break;
default:
obstack_sgrow (os, "\tedge: {\n");
}
}
void
close_edge(struct obstack *os)
{
obstack_sgrow (os, "\t}\n");
}
void
open_node(struct obstack *os)
{
obstack_sgrow (os, "\tnode: {\n");
}
void
close_node(struct obstack *os)
{
obstack_sgrow (os, "\t}\n");
}
void
open_graph(struct obstack *os)
{
obstack_sgrow (os, "graph: {\n");
}
void
close_graph(graph_t *graph, struct obstack *os)
{
obstack_1grow (os, '\n');
/* FIXME: Unallocate nodes and edges if required. */
{
node_t *node;
for (node = graph->node_list; node; node = node->next)
{
open_node (os);
output_node (node, os);
close_node (os);
}
}
obstack_1grow (os, '\n');
{
edge_t *edge;
for (edge = graph->edge_list; edge; edge = edge->next)
{
open_edge (edge, os);
output_edge (edge, os);
close_edge (os);
}
}
obstack_sgrow (os, "}\n");
}
/*-------------------------------------------.
| Output functions (formatted) in obstack os |
`-------------------------------------------*/
void
output_node (node_t *node, struct obstack *os)
{
if (node->title != N_TITLE)
obstack_fgrow1 (os, "\t\ttitle:\t\"%s\"\n", node->title);
if (node->label != N_LABEL)
obstack_fgrow1 (os, "\t\tlabel:\t\"%s\"\n", node->label);
if ((node->locx != N_LOCX) && (node->locy != N_LOCY))
obstack_fgrow2 (os, "\t\tloc { x: %d y: %d }\t\n", node->locx, node->locy);
if (node->vertical_order != N_VERTICAL_ORDER)
obstack_fgrow1 (os, "\t\tvertical_order:\t%d\n", node->vertical_order);
if (node->horizontal_order != N_HORIZONTAL_ORDER)
obstack_fgrow1 (os, "\t\thorizontal_order:\t%d\n", node->horizontal_order);
if (node->width != N_WIDTH)
obstack_fgrow1 (os, "\t\twidth:\t%d\n", node->width);
if (node->height != N_HEIGHT)
obstack_fgrow1 (os, "\t\theight:\t%d\n", node->height);
if (node->shrink != N_SHRINK)
obstack_fgrow1 (os, "\t\tshrink:\t%d\n", node->shrink);
if (node->stretch != N_STRETCH)
obstack_fgrow1 (os, "\t\tstretch:\t%d\n", node->stretch);
if (node->folding != N_FOLDING)
obstack_fgrow1 (os, "\t\tfolding:\t%d\n", node->folding);
if (node->textmode != N_TEXTMODE)
obstack_fgrow1 (os, "\t\ttextmode:\t%s\n",
get_textmode_str (node->textmode));
if (node->shape != N_SHAPE)
obstack_fgrow1 (os, "\t\tshape:\t%s\n", get_shape_str (node->shape));
if (node->borderwidth != N_BORDERWIDTH)
obstack_fgrow1 (os, "\t\tborderwidth:\t%d\n", node->borderwidth);
if (node->color != N_COLOR)
obstack_fgrow1 (os, "\t\tcolor:\t%s\n", get_color_str (node->color));
if (node->textcolor != N_TEXTCOLOR)
obstack_fgrow1 (os, "\t\ttextcolor:\t%s\n",
get_color_str (node->textcolor));
if (node->bordercolor != N_BORDERCOLOR)
obstack_fgrow1 (os, "\t\tbordercolor:\t%s\n",
get_color_str (node->bordercolor));
if (node->infos[0])
obstack_fgrow1 (os, "\t\tinfo1:\t\"%s\"\n", node->infos[0]);
if (node->infos[1])
obstack_fgrow1 (os, "\t\tinfo2:\t\"%s\"\n", node->infos[1]);
if (node->infos[2])
obstack_fgrow1 (os, "\t\tinfo3:\t\"%s\"\n", node->infos[2]);
}
void
output_edge (edge_t *edge, struct obstack *os)
{
/* FIXME: SOURCENAME and TARGETNAME are mandatory
so it has to be fatal not to give these informations. */
if (edge->sourcename != E_SOURCENAME)
obstack_fgrow1 (os, "\t\tsourcename:\t\"%s\"\n", edge->sourcename);
if (edge->targetname != E_TARGETNAME)
obstack_fgrow1 (os, "\t\ttargetname:\t\"%s\"\n", edge->targetname);
if (edge->label != E_LABEL)
obstack_fgrow1 (os, "\t\tlabel:\t\"%s\"\n", edge->label);
if (edge->linestyle != E_LINESTYLE)
obstack_fgrow1 (os, "\t\tlinestyle:\t\"%s\"\n",
get_linestyle_str(edge->linestyle));
if (edge->thickness != E_THICKNESS)
obstack_fgrow1 (os, "\t\tthickness:\t%d\n", edge->thickness);
if (edge->class != E_CLASS)
obstack_fgrow1 (os, "\t\tclass:\t%d\n", edge->class);
if (edge->color != E_COLOR)
obstack_fgrow1 (os, "\t\tcolor:\t%s\n", get_color_str (edge->color));
if (edge->color != E_TEXTCOLOR)
obstack_fgrow1 (os, "\t\ttextcolor:\t%s\n",
get_color_str (edge->textcolor));
if (edge->arrowcolor != E_ARROWCOLOR)
obstack_fgrow1 (os, "\t\tarrowcolor:\t%s\n",
get_color_str (edge->arrowcolor));
if (edge->backarrowcolor != E_BACKARROWCOLOR)
obstack_fgrow1 (os, "\t\tbackarrowcolor:\t%s\n",
get_color_str (edge->backarrowcolor));
if (edge->arrowsize != E_ARROWSIZE)
obstack_fgrow1 (os, "\t\tarrowsize:\t%d\n", edge->arrowsize);
if (edge->backarrowsize != E_BACKARROWSIZE)
obstack_fgrow1 (os, "\t\tbackarrowsize:\t%d\n", edge->backarrowsize);
if (edge->arrowstyle != E_ARROWSTYLE)
obstack_fgrow1 (os, "\t\tarrowstyle:\t%s\n",
get_arrowstyle_str(edge->arrowstyle));
if (edge->backarrowstyle != E_BACKARROWSTYLE)
obstack_fgrow1 (os, "\t\tbackarrowstyle:\t%s\n",
get_arrowstyle_str(edge->backarrowstyle));
if (edge->priority != E_PRIORITY)
obstack_fgrow1 (os, "\t\tpriority:\t%d\n", edge->priority);
if (edge->anchor != E_ANCHOR)
obstack_fgrow1 (os, "\t\tanchor:\t%d\n", edge->anchor);
if (edge->horizontal_order != E_HORIZONTAL_ORDER)
obstack_fgrow1 (os, "\t\thorizontal_order:\t%d\n", edge->horizontal_order);
}
void
output_graph (graph_t *graph, struct obstack *os)
{
if (graph->title)
obstack_fgrow1 (os, "\ttitle:\t\"%s\"\n", graph->title);
if (graph->label)
obstack_fgrow1 (os, "\tlabel:\t\"%s\"\n", graph->label);
if (graph->infos[0])
obstack_fgrow1 (os, "\tinfo1:\t\"%s\"\n", graph->infos[0]);
if (graph->infos[1])
obstack_fgrow1 (os, "\tinfo2:\t\"%s\"\n", graph->infos[1]);
if (graph->infos[2])
obstack_fgrow1 (os, "\tinfo3:\t\"%s\"\n", graph->infos[2]);
if (graph->color != G_COLOR)
obstack_fgrow1 (os, "\tcolor:\t%s\n", get_color_str (graph->color));
if (graph->textcolor != G_TEXTCOLOR)
obstack_fgrow1 (os, "\ttextcolor:\t%s\n", get_color_str (graph->textcolor));
if (graph->bordercolor != G_BORDERCOLOR)
obstack_fgrow1 (os, "\tbordercolor:\t%s\n",
get_color_str (graph->bordercolor));
if (graph->width != G_WIDTH)
obstack_fgrow1 (os, "\twidth:\t%d\n", graph->width);
if (graph->height != G_HEIGHT)
obstack_fgrow1 (os, "\theight:\t%d\n", graph->height);
if (graph->borderwidth != G_BORDERWIDTH)
obstack_fgrow1 (os, "\tborderwidth:\t%d\n", graph->borderwidth);
if (graph->x != G_X)
obstack_fgrow1 (os, "\tx:\t%d\n", graph->x);
if (graph->y != G_Y)
obstack_fgrow1 (os, "\ty:\t%d\n", graph->y);
if (graph->folding != G_FOLDING)
obstack_fgrow1 (os, "\tfolding:\t%d\n", graph->folding);
if (graph->shrink != G_SHRINK)
obstack_fgrow1 (os, "\tshrink:\t%d\n", graph->shrink);
if (graph->stretch != G_STRETCH)
obstack_fgrow1 (os, "\tstretch:\t%d\n", graph->stretch);
if (graph->textmode != G_TEXTMODE)
obstack_fgrow1 (os, "\ttextmode:\t%s\n",
get_textmode_str (graph->textmode));
if (graph->shape != G_SHAPE)
obstack_fgrow1 (os, "\tshape:\t%s\n", get_shape_str (graph->shape));
if (graph->vertical_order != G_VERTICAL_ORDER)
obstack_fgrow1 (os, "\tvertical_order:\t%d\n", graph->vertical_order);
if (graph->horizontal_order != G_HORIZONTAL_ORDER)
obstack_fgrow1 (os, "\thorizontal_order:\t%d\n", graph->horizontal_order);
if (graph->xmax != G_XMAX)
obstack_fgrow1 (os, "\txmax:\t%d\n", graph->xmax);
if (graph->ymax != G_YMAX)
obstack_fgrow1 (os, "\tymax:\t%d\n", graph->ymax);
if (graph->xbase != G_XBASE)
obstack_fgrow1 (os, "\txbase:\t%d\n", graph->xbase);
if (graph->ybase != G_YBASE)
obstack_fgrow1 (os, "\tybase:\t%d\n", graph->ybase);
if (graph->xspace != G_XSPACE)
obstack_fgrow1 (os, "\txspace:\t%d\n", graph->xspace);
if (graph->yspace != G_YSPACE)
obstack_fgrow1 (os, "\tyspace:\t%d\n", graph->yspace);
if (graph->xlspace != G_XLSPACE)
obstack_fgrow1 (os, "\txlspace:\t%d\n", graph->xlspace);
if (graph->xraster != G_XRASTER)
obstack_fgrow1 (os, "\txraster:\t%d\n", graph->xraster);
if (graph->yraster != G_YRASTER)
obstack_fgrow1 (os, "\tyraster:\t%d\n", graph->yraster);
if (graph->xlraster != G_XLRASTER)
obstack_fgrow1 (os, "\txlraster:\t%d\n", graph->xlraster);
if (graph->hidden != G_HIDDEN)
obstack_fgrow1 (os, "\thidden:\t%d\n", graph->hidden);
/* FIXME: Unallocate struct list if required.
Maybe with a little function. */
if (graph->classname != G_CLASSNAME)
{
struct classname_s *ite;
for (ite = graph->classname; ite; ite = ite->next)
obstack_fgrow2 (os, "\tclassname %d :\t%s\n", ite->no, ite->name);
}
if (graph->infoname != G_INFONAME)
{
struct infoname_s *ite;
for (ite = graph->infoname; ite; ite = ite->next)
obstack_fgrow2 (os, "\tinfoname %d :\t%s\n", ite->integer, ite->string);
}
if (graph->colorentry != G_COLORENTRY)
{
struct colorentry_s *ite;
char buff[64];
for (ite = graph->colorentry; ite; ite = ite->next)
{
sprintf (buff, "\tcolorentry %d :\t%d %d %d\n",
ite->color_index,
ite->red_cp,
ite->green_cp,
ite->blue_cp);
obstack_sgrow (os, buff);
}
}
if (graph->layoutalgorithm != G_LAYOUTALGORITHM)
obstack_fgrow1 (os, "\tlayoutalgorithm:\t%s\n",
get_layoutalgorithm_str(graph->layoutalgorithm));
if (graph->layout_downfactor != G_LAYOUT_DOWNFACTOR)
obstack_fgrow1 (os, "\tlayout_downfactor:\t%d\n", graph->layout_downfactor);
if (graph->layout_upfactor != G_LAYOUT_UPFACTOR)
obstack_fgrow1 (os, "\tlayout_upfactor:\t%d\n", graph->layout_upfactor);
if (graph->layout_nearfactor != G_LAYOUT_NEARFACTOR)
obstack_fgrow1 (os, "\tlayout_nearfactor:\t%d\n", graph->layout_nearfactor);
if (graph->layout_splinefactor != G_LAYOUT_SPLINEFACTOR)
obstack_fgrow1 (os, "\tlayout_splinefactor:\t%d\n",
graph->layout_splinefactor);
if (graph->late_edge_labels != G_LATE_EDGE_LABELS)
obstack_fgrow1 (os, "\tlate_edge_labels:\t%s\n",
get_decision_str(graph->late_edge_labels));
if (graph->display_edge_labels != G_DISPLAY_EDGE_LABELS)
obstack_fgrow1 (os, "\tdisplay_edge_labels:\t%s\n",
get_decision_str(graph->display_edge_labels));
if (graph->dirty_edge_labels != G_DIRTY_EDGE_LABELS)
obstack_fgrow1 (os, "\tdirty_edge_labels:\t%s\n",
get_decision_str(graph->dirty_edge_labels));
if (graph->finetuning != G_FINETUNING)
obstack_fgrow1 (os, "\tfinetuning:\t%s\n",
get_decision_str(graph->finetuning));
if (graph->ignore_singles != G_IGNORE_SINGLES)
obstack_fgrow1 (os, "\tignore_singles:\t%s\n",
get_decision_str(graph->ignore_singles));
if (graph->straight_phase != G_STRAIGHT_PHASE)
obstack_fgrow1 (os, "\tstraight_phase:\t%s\n",
get_decision_str(graph->straight_phase));
if (graph->priority_phase != G_PRIORITY_PHASE)
obstack_fgrow1 (os, "\tpriority_phase:\t%s\n",
get_decision_str(graph->priority_phase));
if (graph->manhattan_edges != G_MANHATTAN_EDGES)
obstack_fgrow1 (os,
"\tmanhattan_edges:\t%s\n",
get_decision_str(graph->manhattan_edges));
if (graph->smanhattan_edges != G_SMANHATTAN_EDGES)
obstack_fgrow1 (os,
"\tsmanhattan_edges:\t%s\n",
get_decision_str(graph->smanhattan_edges));
if (graph->near_edges != G_NEAR_EDGES)
obstack_fgrow1 (os, "\tnear_edges:\t%s\n",
get_decision_str(graph->near_edges));
if (graph->orientation != G_ORIENTATION)
obstack_fgrow1 (os, "\torientation:\t%s\n",
get_orientation_str(graph->orientation));
if (graph->node_alignement != G_NODE_ALIGNEMENT)
obstack_fgrow1 (os, "\tnode_alignement:\t%s\n",
get_node_alignement_str(graph->node_alignement));
if (graph->port_sharing != G_PORT_SHARING)
obstack_fgrow1 (os, "\tport_sharing:\t%s\n",
get_decision_str(graph->port_sharing));
if (graph->arrow_mode != G_ARROW_MODE)
obstack_fgrow1 (os, "\tarrow_mode:\t%s\n",
get_arrow_mode_str(graph->arrow_mode));
if (graph->treefactor != G_TREEFACTOR)
obstack_fgrow1 (os, "\ttreefactor:\t%f\n", graph->treefactor);
if (graph->spreadlevel != G_SPREADLEVEL)
obstack_fgrow1 (os, "\tspreadlevel:\t%d\n", graph->spreadlevel);
if (graph->crossing_weight != G_CROSSING_WEIGHT)
obstack_fgrow1 (os, "\tcrossing_weight:\t%s\n",
get_crossing_type_str(graph->crossing_weight));
if (graph->crossing_phase2 != G_CROSSING_PHASE2)
obstack_fgrow1 (os, "\tcrossing_phase2:\t%s\n",
get_decision_str(graph->crossing_phase2));
if (graph->crossing_optimization != G_CROSSING_OPTIMIZATION)
obstack_fgrow1 (os, "\tcrossing_optimization:\t%s\n",
get_decision_str(graph->crossing_optimization));
if (graph->view != G_VIEW)
obstack_fgrow1 (os, "\tview:\t%s\n", get_view_str(graph->view));
if (graph->edges != G_EDGES)
obstack_fgrow1 (os, "\tedges:\t%s\n", get_decision_str(graph->edges));
if (graph->nodes != G_NODES)
obstack_fgrow1 (os,"\tnodes:\t%s\n", get_decision_str(graph->nodes));
if (graph->splines != G_SPLINES)
obstack_fgrow1 (os, "\tsplines:\t%s\n", get_decision_str(graph->splines));
if (graph->bmax != G_BMAX)
obstack_fgrow1 (os, "\tbmax:\t%d\n", graph->bmax);
if (graph->cmin != G_CMIN)
obstack_fgrow1 (os, "\tcmin:\t%d\n", graph->cmin);
if (graph->cmax != G_CMAX)
obstack_fgrow1 (os, "\tcmax:\t%d\n", graph->cmax);
if (graph->pmin != G_PMIN)
obstack_fgrow1 (os, "\tpmin:\t%d\n", graph->pmin);
if (graph->pmax != G_PMAX)
obstack_fgrow1 (os, "\tpmax:\t%d\n", graph->pmax);
if (graph->rmin != G_RMIN)
obstack_fgrow1 (os, "\trmin:\t%d\n", graph->rmin);
if (graph->rmax != G_RMAX)
obstack_fgrow1 (os, "\trmax:\t%d\n", graph->rmax);
if (graph->smax != G_SMAX)
obstack_fgrow1 (os, "\tsmax:\t%d\n", graph->smax);
}
+1019
View File
File diff suppressed because it is too large Load Diff
+181
View File
@@ -0,0 +1,181 @@
/* VCG description handler for Bison.
Copyright 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
Bison is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Bison is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Bison; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef VCG_DEFAULTS_H_
# define VCG_DEFAULTS_H_
/* Graph defaults. */
# define G_TITLE NULL
# define G_LABEL NULL
# define G_INFOS1 NULL
# define G_INFOS2 NULL
# define G_INFOS3 NULL
# define G_COLOR white
# define G_TEXTCOLOR black
# define G_BORDERCOLOR G_TEXTCOLOR
# define G_WIDTH 100
# define G_HEIGHT 100
# define G_BORDERWIDTH 2
# define G_X 0
# define G_Y 0
# define G_FOLDING 0
# define G_SHRINK 1
# define G_STRETCH 1
# define G_TEXTMODE centered
# define G_SHAPE box
# define G_VERTICAL_ORDER 0 /* Unspecified for subgraphs. */
# define G_HORIZONTAL_ORDER 0 /* Unspecified for subgraphs. */
# define G_XMAX 90 /* Not output */
# define G_YMAX 90 /* Not output */
# define G_XBASE 5
# define G_YBASE 5
# define G_XSPACE 20
# define G_YSPACE 70
# define G_XLSPACE G_XSPACE / 2 /* Not output */
# define G_XRASTER 1
# define G_YRASTER 1
# define G_XLRASTER 1
# define G_HIDDEN -1 /* No default value. */
# define G_CLASSNAME NULL /* No class name association */
# define G_INFONAME NULL
# define G_COLORENTRY NULL
# define G_LAYOUTALGORITHM normal
# define G_LAYOUT_DOWNFACTOR 1
# define G_LAYOUT_UPFACTOR 1
# define G_LAYOUT_NEARFACTOR 1
# define G_LAYOUT_SPLINEFACTOR 70
# define G_LATE_EDGE_LABELS no
# define G_DISPLAY_EDGE_LABELS no
# define G_DIRTY_EDGE_LABELS no
# define G_FINETUNING yes
# define G_IGNORE_SINGLES no
# define G_STRAIGHT_PHASE no
# define G_PRIORITY_PHASE no
# define G_MANHATTAN_EDGES no
# define G_SMANHATTAN_EDGES no
# define G_NEAR_EDGES yes
# define G_ORIENTATION top_to_bottom
# define G_NODE_ALIGNEMENT center
# define G_PORT_SHARING yes
# define G_ARROW_MODE fixed
# define G_TREEFACTOR 0.5
# define G_SPREADLEVEL 1
# define G_CROSSING_WEIGHT bary
# define G_CROSSING_PHASE2 yes
# define G_CROSSING_OPTIMIZATION yes
# define G_VIEW normal_view
# define G_EDGES yes
# define G_NODES yes
# define G_SPLINES no
# define G_BMAX 100
# define G_CMIN 0
/* computes the max value of an int ... */
# define G_CMAX ((unsigned) 1 << (sizeof(int) * 8 - 1)) - 1
# define G_PMIN 0
# define G_PMAX 100
# define G_RMIN 0
# define G_RMAX 100
# define G_SMAX 100
# define G_NODE_LIST NULL
# define G_EDGE_LIST NULL
/* Nodes defaults. */
# define N_TITLE NULL
# define N_LABEL NULL
# define N_LOCX -1 /* Default unspcified */
# define N_LOCY -1 /* Default unspcified */
# define N_VERTICAL_ORDER -1 /* Default unspcified */
# define N_HORIZONTAL_ORDER -1 /* Default unspcified */
# define N_WIDTH -1 /* We assume that we can't define it now. */
# define N_HEIGHT -1 /* also. */
# define N_SHRINK 1
# define N_STRETCH 1
# define N_FOLDING -1 /* no explicit default value. */
# define N_SHAPE box
# define N_TEXTMODE centered
# define N_BORDERWIDTH 2
# define N_COLOR white
# define N_TEXTCOLOR black
# define N_BORDERCOLOR N_TEXTCOLOR
# define N_INFOS1 NULL
# define N_INFOS2 NULL
# define N_INFOS3 NULL
# define N_NEXT NULL
/* Edge defaults. */
# define E_EDGE_TYPE normal_edge
# define E_SOURCENAME NULL /* Mandatory. */
# define E_TARGETNAME NULL /* Mandatory. */
# define E_LABEL NULL
# define E_LINESTYLE continuous
# define E_THICKNESS 2
# define E_CLASS 1
# define E_COLOR black
# define E_TEXTCOLOR E_COLOR
# define E_ARROWCOLOR E_COLOR
# define E_BACKARROWCOLOR E_COLOR
# define E_ARROWSIZE 10
# define E_BACKARROWSIZE 0
# define E_ARROWSTYLE solid
# define E_BACKARROWSTYLE none
# define E_PRIORITY 1
# define E_ANCHOR -1
# define E_HORIZONTAL_ORDER -1
# define E_NEXT NULL
#endif /* not VCG_DEFAULTS_H_ */
+2
View File
@@ -12,3 +12,5 @@ testsuite
calc.[chy]
calc.tab.*
calc
*.output *.vcg
autom4te.cache
+93 -76
View File
@@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,8 +11,9 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# Distribute the testsuite since GNU M4 is needed to build it.
@SET_MAKE@
# Distribute the testsuite since GNU M4 is needed to build it.
SHELL = @SHELL@
@@ -33,13 +35,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@@ -48,11 +46,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@@ -61,20 +59,25 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AT_TESTPATH = @AT_TESTPATH@
AWK = @AWK@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
@@ -83,9 +86,9 @@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
@@ -95,6 +98,9 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
noinst_SCRIPTS = testsuite
@@ -105,116 +111,128 @@ EXTRA_DIST = atgeneral.m4 suite.at $(SUITE) $(noinst_SCRIPTS)
CLEANFILES = debug-*.sh empty
DISTCLEANFILES = atconfig
MAINTAINERCLEANFILES = testsuite
subdir = tests
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES = atconfig
SCRIPTS = $(noinst_SCRIPTS)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = atconfig
SCRIPTS = $(noinst_SCRIPTS)
DIST_COMMON = Makefile.am Makefile.in atconfig.in
DIST_SOURCES =
DIST_COMMON = Makefile.am Makefile.in atconfig.in
all: all-am
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu tests/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
atconfig: $(top_builddir)/config.status atconfig.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
uninstall-info-am:
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
subdir = tests
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-local
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
all-am: Makefile $(SCRIPTS)
install-data-am:
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(SCRIPTS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-generic clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: tags distdir info-am info dvi-am dvi check-local check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am check-local clean clean-generic \
distclean distclean-generic distdir dvi dvi-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic uninstall uninstall-am uninstall-info-am
check-local: atconfig $(srcdir)/testsuite
@@ -226,7 +244,6 @@ testsuite: atgeneral.m4 suite.at $(SUITE)
sed -e '/^$$/N;/\n$$/D' > $@-tmp
chmod +x $@-tmp
mv $@-tmp $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+4 -1
View File
@@ -1,6 +1,6 @@
# @configure_input@ -*- shell-script -*-
# Configurable variable values for building test suites.
# Copyright (C) 2000 Free Software Foundation, Inc.
# Copyright (C) 2000, 2001 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -86,6 +86,9 @@ M4='@M4@'
CC='@CC@'
CFLAGS='@CFLAGS@'
# We need `config.h'.
CPPFLAGS="-I$at_top_builddir @CPPFLAGS@"
# We want to use the files shipped with Bison.
BISON_SIMPLE=$at_top_srcdir/src/bison.simple
export BISON_SIMPLE
+1 -1
View File
@@ -293,7 +293,7 @@ AT_DATA_CALC_Y([$1])
# Specify the output files to avoid problems on different file systems.
AT_CHECK([bison calc.y -o calc.c patsubst([$1], [--yyerror-verbose])],
[0], [], [])
AT_CHECK([$CC $CFLAGS calc.c -o calc], 0, [], [])
AT_CHECK([$CC $CFLAGS $CPPFLAGS calc.c -o calc], 0, [], [])
# Test the priorities.
_AT_CHECK_CALC([$1],
+37 -2
View File
@@ -29,8 +29,7 @@ AT_CHECK_BISON_FLAGS([-o foo.c], [foo.c foo.h foo.output])
AT_CHECK_BISON_FLAGS([-o foo.tab.c], [foo.output foo.tab.c foo.tab.h])
AT_CHECK_BISON_FLAGS([-y], [y.output y.tab.c y.tab.h])
AT_CHECK_BISON_FLAGS([-b bar], [bar.output bar.tab.c bar.tab.h])
AT_CHECK_BISON_FLAGS([-g -o foo.c], [foo.c foo.h foo.output foo.vcg])
# AT_CHECK_BISON_PERCENT(GRAMMAR-OPTIONS, EXPECTED-FILES-SORTED)
# --------------------------------------------------------------
@@ -57,5 +56,41 @@ AT_CHECK_BISON_PERCENT([], [foo.output foo.tab.c foo.tab.h])
AT_CHECK_BISON_PERCENT([%yacc], [y.output y.tab.c y.tab.h])
# AT_CHECK_BISON_PERCENT([%file_prefix bar], [bar.output bar.tab.c bar.tab.h])
# AT_CHECK_BISON_PERCENT_FLAGS(GRAMMAR_OPTIONS, FLAGS, EXPECTED-FILES-SORTED)
# ---------------------------------------------------------------------------
AT_DEFINE([AT_CHECK_BISON_PERCENT_FLAGS],
[AT_SETUP([Output files: $1.])
AT_DATA([foo.yy],
[[$1
%defines
%verbose
%%
foo: {}
]])
rm -rf $3
AT_CHECK([bison foo.yy $2], 0, ignore, ignore)
AT_CHECK([ls $3 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$3])
rm -f $3
AT_CLEANUP
])
# Check priorities of extension control.
AT_CHECK_BISON_PERCENT_FLAGS(
[],
[],
[foo.output foo.tab.cc foo.tab.hh])
AT_CHECK_BISON_PERCENT_FLAGS(
[],
[-o foo.c],
[foo.c foo.h foo.output])
AT_CHECK_BISON_PERCENT_FLAGS(
[%source_extension ".cpp"] [%header_extension ".hhh"],
[],
[foo.output foo.tab.cpp foo.tab.hhh])
AT_CHECK_BISON_PERCENT_FLAGS(
[%source_extension ".cc"] [%header_extension ".hh"],
[-o foo.c],
[foo.c foo.h foo.output])
AT_INCLUDE([calc.at])
AT_INCLUDE([regression.at])