Compare commits

...
Author SHA1 Message Date
Akim Demaille 342b8b6e21 Merge in branch-1_29. 2001-10-04 14:55:21 +00:00
Akim Demaille 0150aabe35 Regen. 2001-10-04 14:49:22 +00:00
Akim Demaille 8484abf02c Remove from repo. 2001-10-04 13:32:34 +00:00
Akim Demaille bafbfdd24c Update. 2001-10-04 13:31:41 +00:00
Akim Demaille 20e0b9749c Remove from the repo. 2001-10-04 13:25:06 +00:00
Akim Demaille 3a7bc75ff7 Remove for the repo. 2001-10-04 13:21:02 +00:00
Akim Demaille 40b97583b8 Remove. 2001-10-04 13:20:00 +00:00
Pascal Bart c20e2bdcf1 Ignore .flc 2001-09-25 11:37:26 +00:00
Pascal Bart 1c8c2190b1 * src/output.c (output_master_parser): Don't finish action_obstack.
(output_parser): Don't care about the muscle action, here.
(prepare): Copy the action_obstack in the action muscle.
(output): Free action_obstack.
2001-09-25 11:36:25 +00:00
Pascal Bart 180d45ba81 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
will contain `%union' declaration.
(parse_union_decl): Delete #line directive output.
(parse_union_decl): Substitute /attrs_obstack/union_obstack for all
informations about %union.
(parse_union_decl): Copy the union_obstack in the muscle stype.
* src/bison.simple: Add new #line directive.
Add typdef %%stype YYSTYPE.
2001-09-23 15:33:14 +00:00
Pascal Bart c51d1a1973 * src/bison.simple: Add new `#line' directive. 2001-09-22 22:02:34 +00:00
Pascal Bart 577c6c8499 Fix line report with input_line 2001-09-22 21:43:05 +00:00
Pascal Bart 6f9344dadf * src/bison.simple: New `#line' directive.
* src/output.c (output_parser): Support new dynamic muscle input_line.
2001-09-22 21:30:53 +00:00
Marc Autret 652def8074 * src/output.c (output_master_parser): New.
(output_parser): Be more re-entrant.
2001-09-22 12:18:16 +00:00
Marc Autret 209215672e Update. 2001-09-21 16:25:59 +00:00
Marc Autret 25b222faf6 * src/reader.c (copy_definition, parse_union_decl): Update and use
`linef' muscle.
(copy_action): Likewise.
Use obstack_1grow ().
* src/muscle_tab.c (muscle_init): Add muscle `linef'.
2001-09-21 16:25:19 +00:00
Marc Autret 6bc35ae56a * src/options.c (option_table): Adjust.
* src/lex.c (parse_percent_token): Fix.
2001-09-21 15:42:26 +00:00
Marc Autret 31b53af2fa Update. 2001-09-21 00:09:28 +00:00
Pascal Bart a474de9b9a Regen. 2001-09-20 19:11:28 +00:00
Pascal Bart c0629aa10f * src/options.c (symtab.h): Include it, need by lex.h. 2001-09-20 18:51:48 +00:00
Pascal Bart 82b6d266fd * src/lex.c (parse_percent_token): Change type of variable `tx', which
is now an option_table_struct*.
(option_strcmp): New function option_strcmp.
(parse_percent_token): Call option_strcmp.
* src/getargs.c (xalloc.h, options.h): Include it.
(getargs): Call create_long_option_table.
(getargs): Free longopts at the end of the function.
(shortopts): Move in options.c.
* src/options.c (create_long_option_table): New function.  Convert
information from option_table to option structure.
* src/reader.c (options.h): Include it.
* src/Makefile.am: Adjust.
* src/options.c (option_table): Create from longopts and percent_table.
* src/getargs.c (longopts): Delete.
* src/lex.c (struct percent_table_struct): Delete.
(percent_table): Delete.
(options.h): Include it.
* src/options.c: Create.
* src/options.h: Create.
Declare enum opt_access_e.
Define struct option_table_struct.
2001-09-20 18:32:20 +00:00
Marc Autret 75f5aaea27 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
sections of Bison.
2001-09-20 18:24:27 +00:00
Pascal Bart f508cb0ac9 * src/bison.simple: s/%%filename/%%skeleton.
* src/muscle_tab.c (getargs.h): Include it.
(muscle_init): Insert new muscle skeleton.
2001-09-19 19:25:02 +00:00
Marc Autret f3c383d683 Update. 2001-09-19 15:25:49 +00:00
Pascal Bart 13105fc158 * src/output.c (output_parser): Delete unused variable actions_dumped. 2001-09-18 21:32:53 +00:00
Pascal Bart b0c4483ed2 * src/output.c (output): Delete call to reader_output_yylsp.
* src/reader.c (reader): Likewise.
* src/reader.h:	Delete declaration of reader_output_yylsp.
2001-09-07 16:50:01 +00:00
Marc Autret 714720fcfe Update 2001-09-02 17:25:48 +00:00
Marc Autret 4766a52862 Regen 2001-09-02 16:21:30 +00:00
Marc Autret 11d82f03b4 * src/reader.c: Include muscle_tab.h.
(parse_union_decl): Update.
(parse_macro_decl): Rename parse_muscle_decl.
Update to use renamed functions and variable.
(read_declarations, copy_action, read_additionnal_code, : Updated
with correct variables and functions names.
(packsymbols, reader): Likewise.
* src/reader.h (muscle_obstack): Extern declaration update.
* src/output.c: Include muscle_tab.h
In all functions using macro_insert, change by using muscle_insert ().
(macro_obstack): Rename muscle_obstack.
Echo modifications in the whole file.
(MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
(MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
(MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
* src/muscle_tab.h: Update double inclusion macros.
(macro_entry_s): Rename muscle_entry_s.
Update prototypes.
* src/muscle_tab.c: Include muscle_tab.h.
Rename macro_tabble to muscle_table.
(mhash1, mhash2, mcmp): Use muscle_entry.
(macro_init): Rename muscle_init. Update.
(macro_insert): Rename muscle_insert. Update.
(macro_find): Rename muscle_find. Update.
* src/main.c: Include muscle_tab.h.
(main): Call muscle_init ().
* src/Makefile.am (bison_SOURCES): Echo modifications.
2001-09-02 15:43:29 +00:00
Marc Autret a0ed1cb86a Update 2001-09-02 15:43:04 +00:00
Marc Autret f753cd6292 Add src/muscle_tab.c and src/muscle_tab.h 2001-09-02 15:27:27 +00:00
Marc Autret 93a37297e6 Remove src/macrotab.c and src/macrotab.h 2001-09-02 15:19:49 +00:00
Marc Autret 4134cae3c5 Update 2001-09-01 11:38:12 +00:00
Pascal Bart 682d48cd09 * src/reader.c (copy_guard): Use muscle to specify the `#line'
filename.
2001-09-01 10:40:54 +00:00
Marc Autret 53cdf751a3 Update 2001-09-01 01:23:21 +00:00
Marc Autret 087c8fdae3 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
to an explicit value to activate the feature. We do it here.
2001-09-01 01:20:54 +00:00
Pascal Bart 7a999fcb7b Update. 2001-08-31 23:24:55 +00:00
Pascal Bart dda680cb80 * src/output.c (prepare): Delete the `filename' muscule insertion.
* src/reader.c (copy_action): Use `filename' muscule with `#line'.
(parse_union_decl): Likewise.
* src/macrotab.c (macro_init): Initialize filename by infile.
2001-08-31 18:51:06 +00:00
Marc Autret 6b7d911c5d Update 2001-08-31 18:46:10 +00:00
Marc Autret 9e644e648d * src/bison.simple (YYLSP_NEEDED): New definition.
* src/output.c (prepare): Add macro insertion of `locations_flag'
2001-08-31 18:30:21 +00:00
Pascal Bart 17da6427fe * src/output.c (prepare): Delete insertion of previous muscles,
and insert the `prefix' muscles.
* src/macrotab.c (macro_init): Likewise.
(macro_init): Initialization prefix directive by `yy'.
* src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
%%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
yylval, yydebug, yyerror, yynerrs and yyparse.
New directive `#define' to substitute yydebug, ... with option
name_prefix.
2001-08-31 18:22:54 +00:00
Marc Autret 01ed3db59b Update 2001-08-31 17:07:18 +00:00
Pascal Bart e8cb70b957 * src/main.c (main): Standardize.
* src/output.c (output_table_data, output_parser): Likewise.
* src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
2001-08-31 16:56:44 +00:00
Marc Autret 63c2d5de0f * src/reader.c (read_additionnal_code): Rename %%user_code to
%%epilogue.
* src/output.c (output): Rename %%declarations to %%prologue.
* src/bison.simple: Echo modifications.
2001-08-31 16:01:53 +00:00
Marc Autret 675bc4e954 Update 2001-08-31 14:40:06 +00:00
Marc Autret d8cb51834b * src/reader.c (readgram): CleanUp.
(output_token_defines): Likewise.
(packsymbols): Likewise.
(reader): Likewise.
* src/output.c (output): CPP-out useless code.
2001-08-31 11:47:08 +00:00
Pascal Bart 6c686258e3 * src/reader.c (reader): Delete obsolete call to function
output_trailers and output_headers.
* src/output.h: Remove obsolete functions prototypes of output_headers
and output_trailers.
2001-08-31 08:00:56 +00:00
Marc Autret c111e171cd Update 2001-08-31 00:26:05 +00:00
Pascal Bart 8f451ef727 * src/main.c: Include macrotab.h.
* src/macrotab.h (macro_entry_s): Constify fields.
Adjust functions prototypes.
* src/macrotab.c (macro_insert): Constify key and value.
(macro_find): Constify key.
(macro_insert): Include 'xalloc.h'
(macro_insert): Use XMALLOC.
(macro_find): Constify return value.
* src/output.c (output_table_data): Rename table to table_data.
(output_parser): Constify macro_key, macro_value.
2001-08-30 18:51:56 +00:00
Akim Demaille 5086915ebd file bison was initially added on branch bison-1_29-branch. 2001-08-30 15:36:37 +00:00
Marc Autret 416bd7a9f3 New file 2001-08-30 00:44:59 +00:00
Marc Autret 997b6fd0c7 Adjust 2001-08-30 00:44:14 +00:00
Marc Autret 2ba3b73c58 * src/reader.c (parse_skel_decl): New.
(read_declarations): Add case `tok_skel', call parse_skel_decl ().
* src/lex.h (token_t): New token `tok_skel'.
* src/lex.c (percent_table): Add skeleton option entry.
Standardize.
2001-08-30 00:41:37 +00:00
Marc Autret ff48177d25 * src/bison.simple: Add %%user_code directive at the end.
* src/reader.c (read_additionnal_code): New.
(reader): Use it.
* src/output.c (output_program): Remove.
(output): Update.
2001-08-29 14:17:00 +00:00
Marc Autret 4e5caae2c6 Adjust 2001-08-28 20:55:58 +00:00
Marc Autret b33160bf45 * src/output.c (output_actions): Clean up.
* src/reader.c (reader): Clean up, CPP-out useless code.
2001-08-28 20:48:17 +00:00
Pascal Bart 535c0e75d1 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
directive.
* src/bison.simple: Add `%%definitions'.
2001-08-28 18:36:57 +00:00
Pascal Bart d1a2daf76a * src/output.c (output_definitions): New function, which copies
attrs_obstack in the '%%definitions' directive.
* src/bison.simple: Add `%%definitions'.
2001-08-28 18:35:33 +00:00
Marc Autret 2b763dfe15 * config/depcomp: New file. 2001-08-28 17:53:07 +00:00
Paul Eggert f1a87ef6ad * 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-27 17:28:28 +00:00
Paul Eggert cbd8990652 (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-27 17:24:34 +00:00
Robert Anisko 82e236e2d6 * src/output.c (output): Remove the initialization of the macro
obstack.  It was done too late here.

* src/reader.c (parse_macro_decl): Fix.  Use of the macro obstack was
completely wrong.
(reader): Initialize the macro obstack here, since we need it to grow
'%define' directives.

* src/reader.h: Declare the macro obstack as extern.
2001-08-27 14:55:39 +00:00
Robert Anisko b0cfa28a12 * src/output.c (output_parser): Fix. Store single '%' characters in
the output obstack instead of throwing them away.
2001-08-27 14:34:02 +00:00
Akim Demaille 6fc7423473 * Makefile.am (AUTOMAKE_OPTIONS): 1.5. 2001-08-27 08:57:54 +00:00
Marc Autret 40a64a7a48 Adjust 2001-08-25 18:38:03 +00:00
Robert Anisko 944bc6ce43 Regen. 2001-08-25 15:40:51 +00:00
Robert Anisko 9c76d118cc * lib/Makefile.am: Adjust. 2001-08-25 15:28:07 +00:00
Robert Anisko a8289c62db * src/bison.simple: Update and add '%%' directives. 2001-08-25 15:21:05 +00:00
Robert Anisko b6610515d5 * src/reader.c (reader): Remove calls to 'output_headers' and
'output_trailers'. Remove some C output.
(readgram): Disable a piece of code that was writing a default
definition for 'YYSTYPE'.
(reader_output_yylsp): Remove.
(packsymbols): Output token defintions to a macro.
(copy_definition): Disable C output.
* src/reader.c (parse_macro_decl): New function used to parse macro
declarations.
(copy_string2): Put the body of copy_string into this new function.
Add a parameter to let the caller choose whether he wants to copy the
string delimiters or not.
(copy_string): Be a simple call to copy_string2 with the last argument
bound to true.
(read_declarations): Add case for macro definition.
(copy_identifier): New.
(parse_macro_decl): Read macro identifiers using copy_identifier
rather than lex.
2001-08-25 15:13:42 +00:00
Robert Anisko 26f609ffc3 * src/output.c (prepare): Add prefixed names.
(output_parser): Output semantic actions.
(output_parser): Fix bug on '%%line' directives.
* src/output.c (output_headers): Remove. The C code printed by this
function should now be in the skeletons.
(output_trailers): Remove.
(output): Disable call to 'reader_output_yylsp'.
(output_rule_data): Do not output tables to the table obstack.
* src/output.c: Remove some C dedicated output.
Improve the use of macro and output obstacks.
(output_defines): Remove.
* src/output.c (output_token_translations): Associate 'translate'
table with a macro. No output to the table obstack.
(output_gram): Same for 'rhs' and 'prhs'.
(output_stos): Same for 'stos'.
(output_rule_data): Same for 'r1' and 'r2'.
(token_actions): Same for 'defact'.
(goto_actions): Same for 'defgoto'.
(output_base): Same for 'pact' and 'pgoto'.
(output_table): Same for 'table'.
(output_check): Same for 'check'.
* src/output.c (output_table_data): New function.
(output_short_table): Remove.
(output_short_or_char_table): Remove.
* src/output.c (output_parser): Replace most of the skeleton copy code
with something new. Skeletons are now processed character by character
rather than line by line, and Bison looks for '%%' macros. This is the
first step in making Bison's output process (a lot) more flexible.
(output_parser): Use the macro table.
2001-08-25 15:07:59 +00:00
Robert Anisko 6f43b11362 * src/main.c (main): Initialize the macro table. 2001-08-25 14:34:41 +00:00
Robert Anisko dd3127cf7a * src/lex.c (percent_table): Add tok_define.
* src/lex.h: Add tok_define.
2001-08-25 14:27:57 +00:00
Robert Anisko aa321494cf * src/macrotab.c: New file.
* src/macrotab.h: New file.
* src/Makefile.am: Update.
2001-08-25 14:21:46 +00:00
Robert Anisko 68bd3b6bfa * lib/hash.c: New file.
* lib/hash.h: New file.
* lib/Makefile.am: Update.
2001-08-25 14:15:11 +00:00
Robert Anisko bbb5bcc6f8 Revert to 1.28c 2001-08-25 13:13:14 +00:00
Pascal Bart 667a550e7b More cvsignore. 2001-08-23 22:51:37 +00:00
Pascal Bart 713fa62a74 Fix clcommit. 2001-08-21 20:44:16 +00:00
Robert Anisko 83cd972a1a 2001-08-20 Robert Anisko <[email protected]>
* src/output.c (prepare): Add prefixed names.
	(output_parser): Output semantic actions.
	(output_parser): Fix bug on '%%line' directives.

2001-08-19  Robert Anisko  <[email protected]>

	* src/output.c (output_rule_data): Do not output tables to
	the table obstack.

	* src/reader.c (reader): Remove calls to 'output_headers' and
	'output_trailers'. Remove some C output.
	(readgram): Disable a piece of code that was writing a default
	definition for 'YYSTYPE'.
	(reader_output_yylsp): Remove.
	(packsymbols): Output token defintions to a macro.
	(copy_definition): Disable C output.

	* src/output.c (output_headers): Remove. The C code printed by this
	function should now be in the skeletons.
	(output_trailers): Remove.
	(output): Disable call to 'reader_output_yylsp'.

2001-08-18  Robert Anisko  <[email protected]>

	* src/output.c: Remove some C dedicated output.

2001-08-18  Robert Anisko  <[email protected]>

	* src/output.c (output_defines): Remove.

2001-08-18  Robert Anisko  <[email protected]>

	* src/output.c: Improve the use of macro and output obstacks.

2001-08-18  Robert Anisko  <[email protected]>

	* src/output.c (output_token_translations): Associate 'translate' table
	with a macro. No output to the table obstack.
	(output_gram): Same for 'rhs' and 'prhs'.
	(output_stos): Same for 'stos'.
	(output_rule_data): Same for 'r1' and 'r2'.
	(token_actions): Same for 'defact'.
	(goto_actions): Same for 'defgoto'.
	(output_base): Same for 'pact' and 'pgoto'.
	(output_table): Same for 'table'.
	(output_check): Same for 'check'.

2001-08-18  Robert Anisko  <[email protected]>

	* src/output.c (output_table_data): New function.
	(output_short_table): Remove.
	(output_short_or_char_table): Remove.

2001-08-17  Robert Anisko  <[email protected]>

	* src/main.c (main): Initialize the macro table.

2001-08-17  Robert Anisko  <[email protected]>

	* src/output.c (output_parser): Use the macro table.
	* src/macrotab.c: New file.
	* src/macrotab.h: New file.

2001-08-17  Robert Anisko  <[email protected]>

	* lib/xalloc.h (CALLOC, MALLOC, REALLOC): New macros.

2001-08-17  Robert Anisko  <[email protected]>

	* lib/hash.c: New file.
	* lib/hash.h: New file.

2001-08-16  Robert Anisko  <[email protected]>

	* src/reader.c (parse_macro_decl): Read macro identifiers using
	copy_identifier rather than lex.

2001-08-16  Robert Anisko  <[email protected]>

	* src/reader.c (copy_identifier): New.

2001-08-16  Robert Anisko  <[email protected]>

	* src/reader.c (read_declarations): Add case for macro definition.
	* src/lex.c (percent_table): Add tok_define.
	* src/lex.h: Add tok_define.

2001-08-16  Robert Anisko  <[email protected]>

	* src/reader.c (parse_macro_decl): New function used to parse macro
	declarations.
	(copy_string2): Put the body of copy_string into this new function.
	Add a parameter to let the caller choose whether he wants to copy the
	string delimiters or not.
	(copy_string): Be a simple call to copy_string2 with the last argument
	bound to true.

2001-08-15  Robert Anisko  <[email protected]>

	* src/output.c (output_parser): Replace most of the skeleton copy code
	with something new. Skeletons are now processed character by character
	rather than line by line, and Bison looks for '%%' macros. This is the
	first step in making Bison's output process (a lot) more flexible.
2001-08-21 19:47:13 +00:00
144 changed files with 6540 additions and 33005 deletions
+3 -1
View File
@@ -3,9 +3,11 @@ config.cache
config.h
config.log
config.status
stamp-h
stamp-h*
bison-*
patches
*.patch *.log log patches applied
*.prj
releases
*.flc
autom4te.cache
-319
View File
@@ -1,319 +0,0 @@
Notes on the Free Translation Project
*************************************
Free software is going international! The Free Translation Project
is a way to get maintainers of free software, translators, and users all
together, so that will gradually become able to speak many languages.
A few packages already provide translations for their messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site. But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
work at translations should contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
Quick configuration advice
==========================
If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias, message inheritance, automatic
charset conversion or plural form handling) as the implementation here.
It is also not possible to offer this additional functionality on top
of a `catgets' implementation. Future versions of GNU `gettext' will
very likely convey even more functionality. So it might be a good idea
to change to GNU `gettext' as soon as possible.
So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
INSTALL Matters
===============
Some packages are "localizable" when properly installed; the
programs they contain can be made to speak your own native language.
Most such packages use GNU `gettext'. Other packages have their own
ways to internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system already
provides the GNU `gettext' functions. If not, the GNU `gettext' own
library will be used. This library is wholly contained within this
package, usually in the `intl/' subdirectory, so prior installation of
the GNU `gettext' package is _not_ required. Installers may use
special options at configuration time for changing the default
behaviour. The commands:
./configure --with-included-gettext
./configure --disable-nls
will respectively bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this. This might be not what is desirable. You
should use the more recent version of the GNU `gettext' library. I.e.
if the file `intl/VERSION' shows that the library which comes with this
package is more recent, you should use
./configure --with-included-gettext
to prevent auto-detection.
The configuration process will not test for the `catgets' function
and therefore it will not be used. The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.
Internationalized packages have usually many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package. However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
Using This Package
==================
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
and `CC' is an ISO 3166 two-letter country code. For example, let's
suppose that you speak German and live in Germany. At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.
You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries. For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
country code serves to distinguish the dialects.
Not all programs have translations for all languages. By default, an
English message is shown in place of a nonexistent translation. If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries. For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
Translating Teams
=================
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list. The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
area.
If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is _not_ the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `[email protected]', having this message body:
subscribe
Keep in mind that team members are expected to participate
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `[email protected]' to reach the
coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
the terminology in use. Proven linguistic skill are praised more than
programming skill, here.
Available Packages
==================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of July
2001. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
Ready PO files bg cs da de el en eo es et fi fr gl he hr id it
+-------------------------------------------------+
a2ps | [] [] |
bash | [] [] [] [] |
bfd | |
binutils | |
bison | [] [] [] [] |
clisp | [] [] [] [] |
cpio | [] [] [] [] [] |
diffutils | [] [] [] [] [] [] [] |
enscript | [] [] |
error | [] [] |
fetchmail | |
fileutils | [] [] [] [] [] [] [] |
findutils | [] [] [] [] [] [] [] [] |
flex | [] [] [] |
freetype | |
gas | |
gawk | [] |
gcal | |
gcc | |
gettext | [] [] [] [] [] [] [] [] [] |
gnupg | [] [] [] [] [] [] |
gprof | |
grep | [] [] [] [] [] [] [] |
hello | [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] |
indent | [] [] [] [] [] |
jpilot | [] |
kbd | |
ld | |
libc | [] [] [] [] [] [] [] [] |
lilypond | |
lynx | [] [] [] |
m4 | [] [] [] [] [] [] [] |
make | [] [] [] [] [] |
nano | [] [] |
opcodes | |
parted | [] [] |
ptx | [] [] [] [] [] [] [] |
python | |
recode | [] [] [] [] [] [] [] [] [] |
sed | [] [] [] [] [] [] [] [] [] [] |
sh-utils | [] [] [] [] [] [] [] [] [] |
sharutils | [] [] [] [] [] [] [] |
soundtracker | [] |
sp | |
tar | [] [] [] [] [] [] [] [] |
texinfo | [] [] [] [] [] |
textutils | [] [] [] [] [] [] [] |
util-linux | [] [] |
wdiff | [] [] |
wget | [] [] [] [] [] [] [] [] [] |
+-------------------------------------------------+
bg cs da de el en eo es et fi fr gl he hr id it
0 13 23 30 11 1 8 21 13 1 29 22 3 0 8 10
ja ko lv nl no pl pt pt_BR ru sk sl sv tr uk zh
+-------------------------------------------------+
a2ps | [] [] [] | 5
bash | | 4
bfd | | 0
binutils | | 0
bison | [] [] [] | 7
clisp | [] | 5
cpio | [] [] [] [] [] | 10
diffutils | [] [] [] | 10
enscript | [] [] [] | 5
error | [] | 3
fetchmail | | 0
fileutils | [] [] [] [] [] [] [] [] [] [] | 17
findutils | [] [] [] [] [] [] [] [] | 16
flex | [] [] [] | 6
freetype | | 0
gas | | 0
gawk | [] | 2
gcal | | 0
gcc | | 0
gettext | [] [] [] [] [] [] [] [] [] | 18
gnupg | [] [] [] [] | 10
gprof | | 0
grep | [] [] [] | 10
hello | [] [] [] [] [] [] [] [] [] [] [] | 21
id-utils | [] [] [] | 6
indent | [] [] [] [] [] [] [] | 12
jpilot | | 1
kbd | [] | 1
ld | | 0
libc | [] [] [] [] [] [] [] [] [] | 17
lilypond | [] [] | 2
lynx | [] [] [] [] [] | 8
m4 | [] [] [] [] [] | 12
make | [] [] [] [] [] [] [] | 12
nano | [] | 3
opcodes | | 0
parted | [] [] [] | 5
ptx | [] [] [] [] [] [] [] | 14
python | | 0
recode | [] [] [] [] | 13
sed | [] [] [] [] [] [] [] [] | 18
sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 20
sharutils | [] [] [] [] | 11
soundtracker | | 1
sp | | 0
tar | [] [] [] [] [] [] [] [] [] | 17
texinfo | [] [] | 7
textutils | [] [] [] [] [] [] [] [] | 15
util-linux | [] [] | 4
wdiff | [] [] [] | 5
wget | [] [] [] [] [] [] [] | 16
+-------------------------------------------------+
31 teams ja ko lv nl no pl pt pt_BR ru sk sl sv tr uk zh
51 domains 17 9 1 23 6 17 1 13 26 9 11 20 19 2 2 369
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.
For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If July 2001 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
Using `gettext' in new packages
===============================
If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package. Of course the GNU General Public License applies to your
sources from then on if you include `gettext' directly in your
distribution but since you are writing free software anyway this is no
restriction.
Once the sources are changed appropriately and the setup can handle
to use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact
`[email protected]' to make the `.pot' files available to
the translation teams.
+811 -1
View File
@@ -1,8 +1,818 @@
2001-10-04 Akim Demaille <[email protected]>
Merge in the branch 1.29.
* src/reader.c (packsymbols): Use a temporary obstack for
`%%tokendef', since output_stack is already used elsewhere.
2001-10-02 Akim Demaille <[email protected]>
Bump 1.29d.
2001-10-02 Akim Demaille <[email protected]>
Version 1.29c.
2001-10-02 Akim Demaille <[email protected]>
* tests/regression.at (Invalid CPP headers): New.
From Alexander Belopolsky.
* src/files.c (compute_header_macro): Map non alnum chars to `_'.
2001-10-02 Akim Demaille <[email protected]>
* tests/regression.at (Invalid input): New.
* src/lex.c (lex): Be sure to set `token_buffer' in any case.
Reported by Shura.
2001-10-02 Akim Demaille <[email protected]>
* tests/calc.at: Now that --debug works, the tests must be adjusted.
2001-10-02 Akim Demaille <[email protected]>
* src/output.c (output_parser): Assert `skeleton'.
* src/files.c (skeleton_find): Look harder for skeletons on DOSish
systems.
From Shura.
2001-10-01 Marc Autret <[email protected]>
* src/lex.h: Echo modifications.
* src/lex.c (unlex): Parameter is now token_t.
From Hans Aberg.
2001-10-01 Marc Autret <[email protected]>
* src/main.c: Include lex.h.
From Hans Aberg.
2001-09-29 Akim Demaille <[email protected]>
* src/getargs.c (longopts): `--debug' is `-t', not `-d'.
2001-09-28 Akim Demaille <[email protected]>
* tests/testsuite.at: Update to newer Autotest.
* tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
2001-09-27 Akim Demaille <[email protected]>
Position independent wrapper.
* tests/bison: Remove.
* tests/bison.in: New.
* configure.in: Adjust.
2001-09-27 Paul Eggert <[email protected]>
Port quotearg fixes from tar 1.13.24.
* lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
tm to be declared.
(HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
(mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
* m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
* m4/mbrtowc.m4: New file.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
2001-09-27 Akim Demaille <[email protected]>
Bump to 1.29c.
2001-09-27 Akim Demaille <[email protected]>
Version 1.29b.
2001-09-25 Akim Demaille <[email protected]>
* src/system.h: Include `xalloc.h'.
Remove it from the C files.
* src/files.c (output_files): Free the obstacks.
* src/lex.c (init_lex): Rename as...
(lex_init): this.
(lex_free): New.
* src/main.c (main): Use it.
2001-09-24 Marc Autret <[email protected]>
* src/vcg.c (open_edge, close_edge, open_node, close_node): Change
to output informations in fout (FILE*).
(open_graph, close_graph): Likewise.
(output_graph, output_edge, output_node): Likewise.
* src/vcg.h: Update function prototypes.
* src/print_graph.c (print_graph): Open output graph file.
(print_actions): Adjust.
* src/files.h: Remove extern declaration.
* src/files.c: Remove graph_obstack declaration.
(open_files): Remove graph_obstack initialization.
(output_files): Remove graph_obstack saving.
2001-09-24 Marc Autret <[email protected]>
* src/files.c (compute_output_file_names): Fix.
2001-09-24 Marc Autret <[email protected]>,
Akim Demaille <[email protected]>
* src/reader.c (reader): Remove call to free_symtab ().
* src/main.c (main): Call it here.
Include symtab.h.
* src/conflicts.c (initialize_conflicts): Rename as...
(solve_conflicts): this.
* src/print.c (print_core, print_actions, print_state)
(print_grammar): Dump to a file instead a `output_obstack'.
(print_results): Dump `output_obstack', and then proceed with the
FILE *.
* src/files.c (compute_output_file_names, close_files): New.
(output_files): Adjust.
* src/main.c (main): Adjust.
2001-09-23 Marc Autret <[email protected]>
* src/files.c (compute_header_macro): Computes header macro name
from spec_defines_file when given.
2001-09-23 Marc Autret <[email protected]>
* src/files.c (output_files): Add default extensions.
2001-09-22 Akim Demaille <[email protected]>
* src/conflicts.c (finalize_conflicts): Rename as...
(free_conflicts): this.
2001-09-22 Akim Demaille <[email protected]>
* src/gram.c (gram_free): Rename back as...
(dummy): this.
(output_token_translations): Free `token_translations'.
* src/symtab.c (free_symtab): Free the tag field.
2001-09-22 Akim Demaille <[email protected]>
Remove `translations' as it is always set to true.
* src/gram.h: Adjust.
* src/reader.c (packsymbols, parse_token_decl): Adjust
* src/print.c (print_grammar): Adjust.
* src/output.c (output_token_translations): Adjust.
* src/lex.c (lex): Adjust.
* src/gram.c: Be sure the set pointers to NULL.
(dummy): Rename as...
(gram_free): this.
2001-09-22 Akim Demaille <[email protected]>
* configure.in: Invoke AM_LIB_DMALLOC.
* src/system.h: Use dmalloc.
* src/LR0.c: Be sure to have pointers initialized to NULL.
(allocate_itemsets): Allocate kernel_items only if needed.
2001-09-22 Akim Demaille <[email protected]>
* configure.in: Bump to 1.29b.
* tests/Makefile.am (DISTCLEANFILES): Add package.m4.
* tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
need xmalloc.c in calc.y.
From Pascal Bart.
2001-09-21 Akim Demaille <[email protected]>
Version 1.29a.
* Makefile.maint, config/config.guess, config/config.sub,
* config/missing: Update from masters.
* tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
upon package.m4.
* configure.in (ALL_LINGUAS): Add `tr'.
2001-09-21 Akim Demaille <[email protected]>
* tests/Makefile.am (package.m4): Move to...
($(srcdir)/$(TESTSUITE)): here.
2001-09-20 Akim Demaille <[email protected]>
* src/complain.c: No longer try to be standalone: use system.h.
Don't assume __STDC__ is defined to 1. Just test if it is defined.
* src/complain.h: Likewise.
* src/reduce.c (useless_nonterminals, inaccessable_symbols):
Remove the unused variable `n'.
From Albert Chin-A-Young.
2001-09-18 Marc Autret <[email protected]>
* doc/bison.1: Update.
* doc/bison.texinfo (Bison Options): Update --defines and --graph
descriptions.
(Option Cross Key): Update.
Add --graph.
2001-09-18 Marc Autret <[email protected]>
* tests/regression.at: New test (comment in %union).
2001-09-18 Marc Autret <[email protected]>
* src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
do that.
Reported by Keith Browne.
2001-09-18 Marc Autret <[email protected]>
* tests/output.at: Add tests for --defines and --graph.
2001-09-18 Marc Autret <[email protected]>
* tests/output.at: Removes tests of %{header,src}_extension features.
2001-09-18 Akim Demaille <[email protected]>
* tests/Makefile.am (package.m4): New.
* tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
(_AT_CHECK_CALC_ERROR): Likewise.
Factor the `, ' part of verbose error messages.
2001-09-18 Marc Autret <[email protected]>
* src/getargs.c (longopts): Declare --defines and --graph as options
with optional arguments.
* src/files.h: Add extern declarations.
* src/files.c (spec_graph_file, spec_defines_file): New.
(output_files): Update.
Remove CPP-outed code.
2001-09-18 Marc Autret <[email protected]>
Turn off %{source,header}_extension feature.
* src/files.c (compute_exts_from_gf): Update.
(compute_exts_from_src): Update.
(output_files): CPP-out useless code.
* src/files.h: Remove {header,source}_extension extern declarations.
* src/reader.c (parse_dquoted_param): CPP-out.
(parse_header_extension_decl): Remove.
(parse_source_extension_decl): Remove.
(read_declarations): Remove cases tok_{hdrext,srcext}.
* src/lex.c (percent_table): Remove {header,source}_extension entries.
* src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
2001-09-10 Akim Demaille <[email protected]>
* tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
(AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
(AT_CHECK_OUTPUT): this.
Merely check ls' exit status, its output is useless.
2001-09-10 Akim Demaille <[email protected]>
* tests/calc.at: Use m4_match.
(_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
2001-09-10 Marc Autret <[email protected]>,
Akim Demaille <[email protected]>
* src/vcg.h (graph_s): color, textcolor, bordercolor are now
enum color_e.
* src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
to `normal'.
* src/reader.c (parse_token_decl): Initialize token with tok_eof.
* src/lex.h: Adjust prototype.
(token_t): Add `tok_undef'.
* src/lex.c (struct percent_table_struct): Retval is now a token_t.
(parse_percent_token): Now returns token_t.
Add default statement in switch.
(lex): Separate `c' as an input variable, from the token_t result
part.
(unlexed): Is a token_t.
2001-09-10 Akim Demaille <[email protected]>
* configure.in: Bump to 1.29a.
2001-09-07 Akim Demaille <[email protected]>
Version 1.29.
2001-08-30 Akim Demaille <[email protected]>
* tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
* m4/atconfig.m4: Remove.
* tests/testsuite.at, tests/atlocal.in, tests/output.at,
* tests/bison: New.
* tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
m4_if, m4_patsubst, and m4_regexp.
* tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
`input' file instead of echo.
2001-08-29 Akim Demaille <[email protected]>
Bump to 1.28e.
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-09-25 Pascal Bart <[email protected]>
* src/output.c (output_master_parser): Don't finish action_obstack.
(output_parser): Don't care about the muscle action, here.
(prepare): Copy the action_obstack in the action muscle.
(output): Free action_obstack.
2001-09-23 Pascal Bart <[email protected]>
* src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
will contain `%union' declaration.
(parse_union_decl): Delete #line directive output.
(parse_union_decl): Substitute /attrs_obstack/union_obstack for all
informations about %union.
(parse_union_decl): Copy the union_obstack in the muscle stype.
* src/bison.simple: Add new #line directive.
Add typdef %%stype YYSTYPE.
2001-09-23 Pascal Bart <[email protected]>
* src/bison.simple: Add new `#line' directive.
2001-09-22 Pascal Bart <[email protected]>
* src/bison.simple: New `#line' directive.
* src/output.c (output_parser): Support new dynamic muscle input_line.
2001-09-22 Marc Autret <[email protected]>
* src/output.c (output_master_parser): New.
(output_parser): Be more re-entrant.
2001-09-21 Marc Autret <[email protected]>
* src/reader.c (copy_definition, parse_union_decl): Update and use
`linef' muscle.
(copy_action): Likewise.
Use obstack_1grow ().
* src/muscle_tab.c (muscle_init): Add muscle `linef'.
2001-09-21 Marc Autret <[email protected]>
* src/options.c (option_table): Adjust.
* src/lex.c (parse_percent_token): Fix.
2001-09-20 Pascal Bart <[email protected]>
* src/options.c (symtab.h): Include it, need by lex.h.
2001-09-20 Pascal Bart <[email protected]>
* src/lex.c (parse_percent_token): Change type of variable `tx', which
is now an option_table_struct*.
(option_strcmp): New function option_strcmp.
(parse_percent_token): Call option_strcmp.
* src/getargs.c (xalloc.h, options.h): Include it.
(getargs): Call create_long_option_table.
(getargs): Free longopts at the end of the function.
(shortopts): Move in options.c.
* src/options.c (create_long_option_table): New function. Convert
information from option_table to option structure.
* src/reader.c (options.h): Include it.
* src/Makefile.am: Adjust.
* src/options.c (option_table): Create from longopts and percent_table.
* src/getargs.c (longopts): Delete.
* src/lex.c (struct percent_table_struct): Delete.
(percent_table): Delete.
(options.h): Include it.
* src/options.c: Create.
* src/options.h: Create.
Declare enum opt_access_e.
Define struct option_table_struct.
2001-09-20 Marc Autret <[email protected]>
* doc/bison.texinfo: Adjust terminologies about prologue and epilogue
sections of Bison.
2001-09-19 Pascal Bart <[email protected]>
* src/bison.simple: s/%%filename/%%skeleton.
* src/muscle_tab.c (getargs.h): Include it.
(muscle_init): Insert new muscle skeleton.
2001-09-18 Pascal Bart <[email protected]>
* src/output.c (output_parser): Delete unused variable actions_dumped.
2001-09-07 Pascal Bart <[email protected]>
* src/output.c (output): Delete call to reader_output_yylsp.
* src/reader.c (reader): Likewise.
* src/reader.h: Delete declaration of reader_output_yylsp.
2001-09-02 Marc Autret <[email protected]>
* src/reader.c: Include muscle_tab.h.
(parse_union_decl): Update.
(parse_macro_decl): Rename parse_muscle_decl.
Update to use renamed functions and variable.
(read_declarations, copy_action, read_additionnal_code, : Updated
with correct variables and functions names.
(packsymbols, reader): Likewise.
* src/reader.h (muscle_obstack): Extern declaration update.
* src/output.c: Include muscle_tab.h
In all functions using macro_insert, change by using muscle_insert ().
(macro_obstack): Rename muscle_obstack.
Echo modifications in the whole file.
(MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
(MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
(MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
* src/muscle_tab.h: Update double inclusion macros.
(macro_entry_s): Rename muscle_entry_s.
Update prototypes.
* src/muscle_tab.c: Include muscle_tab.h.
Rename macro_tabble to muscle_table.
(mhash1, mhash2, mcmp): Use muscle_entry.
(macro_init): Rename muscle_init. Update.
(macro_insert): Rename muscle_insert. Update.
(macro_find): Rename muscle_find. Update.
* src/main.c: Include muscle_tab.h.
(main): Call muscle_init ().
* src/Makefile.am (bison_SOURCES): Echo modifications.
2001-09-02 Marc Autret <[email protected]>
Now the files macro_tab.[ch] are named muscle_tab.[ch].
* src/muscle_tab.c, src/muscle_tab.h: Add files.
2001-09-02 Marc Autret <[email protected]>
* src/macrotab.c, src/macrotab.h: Remove.
2001-09-01 Pascal Bart <[email protected]>
* src/reader.c (copy_guard): Use muscle to specify the `#line'
filename.
2001-09-01 Marc Autret <[email protected]>
* tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
to an explicit value to activate the feature. We do it here.
2001-08-31 Pascal Bart <[email protected]>
* src/output.c (prepare): Delete the `filename' muscule insertion.
* src/reader.c (copy_action): Use `filename' muscule with `#line'.
(parse_union_decl): Likewise.
* src/macrotab.c (macro_init): Initialize filename by infile.
2001-08-31 Marc Autret <[email protected]>
* src/bison.simple (YYLSP_NEEDED): New definition.
* src/output.c (prepare): Add macro insertion of `locations_flag'
2001-08-31 Pascal Bart <[email protected]>
* src/output.c (prepare): Delete insertion of previous muscles,
and insert the `prefix' muscles.
* src/macrotab.c (macro_init): Likewise.
(macro_init): Initialization prefix directive by `yy'.
* src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
%%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
yylval, yydebug, yyerror, yynerrs and yyparse.
New directive `#define' to substitute yydebug, ... with option
name_prefix.
2001-08-31 Pascal Bart <[email protected]>
* src/main.c (main): Standardize.
* src/output.c (output_table_data, output_parser): Likewise.
* src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
2001-08-31 Pascal Bart <[email protected]>, Marc Autret <[email protected]>
* src/reader.c (read_additionnal_code): Rename %%user_code to
%%epilogue.
* src/output.c (output): Rename %%declarations to %%prologue.
* src/bison.simple: Echo modifications.
2001-08-31 Marc Autret <[email protected]>
* src/reader.c (readgram): CleanUp.
(output_token_defines): Likewise.
(packsymbols): Likewise.
(reader): Likewise.
* src/output.c (output): CPP-out useless code.
2001-08-31 Pascal Bart <[email protected]>
* src/reader.c (reader): Delete obsolete call to function
output_trailers and output_headers.
* src/output.h: Remove obsolete functions prototypes of output_headers
and output_trailers.
2001-08-30 Pascal Bart <[email protected]>
* src/main.c: Include macrotab.h.
* src/macrotab.h (macro_entry_s): Constify fields.
Adjust functions prototypes.
* src/macrotab.c (macro_insert): Constify key and value.
(macro_find): Constify key.
(macro_insert): Include 'xalloc.h'
(macro_insert): Use XMALLOC.
(macro_find): Constify return value.
* src/output.c (output_table_data): Rename table to table_data.
(output_parser): Constify macro_key, macro_value.
2001-08-30 Marc Autret <[email protected]>
* src/reader.c (parse_skel_decl): New.
(read_declarations): Add case `tok_skel', call parse_skel_decl ().
* src/lex.h (token_t): New token `tok_skel'.
* src/lex.c (percent_table): Add skeleton option entry.
Standardize.
2001-08-29 Marc Autret <[email protected]>
* src/bison.simple: Add %%user_code directive at the end.
* src/reader.c (read_additionnal_code): New.
(reader): Use it.
* src/output.c (output_program): Remove.
(output): Update.
2001-08-28 Marc Autret <[email protected]>
* src/output.c (output_actions): Clean up.
(output_gram): CPP-out useless code.
* src/reader.c (reader): Clean up, CPP-out useless code.
2001-08-28 Pascal Bart <[email protected]>
* src/output.c (output): Copy attrs_obstack in the '%%definitions'
directive.
* src/bison.simple: Add `%%definitions'.
2001-08-28 Marc Autret <[email protected]>
* config/depcomp: New file.
2001-08-27 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-27 Robert Anisko <[email protected]>
* src/output.c (output): Remove the initialization of the macro
obstack. It was done too late here.
* src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
completely wrong.
(reader): Initialize the macro obstack here, since we need it to grow
'%define' directives.
* src/reader.h: Declare the macro obstack as extern.
2001-08-27 Robert Anisko <[email protected]>
* src/output.c (output_parser): Fix. Store single '%' characters in
the output obstack instead of throwing them away.
2001-08-27 Akim Demaille <[email protected]>
* Makefile.am (AUTOMAKE_OPTIONS): 1.5.
2001-08-25 Robert Anisko <[email protected]>
* lib/Makefile.am: Adjust.
2001-08-25 Robert Anisko <[email protected]>
* src/bison.simple: Update and add '%%' directives.
2001-08-25 Robert Anisko <[email protected]>
* src/reader.c (reader): Remove calls to 'output_headers' and
'output_trailers'. Remove some C output.
(readgram): Disable a piece of code that was writing a default
definition for 'YYSTYPE'.
(reader_output_yylsp): Remove.
(packsymbols): Output token defintions to a macro.
(copy_definition): Disable C output.
* src/reader.c (parse_macro_decl): New function used to parse macro
declarations.
(copy_string2): Put the body of copy_string into this new function.
Add a parameter to let the caller choose whether he wants to copy the
string delimiters or not.
(copy_string): Be a simple call to copy_string2 with the last argument
bound to true.
(read_declarations): Add case for macro definition.
(copy_identifier): New.
(parse_macro_decl): Read macro identifiers using copy_identifier
rather than lex.
2001-08-25 Robert Anisko <[email protected]>
* src/output.c (prepare): Add prefixed names.
(output_parser): Output semantic actions.
(output_parser): Fix bug on '%%line' directives.
* src/output.c (output_headers): Remove. The C code printed by this
function should now be in the skeletons.
(output_trailers): Remove.
(output): Disable call to 'reader_output_yylsp'.
(output_rule_data): Do not output tables to the table obstack.
* src/output.c: Remove some C dedicated output.
Improve the use of macro and output obstacks.
(output_defines): Remove.
* src/output.c (output_token_translations): Associate 'translate'
table with a macro. No output to the table obstack.
(output_gram): Same for 'rhs' and 'prhs'.
(output_stos): Same for 'stos'.
(output_rule_data): Same for 'r1' and 'r2'.
(token_actions): Same for 'defact'.
(goto_actions): Same for 'defgoto'.
(output_base): Same for 'pact' and 'pgoto'.
(output_table): Same for 'table'.
(output_check): Same for 'check'.
* src/output.c (output_table_data): New function.
(output_short_table): Remove.
(output_short_or_char_table): Remove.
* src/output.c (output_parser): Replace most of the skeleton copy code
with something new. Skeletons are now processed character by character
rather than line by line, and Bison looks for '%%' macros. This is the
first step in making Bison's output process (a lot) more flexible.
(output_parser): Use the macro table.
2001-08-25 Robert Anisko <[email protected]>
* src/main.c (main): Initialize the macro table.
2001-08-25 Robert Anisko <[email protected]>
* src/lex.c (percent_table): Add tok_define.
* src/lex.h: Add tok_define.
2001-08-25 Robert Anisko <[email protected]>
* src/macrotab.c: New file.
* src/macrotab.h: New file.
* src/Makefile.am: Update.
2001-08-25 Robert Anisko <[email protected]>
* lib/hash.c: New file.
* lib/hash.h: New file.
* lib/Makefile.am: Update.
2001-08-15 Akim Demaille <[email protected]>
Version 1.28c.
2001-08-15 Marc Autret <prog@epita.fr>
2001-08-15 Marc Autret <autret_m@epita.fr>
* src/reader.c (readgram): Indent output macro YYSTYPE.
(packsymbols): Likewise.
+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 dist-bzip2
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
-414
View File
@@ -1,414 +0,0 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 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.
# 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.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AT_TESTPATH = @AT_TESTPATH@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
AUTOMAKE_OPTIONS = 1.4 check-news readme-alpha
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = config intl po lib src doc m4 tests
EXTRA_DIST = REFERENCES configure.bat OChangeLog Makefile.maint GNUmakefile
DISTCLEANFILES = intl/libintl.h
move_if_change = $(srcdir)/config/move-if-change
prev_version_file = $(srcdir)/config/prev-version.txt
release_archive_dir = releases
# Uploading betas.
hosts = alpha
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
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 missing mkinstalldirs
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
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)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
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
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
@if test ! -f $@; then \
rm -f $(srcdir)/stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \
else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (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:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
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; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; 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)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
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)
distdir: $(DISTFILES)
@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)
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
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
for subdir in $(SUBDIRS); do \
if test "$$subdir" = .; then :; else \
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) \
|| exit 1; \
fi; \
done
info-am:
info: info-recursive
dvi-am:
dvi: dvi-recursive
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:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
clean: clean-recursive
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
# 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:
+101 -50
View File
@@ -22,9 +22,6 @@
# 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)
CVS = cvs
prev_version_file ?= .prev-version
@@ -46,12 +43,101 @@ 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
# Checks that don't require cvs. Run `changelog-check' last 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 \
@@ -117,10 +203,16 @@ maintainer-distcheck: changelog-check
$(MAKE) my-distcheck
## -------------- ##
## 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-dist: local-check cvs-check maintainer-distcheck
$(CVS) update po
$(CVS) tag -c $(this-cvs-tag)
$(MAKE) dist
@@ -130,6 +222,7 @@ cvs-dist: cvs-check maintainer-distcheck
null_AM_MAKEFLAGS = \
ACLOCAL=false \
AUTOCONF=false \
AUTOM4TE=false \
AUTOMAKE=false \
AUTOHEADER=false \
MAKEINFO=false
@@ -177,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
@@ -228,48 +321,6 @@ announcement: NEWS ChangeLog $(rel-files)
-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 =====================================
@@ -284,7 +335,7 @@ 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)
+21 -1
View File
@@ -1,7 +1,27 @@
Bison News
----------
Changes in version 1.28c:
Changes in version 1.29d:
* `--defines' and `--graph' have now an optionnal argument which is the
output file name. `-d' and `-g' do not change, they do not take any
argument.
* `%source_extension' and `%header_extension' are removed, failed
experiment.
* The test suite is more portable.
* Better portability.
Changes in version 1.29:
* The output file does not define const, as this caused problems when used
with common autoconfiguration schemes. If you still use ancient compilers
that lack const, compile with the equivalent of the C compiler option
`-Dconst='. autoconf's AC_C_CONST macro provides one way to do this.
* Added `-g' and `--graph'.
* The Bison manual is now distributed under the terms of the GNU FDL.
+18 -13
View File
@@ -1,22 +1,27 @@
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]
Laurent Mascherpa [email protected]
Akim Demaille [email protected]
Albert Chin-A-Young [email protected]
Alexander Belopolsky [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]
Keith Browne [email protected]
Laurent Mascherpa [email protected]
Marc Autret [email protected]
Neil Booth [email protected]
Noah Friedman [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]
Paul Eggert [email protected]
Piotr Gackiewicz [email protected]
Richard Stallman [email protected]
Robert Anisko [email protected]
Shura [email protected]
Many people are not named here because we lost track of them. We
thank them! Please, help us keeping this list up to date.
+28
View File
@@ -0,0 +1,28 @@
-*- outline -*-
* src/reader.c
Complete parse_skel_decl () with parse_dquoted_param (). []
Check and cleanup for CPP-out code. []
* src/output.c
Synchronize `#line' directive with user file. [ok]
Cleanup dirty CPP-out code. []
** Output sub-skeleton files. []
Useful for %no_parser. []
*** New skeleton. []
* src/getargs.c src/lex.c
Synchronize percent and command line options. [ok]
* src/macrotab.[ch]
Removing warnings when compiling. (gcc-warnings). [ok]
* src/print_graph.c
Find the best graph parameters. []
* doc/bison.texinfo
Echo modifications of prologue and epilogue. []
Add informations about YYERROR_VERBOSE. []
Add explainations about skeleton muscles. []
Add explainations about %skeleton. []
Vendored
-1082
View File
File diff suppressed because it is too large Load Diff
-286
View File
@@ -1,286 +0,0 @@
/* config.hin. Generated automatically from configure.in by autoheader. */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
#undef CRAY_STACKSEG_END
/* Define if using `alloca.c'. */
#undef C_ALLOCA
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
/* Define if you have `alloca', as a function or macro. */
#undef HAVE_ALLOCA
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
#undef HAVE_ALLOCA_H
/* Define if you have the <argz.h> header file. */
#undef HAVE_ARGZ_H
/* Define if you have the <ctype.h> header file. */
#undef HAVE_CTYPE_H
/* Define if backslash-a works in C strings. */
#undef HAVE_C_BACKSLASH_A
/* Define if you have the `dcgettext' function. */
#undef HAVE_DCGETTEXT
/* Define to 1 if you have the declaration of `memchr', and to 0 if you don't.
*/
#undef HAVE_DECL_MEMCHR
/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
*/
#undef HAVE_DECL_STPCPY
/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
don't. */
#undef HAVE_DECL_STRERROR_R
/* Define to 1 if you have the declaration of `strndup', and to 0 if you
don't. */
#undef HAVE_DECL_STRNDUP
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
don't. */
#undef HAVE_DECL_STRNLEN
/* Define if the malloc check has been performed. */
#undef HAVE_DONE_WORKING_MALLOC_CHECK
/* Define if the realloc check has been performed. */
#undef HAVE_DONE_WORKING_REALLOC_CHECK
/* Define if you have the `doprnt' function. */
#undef HAVE_DOPRNT
/* Define if you have the `feof_unlocked' function. */
#undef HAVE_FEOF_UNLOCKED
/* Define if you have the `fgets_unlocked' function. */
#undef HAVE_FGETS_UNLOCKED
/* Define if you have the `getcwd' function. */
#undef HAVE_GETCWD
/* Define if you have the `getegid' function. */
#undef HAVE_GETEGID
/* Define if you have the `geteuid' function. */
#undef HAVE_GETEUID
/* Define if you have the `getgid' function. */
#undef HAVE_GETGID
/* Define if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
/* Define if you have the `getuid' function. */
#undef HAVE_GETUID
/* Define if you have the iconv() function. */
#undef HAVE_ICONV
/* Define if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define if you have the `isascii' function. */
#undef HAVE_ISASCII
/* Define if you have the `iswprint' function. */
#undef HAVE_ISWPRINT
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET
/* Define if your <locale.h> file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define if you have the `mbrtowc' function. */
#undef HAVE_MBRTOWC
/* Define if you have the `memchr' function. */
#undef HAVE_MEMCHR
/* Define if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define if you have the `mempcpy' function. */
#undef HAVE_MEMPCPY
/* Define if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP
/* Define if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define if you have the `munmap' function. */
#undef HAVE_MUNMAP
/* Define if you have the <nl_types.h> header file. */
#undef HAVE_NL_TYPES_H
/* Define if you have the `putenv' function. */
#undef HAVE_PUTENV
/* Define if you have the `setenv' function. */
#undef HAVE_SETENV
/* Define if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
/* Define if you have the <stddef.h> header file. */
#undef HAVE_STDDEF_H
/* Define if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define if you have the `stpcpy' function. */
#undef HAVE_STPCPY
/* Define if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define if you have the `strchr' function. */
#undef HAVE_STRCHR
/* Define if you have the `strdup' function. */
#undef HAVE_STRDUP
/* Define if you have the `strerror' function. */
#undef HAVE_STRERROR
/* Define if you have the `strerror_r' function. */
#undef HAVE_STRERROR_R
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the `strndup' function. */
#undef HAVE_STRNDUP
/* Define if you have the `strnlen' function. */
#undef HAVE_STRNLEN
/* Define if you have the `strspn' function. */
#undef HAVE_STRSPN
/* Define if you have the `strtoul' function. */
#undef HAVE_STRTOUL
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* Define if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if you have the `tsearch' function. */
#undef HAVE_TSEARCH
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the `vprintf' function. */
#undef HAVE_VPRINTF
/* Define if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define if you have the <wctype.h> header file. */
#undef HAVE_WCTYPE_H
/* Define to 1 if `strerror_r' returns a string. */
#undef HAVE_WORKING_STRERROR_R
/* Define if you have the `__argz_count' function. */
#undef HAVE___ARGZ_COUNT
/* Define if you have the `__argz_next' function. */
#undef HAVE___ARGZ_NEXT
/* Define if you have the `__argz_stringify' function. */
#undef HAVE___ARGZ_STRINGIFY
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
/* Name of package */
#undef PACKAGE
/* Define if compiler has function prototypes */
#undef PROTOTYPES
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Version number of package */
#undef VERSION
/* Define to 1 for GNU C library extensions. */
#undef _GNU_SOURCE
/* Define if on MINIX. */
#undef _MINIX
/* Define if the system does not provide POSIX.1 features except with this
defined. */
#undef _POSIX_1_SOURCE
/* Define if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define as `__inline' if that's what the C compiler calls it, or to nothing
if it is not supported. */
#undef inline
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define to a type if <wchar.h> does not define. */
#undef mbstate_t
/* Define to `long' if <sys/types.h> does not define. */
#undef off_t
/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t
-205
View File
@@ -1,205 +0,0 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 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.
# 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.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AT_TESTPATH = @AT_TESTPATH@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
EXTRA_DIST = move-if-change prev-version.txt
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
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
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = config
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 -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
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
install-data-am:
install-data: install-data-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
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-generic clean-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."
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
# 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:
-1311
View File
File diff suppressed because it is too large Load Diff
-1410
View File
File diff suppressed because it is too large Load Diff
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
-190
View File
@@ -1,190 +0,0 @@
#! /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.
# 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.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
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
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
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
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
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 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
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
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
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
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
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
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`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
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 might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
makeinfo)
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
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
-40
View File
@@ -1,40 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <[email protected]>
# Created: 1993-05-16
# Public domain
# $Id$
errstatus=0
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here
+1 -1
View File
@@ -1 +1 @@
1.28c
1.29c
Vendored
-7979
View File
File diff suppressed because it is too large Load Diff
+28 -7
View File
@@ -1,12 +1,32 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
AC_INIT(bison, 1.28c, [email protected])
# Configure template for GNU Bison. -*-Autoconf-*-
#
# 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
# We need a recent Autoconf to run a recent Autotest.
AC_PREREQ(2.52e)
AC_INIT([GNU Bison], [1.29d], [[email protected]])
AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE(bison, 1.28c)
AM_INIT_AUTOMAKE([bison], [1.29d])
AM_CONFIG_HEADER(config.h:config.hin)
# Initialize the test suite.
AT_CONFIG(../src)
AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
# Checks for programs.
AC_PROG_CC
@@ -69,8 +89,9 @@ jm_FUNC_MALLOC
jm_FUNC_REALLOC
jm_PREREQ_QUOTEARG
jm_PREREQ_ERROR
AM_WITH_DMALLOC
ALL_LINGUAS="de es et fr ja nl ru"
ALL_LINGUAS="de es et fr ja nl tr ru"
AM_GNU_GETTEXT
# This is necessary so that .o files in LIBOBJS are also built via
@@ -83,4 +104,4 @@ AC_OUTPUT([Makefile
intl/Makefile po/Makefile.in
lib/Makefile src/Makefile doc/Makefile
m4/Makefile
tests/Makefile tests/atconfig])
tests/Makefile])
-414
View File
@@ -1,414 +0,0 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 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.
# 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.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AT_TESTPATH = @AT_TESTPATH@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
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
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
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 = $(bison_TEXINFOS) Makefile.am Makefile.in stamp-vti \
version.texi
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
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)/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
@cmp -s vti.tmp $(srcdir)/version.texi \
|| (echo "Updating $(srcdir)/version.texi"; \
cp vti.tmp $(srcdir)/version.texi)
-@rm -f vti.tmp
@cp $(srcdir)/version.texi $@
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_TEXINFOS)
bison.dvi: bison.texinfo version.texi $(bison_TEXINFOS)
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,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `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,.*/,,'`
.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 \
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
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
@$(NORMAL_UNINSTALL)
list='$(INFO_DEPS)'; \
for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `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:
maintainer-clean-aminfo:
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:
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
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 \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
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)
subdir = doc
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 -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
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
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am: install-info-am install-man
install-data: install-data-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
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1
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]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-vti mostlyclean-aminfo mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-vti clean-aminfo clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-vti distclean-aminfo distclean-generic clean-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."
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
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:
+33 -5
View File
@@ -10,7 +10,11 @@ bison \- GNU Project parser generator (yacc replacement)
] [
.B \-d
] [
.B \-\-defines
.BI \-\-defines= defines-file
] [
.B \-g
] [
.BI \-\-graph= graph-file
] [
.B \-k
] [
@@ -123,8 +127,6 @@ chosen as if the input file were named
.B \-d
.br
.ns
.TP
.B \-\-defines
Write an extra output file containing macro definitions for the token
type names defined in the grammar and the semantic value type
.BR YYSTYPE ,
@@ -145,6 +147,32 @@ in a separate source file, because
needs to be able to refer to token type codes and the variable
.BR yylval .
.TP
.BI \-\-defines= defines-file
The behaviour of
.BI \-\-defines
is the same than
.BI \-d
option.
The only difference is that it has an optionnal argument which is
the name of the output filename.
.TP
.BI \-g
.br
.ns
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
.BI \-\-graph= graph-file
The behaviour of
.BI \-\-graph
is the same than
.BI \-g
option. The only difference is that it has an optionnal argument which
is the name of the output graph filename.
.TP
.B \-k
.br
.ns
@@ -315,9 +343,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
-141
View File
@@ -1,141 +0,0 @@
Ceci est le fichier Info bison.info, produit par Makeinfo version 4.0b
à partir bison.texinfo.
START-INFO-DIR-ENTRY
* bison: (bison). GNU Project parser generator (yacc replacement).
END-INFO-DIR-ENTRY
This file documents the Bison parser generator.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
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
preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided also
that the sections entitled "GNU General Public License" and "Conditions
for Using Bison" are included exactly as in the original, and provided
that the entire resulting derived work is distributed under the terms
of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that the sections entitled "GNU General Public
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.

Indirect:
bison.info-1: 1313
bison.info-2: 50357
bison.info-3: 99982
bison.info-4: 148180
bison.info-5: 190964

Tag Table:
(Indirect)
Node: Top1313
Node: Introduction8698
Node: Conditions9973
Node: Copying11437
Node: Concepts30640
Node: Language and Grammar31719
Node: Grammar in Bison36735
Node: Semantic Values38659
Node: Semantic Actions40760
Node: Locations Overview41949
Node: Bison Parser43396
Node: Stages45708
Node: Grammar Layout46991
Node: Examples48248
Node: RPN Calc49383
Node: Rpcalc Decls50357
Node: Rpcalc Rules51944
Node: Rpcalc Input53744
Node: Rpcalc Line55205
Node: Rpcalc Expr56320
Node: Rpcalc Lexer58265
Node: Rpcalc Main60837
Node: Rpcalc Error61235
Node: Rpcalc Gen62243
Node: Rpcalc Compile63392
Node: Infix Calc64267
Node: Simple Error Recovery66974
Node: Multi-function Calc68860
Node: Mfcalc Decl70426
Node: Mfcalc Rules72449
Node: Mfcalc Symtab73829
Node: Exercises80202
Node: Grammar File80708
Node: Grammar Outline81556
Node: C Declarations82290
Node: Bison Declarations82870
Node: Grammar Rules83282
Node: C Code83742
Node: Symbols84672
Node: Rules89753
Node: Recursion91392
Node: Semantics93111
Node: Value Type94205
Node: Multiple Types94877
Node: Actions95894
Node: Action Types98679
Node: Mid-Rule Actions99982
Node: Locations105552
Node: Location Type106200
Node: Actions and Locations106758
Node: Location Default Action108914
Node: Declarations110377
Node: Token Decl111696
Node: Precedence Decl113709
Node: Union Decl115260
Node: Type Decl116104
Node: Expect Decl117010
Node: Start Decl118556
Node: Pure Decl118934
Node: Decl Summary120611
Node: Multiple Parsers125994
Node: Interface127488
Node: Parser Function128360
Node: Lexical129195
Node: Calling Convention130601
Node: Token Values133372
Node: Token Positions134521
Node: Pure Calling135406
Node: Error Reporting138338
Node: Action Features140460
Node: Algorithm143755
Node: Look-Ahead146048
Node: Shift/Reduce148180
Node: Precedence151092
Node: Why Precedence151743
Node: Using Precedence153608
Node: Precedence Examples154576
Node: How Precedence155277
Node: Contextual Precedence156426
Node: Parser States158217
Node: Reduce/Reduce159460
Node: Mystery Conflicts163021
Node: Stack Overflow166407
Node: Error Recovery167780
Node: Context Dependency172916
Node: Semantic Tokens173764
Node: Lexical Tie-ins176781
Node: Tie-in Recovery178329
Node: Debugging180501
Node: Invocation183802
Node: Bison Options185054
Node: Environment Variables188488
Node: Option Cross Key189336
Node: VMS Invocation190180
Node: Table of Symbols190964
Node: Glossary198603
Node: Copying This Manual204907
Node: GNU Free Documentation License205116
Node: Index224981

End Tag Table
-1065
View File
File diff suppressed because it is too large Load Diff
-1386
View File
File diff suppressed because it is too large Load Diff
-1280
View File
File diff suppressed because it is too large Load Diff
-1139
View File
File diff suppressed because it is too large Load Diff
-1033
View File
File diff suppressed because it is too large Load Diff
+378 -154
View File
File diff suppressed because it is too large Load Diff
-2
View File
@@ -1,4 +1,3 @@
@node GNU Free Documentation License
@appendixsec GNU Free Documentation License
@@ -400,4 +399,3 @@ to permit their use in free software.
@c Local Variables:
@c ispell-local-pdict: "ispell-dict"
@c End:
+1 -1
View File
@@ -1,4 +1,4 @@
@node Copying, Concepts, Conditions, Top
@node Copying
@unnumbered GNU GENERAL PUBLIC LICENSE
@center Version 2, June 1991
-3
View File
@@ -1,3 +0,0 @@
@set UPDATED 15 August 2001
@set EDITION 1.28c
@set VERSION 1.28c
-3
View File
@@ -1,3 +0,0 @@
@set UPDATED 15 August 2001
@set EDITION 1.28c
@set VERSION 1.28c
-4
View File
@@ -1,4 +0,0 @@
2001-07-24 GNU <[email protected]>
* Version 0.10.39 released.
-312
View File
@@ -1,312 +0,0 @@
# Makefile for directory with message catalog handling in GNU NLS Utilities.
# Copyright (C) 1995-1998, 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
# 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.
PACKAGE = @PACKAGE@
VERSION = @VERSION@
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
transform = @program_transform_name@
libdir = @libdir@
includedir = @includedir@
datadir = @datadir@
localedir = $(datadir)/locale
gettextsrcdir = $(datadir)/gettext/intl
aliaspath = $(localedir)
subdir = intl
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
l = @INTL_LIBTOOL_SUFFIX_PREFIX@
AR = ar
CC = @CC@
LIBTOOL = @LIBTOOL@
RANLIB = @RANLIB@
YACC = @INTLBISON@ -y -d
YFLAGS = --name-prefix=__gettext
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
-DLIBDIR=\"$(libdir)\" @DEFS@
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
COMHDRS = gettext.h gettextP.h hash-string.h
SOURCES = $(COMSRCS) intl-compat.c
COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
localcharset.c
OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
plural.$lo localcharset.$lo
GETTOBJS = intl-compat.$lo
DISTFILES.common = Makefile.in \
config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
DISTFILES.generated = plural.c
DISTFILES.normal = VERSION
DISTFILES.gettext = libintl.glibc
DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
# Libtool's library version information for libintl.
# Before making a gettext release, the gettext maintainer must change this
# according to the libtool documentation, section "Library interface versions".
# Maintainers of other packages that include the intl directory must *not*
# change these values.
LTV_CURRENT=1
LTV_REVISION=1
LTV_AGE=0
.SUFFIXES:
.SUFFIXES: .c .y .o .lo .sin .sed
.c.o:
$(COMPILE) $<
.c.lo:
$(LIBTOOL) --mode=compile $(COMPILE) $<
.y.c:
$(YACC) $(YFLAGS) --output $@ $<
rm -f $*.h
.sin.sed:
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
mv t-$@ $@
INCLUDES = -I.. -I. -I$(top_srcdir)/intl
all: all-@USE_INCLUDED_LIBINTL@
all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
all-no: all-no-@BUILD_INCLUDED_LIBINTL@
all-no-yes: libgnuintl.$la
all-no-no:
libintl.a libgnuintl.a: $(OBJECTS)
rm -f $@
$(AR) cru $@ $(OBJECTS)
$(RANLIB) $@
libintl.la libgnuintl.la: $(OBJECTS)
$(LIBTOOL) --mode=link \
$(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
$(OBJECTS) @LIBICONV@ \
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-rpath $(libdir) \
-no-undefined
libintl.h: libgnuintl.h
cp $(srcdir)/libgnuintl.h libintl.h
charset.alias: config.charset
$(SHELL) $(srcdir)/config.charset '@host@' > t-$@
mv t-$@ $@
check: all
# This installation goal is only used in GNU gettext. Packages which
# only use the library should use install instead.
# We must not install the libintl.h/libintl.a files if we are on a
# system which has the GNU gettext() function in its C library or in a
# separate library.
# If you want to use the one which comes with this version of the
# package, you have to use `configure --with-included-gettext'.
install: install-exec install-data
install-exec: all
if test "$(PACKAGE)" = "gettext" \
&& test '@INTLOBJS@' = '$(GETTOBJS)'; then \
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
$(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
$(LIBTOOL) --mode=install \
$(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
else \
: ; \
fi
if test '@USE_INCLUDED_LIBINTL@' = yes; then \
$(mkinstalldirs) $(DESTDIR)$(libdir); \
temp=$(DESTDIR)$(libdir)/t-charset.alias; \
dest=$(DESTDIR)$(libdir)/charset.alias; \
if test -f $(DESTDIR)$(libdir)/charset.alias; then \
orig=$(DESTDIR)$(libdir)/charset.alias; \
sed -f ref-add.sed $$orig > $$temp; \
$(INSTALL_DATA) $$temp $$dest; \
rm -f $$temp; \
else \
if test @GLIBC21@ = no; then \
orig=charset.alias; \
sed -f ref-add.sed $$orig > $$temp; \
$(INSTALL_DATA) $$temp $$dest; \
rm -f $$temp; \
fi; \
fi; \
$(mkinstalldirs) $(DESTDIR)$(localedir); \
test -f $(DESTDIR)$(localedir)/locale.alias \
&& orig=$(DESTDIR)$(localedir)/locale.alias \
|| orig=$(srcdir)/locale.alias; \
temp=$(DESTDIR)$(localedir)/t-locale.alias; \
dest=$(DESTDIR)$(localedir)/locale.alias; \
sed -f ref-add.sed $$orig > $$temp; \
$(INSTALL_DATA) $$temp $$dest; \
rm -f $$temp; \
else \
: ; \
fi
install-data: all
if test "$(PACKAGE)" = "gettext"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
$(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
$(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
dists="$(DISTFILES.common)"; \
for file in $$dists; do \
$(INSTALL_DATA) $(srcdir)/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
dists="$(DISTFILES.generated)"; \
for file in $$dists; do \
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
$(INSTALL_DATA) $$dir/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
dists="$(DISTFILES.obsolete)"; \
for file in $$dists; do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
fi
# Define this as empty until I found a useful application.
installcheck:
uninstall:
if test "$(PACKAGE)" = "gettext" \
&& test '@INTLOBJS@' = '$(GETTOBJS)'; then \
rm -f $(DESTDIR)$(includedir)/libintl.h; \
$(LIBTOOL) --mode=uninstall \
rm -f $(DESTDIR)$(libdir)/libintl.$la; \
else \
: ; \
fi
if test '@USE_INCLUDED_LIBINTL@' = yes; then \
if test -f $(DESTDIR)$(libdir)/charset.alias; then \
temp=$(DESTDIR)$(libdir)/t-charset.alias; \
dest=$(DESTDIR)$(libdir)/charset.alias; \
sed -f ref-del.sed $$dest > $$temp; \
if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
rm -f $$dest; \
else \
$(INSTALL_DATA) $$temp $$dest; \
fi; \
rm -f $$temp; \
fi; \
if test -f $(DESTDIR)$(localedir)/locale.alias; then \
temp=$(DESTDIR)$(localedir)/t-locale.alias; \
dest=$(DESTDIR)$(localedir)/locale.alias; \
sed -f ref-del.sed $$dest > $$temp; \
if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
rm -f $$dest; \
else \
$(INSTALL_DATA) $$temp $$dest; \
fi; \
rm -f $$temp; \
fi; \
else \
: ; \
fi
if test "$(PACKAGE)" = "gettext"; then \
for file in VERSION ChangeLog $(DISTFILES.common) $(DISTFILES.generated); do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
fi
info dvi:
$(OBJECTS): ../config.h libgnuintl.h
bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
tags: TAGS
TAGS: $(HEADERS) $(SOURCES)
here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
id: ID
ID: $(HEADERS) $(SOURCES)
here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
mostlyclean:
rm -f *.a *.la *.o *.lo core core.*
rm -f libintl.h charset.alias ref-add.sed ref-del.sed
rm -f -r .libs _libs
clean: mostlyclean
distclean: clean
rm -f Makefile ID TAGS
if test "$(PACKAGE)" = gettext; then \
rm -f ChangeLog.inst $(DISTFILES.normal); \
else \
: ; \
fi
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
# GNU gettext needs not contain the file `VERSION' but contains some
# other files which should not be distributed in other packages.
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir: Makefile
if test "$(PACKAGE)" = gettext; then \
additional="$(DISTFILES.gettext)"; \
else \
additional="$(DISTFILES.normal)"; \
fi; \
$(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
ln $$dir/$$file $(distdir) 2> /dev/null \
|| cp -p $$dir/$$file $(distdir); \
done
Makefile: Makefile.in ../config.status
cd .. \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-1
View File
@@ -1 +0,0 @@
GNU gettext library from gettext-0.10.39
-368
View File
@@ -1,368 +0,0 @@
/* Implementation of the bindtextdomain(3) function
Copyright (C) 1995-1998, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
#include "gettextP.h"
#ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc. */
# define __libc_rwlock_define(CLASS, NAME)
# define __libc_rwlock_wrlock(NAME)
# define __libc_rwlock_unlock(NAME)
#endif
/* The internal variables in the standalone libintl.a must have different
names than the internal variables in GNU libc, otherwise programs
using libintl.a cannot be linked statically. */
#if !defined _LIBC
# define _nl_default_dirname _nl_default_dirname__
# define _nl_domain_bindings _nl_domain_bindings__
#endif
/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
#ifndef offsetof
# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
#endif
/* @@ end of prolog @@ */
/* Contains the default location of the message catalogs. */
extern const char _nl_default_dirname[];
/* List with bindings of specific domains. */
extern struct binding *_nl_domain_bindings;
/* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock)
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define BINDTEXTDOMAIN __bindtextdomain
# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset
# ifndef strdup
# define strdup(str) __strdup (str)
# endif
#else
# define BINDTEXTDOMAIN bindtextdomain__
# define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__
#endif
/* Prototypes for local functions. */
static void set_binding_values PARAMS ((const char *domainname,
const char **dirnamep,
const char **codesetp));
/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
to be used for the DOMAINNAME message catalog.
If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
modified, only the current value is returned.
If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
modified nor returned. */
static void
set_binding_values (domainname, dirnamep, codesetp)
const char *domainname;
const char **dirnamep;
const char **codesetp;
{
struct binding *binding;
int modified;
/* Some sanity checks. */
if (domainname == NULL || domainname[0] == '\0')
{
if (dirnamep)
*dirnamep = NULL;
if (codesetp)
*codesetp = NULL;
return;
}
__libc_rwlock_wrlock (_nl_state_lock);
modified = 0;
for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
{
int compare = strcmp (domainname, binding->domainname);
if (compare == 0)
/* We found it! */
break;
if (compare < 0)
{
/* It is not in the list. */
binding = NULL;
break;
}
}
if (binding != NULL)
{
if (dirnamep)
{
const char *dirname = *dirnamep;
if (dirname == NULL)
/* The current binding has be to returned. */
*dirnamep = binding->dirname;
else
{
/* The domain is already bound. If the new value and the old
one are equal we simply do nothing. Otherwise replace the
old binding. */
char *result = binding->dirname;
if (strcmp (dirname, result) != 0)
{
if (strcmp (dirname, _nl_default_dirname) == 0)
result = (char *) _nl_default_dirname;
else
{
#if defined _LIBC || defined HAVE_STRDUP
result = strdup (dirname);
#else
size_t len = strlen (dirname) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result != NULL, 1))
memcpy (result, dirname, len);
#endif
}
if (__builtin_expect (result != NULL, 1))
{
if (binding->dirname != _nl_default_dirname)
free (binding->dirname);
binding->dirname = result;
modified = 1;
}
}
*dirnamep = result;
}
}
if (codesetp)
{
const char *codeset = *codesetp;
if (codeset == NULL)
/* The current binding has be to returned. */
*codesetp = binding->codeset;
else
{
/* The domain is already bound. If the new value and the old
one are equal we simply do nothing. Otherwise replace the
old binding. */
char *result = binding->codeset;
if (result == NULL || strcmp (codeset, result) != 0)
{
#if defined _LIBC || defined HAVE_STRDUP
result = strdup (codeset);
#else
size_t len = strlen (codeset) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result != NULL, 1))
memcpy (result, codeset, len);
#endif
if (__builtin_expect (result != NULL, 1))
{
if (binding->codeset != NULL)
free (binding->codeset);
binding->codeset = result;
binding->codeset_cntr++;
modified = 1;
}
}
*codesetp = result;
}
}
}
else if ((dirnamep == NULL || *dirnamep == NULL)
&& (codesetp == NULL || *codesetp == NULL))
{
/* Simply return the default values. */
if (dirnamep)
*dirnamep = _nl_default_dirname;
if (codesetp)
*codesetp = NULL;
}
else
{
/* We have to create a new binding. */
size_t len = strlen (domainname) + 1;
struct binding *new_binding =
(struct binding *) malloc (offsetof (struct binding, domainname) + len);
if (__builtin_expect (new_binding == NULL, 0))
goto failed;
memcpy (new_binding->domainname, domainname, len);
if (dirnamep)
{
const char *dirname = *dirnamep;
if (dirname == NULL)
/* The default value. */
dirname = _nl_default_dirname;
else
{
if (strcmp (dirname, _nl_default_dirname) == 0)
dirname = _nl_default_dirname;
else
{
char *result;
#if defined _LIBC || defined HAVE_STRDUP
result = strdup (dirname);
if (__builtin_expect (result == NULL, 0))
goto failed_dirname;
#else
size_t len = strlen (dirname) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result == NULL, 0))
goto failed_dirname;
memcpy (result, dirname, len);
#endif
dirname = result;
}
}
*dirnamep = dirname;
new_binding->dirname = (char *) dirname;
}
else
/* The default value. */
new_binding->dirname = (char *) _nl_default_dirname;
new_binding->codeset_cntr = 0;
if (codesetp)
{
const char *codeset = *codesetp;
if (codeset != NULL)
{
char *result;
#if defined _LIBC || defined HAVE_STRDUP
result = strdup (codeset);
if (__builtin_expect (result == NULL, 0))
goto failed_codeset;
#else
size_t len = strlen (codeset) + 1;
result = (char *) malloc (len);
if (__builtin_expect (result == NULL, 0))
goto failed_codeset;
memcpy (result, codeset, len);
#endif
codeset = result;
new_binding->codeset_cntr++;
}
*codesetp = codeset;
new_binding->codeset = (char *) codeset;
}
else
new_binding->codeset = NULL;
/* Now enqueue it. */
if (_nl_domain_bindings == NULL
|| strcmp (domainname, _nl_domain_bindings->domainname) < 0)
{
new_binding->next = _nl_domain_bindings;
_nl_domain_bindings = new_binding;
}
else
{
binding = _nl_domain_bindings;
while (binding->next != NULL
&& strcmp (domainname, binding->next->domainname) > 0)
binding = binding->next;
new_binding->next = binding->next;
binding->next = new_binding;
}
modified = 1;
/* Here we deal with memory allocation failures. */
if (0)
{
failed_codeset:
if (new_binding->dirname != _nl_default_dirname)
free (new_binding->dirname);
failed_dirname:
free (new_binding);
failed:
if (dirnamep)
*dirnamep = NULL;
if (codesetp)
*codesetp = NULL;
}
}
/* If we modified any binding, we flush the caches. */
if (modified)
++_nl_msg_cat_cntr;
__libc_rwlock_unlock (_nl_state_lock);
}
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
char *
BINDTEXTDOMAIN (domainname, dirname)
const char *domainname;
const char *dirname;
{
set_binding_values (domainname, &dirname, NULL);
return (char *) dirname;
}
/* Specify the character encoding in which the messages from the
DOMAINNAME message catalog will be returned. */
char *
BIND_TEXTDOMAIN_CODESET (domainname, codeset)
const char *domainname;
const char *codeset;
{
set_binding_values (domainname, NULL, &codeset);
return (char *) codeset;
}
#ifdef _LIBC
/* Aliases for function names in GNU C Library. */
weak_alias (__bindtextdomain, bindtextdomain);
weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset);
#endif
-438
View File
@@ -1,438 +0,0 @@
#! /bin/sh
# Output a system dependent table of character encoding aliases.
#
# 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 Library 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library 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.
#
# The table consists of lines of the form
# ALIAS CANONICAL
#
# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
# ALIAS is compared in a case sensitive way.
#
# CANONICAL is the GNU canonical name for this character encoding.
# It must be an encoding supported by libiconv. Support by GNU libc is
# also desirable. CANONICAL is case insensitive. Usually an upper case
# MIME charset name is preferred.
# The current list of GNU canonical charset names is as follows.
#
# name used by which systems a MIME name?
# ASCII, ANSI_X3.4-1968 glibc solaris freebsd
# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-3 glibc yes
# ISO-8859-4 osf solaris freebsd yes
# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes
# ISO-8859-6 glibc aix hpux solaris yes
# ISO-8859-7 glibc aix hpux irix osf solaris yes
# ISO-8859-8 glibc aix hpux osf solaris yes
# ISO-8859-9 glibc aix hpux irix osf solaris yes
# ISO-8859-13 glibc
# ISO-8859-15 glibc aix osf solaris freebsd
# KOI8-R glibc solaris freebsd yes
# KOI8-U glibc freebsd yes
# CP437 dos
# CP775 dos
# CP850 aix osf dos
# CP852 dos
# CP855 dos
# CP856 aix
# CP857 dos
# CP861 dos
# CP862 dos
# CP864 dos
# CP865 dos
# CP866 freebsd dos
# CP869 dos
# CP874 win32 dos
# CP922 aix
# CP932 aix win32 dos
# CP943 aix
# CP949 osf win32 dos
# CP950 win32 dos
# CP1046 aix
# CP1124 aix
# CP1129 aix
# CP1250 win32
# CP1251 glibc win32
# CP1252 aix win32
# CP1253 win32
# CP1254 win32
# CP1255 win32
# CP1256 win32
# CP1257 win32
# GB2312 glibc aix hpux irix solaris freebsd yes
# EUC-JP glibc aix hpux irix osf solaris freebsd yes
# EUC-KR glibc aix hpux irix osf solaris freebsd yes
# EUC-TW glibc aix hpux irix osf solaris
# BIG5 glibc aix hpux osf solaris freebsd yes
# BIG5-HKSCS glibc
# GBK aix osf win32 dos
# GB18030 glibc
# SHIFT_JIS hpux osf solaris freebsd yes
# JOHAB glibc win32
# TIS-620 glibc aix hpux osf solaris
# VISCII glibc yes
# HP-ROMAN8 hpux
# HP-ARABIC8 hpux
# HP-GREEK8 hpux
# HP-HEBREW8 hpux
# HP-TURKISH8 hpux
# HP-KANA8 hpux
# DEC-KANJI osf
# DEC-HANYU osf
# UTF-8 glibc aix hpux osf solaris yes
#
# Note: Names which are not marked as being a MIME name should not be used in
# Internet protocols for information interchange (mail, news, etc.).
#
# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
# must understand both names and treat them as equivalent.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
host="$1"
os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
echo "# This file contains a table of character encoding aliases,"
echo "# suitable for operating system '${os}'."
echo "# It was automatically generated from config.charset."
# List of references, updated during installation:
echo "# Packages using this file: "
case "$os" in
linux* | *-gnu*)
# With glibc-2.1 or newer, we don't need any canonicalization,
# because glibc has iconv and both glibc and libiconv support all
# GNU canonical names directly. Therefore, the Makefile does not
# need to install the alias file at all.
# The following applies only to glibc-2.0.x and older libcs.
echo "ISO_646.IRV:1983 ASCII"
;;
aix*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-6 ISO-8859-6"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "IBM-850 CP850"
echo "IBM-856 CP856"
echo "IBM-921 ISO-8859-13"
echo "IBM-922 CP922"
echo "IBM-932 CP932"
echo "IBM-943 CP943"
echo "IBM-1046 CP1046"
echo "IBM-1124 CP1124"
echo "IBM-1129 CP1129"
echo "IBM-1252 CP1252"
echo "IBM-eucCN GB2312"
echo "IBM-eucJP EUC-JP"
echo "IBM-eucKR EUC-KR"
echo "IBM-eucTW EUC-TW"
echo "big5 BIG5"
echo "GBK GBK"
echo "TIS-620 TIS-620"
echo "UTF-8 UTF-8"
;;
hpux*)
echo "iso88591 ISO-8859-1"
echo "iso88592 ISO-8859-2"
echo "iso88595 ISO-8859-5"
echo "iso88596 ISO-8859-6"
echo "iso88597 ISO-8859-7"
echo "iso88598 ISO-8859-8"
echo "iso88599 ISO-8859-9"
echo "iso885915 ISO-8859-15"
echo "roman8 HP-ROMAN8"
echo "arabic8 HP-ARABIC8"
echo "greek8 HP-GREEK8"
echo "hebrew8 HP-HEBREW8"
echo "turkish8 HP-TURKISH8"
echo "kana8 HP-KANA8"
echo "tis620 TIS-620"
echo "big5 BIG5"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
echo "hp15CN GB2312"
#echo "ccdc ?" # what is this?
echo "SJIS SHIFT_JIS"
echo "utf8 UTF-8"
;;
irix*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-9 ISO-8859-9"
echo "eucCN GB2312"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
;;
osf*)
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "cp850 CP850"
echo "big5 BIG5"
echo "dechanyu DEC-HANYU"
echo "dechanzi GB2312"
echo "deckanji DEC-KANJI"
echo "deckorean EUC-KR"
echo "eucJP EUC-JP"
echo "eucKR EUC-KR"
echo "eucTW EUC-TW"
echo "GBK GBK"
echo "KSC5601 CP949"
echo "sdeckanji EUC-JP"
echo "SJIS SHIFT_JIS"
echo "TACTIS TIS-620"
echo "UTF-8 UTF-8"
;;
solaris*)
echo "646 ASCII"
echo "ISO8859-1 ISO-8859-1"
echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-6 ISO-8859-6"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-8 ISO-8859-8"
echo "ISO8859-9 ISO-8859-9"
echo "ISO8859-15 ISO-8859-15"
echo "koi8-r KOI8-R"
echo "BIG5 BIG5"
echo "gb2312 GB2312"
echo "cns11643 EUC-TW"
echo "5601 EUC-KR"
echo "eucJP EUC-JP"
echo "PCK SHIFT_JIS"
echo "TIS620.2533 TIS-620"
#echo "sun_eu_greek ?" # what is this?
echo "UTF-8 UTF-8"
;;
freebsd*)
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
echo "C ASCII"
echo "US-ASCII ASCII"
for l in la_LN lt_LN; do
echo "$l.ASCII ASCII"
done
for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
echo "$l.ISO_8859-1 ISO-8859-1"
echo "$l.DIS_8859-15 ISO-8859-15"
done
for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
echo "$l.ISO_8859-2 ISO-8859-2"
done
for l in la_LN lt_LT; do
echo "$l.ISO_8859-4 ISO-8859-4"
done
for l in ru_RU ru_SU; do
echo "$l.KOI8-R KOI8-R"
echo "$l.ISO_8859-5 ISO-8859-5"
echo "$l.CP866 CP866"
done
echo "uk_UA.KOI8-U KOI8-U"
echo "zh_TW.BIG5 BIG5"
echo "zh_TW.Big5 BIG5"
echo "zh_CN.EUC GB2312"
echo "ja_JP.EUC EUC-JP"
echo "ja_JP.SJIS SHIFT_JIS"
echo "ja_JP.Shift_JIS SHIFT_JIS"
echo "ko_KR.EUC EUC-KR"
;;
beos*)
# BeOS has a single locale, and it has UTF-8 encoding.
echo "* UTF-8"
;;
msdosdjgpp*)
# DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
echo "#"
echo "# The encodings given here may not all be correct."
echo "# If you find that the encoding given for your language and"
echo "# country is not the one your DOS machine actually uses, just"
echo "# correct it in this file, and send a mail to"
echo "# Juan Manuel Guerrero <[email protected]>"
echo "# and Bruno Haible <[email protected]>."
echo "#"
echo "C ASCII"
# ISO-8859-1 languages
echo "ca CP850"
echo "ca_ES CP850"
echo "da CP865" # not CP850 ??
echo "da_DK CP865" # not CP850 ??
echo "de CP850"
echo "de_AT CP850"
echo "de_CH CP850"
echo "de_DE CP850"
echo "en CP850"
echo "en_AU CP850" # not CP437 ??
echo "en_CA CP850"
echo "en_GB CP850"
echo "en_NZ CP437"
echo "en_US CP437"
echo "en_ZA CP850" # not CP437 ??
echo "es CP850"
echo "es_AR CP850"
echo "es_BO CP850"
echo "es_CL CP850"
echo "es_CO CP850"
echo "es_CR CP850"
echo "es_CU CP850"
echo "es_DO CP850"
echo "es_EC CP850"
echo "es_ES CP850"
echo "es_GT CP850"
echo "es_HN CP850"
echo "es_MX CP850"
echo "es_NI CP850"
echo "es_PA CP850"
echo "es_PY CP850"
echo "es_PE CP850"
echo "es_SV CP850"
echo "es_UY CP850"
echo "es_VE CP850"
echo "et CP850"
echo "et_EE CP850"
echo "eu CP850"
echo "eu_ES CP850"
echo "fi CP850"
echo "fi_FI CP850"
echo "fr CP850"
echo "fr_BE CP850"
echo "fr_CA CP850"
echo "fr_CH CP850"
echo "fr_FR CP850"
echo "ga CP850"
echo "ga_IE CP850"
echo "gd CP850"
echo "gd_GB CP850"
echo "gl CP850"
echo "gl_ES CP850"
echo "id CP850" # not CP437 ??
echo "id_ID CP850" # not CP437 ??
echo "is CP861" # not CP850 ??
echo "is_IS CP861" # not CP850 ??
echo "it CP850"
echo "it_CH CP850"
echo "it_IT CP850"
echo "lt CP775"
echo "lt_LT CP775"
echo "lv CP775"
echo "lv_LV CP775"
echo "nb CP865" # not CP850 ??
echo "nb_NO CP865" # not CP850 ??
echo "nl CP850"
echo "nl_BE CP850"
echo "nl_NL CP850"
echo "nn CP865" # not CP850 ??
echo "nn_NO CP865" # not CP850 ??
echo "no CP865" # not CP850 ??
echo "no_NO CP865" # not CP850 ??
echo "pt CP850"
echo "pt_BR CP850"
echo "pt_PT CP850"
echo "sv CP850"
echo "sv_SE CP850"
# ISO-8859-2 languages
echo "cs CP852"
echo "cs_CZ CP852"
echo "hr CP852"
echo "hr_HR CP852"
echo "hu CP852"
echo "hu_HU CP852"
echo "pl CP852"
echo "pl_PL CP852"
echo "ro CP852"
echo "ro_RO CP852"
echo "sk CP852"
echo "sk_SK CP852"
echo "sl CP852"
echo "sl_SI CP852"
echo "sq CP852"
echo "sq_AL CP852"
echo "sr CP852" # CP852 or CP866 or CP855 ??
echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
# ISO-8859-3 languages
echo "mt CP850"
echo "mt_MT CP850"
# ISO-8859-5 languages
echo "be CP866"
echo "be_BE CP866"
echo "bg CP866" # not CP855 ??
echo "bg_BG CP866" # not CP855 ??
echo "mk CP866" # not CP855 ??
echo "mk_MK CP866" # not CP855 ??
echo "ru KOI8-R" # not CP866 ??
echo "ru_RU KOI8-R" # not CP866 ??
# ISO-8859-6 languages
echo "ar CP864"
echo "ar_AE CP864"
echo "ar_DZ CP864"
echo "ar_EG CP864"
echo "ar_IQ CP864"
echo "ar_IR CP864"
echo "ar_JO CP864"
echo "ar_KW CP864"
echo "ar_MA CP864"
echo "ar_OM CP864"
echo "ar_QA CP864"
echo "ar_SA CP864"
echo "ar_SY CP864"
# ISO-8859-7 languages
echo "el CP869"
echo "el_GR CP869"
# ISO-8859-8 languages
echo "he CP862"
echo "he_IL CP862"
# ISO-8859-9 languages
echo "tr CP857"
echo "tr_TR CP857"
# Japanese
echo "ja CP932"
echo "ja_JP CP932"
# Chinese
echo "zh_CN GBK"
echo "zh_TW CP950" # not CP938 ??
# Korean
echo "kr CP949" # not CP934 ??
echo "kr_KR CP949" # not CP934 ??
# Thai
echo "th CP874"
echo "th_TH CP874"
# Other
echo "eo CP850"
echo "eo_EO CP850"
;;
esac
-57
View File
@@ -1,57 +0,0 @@
/* Implementation of the dcgettext(3) function.
Copyright (C) 1995-1999, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DCGETTEXT __dcgettext
# define DCIGETTEXT __dcigettext
#else
# define DCGETTEXT dcgettext__
# define DCIGETTEXT dcigettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */
char *
DCGETTEXT (domainname, msgid, category)
const char *domainname;
const char *msgid;
int category;
{
return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dcgettext, dcgettext);
#endif
-1258
View File
File diff suppressed because it is too large Load Diff
-59
View File
@@ -1,59 +0,0 @@
/* Implementation of the dcngettext(3) function.
Copyright (C) 1995-1999, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DCNGETTEXT __dcngettext
# define DCIGETTEXT __dcigettext
#else
# define DCNGETTEXT dcngettext__
# define DCIGETTEXT dcigettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */
char *
DCNGETTEXT (domainname, msgid1, msgid2, n, category)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
int category;
{
return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dcngettext, dcngettext);
#endif
-58
View File
@@ -1,58 +0,0 @@
/* Implementation of the dgettext(3) function.
Copyright (C) 1995-1997, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DGETTEXT __dgettext
# define DCGETTEXT __dcgettext
#else
# define DGETTEXT dgettext__
# define DCGETTEXT dcgettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog of the current
LC_MESSAGES locale. */
char *
DGETTEXT (domainname, msgid)
const char *domainname;
const char *msgid;
{
return DCGETTEXT (domainname, msgid, LC_MESSAGES);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dgettext, dgettext);
#endif
-60
View File
@@ -1,60 +0,0 @@
/* Implementation of the dngettext(3) function.
Copyright (C) 1995-1997, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <locale.h>
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DNGETTEXT __dngettext
# define DCNGETTEXT __dcngettext
#else
# define DNGETTEXT dngettext__
# define DCNGETTEXT dcngettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog of the current
LC_MESSAGES locale and skip message according to the plural form. */
char *
DNGETTEXT (domainname, msgid1, msgid2, n)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dngettext, dngettext);
#endif
-191
View File
@@ -1,191 +0,0 @@
/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <[email protected]>, 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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "loadinfo.h"
/* On some strange systems still no definition of NULL is found. Sigh! */
#ifndef NULL
# if defined __STDC__ && __STDC__
# define NULL ((void *) 0)
# else
# define NULL 0
# endif
#endif
/* @@ end of prolog @@ */
char *
_nl_find_language (name)
const char *name;
{
while (name[0] != '\0' && name[0] != '_' && name[0] != '@'
&& name[0] != '+' && name[0] != ',')
++name;
return (char *) name;
}
int
_nl_explode_name (name, language, modifier, territory, codeset,
normalized_codeset, special, sponsor, revision)
char *name;
const char **language;
const char **modifier;
const char **territory;
const char **codeset;
const char **normalized_codeset;
const char **special;
const char **sponsor;
const char **revision;
{
enum { undecided, xpg, cen } syntax;
char *cp;
int mask;
*modifier = NULL;
*territory = NULL;
*codeset = NULL;
*normalized_codeset = NULL;
*special = NULL;
*sponsor = NULL;
*revision = NULL;
/* Now we determine the single parts of the locale name. First
look for the language. Termination symbols are `_' and `@' if
we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
mask = 0;
syntax = undecided;
*language = cp = name;
cp = _nl_find_language (*language);
if (*language == cp)
/* This does not make sense: language has to be specified. Use
this entry as it is without exploding. Perhaps it is an alias. */
cp = strchr (*language, '\0');
else if (cp[0] == '_')
{
/* Next is the territory. */
cp[0] = '\0';
*territory = ++cp;
while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
&& cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
++cp;
mask |= TERRITORY;
if (cp[0] == '.')
{
/* Next is the codeset. */
syntax = xpg;
cp[0] = '\0';
*codeset = ++cp;
while (cp[0] != '\0' && cp[0] != '@')
++cp;
mask |= XPG_CODESET;
if (*codeset != cp && (*codeset)[0] != '\0')
{
*normalized_codeset = _nl_normalize_codeset (*codeset,
cp - *codeset);
if (strcmp (*codeset, *normalized_codeset) == 0)
free ((char *) *normalized_codeset);
else
mask |= XPG_NORM_CODESET;
}
}
}
if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
{
/* Next is the modifier. */
syntax = cp[0] == '@' ? xpg : cen;
cp[0] = '\0';
*modifier = ++cp;
while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
&& cp[0] != ',' && cp[0] != '_')
++cp;
mask |= XPG_MODIFIER | CEN_AUDIENCE;
}
if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
{
syntax = cen;
if (cp[0] == '+')
{
/* Next is special application (CEN syntax). */
cp[0] = '\0';
*special = ++cp;
while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
++cp;
mask |= CEN_SPECIAL;
}
if (cp[0] == ',')
{
/* Next is sponsor (CEN syntax). */
cp[0] = '\0';
*sponsor = ++cp;
while (cp[0] != '\0' && cp[0] != '_')
++cp;
mask |= CEN_SPONSOR;
}
if (cp[0] == '_')
{
/* Next is revision (CEN syntax). */
cp[0] = '\0';
*revision = ++cp;
mask |= CEN_REVISION;
}
}
/* For CEN syntax values it might be important to have the
separator character in the file name, not for XPG syntax. */
if (syntax == xpg)
{
if (*territory != NULL && (*territory)[0] == '\0')
mask &= ~TERRITORY;
if (*codeset != NULL && (*codeset)[0] == '\0')
mask &= ~XPG_CODESET;
if (*modifier != NULL && (*modifier)[0] == '\0')
mask &= ~XPG_MODIFIER;
}
return mask;
}
-197
View File
@@ -1,197 +0,0 @@
/* Handle list of needed message catalogs
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
Written by Ulrich Drepper <[email protected]>, 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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* List of already loaded domains. */
static struct loaded_l10nfile *_nl_loaded_domains;
/* Return a data structure describing the message catalog described by
the DOMAINNAME and CATEGORY parameters with respect to the currently
established bindings. */
struct loaded_l10nfile *
internal_function
_nl_find_domain (dirname, locale, domainname, domainbinding)
const char *dirname;
char *locale;
const char *domainname;
struct binding *domainbinding;
{
struct loaded_l10nfile *retval;
const char *language;
const char *modifier;
const char *territory;
const char *codeset;
const char *normalized_codeset;
const char *special;
const char *sponsor;
const char *revision;
const char *alias_value;
int mask;
/* LOCALE can consist of up to four recognized parts for the XPG syntax:
language[_territory[.codeset]][@modifier]
and six parts for the CEN syntax:
language[_territory][+audience][+special][,[sponsor][_revision]]
Beside the first part all of them are allowed to be missing. If
the full specified locale is not found, the less specific one are
looked for. The various parts will be stripped off according to
the following order:
(1) revision
(2) sponsor
(3) special
(4) codeset
(5) normalized codeset
(6) territory
(7) audience/modifier
*/
/* If we have already tested for this locale entry there has to
be one data set in the list of loaded domains. */
retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
strlen (dirname) + 1, 0, locale, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, domainname, 0);
if (retval != NULL)
{
/* We know something about this locale. */
int cnt;
if (retval->decided == 0)
_nl_load_domain (retval, domainbinding);
if (retval->data != NULL)
return retval;
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
_nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL)
break;
}
return cnt >= 0 ? retval : NULL;
/* NOTREACHED */
}
/* See whether the locale value is an alias. If yes its value
*overwrites* the alias name. No test for the original value is
done. */
alias_value = _nl_expand_alias (locale);
if (alias_value != NULL)
{
#if defined _LIBC || defined HAVE_STRDUP
locale = strdup (alias_value);
if (locale == NULL)
return NULL;
#else
size_t len = strlen (alias_value) + 1;
locale = (char *) malloc (len);
if (locale == NULL)
return NULL;
memcpy (locale, alias_value, len);
#endif
}
/* Now we determine the single parts of the locale name. First
look for the language. Termination symbols are `_' and `@' if
we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
mask = _nl_explode_name (locale, &language, &modifier, &territory,
&codeset, &normalized_codeset, &special,
&sponsor, &revision);
/* Create all possible locale entries which might be interested in
generalization. */
retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
strlen (dirname) + 1, mask, language, territory,
codeset, normalized_codeset, modifier, special,
sponsor, revision, domainname, 1);
if (retval == NULL)
/* This means we are out of core. */
return NULL;
if (retval->decided == 0)
_nl_load_domain (retval, domainbinding);
if (retval->data == NULL)
{
int cnt;
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
_nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL)
break;
}
}
/* The room for an alias was dynamically allocated. Free it now. */
if (alias_value != NULL)
free (locale);
/* The space for normalized_codeset is dynamically allocated. Free it. */
if (mask & XPG_NORM_CODESET)
free ((void *) normalized_codeset);
return retval;
}
#ifdef _LIBC
static void __attribute__ ((unused))
free_mem (void)
{
struct loaded_l10nfile *runp = _nl_loaded_domains;
while (runp != NULL)
{
struct loaded_l10nfile *here = runp;
if (runp->data != NULL)
_nl_unload_domain ((struct loaded_domain *) runp->data);
runp = runp->next;
free ((char *) here->filename);
free (here);
}
}
text_set_element (__libc_subfreeres, free_mem);
#endif
-63
View File
@@ -1,63 +0,0 @@
/* Implementation of gettext(3) function.
Copyright (C) 1995, 1997, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef _LIBC
# define __need_NULL
# include <stddef.h>
#else
# include <stdlib.h> /* Just for NULL. */
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define GETTEXT __gettext
# define DCGETTEXT __dcgettext
#else
# define GETTEXT gettext__
# define DCGETTEXT dcgettext__
#endif
/* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
char *
GETTEXT (msgid)
const char *msgid;
{
return DCGETTEXT (NULL, msgid, LC_MESSAGES);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__gettext, gettext);
#endif
-101
View File
@@ -1,101 +0,0 @@
/* Description of GNU message catalog format: general file layout.
Copyright (C) 1995, 1997, 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
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. */
#ifndef _GETTEXT_H
#define _GETTEXT_H 1
#if HAVE_LIMITS_H || _LIBC
# include <limits.h>
#endif
/* @@ end of prolog @@ */
/* The magic number of the GNU message catalog format. */
#define _MAGIC 0x950412de
#define _MAGIC_SWAPPED 0xde120495
/* Revision number of the currently used .mo (binary) file format. */
#define MO_REVISION_NUMBER 0
/* The following contortions are an attempt to use the C preprocessor
to determine an unsigned integral type that is 32 bits wide. An
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
when cross-compiling. */
#if __STDC__
# define UINT_MAX_32_BITS 4294967295U
#else
# define UINT_MAX_32_BITS 0xFFFFFFFF
#endif
/* If UINT_MAX isn't defined, assume it's a 32-bit type.
This should be valid for all systems GNU cares about because
that doesn't include 16-bit systems, and only modern systems
(that certainly have <limits.h>) have 64+-bit integral types. */
#ifndef UINT_MAX
# define UINT_MAX UINT_MAX_32_BITS
#endif
#if UINT_MAX == UINT_MAX_32_BITS
typedef unsigned nls_uint32;
#else
# if USHRT_MAX == UINT_MAX_32_BITS
typedef unsigned short nls_uint32;
# else
# if ULONG_MAX == UINT_MAX_32_BITS
typedef unsigned long nls_uint32;
# else
/* The following line is intended to throw an error. Using #error is
not portable enough. */
"Cannot determine unsigned 32-bit data type."
# endif
# endif
#endif
/* Header for binary .mo file format. */
struct mo_file_header
{
/* The magic number. */
nls_uint32 magic;
/* The revision number of the file format. */
nls_uint32 revision;
/* The number of strings pairs. */
nls_uint32 nstrings;
/* Offset of table with start offsets of original strings. */
nls_uint32 orig_tab_offset;
/* Offset of table with start offsets of translation strings. */
nls_uint32 trans_tab_offset;
/* Size of hashing table. */
nls_uint32 hash_tab_size;
/* Offset of first hashing entry. */
nls_uint32 hash_tab_offset;
};
struct string_desc
{
/* Length of addressed string. */
nls_uint32 length;
/* Offset of string in file. */
nls_uint32 offset;
};
/* @@ begin of epilog @@ */
#endif /* gettext.h */
-251
View File
@@ -1,251 +0,0 @@
/* Header describing internals of libintl library.
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
Written by Ulrich Drepper <[email protected]>, 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. */
#ifndef _GETTEXTP_H
#define _GETTEXTP_H
#include <stddef.h> /* Get size_t. */
#ifdef _LIBC
# include "../iconv/gconv_int.h"
#else
# if HAVE_ICONV
# include <iconv.h>
# endif
#endif
#include "loadinfo.h"
#include "gettext.h" /* Get nls_uint32. */
/* @@ end of prolog @@ */
#ifndef PARAMS
# if __STDC__
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifndef internal_function
# define internal_function
#endif
/* Tell the compiler when a conditional or integer expression is
almost always true or almost always false. */
#ifndef HAVE_BUILTIN_EXPECT
# define __builtin_expect(expr, val) (expr)
#endif
#ifndef W
# define W(flag, data) ((flag) ? SWAP (data) : (data))
#endif
#ifdef _LIBC
# include <byteswap.h>
# define SWAP(i) bswap_32 (i)
#else
static inline nls_uint32
SWAP (i)
nls_uint32 i;
{
return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
}
#endif
/* This is the representation of the expressions to determine the
plural form. */
struct expression
{
int nargs; /* Number of arguments. */
enum operator
{
/* Without arguments: */
var, /* The variable "n". */
num, /* Decimal number. */
/* Unary operators: */
lnot, /* Logical NOT. */
/* Binary operators: */
mult, /* Multiplication. */
divide, /* Division. */
module, /* Module operation. */
plus, /* Addition. */
minus, /* Subtraction. */
less_than, /* Comparison. */
greater_than, /* Comparison. */
less_or_equal, /* Comparison. */
greater_or_equal, /* Comparison. */
equal, /* Comparision for equality. */
not_equal, /* Comparision for inequality. */
land, /* Logical AND. */
lor, /* Logical OR. */
/* Ternary operators: */
qmop /* Question mark operator. */
} operation;
union
{
unsigned long int num; /* Number value for `num'. */
struct expression *args[3]; /* Up to three arguments. */
} val;
};
/* This is the data structure to pass information to the parser and get
the result in a thread-safe way. */
struct parse_args
{
const char *cp;
struct expression *res;
};
/* The representation of an opened message catalog. */
struct loaded_domain
{
const char *data;
int use_mmap;
size_t mmap_size;
int must_swap;
nls_uint32 nstrings;
struct string_desc *orig_tab;
struct string_desc *trans_tab;
nls_uint32 hash_size;
nls_uint32 *hash_tab;
int codeset_cntr;
#ifdef _LIBC
__gconv_t conv;
#else
# if HAVE_ICONV
iconv_t conv;
# endif
#endif
char **conv_tab;
struct expression *plural;
unsigned long int nplurals;
};
/* We want to allocate a string at the end of the struct. But ISO C
doesn't allow zero sized arrays. */
#ifdef __GNUC__
# define ZERO 0
#else
# define ZERO 1
#endif
/* A set of settings bound to a message domain. Used to store settings
from bindtextdomain() and bind_textdomain_codeset(). */
struct binding
{
struct binding *next;
char *dirname;
int codeset_cntr; /* Incremented each time codeset changes. */
char *codeset;
char domainname[ZERO];
};
/* A counter which is incremented each time some previous translations
become invalid.
This variable is part of the external ABI of the GNU libintl. */
extern int _nl_msg_cat_cntr;
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
char *__locale,
const char *__domainname,
struct binding *__domainbinding))
internal_function;
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
struct binding *__domainbinding))
internal_function;
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
internal_function;
const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
struct loaded_domain *__domain,
struct binding *__domainbinding))
internal_function;
void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
internal_function;
char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
struct binding *domainbinding,
const char *msgid, size_t *lengthp))
internal_function;
#ifdef _LIBC
extern char *__gettext PARAMS ((const char *__msgid));
extern char *__dgettext PARAMS ((const char *__domainname,
const char *__msgid));
extern char *__dcgettext PARAMS ((const char *__domainname,
const char *__msgid, int __category));
extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
unsigned long int __n));
extern char *__dngettext PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int n));
extern char *__dcngettext PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n, int __category));
extern char *__dcigettext PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category));
extern char *__textdomain PARAMS ((const char *__domainname));
extern char *__bindtextdomain PARAMS ((const char *__domainname,
const char *__dirname));
extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
const char *__codeset));
#else
extern char *gettext__ PARAMS ((const char *__msgid));
extern char *dgettext__ PARAMS ((const char *__domainname,
const char *__msgid));
extern char *dcgettext__ PARAMS ((const char *__domainname,
const char *__msgid, int __category));
extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2,
unsigned long int __n));
extern char *dngettext__ PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n));
extern char *dcngettext__ PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n, int __category));
extern char *dcigettext__ PARAMS ((const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category));
extern char *textdomain__ PARAMS ((const char *__domainname));
extern char *bindtextdomain__ PARAMS ((const char *__domainname,
const char *__dirname));
extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname,
const char *__codeset));
#endif
#ifdef _LIBC
extern void __gettext_free_exp PARAMS ((struct expression *exp))
internal_function;
extern int __gettextparse PARAMS ((void *arg));
#else
extern void gettext_free_exp__ PARAMS ((struct expression *exp))
internal_function;
extern int gettextparse__ PARAMS ((void *arg));
#endif
/* @@ begin of epilog @@ */
#endif /* gettextP.h */
-58
View File
@@ -1,58 +0,0 @@
/* Description of GNU message catalog format: string hashing function.
Copyright (C) 1995, 1997, 1998, 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
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. */
/* @@ end of prolog @@ */
#ifndef PARAMS
# if __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
/* We assume to have `unsigned long int' value with at least 32 bits. */
#define HASHWORDBITS 32
/* Defines the so called `hashpjw' function by P.J. Weinberger
[see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
1986, 1987 Bell Telephone Laboratories, Inc.] */
static unsigned long int hash_string PARAMS ((const char *__str_param));
static inline unsigned long int
hash_string (str_param)
const char *str_param;
{
unsigned long int hval, g;
const char *str = str_param;
/* Compute the hash value for the given string. */
hval = 0;
while (*str != '\0')
{
hval <<= 4;
hval += (unsigned long int) *str++;
g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
if (g != 0)
{
hval ^= g >> (HASHWORDBITS - 8);
hval ^= g;
}
}
return hval;
}
-165
View File
@@ -1,165 +0,0 @@
/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
Library.
Copyright (C) 1995, 2000, 2001 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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "libgnuintl.h"
#include "gettextP.h"
/* @@ end of prolog @@ */
/* This file redirects the gettext functions (without prefix or suffix) to
those defined in the included GNU gettext library (with "__" suffix).
It is compiled into libintl when the included GNU gettext library is
configured --with-included-gettext.
This redirection works also in the case that the system C library or
the system libintl library contain gettext/textdomain/... functions.
If it didn't, we would need to add preprocessor level redirections to
libgnuintl.h of the following form:
# define gettext gettext__
# define dgettext dgettext__
# define dcgettext dcgettext__
# define ngettext ngettext__
# define dngettext dngettext__
# define dcngettext dcngettext__
# define textdomain textdomain__
# define bindtextdomain bindtextdomain__
# define bind_textdomain_codeset bind_textdomain_codeset__
How does this redirection work? There are two cases.
A. When libintl.a is linked into an executable, it works because
functions defined in the executable always override functions in
the shared libraries.
B. When libintl.so is used, it works because
1. those systems defining gettext/textdomain/... in the C library
(namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are
ELF systems and define these symbols as weak, thus explicitly
letting other shared libraries override it.
2. those systems defining gettext/textdomain/... in a standalone
libintl.so library (namely, Solaris 2.3 and newer) have this
shared library in /usr/lib, and the linker will search /usr/lib
*after* the directory where the GNU gettext library is installed.
A third case, namely when libintl.a is linked into a shared library
whose name is not libintl.so, is not supported. In this case, on
Solaris, when -lintl precedes the linker option for the shared library
containing GNU gettext, the system's gettext would indeed override
the GNU gettext. Anyone doing this kind of stuff must be clever enough
to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker
command line. */
#undef gettext
#undef dgettext
#undef dcgettext
#undef ngettext
#undef dngettext
#undef dcngettext
#undef textdomain
#undef bindtextdomain
#undef bind_textdomain_codeset
char *
gettext (msgid)
const char *msgid;
{
return gettext__ (msgid);
}
char *
dgettext (domainname, msgid)
const char *domainname;
const char *msgid;
{
return dgettext__ (domainname, msgid);
}
char *
dcgettext (domainname, msgid, category)
const char *domainname;
const char *msgid;
int category;
{
return dcgettext__ (domainname, msgid, category);
}
char *
ngettext (msgid1, msgid2, n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return ngettext__ (msgid1, msgid2, n);
}
char *
dngettext (domainname, msgid1, msgid2, n)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return dngettext__ (domainname, msgid1, msgid2, n);
}
char *
dcngettext (domainname, msgid1, msgid2, n, category)
const char *domainname;
const char *msgid1;
const char *msgid2;
unsigned long int n;
int category;
{
return dcngettext__ (domainname, msgid1, msgid2, n, category);
}
char *
textdomain (domainname)
const char *domainname;
{
return textdomain__ (domainname);
}
char *
bindtextdomain (domainname, dirname)
const char *domainname;
const char *dirname;
{
return bindtextdomain__ (domainname, dirname);
}
char *
bind_textdomain_codeset (domainname, codeset)
const char *domainname;
const char *codeset;
{
return bind_textdomain_codeset__ (domainname, codeset);
}
-404
View File
@@ -1,404 +0,0 @@
/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <[email protected]>, 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. */
/* Tell glibc's <string.h> to provide a prototype for stpcpy().
This must come before <config.h> because <config.h> may include
<features.h>, and once <features.h> has been included, it's too late. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <string.h>
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
# endif
#endif
#if defined _LIBC || defined HAVE_ARGZ_H
# include <argz.h>
#endif
#include <ctype.h>
#include <sys/types.h>
#include <stdlib.h>
#include "loadinfo.h"
/* On some strange systems still no definition of NULL is found. Sigh! */
#ifndef NULL
# if defined __STDC__ && __STDC__
# define NULL ((void *) 0)
# else
# define NULL 0
# endif
#endif
/* @@ end of prolog @@ */
#ifdef _LIBC
/* Rename the non ANSI C functions. This is required by the standard
because some ANSI C functions will require linking with this object
file and the name space must not be polluted. */
# ifndef stpcpy
# define stpcpy(dest, src) __stpcpy(dest, src)
# endif
#else
# ifndef HAVE_STPCPY
static char *stpcpy PARAMS ((char *dest, const char *src));
# endif
#endif
/* Define function which are usually not available. */
#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
/* Returns the number of strings in ARGZ. */
static size_t argz_count__ PARAMS ((const char *argz, size_t len));
static size_t
argz_count__ (argz, len)
const char *argz;
size_t len;
{
size_t count = 0;
while (len > 0)
{
size_t part_len = strlen (argz);
argz += part_len + 1;
len -= part_len + 1;
count++;
}
return count;
}
# undef __argz_count
# define __argz_count(argz, len) argz_count__ (argz, len)
#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
except the last into the character SEP. */
static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
static void
argz_stringify__ (argz, len, sep)
char *argz;
size_t len;
int sep;
{
while (len > 0)
{
size_t part_len = strlen (argz);
argz += part_len;
len -= part_len + 1;
if (len > 0)
*argz++ = sep;
}
}
# undef __argz_stringify
# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
const char *entry));
static char *
argz_next__ (argz, argz_len, entry)
char *argz;
size_t argz_len;
const char *entry;
{
if (entry)
{
if (entry < argz + argz_len)
entry = strchr (entry, '\0') + 1;
return entry >= argz + argz_len ? NULL : (char *) entry;
}
else
if (argz_len > 0)
return argz;
else
return 0;
}
# undef __argz_next
# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
/* Return number of bits set in X. */
static int pop PARAMS ((int x));
static inline int
pop (x)
int x;
{
/* We assume that no more than 16 bits are used. */
x = ((x & ~0x5555) >> 1) + (x & 0x5555);
x = ((x & ~0x3333) >> 2) + (x & 0x3333);
x = ((x >> 4) + x) & 0x0f0f;
x = ((x >> 8) + x) & 0xff;
return x;
}
struct loaded_l10nfile *
_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
territory, codeset, normalized_codeset, modifier, special,
sponsor, revision, filename, do_allocate)
struct loaded_l10nfile **l10nfile_list;
const char *dirlist;
size_t dirlist_len;
int mask;
const char *language;
const char *territory;
const char *codeset;
const char *normalized_codeset;
const char *modifier;
const char *special;
const char *sponsor;
const char *revision;
const char *filename;
int do_allocate;
{
char *abs_filename;
struct loaded_l10nfile *last = NULL;
struct loaded_l10nfile *retval;
char *cp;
size_t entries;
int cnt;
/* Allocate room for the full file name. */
abs_filename = (char *) malloc (dirlist_len
+ strlen (language)
+ ((mask & TERRITORY) != 0
? strlen (territory) + 1 : 0)
+ ((mask & XPG_CODESET) != 0
? strlen (codeset) + 1 : 0)
+ ((mask & XPG_NORM_CODESET) != 0
? strlen (normalized_codeset) + 1 : 0)
+ (((mask & XPG_MODIFIER) != 0
|| (mask & CEN_AUDIENCE) != 0)
? strlen (modifier) + 1 : 0)
+ ((mask & CEN_SPECIAL) != 0
? strlen (special) + 1 : 0)
+ (((mask & CEN_SPONSOR) != 0
|| (mask & CEN_REVISION) != 0)
? (1 + ((mask & CEN_SPONSOR) != 0
? strlen (sponsor) + 1 : 0)
+ ((mask & CEN_REVISION) != 0
? strlen (revision) + 1 : 0)) : 0)
+ 1 + strlen (filename) + 1);
if (abs_filename == NULL)
return NULL;
retval = NULL;
last = NULL;
/* Construct file name. */
memcpy (abs_filename, dirlist, dirlist_len);
__argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR);
cp = abs_filename + (dirlist_len - 1);
*cp++ = '/';
cp = stpcpy (cp, language);
if ((mask & TERRITORY) != 0)
{
*cp++ = '_';
cp = stpcpy (cp, territory);
}
if ((mask & XPG_CODESET) != 0)
{
*cp++ = '.';
cp = stpcpy (cp, codeset);
}
if ((mask & XPG_NORM_CODESET) != 0)
{
*cp++ = '.';
cp = stpcpy (cp, normalized_codeset);
}
if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
{
/* This component can be part of both syntaces but has different
leading characters. For CEN we use `+', else `@'. */
*cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
cp = stpcpy (cp, modifier);
}
if ((mask & CEN_SPECIAL) != 0)
{
*cp++ = '+';
cp = stpcpy (cp, special);
}
if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
{
*cp++ = ',';
if ((mask & CEN_SPONSOR) != 0)
cp = stpcpy (cp, sponsor);
if ((mask & CEN_REVISION) != 0)
{
*cp++ = '_';
cp = stpcpy (cp, revision);
}
}
*cp++ = '/';
stpcpy (cp, filename);
/* Look in list of already loaded domains whether it is already
available. */
last = NULL;
for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
if (retval->filename != NULL)
{
int compare = strcmp (retval->filename, abs_filename);
if (compare == 0)
/* We found it! */
break;
if (compare < 0)
{
/* It's not in the list. */
retval = NULL;
break;
}
last = retval;
}
if (retval != NULL || do_allocate == 0)
{
free (abs_filename);
return retval;
}
retval = (struct loaded_l10nfile *)
malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
* (1 << pop (mask))
* sizeof (struct loaded_l10nfile *)));
if (retval == NULL)
return NULL;
retval->filename = abs_filename;
retval->decided = (__argz_count (dirlist, dirlist_len) != 1
|| ((mask & XPG_CODESET) != 0
&& (mask & XPG_NORM_CODESET) != 0));
retval->data = NULL;
if (last == NULL)
{
retval->next = *l10nfile_list;
*l10nfile_list = retval;
}
else
{
retval->next = last->next;
last->next = retval;
}
entries = 0;
/* If the DIRLIST is a real list the RETVAL entry corresponds not to
a real file. So we have to use the DIRLIST separation mechanism
of the inner loop. */
cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
for (; cnt >= 0; --cnt)
if ((cnt & ~mask) == 0
&& ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
&& ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
{
/* Iterate over all elements of the DIRLIST. */
char *dir = NULL;
while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
!= NULL)
retval->successor[entries++]
= _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
language, territory, codeset,
normalized_codeset, modifier, special,
sponsor, revision, filename, 1);
}
retval->successor[entries] = NULL;
return retval;
}
/* Normalize codeset name. There is no standard for the codeset
names. Normalization allows the user to use any of the common
names. The return value is dynamically allocated and has to be
freed by the caller. */
const char *
_nl_normalize_codeset (codeset, name_len)
const char *codeset;
size_t name_len;
{
int len = 0;
int only_digit = 1;
char *retval;
char *wp;
size_t cnt;
for (cnt = 0; cnt < name_len; ++cnt)
if (isalnum (codeset[cnt]))
{
++len;
if (isalpha (codeset[cnt]))
only_digit = 0;
}
retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
if (retval != NULL)
{
if (only_digit)
wp = stpcpy (retval, "iso");
else
wp = retval;
for (cnt = 0; cnt < name_len; ++cnt)
if (isalpha (codeset[cnt]))
*wp++ = tolower (codeset[cnt]);
else if (isdigit (codeset[cnt]))
*wp++ = codeset[cnt];
*wp = '\0';
}
return (const char *) retval;
}
/* @@ begin of epilog @@ */
/* We don't want libintl.a to depend on any other library. So we
avoid the non-standard function stpcpy. In GNU C Library this
function is available, though. Also allow the symbol HAVE_STPCPY
to be defined. */
#if !_LIBC && !HAVE_STPCPY
static char *
stpcpy (dest, src)
char *dest;
const char *src;
{
while ((*dest++ = *src++) != '\0')
/* Do nothing. */ ;
return dest - 1;
}
#endif
-48
View File
@@ -1,48 +0,0 @@
/* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 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
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. */
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
#if ENABLE_NLS
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
#else
# define gettext(Msgid) (Msgid)
# define dgettext(Domainname, Msgid) (Msgid)
# define dcgettext(Domainname, Msgid, Category) (Msgid)
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
# define dngettext(Domainname, Msgid1, Msgid2, N) \
((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
# define textdomain(Domainname) ((char *) (Domainname))
# define bindtextdomain(Domainname, Dirname) ((char *) (Dirname))
# define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset))
#endif
/* For automatical extraction of messages sometimes no real
translation is needed. Instead the string itself is the result. */
#define gettext_noop(Str) (Str)
#endif /* _LIBGETTEXT_H */
-127
View File
@@ -1,127 +0,0 @@
/* Message catalogs for internationalization.
Copyright (C) 1995-1997, 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
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. */
#ifndef _LIBINTL_H
#define _LIBINTL_H 1
#include <locale.h>
/* The LC_MESSAGES locale category is the category used by the functions
gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
On systems that don't define it, use an arbitrary value instead.
On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e.
this file!) and then only defines LC_MESSAGES. To avoid a redefinition
warning, don't define LC_MESSAGES in this case. */
#if !defined LC_MESSAGES && !defined __LOCALE_H
# define LC_MESSAGES 1729
#endif
/* We define an additional symbol to signal that we use the GNU
implementation of gettext. */
#define __USE_GNU_GETTEXT 1
/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
precedence over _conio_gettext. */
#ifdef __DJGPP__
# undef gettext
# define gettext gettext
#endif
#ifndef PARAMS
# if __STDC__ || defined __cplusplus
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
extern char *gettext PARAMS ((const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current
LC_MESSAGES locale. */
extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */
extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
int __category));
/* Similar to `gettext' but select the plural form corresponding to the
number N. */
extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
unsigned long int __n));
/* Similar to `dgettext' but select the plural form corresponding to the
number N. */
extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1,
const char *__msgid2, unsigned long int __n));
/* Similar to `dcgettext' but select the plural form corresponding to the
number N. */
extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1,
const char *__msgid2, unsigned long int __n,
int __category));
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
extern char *textdomain PARAMS ((const char *__domainname));
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
extern char *bindtextdomain PARAMS ((const char *__domainname,
const char *__dirname));
/* Specify the character encoding in which the messages from the
DOMAINNAME message catalog will be returned. */
extern char *bind_textdomain_codeset PARAMS ((const char *__domainname,
const char *__codeset));
/* Optimized version of the functions above. */
#if defined __OPTIMIZED
/* These are macros, but could also be inline functions. */
# define gettext(msgid) \
dgettext (NULL, msgid)
# define dgettext(domainname, msgid) \
dcgettext (domainname, msgid, LC_MESSAGES)
# define ngettext(msgid1, msgid2, n) \
dngettext (NULL, msgid1, msgid2, n)
# define dngettext(domainname, msgid1, msgid2, n) \
dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
#endif /* Optimizing. */
#ifdef __cplusplus
}
#endif
#endif /* libintl.h */
-108
View File
@@ -1,108 +0,0 @@
/* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <[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
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. */
#ifndef _LOADINFO_H
#define _LOADINFO_H 1
#ifndef PARAMS
# if __STDC__
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifndef internal_function
# define internal_function
#endif
/* Tell the compiler when a conditional or integer expression is
almost always true or almost always false. */
#ifndef HAVE_BUILTIN_EXPECT
# define __builtin_expect(expr, val) (expr)
#endif
/* Separator in PATH like lists of pathnames. */
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
/* Win32, OS/2, DOS */
# define PATH_SEPARATOR ';'
#else
/* Unix */
# define PATH_SEPARATOR ':'
#endif
/* Encoding of locale name parts. */
#define CEN_REVISION 1
#define CEN_SPONSOR 2
#define CEN_SPECIAL 4
#define XPG_NORM_CODESET 8
#define XPG_CODESET 16
#define TERRITORY 32
#define CEN_AUDIENCE 64
#define XPG_MODIFIER 128
#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
struct loaded_l10nfile
{
const char *filename;
int decided;
const void *data;
struct loaded_l10nfile *next;
struct loaded_l10nfile *successor[1];
};
/* Normalize codeset name. There is no standard for the codeset
names. Normalization allows the user to use any of the common
names. The return value is dynamically allocated and has to be
freed by the caller. */
extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
size_t name_len));
extern struct loaded_l10nfile *
_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
const char *dirlist, size_t dirlist_len, int mask,
const char *language, const char *territory,
const char *codeset,
const char *normalized_codeset,
const char *modifier, const char *special,
const char *sponsor, const char *revision,
const char *filename, int do_allocate));
extern const char *_nl_expand_alias PARAMS ((const char *name));
/* normalized_codeset is dynamically allocated and has to be freed by
the caller. */
extern int _nl_explode_name PARAMS ((char *name, const char **language,
const char **modifier,
const char **territory,
const char **codeset,
const char **normalized_codeset,
const char **special,
const char **sponsor,
const char **revision));
extern char *_nl_find_language PARAMS ((const char *name));
#endif /* loadinfo.h */
-566
View File
@@ -1,566 +0,0 @@
/* Load needed message catalogs.
Copyright (C) 1995-1999, 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
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. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy().
This must come before <config.h> because <config.h> may include
<features.h>, and once <features.h> has been included, it's too late. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef __GNUC__
# define alloca __builtin_alloca
# define HAVE_ALLOCA 1
#else
# if defined HAVE_ALLOCA_H || defined _LIBC
# include <alloca.h>
# else
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca
char *alloca ();
# endif
# endif
# endif
#endif
#include <stdlib.h>
#include <string.h>
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif
#ifdef _LIBC
# include <langinfo.h>
# include <locale.h>
#endif
#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
|| (defined _LIBC && defined _POSIX_MAPPED_FILES)
# include <sys/mman.h>
# undef HAVE_MMAP
# define HAVE_MMAP 1
#else
# undef HAVE_MMAP
#endif
#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
# include "../locale/localeinfo.h"
#endif
/* @@ end of prolog @@ */
#ifdef _LIBC
/* Rename the non ISO C functions. This is required by the standard
because some ISO C functions will require linking with this object
file and the name space must not be polluted. */
# define open __open
# define close __close
# define read __read
# define mmap __mmap
# define munmap __munmap
#endif
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define PLURAL_PARSE __gettextparse
#else
# define PLURAL_PARSE gettextparse__
#endif
/* For those losing systems which don't have `alloca' we have to add
some additional code emulating it. */
#ifdef HAVE_ALLOCA
# define freea(p) /* nothing */
#else
# define alloca(n) malloc (n)
# define freea(p) free (p)
#endif
/* For systems that distinguish between text and binary I/O.
O_BINARY is usually declared in <fcntl.h>. */
#if !defined O_BINARY && defined _O_BINARY
/* For MSC-compatible compilers. */
# define O_BINARY _O_BINARY
# define O_TEXT _O_TEXT
#endif
#ifdef __BEOS__
/* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
# undef O_BINARY
# undef O_TEXT
#endif
/* On reasonable systems, binary I/O is the default. */
#ifndef O_BINARY
# define O_BINARY 0
#endif
/* We need a sign, whether a new catalog was loaded, which can be associated
with all translations. This is important if the translations are
cached by one of GCC's features. */
int _nl_msg_cat_cntr;
#if (defined __GNUC__ && !defined __APPLE_CC__) \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
/* These structs are the constant expression for the germanic plural
form determination. It represents the expression "n != 1". */
static const struct expression plvar =
{
.nargs = 0,
.operation = var,
};
static const struct expression plone =
{
.nargs = 0,
.operation = num,
.val =
{
.num = 1
}
};
static struct expression germanic_plural =
{
.nargs = 2,
.operation = not_equal,
.val =
{
.args =
{
[0] = (struct expression *) &plvar,
[1] = (struct expression *) &plone
}
}
};
# define INIT_GERMANIC_PLURAL()
#else
/* For compilers without support for ISO C 99 struct/union initializers:
Initialization at run-time. */
static struct expression plvar;
static struct expression plone;
static struct expression germanic_plural;
static void
init_germanic_plural ()
{
if (plone.val.num == 0)
{
plvar.nargs = 0;
plvar.operation = var;
plone.nargs = 0;
plone.operation = num;
plone.val.num = 1;
germanic_plural.nargs = 2;
germanic_plural.operation = not_equal;
germanic_plural.val.args[0] = &plvar;
germanic_plural.val.args[1] = &plone;
}
}
# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
#endif
/* Initialize the codeset dependent parts of an opened message catalog.
Return the header entry. */
const char *
internal_function
_nl_init_domain_conv (domain_file, domain, domainbinding)
struct loaded_l10nfile *domain_file;
struct loaded_domain *domain;
struct binding *domainbinding;
{
/* Find out about the character set the file is encoded with.
This can be found (in textual form) in the entry "". If this
entry does not exist or if this does not contain the `charset='
information, we will assume the charset matches the one the
current locale and we don't have to perform any conversion. */
char *nullentry;
size_t nullentrylen;
/* Preinitialize fields, to avoid recursion during _nl_find_msg. */
domain->codeset_cntr =
(domainbinding != NULL ? domainbinding->codeset_cntr : 0);
#ifdef _LIBC
domain->conv = (__gconv_t) -1;
#else
# if HAVE_ICONV
domain->conv = (iconv_t) -1;
# endif
#endif
domain->conv_tab = NULL;
/* Get the header entry. */
nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
if (nullentry != NULL)
{
#if defined _LIBC || HAVE_ICONV
const char *charsetstr;
charsetstr = strstr (nullentry, "charset=");
if (charsetstr != NULL)
{
size_t len;
char *charset;
const char *outcharset;
charsetstr += strlen ("charset=");
len = strcspn (charsetstr, " \t\n");
charset = (char *) alloca (len + 1);
# if defined _LIBC || HAVE_MEMPCPY
*((char *) mempcpy (charset, charsetstr, len)) = '\0';
# else
memcpy (charset, charsetstr, len);
charset[len] = '\0';
# endif
/* The output charset should normally be determined by the
locale. But sometimes the locale is not used or not correctly
set up, so we provide a possibility for the user to override
this. Moreover, the value specified through
bind_textdomain_codeset overrides both. */
if (domainbinding != NULL && domainbinding->codeset != NULL)
outcharset = domainbinding->codeset;
else
{
outcharset = getenv ("OUTPUT_CHARSET");
if (outcharset == NULL || outcharset[0] == '\0')
{
# ifdef _LIBC
outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
# else
# if HAVE_ICONV
extern const char *locale_charset (void);
outcharset = locale_charset ();
# endif
# endif
}
}
# ifdef _LIBC
/* We always want to use transliteration. */
outcharset = norm_add_slashes (outcharset, "TRANSLIT");
charset = norm_add_slashes (charset, NULL);
if (__gconv_open (outcharset, charset, &domain->conv,
GCONV_AVOID_NOCONV)
!= __GCONV_OK)
domain->conv = (__gconv_t) -1;
# else
# if HAVE_ICONV
/* When using GNU libiconv, we want to use transliteration. */
# if _LIBICONV_VERSION >= 0x0105
len = strlen (outcharset);
{
char *tmp = (char *) alloca (len + 10 + 1);
memcpy (tmp, outcharset, len);
memcpy (tmp + len, "//TRANSLIT", 10 + 1);
outcharset = tmp;
}
# endif
domain->conv = iconv_open (outcharset, charset);
# if _LIBICONV_VERSION >= 0x0105
freea (outcharset);
# endif
# endif
# endif
freea (charset);
}
#endif /* _LIBC || HAVE_ICONV */
}
return nullentry;
}
/* Frees the codeset dependent parts of an opened message catalog. */
void
internal_function
_nl_free_domain_conv (domain)
struct loaded_domain *domain;
{
if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
free (domain->conv_tab);
#ifdef _LIBC
if (domain->conv != (__gconv_t) -1)
__gconv_close (domain->conv);
#else
# if HAVE_ICONV
if (domain->conv != (iconv_t) -1)
iconv_close (domain->conv);
# endif
#endif
}
/* Load the message catalogs specified by FILENAME. If it is no valid
message catalog do nothing. */
void
internal_function
_nl_load_domain (domain_file, domainbinding)
struct loaded_l10nfile *domain_file;
struct binding *domainbinding;
{
int fd;
size_t size;
#ifdef _LIBC
struct stat64 st;
#else
struct stat st;
#endif
struct mo_file_header *data = (struct mo_file_header *) -1;
int use_mmap = 0;
struct loaded_domain *domain;
const char *nullentry;
domain_file->decided = 1;
domain_file->data = NULL;
/* Note that it would be useless to store domainbinding in domain_file
because domainbinding might be == NULL now but != NULL later (after
a call to bind_textdomain_codeset). */
/* If the record does not represent a valid locale the FILENAME
might be NULL. This can happen when according to the given
specification the locale file name is different for XPG and CEN
syntax. */
if (domain_file->filename == NULL)
return;
/* Try to open the addressed file. */
fd = open (domain_file->filename, O_RDONLY | O_BINARY);
if (fd == -1)
return;
/* We must know about the size of the file. */
if (
#ifdef _LIBC
__builtin_expect (fstat64 (fd, &st) != 0, 0)
#else
__builtin_expect (fstat (fd, &st) != 0, 0)
#endif
|| __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
|| __builtin_expect (size < sizeof (struct mo_file_header), 0))
{
/* Something went wrong. */
close (fd);
return;
}
#ifdef HAVE_MMAP
/* Now we are ready to load the file. If mmap() is available we try
this first. If not available or it failed we try to load it. */
data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
MAP_PRIVATE, fd, 0);
if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
{
/* mmap() call was successful. */
close (fd);
use_mmap = 1;
}
#endif
/* If the data is not yet available (i.e. mmap'ed) we try to load
it manually. */
if (data == (struct mo_file_header *) -1)
{
size_t to_read;
char *read_ptr;
data = (struct mo_file_header *) malloc (size);
if (data == NULL)
return;
to_read = size;
read_ptr = (char *) data;
do
{
long int nb = (long int) read (fd, read_ptr, to_read);
if (nb <= 0)
{
#ifdef EINTR
if (nb == -1 && errno == EINTR)
continue;
#endif
close (fd);
return;
}
read_ptr += nb;
to_read -= nb;
}
while (to_read > 0);
close (fd);
}
/* Using the magic number we can test whether it really is a message
catalog file. */
if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED,
0))
{
/* The magic number is wrong: not a message catalog file. */
#ifdef HAVE_MMAP
if (use_mmap)
munmap ((caddr_t) data, size);
else
#endif
free (data);
return;
}
domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
if (domain == NULL)
return;
domain_file->data = domain;
domain->data = (char *) data;
domain->use_mmap = use_mmap;
domain->mmap_size = size;
domain->must_swap = data->magic != _MAGIC;
/* Fill in the information about the available tables. */
switch (W (domain->must_swap, data->revision))
{
case 0:
domain->nstrings = W (domain->must_swap, data->nstrings);
domain->orig_tab = (struct string_desc *)
((char *) data + W (domain->must_swap, data->orig_tab_offset));
domain->trans_tab = (struct string_desc *)
((char *) data + W (domain->must_swap, data->trans_tab_offset));
domain->hash_size = W (domain->must_swap, data->hash_tab_size);
domain->hash_tab = (nls_uint32 *)
((char *) data + W (domain->must_swap, data->hash_tab_offset));
break;
default:
/* This is an invalid revision. */
#ifdef HAVE_MMAP
if (use_mmap)
munmap ((caddr_t) data, size);
else
#endif
free (data);
free (domain);
domain_file->data = NULL;
return;
}
/* Now initialize the character set converter from the character set
the file is encoded with (found in the header entry) to the domain's
specified character set or the locale's character set. */
nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
/* Also look for a plural specification. */
if (nullentry != NULL)
{
const char *plural;
const char *nplurals;
plural = strstr (nullentry, "plural=");
nplurals = strstr (nullentry, "nplurals=");
if (plural == NULL || nplurals == NULL)
goto no_plural;
else
{
/* First get the number. */
char *endp;
unsigned long int n;
struct parse_args args;
nplurals += 9;
while (*nplurals != '\0' && isspace (*nplurals))
++nplurals;
#if defined HAVE_STRTOUL || defined _LIBC
n = strtoul (nplurals, &endp, 10);
#else
for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
n = n * 10 + (*endp - '0');
#endif
domain->nplurals = n;
if (nplurals == endp)
goto no_plural;
/* Due to the restrictions bison imposes onto the interface of the
scanner function we have to put the input string and the result
passed up from the parser into the same structure which address
is passed down to the parser. */
plural += 7;
args.cp = plural;
if (PLURAL_PARSE (&args) != 0)
goto no_plural;
domain->plural = args.res;
}
}
else
{
/* By default we are using the Germanic form: singular form only
for `one', the plural form otherwise. Yes, this is also what
English is using since English is a Germanic language. */
no_plural:
INIT_GERMANIC_PLURAL ();
domain->plural = &germanic_plural;
domain->nplurals = 2;
}
}
#ifdef _LIBC
void
internal_function
_nl_unload_domain (domain)
struct loaded_domain *domain;
{
if (domain->plural != &germanic_plural)
__gettext_free_exp (domain->plural);
_nl_free_domain_conv (domain);
# ifdef _POSIX_MAPPED_FILES
if (domain->use_mmap)
munmap ((caddr_t) domain->data, domain->mmap_size);
else
# endif /* _POSIX_MAPPED_FILES */
free ((void *) domain->data);
free (domain);
}
#endif
-271
View File
@@ -1,271 +0,0 @@
/* Determine a canonical name for the current locale's character encoding.
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 Library 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
Library General Public License for more details.
You should have received a copy of the GNU Library 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. */
/* Written by Bruno Haible <[email protected]>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STDDEF_H
# include <stddef.h>
#endif
#include <stdio.h>
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if defined _WIN32 || defined __WIN32__
# undef WIN32 /* avoid warning on mingw32 */
# define WIN32
#endif
#ifndef WIN32
# if HAVE_LANGINFO_CODESET
# include <langinfo.h>
# else
# if HAVE_SETLOCALE
# include <locale.h>
# endif
# endif
#else /* WIN32 */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif
#ifndef DIRECTORY_SEPARATOR
# define DIRECTORY_SEPARATOR '/'
#endif
#ifndef ISSLASH
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
#endif
/* The following static variable is declared 'volatile' to avoid a
possible multithread problem in the function get_charset_aliases. If we
are running in a threaded environment, and if two threads initialize
'charset_aliases' simultaneously, both will produce the same value,
and everything will be ok if the two assignments to 'charset_aliases'
are atomic. But I don't know what will happen if the two assignments mix. */
#if __STDC__ != 1
# define volatile /* empty */
#endif
/* Pointer to the contents of the charset.alias file, if it has already been
read, else NULL. Its format is:
ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
static const char * volatile charset_aliases;
/* Return a pointer to the contents of the charset.alias file. */
static const char *
get_charset_aliases ()
{
const char *cp;
cp = charset_aliases;
if (cp == NULL)
{
#ifndef WIN32
FILE *fp;
const char *dir = LIBDIR;
const char *base = "charset.alias";
char *file_name;
/* Concatenate dir and base into freshly allocated file_name. */
{
size_t dir_len = strlen (dir);
size_t base_len = strlen (base);
int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
if (file_name != NULL)
{
memcpy (file_name, dir, dir_len);
if (add_slash)
file_name[dir_len] = DIRECTORY_SEPARATOR;
memcpy (file_name + dir_len + add_slash, base, base_len + 1);
}
}
if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
/* Out of memory or file not found, treat it as empty. */
cp = "";
else
{
/* Parse the file's contents. */
int c;
char buf1[50+1];
char buf2[50+1];
char *res_ptr = NULL;
size_t res_size = 0;
size_t l1, l2;
for (;;)
{
c = getc (fp);
if (c == EOF)
break;
if (c == '\n' || c == ' ' || c == '\t')
continue;
if (c == '#')
{
/* Skip comment, to end of line. */
do
c = getc (fp);
while (!(c == EOF || c == '\n'));
if (c == EOF)
break;
continue;
}
ungetc (c, fp);
if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
break;
l1 = strlen (buf1);
l2 = strlen (buf2);
if (res_size == 0)
{
res_size = l1 + 1 + l2 + 1;
res_ptr = malloc (res_size + 1);
}
else
{
res_size += l1 + 1 + l2 + 1;
res_ptr = realloc (res_ptr, res_size + 1);
}
if (res_ptr == NULL)
{
/* Out of memory. */
res_size = 0;
break;
}
strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
strcpy (res_ptr + res_size - (l2 + 1), buf2);
}
fclose (fp);
if (res_size == 0)
cp = "";
else
{
*(res_ptr + res_size) = '\0';
cp = res_ptr;
}
}
if (file_name != NULL)
free (file_name);
#else /* WIN32 */
/* To avoid the troubles of installing a separate file in the same
directory as the DLL and of retrieving the DLL's directory at
runtime, simply inline the aliases here. */
cp = "CP936" "\0" "GBK" "\0"
"CP1361" "\0" "JOHAB" "\0";
#endif
charset_aliases = cp;
}
return cp;
}
/* Determine the current locale's character encoding, and canonicalize it
into one of the canonical names listed in config.charset.
The result must not be freed; it is statically allocated.
If the canonical name cannot be determined, the result is a non-canonical
name. */
#ifdef STATIC
STATIC
#endif
const char *
locale_charset ()
{
const char *codeset;
const char *aliases;
#ifndef WIN32
# if HAVE_LANGINFO_CODESET
/* Most systems support nl_langinfo (CODESET) nowadays. */
codeset = nl_langinfo (CODESET);
# else
/* On old systems which lack it, use setlocale or getenv. */
const char *locale = NULL;
/* But most old systems don't have a complete set of locales. Some
(like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
use setlocale here; it would return "C" when it doesn't support the
locale name the user has set. */
# if HAVE_SETLOCALE && 0
locale = setlocale (LC_CTYPE, NULL);
# endif
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
if (locale == NULL || locale[0] == '\0')
locale = getenv ("LANG");
}
}
/* On some old systems, one used to set locale = "iso8859_1". On others,
you set it to "language_COUNTRY.charset". In any case, we resolve it
through the charset.alias file. */
codeset = locale;
# endif
#else /* WIN32 */
static char buf[2 + 10 + 1];
/* Win32 has a function returning the locale's codepage as a number. */
sprintf (buf, "CP%u", GetACP ());
codeset = buf;
#endif
if (codeset == NULL)
/* The canonical name cannot be determined. */
codeset = "";
/* Resolve alias. */
for (aliases = get_charset_aliases ();
*aliases != '\0';
aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
if (strcmp (codeset, aliases) == 0
|| (aliases[0] == '*' && aliases[1] == '\0'))
{
codeset = aliases + strlen (aliases) + 1;
break;
}
return codeset;
}
-77
View File
@@ -1,77 +0,0 @@
# Locale name alias data base.
# Copyright (C) 1996,1997,1998,1999,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
# 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.
# The format of this file is the same as for the corresponding file of
# the X Window System, which normally can be found in
# /usr/lib/X11/locale/locale.alias
# A single line contains two fields: an alias and a substitution value.
# All entries are case independent.
# Note: This file is far from being complete. If you have a value for
# your own site which you think might be useful for others too, share
# it with the rest of us. Send it using the `glibcbug' script to
# [email protected].
# Packages using this file:
bokmal no_NO.ISO-8859-1
bokmål no_NO.ISO-8859-1
catalan ca_ES.ISO-8859-1
croatian hr_HR.ISO-8859-2
czech cs_CZ.ISO-8859-2
danish da_DK.ISO-8859-1
dansk da_DK.ISO-8859-1
deutsch de_DE.ISO-8859-1
dutch nl_NL.ISO-8859-1
eesti et_EE.ISO-8859-1
estonian et_EE.ISO-8859-1
finnish fi_FI.ISO-8859-1
français fr_FR.ISO-8859-1
french fr_FR.ISO-8859-1
galego gl_ES.ISO-8859-1
galician gl_ES.ISO-8859-1
german de_DE.ISO-8859-1
greek el_GR.ISO-8859-7
hebrew iw_IL.ISO-8859-8
hrvatski hr_HR.ISO-8859-2
hungarian hu_HU.ISO-8859-2
icelandic is_IS.ISO-8859-1
italian it_IT.ISO-8859-1
japanese ja_JP.eucJP
japanese.euc ja_JP.eucJP
ja_JP ja_JP.eucJP
ja_JP.ujis ja_JP.eucJP
japanese.sjis ja_JP.SJIS
korean ko_KR.eucKR
korean.euc ko_KR.eucKR
ko_KR ko_KR.eucKR
lithuanian lt_LT.ISO-8859-13
nb_NO no_NO.ISO-8859-1
nb_NO.ISO-8859-1 no_NO.ISO-8859-1
norwegian no_NO.ISO-8859-1
nynorsk nn_NO.ISO-8859-1
polish pl_PL.ISO-8859-2
portuguese pt_PT.ISO-8859-1
romanian ro_RO.ISO-8859-2
russian ru_RU.ISO-8859-5
slovak sk_SK.ISO-8859-2
slovene sl_SI.ISO-8859-2
slovenian sl_SI.ISO-8859-2
spanish es_ES.ISO-8859-1
swedish sv_SE.ISO-8859-1
thai th_TH.TIS-620
turkish tr_TR.ISO-8859-9
-403
View File
@@ -1,403 +0,0 @@
/* Handle aliases for locale names.
Copyright (C) 1995-1999, 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
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. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy().
This must come before <config.h> because <config.h> may include
<features.h>, and once <features.h> has been included, it's too late. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <sys/types.h>
#ifdef __GNUC__
# define alloca __builtin_alloca
# define HAVE_ALLOCA 1
#else
# if defined HAVE_ALLOCA_H || defined _LIBC
# include <alloca.h>
# else
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca
char *alloca ();
# endif
# endif
# endif
#endif
#include <stdlib.h>
#include <string.h>
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
# endif
#endif
#include "gettextP.h"
/* @@ end of prolog @@ */
#ifdef _LIBC
/* Rename the non ANSI C functions. This is required by the standard
because some ANSI C functions will require linking with this object
file and the name space must not be polluted. */
# define strcasecmp __strcasecmp
# ifndef mempcpy
# define mempcpy __mempcpy
# endif
# define HAVE_MEMPCPY 1
/* We need locking here since we can be called from different places. */
# include <bits/libc-lock.h>
__libc_lock_define_initialized (static, lock);
#endif
#ifndef internal_function
# define internal_function
#endif
/* For those losing systems which don't have `alloca' we have to add
some additional code emulating it. */
#ifdef HAVE_ALLOCA
# define freea(p) /* nothing */
#else
# define alloca(n) malloc (n)
# define freea(p) free (p)
#endif
#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED
# undef fgets
# define fgets(buf, len, s) fgets_unlocked (buf, len, s)
#endif
#if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED
# undef feof
# define feof(s) feof_unlocked (s)
#endif
struct alias_map
{
const char *alias;
const char *value;
};
static char *string_space;
static size_t string_space_act;
static size_t string_space_max;
static struct alias_map *map;
static size_t nmap;
static size_t maxmap;
/* Prototypes for local functions. */
static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
internal_function;
static int extend_alias_table PARAMS ((void));
static int alias_compare PARAMS ((const struct alias_map *map1,
const struct alias_map *map2));
const char *
_nl_expand_alias (name)
const char *name;
{
static const char *locale_alias_path = LOCALE_ALIAS_PATH;
struct alias_map *retval;
const char *result = NULL;
size_t added;
#ifdef _LIBC
__libc_lock_lock (lock);
#endif
do
{
struct alias_map item;
item.alias = name;
if (nmap > 0)
retval = (struct alias_map *) bsearch (&item, map, nmap,
sizeof (struct alias_map),
(int (*) PARAMS ((const void *,
const void *))
) alias_compare);
else
retval = NULL;
/* We really found an alias. Return the value. */
if (retval != NULL)
{
result = retval->value;
break;
}
/* Perhaps we can find another alias file. */
added = 0;
while (added == 0 && locale_alias_path[0] != '\0')
{
const char *start;
while (locale_alias_path[0] == PATH_SEPARATOR)
++locale_alias_path;
start = locale_alias_path;
while (locale_alias_path[0] != '\0'
&& locale_alias_path[0] != PATH_SEPARATOR)
++locale_alias_path;
if (start < locale_alias_path)
added = read_alias_file (start, locale_alias_path - start);
}
}
while (added != 0);
#ifdef _LIBC
__libc_lock_unlock (lock);
#endif
return result;
}
static size_t
internal_function
read_alias_file (fname, fname_len)
const char *fname;
int fname_len;
{
FILE *fp;
char *full_fname;
size_t added;
static const char aliasfile[] = "/locale.alias";
full_fname = (char *) alloca (fname_len + sizeof aliasfile);
#ifdef HAVE_MEMPCPY
mempcpy (mempcpy (full_fname, fname, fname_len),
aliasfile, sizeof aliasfile);
#else
memcpy (full_fname, fname, fname_len);
memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
#endif
fp = fopen (full_fname, "r");
freea (full_fname);
if (fp == NULL)
return 0;
added = 0;
while (!feof (fp))
{
/* It is a reasonable approach to use a fix buffer here because
a) we are only interested in the first two fields
b) these fields must be usable as file names and so must not
be that long
*/
char buf[BUFSIZ];
char *alias;
char *value;
char *cp;
if (fgets (buf, sizeof buf, fp) == NULL)
/* EOF reached. */
break;
/* Possibly not the whole line fits into the buffer. Ignore
the rest of the line. */
if (strchr (buf, '\n') == NULL)
{
char altbuf[BUFSIZ];
do
if (fgets (altbuf, sizeof altbuf, fp) == NULL)
/* Make sure the inner loop will be left. The outer loop
will exit at the `feof' test. */
break;
while (strchr (altbuf, '\n') == NULL);
}
cp = buf;
/* Ignore leading white space. */
while (isspace (cp[0]))
++cp;
/* A leading '#' signals a comment line. */
if (cp[0] != '\0' && cp[0] != '#')
{
alias = cp++;
while (cp[0] != '\0' && !isspace (cp[0]))
++cp;
/* Terminate alias name. */
if (cp[0] != '\0')
*cp++ = '\0';
/* Now look for the beginning of the value. */
while (isspace (cp[0]))
++cp;
if (cp[0] != '\0')
{
size_t alias_len;
size_t value_len;
value = cp++;
while (cp[0] != '\0' && !isspace (cp[0]))
++cp;
/* Terminate value. */
if (cp[0] == '\n')
{
/* This has to be done to make the following test
for the end of line possible. We are looking for
the terminating '\n' which do not overwrite here. */
*cp++ = '\0';
*cp = '\n';
}
else if (cp[0] != '\0')
*cp++ = '\0';
if (nmap >= maxmap)
if (__builtin_expect (extend_alias_table (), 0))
return added;
alias_len = strlen (alias) + 1;
value_len = strlen (value) + 1;
if (string_space_act + alias_len + value_len > string_space_max)
{
/* Increase size of memory pool. */
size_t new_size = (string_space_max
+ (alias_len + value_len > 1024
? alias_len + value_len : 1024));
char *new_pool = (char *) realloc (string_space, new_size);
if (new_pool == NULL)
return added;
if (__builtin_expect (string_space != new_pool, 0))
{
size_t i;
for (i = 0; i < nmap; i++)
{
map[i].alias += new_pool - string_space;
map[i].value += new_pool - string_space;
}
}
string_space = new_pool;
string_space_max = new_size;
}
map[nmap].alias = memcpy (&string_space[string_space_act],
alias, alias_len);
string_space_act += alias_len;
map[nmap].value = memcpy (&string_space[string_space_act],
value, value_len);
string_space_act += value_len;
++nmap;
++added;
}
}
}
/* Should we test for ferror()? I think we have to silently ignore
errors. --drepper */
fclose (fp);
if (added > 0)
qsort (map, nmap, sizeof (struct alias_map),
(int (*) PARAMS ((const void *, const void *))) alias_compare);
return added;
}
static int
extend_alias_table ()
{
size_t new_size;
struct alias_map *new_map;
new_size = maxmap == 0 ? 100 : 2 * maxmap;
new_map = (struct alias_map *) realloc (map, (new_size
* sizeof (struct alias_map)));
if (new_map == NULL)
/* Simply don't extend: we don't have any more core. */
return -1;
map = new_map;
maxmap = new_size;
return 0;
}
#ifdef _LIBC
static void __attribute__ ((unused))
free_mem (void)
{
if (string_space != NULL)
free (string_space);
if (map != NULL)
free (map);
}
text_set_element (__libc_subfreeres, free_mem);
#endif
static int
alias_compare (map1, map2)
const struct alias_map *map1;
const struct alias_map *map2;
{
#if defined _LIBC || defined HAVE_STRCASECMP
return strcasecmp (map1->alias, map2->alias);
#else
const unsigned char *p1 = (const unsigned char *) map1->alias;
const unsigned char *p2 = (const unsigned char *) map2->alias;
unsigned char c1, c2;
if (p1 == p2)
return 0;
do
{
/* I know this seems to be odd but the tolower() function in
some systems libc cannot handle nonalpha characters. */
c1 = isupper (*p1) ? tolower (*p1) : *p1;
c2 = isupper (*p2) ? tolower (*p2) : *p2;
if (c1 == '\0')
break;
++p1;
++p2;
}
while (c1 == c2);
return c1 - c2;
#endif
}
-67
View File
@@ -1,67 +0,0 @@
/* Implementation of ngettext(3) function.
Copyright (C) 1995, 1997, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef _LIBC
# define __need_NULL
# include <stddef.h>
#else
# include <stdlib.h> /* Just for NULL. */
#endif
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
#include <locale.h>
/* @@ end of prolog @@ */
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define NGETTEXT __ngettext
# define DCNGETTEXT __dcngettext
#else
# define NGETTEXT ngettext__
# define DCNGETTEXT dcngettext__
#endif
/* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
char *
NGETTEXT (msgid1, msgid2, n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{
return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__ngettext, ngettext);
#endif
-1325
View File
File diff suppressed because it is too large Load Diff
-412
View File
@@ -1,412 +0,0 @@
%{
/* Expression parsing for plural form selection.
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
Written by Ulrich Drepper <[email protected]>, 2000.
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. */
/* The bison generated parser uses alloca. AIX 3 forces us to put this
declaration at the beginning of the file. The declaration in bison's
skeleton file comes too late. This must come before <config.h>
because <config.h> may include arbitrary system headers. */
#if defined _AIX && !defined __GNUC__
#pragma alloca
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h>
#include "gettextP.h"
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define FREE_EXPRESSION __gettext_free_exp
#else
# define FREE_EXPRESSION gettext_free_exp__
# define __gettextparse gettextparse__
#endif
#define YYLEX_PARAM &((struct parse_args *) arg)->cp
#define YYPARSE_PARAM arg
%}
%pure_parser
%expect 10
%union {
unsigned long int num;
enum operator op;
struct expression *exp;
}
%{
/* Prototypes for local functions. */
static struct expression *new_exp PARAMS ((int nargs, enum operator op,
struct expression * const *args));
static inline struct expression *new_exp_0 PARAMS ((enum operator op));
static inline struct expression *new_exp_1 PARAMS ((enum operator op,
struct expression *right));
static struct expression *new_exp_2 PARAMS ((enum operator op,
struct expression *left,
struct expression *right));
static inline struct expression *new_exp_3 PARAMS ((enum operator op,
struct expression *bexp,
struct expression *tbranch,
struct expression *fbranch));
static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
static void yyerror PARAMS ((const char *str));
/* Allocation of expressions. */
static struct expression *
new_exp (nargs, op, args)
int nargs;
enum operator op;
struct expression * const *args;
{
int i;
struct expression *newp;
/* If any of the argument could not be malloc'ed, just return NULL. */
for (i = nargs - 1; i >= 0; i--)
if (args[i] == NULL)
goto fail;
/* Allocate a new expression. */
newp = (struct expression *) malloc (sizeof (*newp));
if (newp != NULL)
{
newp->nargs = nargs;
newp->operation = op;
for (i = nargs - 1; i >= 0; i--)
newp->val.args[i] = args[i];
return newp;
}
fail:
for (i = nargs - 1; i >= 0; i--)
FREE_EXPRESSION (args[i]);
return NULL;
}
static inline struct expression *
new_exp_0 (op)
enum operator op;
{
return new_exp (0, op, NULL);
}
static inline struct expression *
new_exp_1 (op, right)
enum operator op;
struct expression *right;
{
struct expression *args[1];
args[0] = right;
return new_exp (1, op, args);
}
static struct expression *
new_exp_2 (op, left, right)
enum operator op;
struct expression *left;
struct expression *right;
{
struct expression *args[2];
args[0] = left;
args[1] = right;
return new_exp (2, op, args);
}
static inline struct expression *
new_exp_3 (op, bexp, tbranch, fbranch)
enum operator op;
struct expression *bexp;
struct expression *tbranch;
struct expression *fbranch;
{
struct expression *args[3];
args[0] = bexp;
args[1] = tbranch;
args[2] = fbranch;
return new_exp (3, op, args);
}
%}
/* This declares that all operators have the same associativity and the
precedence order as in C. See [Harbison, Steele: C, A Reference Manual].
There is no unary minus and no bitwise operators.
Operators with the same syntactic behaviour have been merged into a single
token, to save space in the array generated by bison. */
%right '?' /* ? */
%left '|' /* || */
%left '&' /* && */
%left EQUOP2 /* == != */
%left CMPOP2 /* < > <= >= */
%left ADDOP2 /* + - */
%left MULOP2 /* * / % */
%right '!' /* ! */
%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
%token <num> NUMBER
%type <exp> exp
%%
start: exp
{
if ($1 == NULL)
YYABORT;
((struct parse_args *) arg)->res = $1;
}
;
exp: exp '?' exp ':' exp
{
$$ = new_exp_3 (qmop, $1, $3, $5);
}
| exp '|' exp
{
$$ = new_exp_2 (lor, $1, $3);
}
| exp '&' exp
{
$$ = new_exp_2 (land, $1, $3);
}
| exp EQUOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| exp CMPOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| exp ADDOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| exp MULOP2 exp
{
$$ = new_exp_2 ($2, $1, $3);
}
| '!' exp
{
$$ = new_exp_1 (lnot, $2);
}
| 'n'
{
$$ = new_exp_0 (var);
}
| NUMBER
{
if (($$ = new_exp_0 (num)) != NULL)
$$->val.num = $1;
}
| '(' exp ')'
{
$$ = $2;
}
;
%%
void
internal_function
FREE_EXPRESSION (exp)
struct expression *exp;
{
if (exp == NULL)
return;
/* Handle the recursive case. */
switch (exp->nargs)
{
case 3:
FREE_EXPRESSION (exp->val.args[2]);
/* FALLTHROUGH */
case 2:
FREE_EXPRESSION (exp->val.args[1]);
/* FALLTHROUGH */
case 1:
FREE_EXPRESSION (exp->val.args[0]);
/* FALLTHROUGH */
default:
break;
}
free (exp);
}
static int
yylex (lval, pexp)
YYSTYPE *lval;
const char **pexp;
{
const char *exp = *pexp;
int result;
while (1)
{
if (exp[0] == '\0')
{
*pexp = exp;
return YYEOF;
}
if (exp[0] != ' ' && exp[0] != '\t')
break;
++exp;
}
result = *exp++;
switch (result)
{
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
{
unsigned long int n = result - '0';
while (exp[0] >= '0' && exp[0] <= '9')
{
n *= 10;
n += exp[0] - '0';
++exp;
}
lval->num = n;
result = NUMBER;
}
break;
case '=':
if (exp[0] == '=')
{
++exp;
lval->op = equal;
result = EQUOP2;
}
else
result = YYERRCODE;
break;
case '!':
if (exp[0] == '=')
{
++exp;
lval->op = not_equal;
result = EQUOP2;
}
break;
case '&':
case '|':
if (exp[0] == result)
++exp;
else
result = YYERRCODE;
break;
case '<':
if (exp[0] == '=')
{
++exp;
lval->op = less_or_equal;
}
else
lval->op = less_than;
result = CMPOP2;
break;
case '>':
if (exp[0] == '=')
{
++exp;
lval->op = greater_or_equal;
}
else
lval->op = greater_than;
result = CMPOP2;
break;
case '*':
lval->op = mult;
result = MULOP2;
break;
case '/':
lval->op = divide;
result = MULOP2;
break;
case '%':
lval->op = module;
result = MULOP2;
break;
case '+':
lval->op = plus;
result = ADDOP2;
break;
case '-':
lval->op = minus;
result = ADDOP2;
break;
case 'n':
case '?':
case ':':
case '(':
case ')':
/* Nothing, just return the character. */
break;
case ';':
case '\n':
case '\0':
/* Be safe and let the user call this function again. */
--exp;
result = YYEOF;
break;
default:
result = YYERRCODE;
#if YYDEBUG != 0
--exp;
#endif
break;
}
*pexp = exp;
return result;
}
static void
yyerror (str)
const char *str;
{
/* Do nothing. We don't print error messages here. */
}
-31
View File
@@ -1,31 +0,0 @@
# Add this package to a list of references stored in a text file.
#
# Copyright (C) 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library 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.
#
# Written by Bruno Haible <[email protected]>.
#
/^# Packages using this file: / {
s/# Packages using this file://
ta
:a
s/ @PACKAGE@ / @PACKAGE@ /
tb
s/ $/ @PACKAGE@ /
:b
s/^/# Packages using this file:/
}
-26
View File
@@ -1,26 +0,0 @@
# Remove this package from a list of references stored in a text file.
#
# Copyright (C) 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library 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.
#
# Written by Bruno Haible <[email protected]>.
#
/^# Packages using this file: / {
s/# Packages using this file://
s/ @PACKAGE@ / /
s/^/# Packages using this file:/
}
-141
View File
@@ -1,141 +0,0 @@
/* Implementation of the textdomain(3) function.
Copyright (C) 1995-1998, 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
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. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h>
#include <string.h>
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
#include "gettextP.h"
#ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc. */
# define __libc_rwlock_define(CLASS, NAME)
# define __libc_rwlock_wrlock(NAME)
# define __libc_rwlock_unlock(NAME)
#endif
/* The internal variables in the standalone libintl.a must have different
names than the internal variables in GNU libc, otherwise programs
using libintl.a cannot be linked statically. */
#if !defined _LIBC
# define _nl_default_default_domain _nl_default_default_domain__
# define _nl_current_default_domain _nl_current_default_domain__
#endif
/* @@ end of prolog @@ */
/* Name of the default text domain. */
extern const char _nl_default_default_domain[];
/* Default text domain in which entries for gettext(3) are to be found. */
extern const char *_nl_current_default_domain;
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define TEXTDOMAIN __textdomain
# ifndef strdup
# define strdup(str) __strdup (str)
# endif
#else
# define TEXTDOMAIN textdomain__
#endif
/* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock)
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
char *
TEXTDOMAIN (domainname)
const char *domainname;
{
char *new_domain;
char *old_domain;
/* A NULL pointer requests the current setting. */
if (domainname == NULL)
return (char *) _nl_current_default_domain;
__libc_rwlock_wrlock (_nl_state_lock);
old_domain = (char *) _nl_current_default_domain;
/* If domain name is the null string set to default domain "messages". */
if (domainname[0] == '\0'
|| strcmp (domainname, _nl_default_default_domain) == 0)
{
_nl_current_default_domain = _nl_default_default_domain;
new_domain = (char *) _nl_current_default_domain;
}
else if (strcmp (domainname, old_domain) == 0)
/* This can happen and people will use it to signal that some
environment variable changed. */
new_domain = old_domain;
else
{
/* If the following malloc fails `_nl_current_default_domain'
will be NULL. This value will be returned and so signals we
are out of core. */
#if defined _LIBC || defined HAVE_STRDUP
new_domain = strdup (domainname);
#else
size_t len = strlen (domainname) + 1;
new_domain = (char *) malloc (len);
if (new_domain != NULL)
memcpy (new_domain, domainname, len);
#endif
if (new_domain != NULL)
_nl_current_default_domain = new_domain;
}
/* We use this possibility to signal a change of the loaded catalogs
since this is most likely the case and there is no other easy we
to do it. Do it only when the call was successful. */
if (new_domain != NULL)
{
++_nl_msg_cat_cntr;
if (old_domain != new_domain && old_domain != _nl_default_default_domain)
free (old_domain);
}
__libc_rwlock_unlock (_nl_state_lock);
return new_domain;
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__textdomain, textdomain);
#endif
+2 -1
View File
@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = ansi2knr
noinst_LIBRARIES = libbison.a
INCLUDES = -I.. -I$(srcdir) -I../intl
INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/src -I../intl
# Heck, we are still using an old version of Automake which does not
# understand LIBOBJ additions using $objext...
@@ -14,6 +14,7 @@ EXTRA_DIST = malloc.c realloc.c
libbison_a_SOURCES = \
error.c error.h \
getopt.h getopt.c getopt1.c \
hash.h hash.c \
obstack.h obstack.c \
quote.h quote.c quotearg.h quotearg.c \
xalloc.h xmalloc.c xstrdup.c
-400
View File
@@ -1,400 +0,0 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 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.
# 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.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AT_TESTPATH = @AT_TESTPATH@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
AUTOMAKE_OPTIONS = ansi2knr
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_LIBADD = @LIBOBJS@
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
DEFS = @DEFS@ -I. -I$(srcdir) -I..
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)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = Makefile.am Makefile.in 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/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
SOURCES = $(libbison_a_SOURCES)
OBJECTS = $(libbison_a_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(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 $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
mostlyclean-krextra:
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:
distclean-kr:
maintainer-clean-kr:
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
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
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
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
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
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
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
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
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
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
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
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)
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; 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)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = lib
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 -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
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
install-data-am:
install-data: install-data-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
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log 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
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-krextra distclean-kr distclean-tags \
distclean-depend distclean-generic clean-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."
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
# 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:
+293
View File
@@ -0,0 +1,293 @@
/* hash.c -- hash table maintenance
Copyright (C) 1995 Free Software Foundation, Inc.
Written by Greg McGary <[email protected]>
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.
*/
#include <config.h>
#include <stdio.h>
#include "hash.h"
#include "error.h"
#include "system.h"
#include "xalloc.h"
static void hash_rehash __P((struct hash_table* ht));
static unsigned long round_up_2 __P((unsigned long rough));
/* Implement double hashing with open addressing. The table size is
always a power of two. The secondary (`increment') hash function
is forced to return an odd-value, in order to be relatively prime
to the table size. This guarantees that the increment can
potentially hit every slot in the table during collision
resolution. */
void *hash_deleted_item = &hash_deleted_item;
/* Force the table size to be a power of two, possibly rounding up the
given size. */
void
hash_init (struct hash_table* ht, unsigned long size,
hash_func_t hash_1, hash_func_t hash_2, hash_cmp_func_t hash_cmp)
{
ht->ht_size = round_up_2 (size);
if (ht->ht_size > (128 * 1024)) /* prevent size from getting out of hand */
ht->ht_size /= 2;
ht->ht_vec = (void**) XCALLOC (struct token *, ht->ht_size);
if (ht->ht_vec == 0)
error (1, 0, _("can't allocate %ld bytes for hash table: memory exhausted"),
ht->ht_size * sizeof(struct token *));
ht->ht_capacity = ht->ht_size * 15 / 16; /* 93.75% loading factor */
ht->ht_fill = 0;
ht->ht_collisions = 0;
ht->ht_lookups = 0;
ht->ht_rehashes = 0;
ht->ht_hash_1 = hash_1;
ht->ht_hash_2 = hash_2;
ht->ht_compare = hash_cmp;
}
/* Load an array of items into `ht'. */
void
hash_load (struct hash_table* ht, void *item_table, unsigned long cardinality, unsigned long size)
{
char *items = (char *) item_table;
while (cardinality--)
{
hash_insert (ht, items);
items += size;
}
}
/* Returns the address of the table slot matching `key'. If `key' is
not found, return the address of an empty slot suitable for
inserting `key'. The caller is responsible for incrementing
ht_fill on insertion. */
void **
hash_find_slot (struct hash_table* ht, void const *key)
{
void **slot;
void **deleted_slot = 0;
unsigned int hash_2 = 0;
unsigned int hash_1 = (*ht->ht_hash_1) (key);
ht->ht_lookups++;
for (;;)
{
hash_1 %= ht->ht_size;
slot = &ht->ht_vec[hash_1];
if (*slot == 0)
return slot;
if (*slot == hash_deleted_item)
{
if (deleted_slot == 0)
deleted_slot = slot;
}
else
{
if (key == *slot)
return slot;
if ((*ht->ht_compare) (key, *slot) == 0)
return slot;
ht->ht_collisions++;
}
if (!hash_2)
hash_2 = (*ht->ht_hash_2) (key) | 1;
hash_1 += hash_2;
}
}
void *
hash_find_item (struct hash_table* ht, void const *key)
{
void **slot = hash_find_slot (ht, key);
return ((HASH_VACANT (*slot)) ? 0 : *slot);
}
void *
hash_insert (struct hash_table* ht, void *item)
{
void **slot = hash_find_slot (ht, item);
return hash_insert_at (ht, item, slot);
}
void *
hash_insert_at (struct hash_table* ht, void *item, void const *slot)
{
void *old_item = *(void **) slot;
if (HASH_VACANT (old_item))
{
ht->ht_fill++;
old_item = item;
}
*(void const **) slot = item;
if (ht->ht_fill >= ht->ht_capacity)
hash_rehash (ht);
return old_item;
}
void *
hash_delete (struct hash_table* ht, void const *item)
{
void **slot = hash_find_slot (ht, item);
return hash_delete_at (ht, slot);
}
void *
hash_delete_at (struct hash_table* ht, void const *slot)
{
void *item = *(void **) slot;
if (!HASH_VACANT (item))
{
*(void const **) slot = hash_deleted_item;
ht->ht_fill--;
return item;
}
else
return 0;
}
void
hash_free_items (struct hash_table* ht)
{
void **vec = ht->ht_vec;
void **end = &vec[ht->ht_size];
for (; vec < end; vec++)
{
void *item = *vec;
if (!HASH_VACANT (item))
free (item);
*vec = 0;
}
ht->ht_fill = 0;
}
void
hash_delete_items (struct hash_table* ht)
{
void **vec = ht->ht_vec;
void **end = &vec[ht->ht_size];
for (; vec < end; vec++)
*vec = 0;
ht->ht_fill = 0;
ht->ht_collisions = 0;
ht->ht_lookups = 0;
ht->ht_rehashes = 0;
}
void
hash_free (struct hash_table* ht, int free_items)
{
if (free_items)
hash_free_items (ht);
free (ht->ht_vec);
ht->ht_vec = 0;
ht->ht_fill = 0;
ht->ht_capacity = 0;
}
void
hash_map (struct hash_table *ht, hash_map_func_t map)
{
void **slot;
void **end = &ht->ht_vec[ht->ht_size];
for (slot = ht->ht_vec; slot < end; slot++)
{
if (!HASH_VACANT (*slot))
(*map) (*slot);
}
}
/* Double the size of the hash table in the event of overflow... */
static void
hash_rehash (struct hash_table* ht)
{
unsigned long old_ht_size = ht->ht_size;
void **old_vec = ht->ht_vec;
void **ovp;
void **slot;
ht->ht_size *= 2;
ht->ht_rehashes++;
ht->ht_capacity = ht->ht_size - (ht->ht_size >> 4);
ht->ht_vec = (void **) XCALLOC (struct token *, ht->ht_size);
for (ovp = old_vec; ovp < &old_vec[old_ht_size]; ovp++)
{
if (*ovp == 0)
continue;
slot = hash_find_slot (ht, *ovp);
*slot = *ovp;
}
free (old_vec);
}
void
hash_print_stats (struct hash_table *ht, FILE *out_FILE)
{
fprintf (out_FILE, _("Load=%ld/%ld=%.0f%%, "), ht->ht_fill, ht->ht_size,
100.0 * (double) ht->ht_fill / (double) ht->ht_size);
fprintf (out_FILE, _("Rehash=%d, "), ht->ht_rehashes);
fprintf (out_FILE, _("Collisions=%ld/%ld=%.0f%%"), ht->ht_collisions, ht->ht_lookups,
(ht->ht_lookups
? (100.0 * (double) ht->ht_collisions / (double) ht->ht_lookups)
: 0));
}
/* Dump all items into a NULL-terminated vector. Use the
user-supplied vector, or malloc one. */
void**
hash_dump (struct hash_table *ht, void **vector_0, qsort_cmp_t compare)
{
void **vector;
void **slot;
void **end = &ht->ht_vec[ht->ht_size];
if (vector_0 == 0)
vector_0 = XMALLOC (void *, ht->ht_fill + 1);
vector = vector_0;
for (slot = ht->ht_vec; slot < end; slot++)
if (!HASH_VACANT (*slot))
*vector++ = *slot;
*vector = 0;
if (compare)
qsort (vector_0, ht->ht_fill, sizeof (void *), compare);
return vector_0;
}
/* Round a given number up to the nearest power of 2. */
static unsigned long
round_up_2 (unsigned long rough)
{
int round;
round = 1;
while (rough)
{
round <<= 1;
rough >>= 1;
}
return round;
}
+144
View File
@@ -0,0 +1,144 @@
/* hash.h -- decls for hash table
Copyright (C) 1995 Free Software Foundation, Inc.
Written by Greg McGary <[email protected]>
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. */
#ifndef _hash_h_
#define _hash_h_
#include <stdio.h>
typedef unsigned long (*hash_func_t) __P((void const *key));
typedef int (*hash_cmp_func_t) __P((void const *x, void const *y));
typedef void (*hash_map_func_t) __P((void const *item));
struct hash_table
{
void **ht_vec;
unsigned long ht_size; /* total number of slots (power of 2) */
unsigned long ht_capacity; /* usable slots, limited by loading-factor */
unsigned long ht_fill; /* items in table */
unsigned long ht_collisions; /* # of failed calls to comparison function */
unsigned long ht_lookups; /* # of queries */
unsigned int ht_rehashes; /* # of times we've expanded table */
hash_func_t ht_hash_1; /* primary hash function */
hash_func_t ht_hash_2; /* secondary hash function */
hash_cmp_func_t ht_compare; /* comparison function */
};
typedef int (*qsort_cmp_t) __P((void const *, void const *));
void hash_init __P((struct hash_table *ht, unsigned long size,
hash_func_t hash_1, hash_func_t hash_2, hash_cmp_func_t hash_cmp));
void hash_load __P((struct hash_table *ht, void *item_table,
unsigned long cardinality, unsigned long size));
void **hash_find_slot __P((struct hash_table *ht, void const *key));
void *hash_find_item __P((struct hash_table *ht, void const *key));
void *hash_insert __P((struct hash_table *ht, void *item));
void *hash_insert_at __P((struct hash_table *ht, void *item, void const *slot));
void *hash_delete __P((struct hash_table *ht, void const *item));
void *hash_delete_at __P((struct hash_table *ht, void const *slot));
void hash_delete_items __P((struct hash_table *ht));
void hash_free_items __P((struct hash_table *ht));
void hash_free __P((struct hash_table *ht, int free_items));
void hash_map __P((struct hash_table *ht, hash_map_func_t map));
void hash_print_stats __P((struct hash_table *ht, FILE *out_FILE));
void **hash_dump __P((struct hash_table *ht, void **vector_0, qsort_cmp_t compare));
extern void *hash_deleted_item;
#define HASH_VACANT(item) ((item) == 0 || (void *) (item) == hash_deleted_item)
/* hash and comparison macros for string keys. */
#define STRING_HASH_1(_key_, _result_) { \
unsigned char const *kk = (unsigned char const *) (_key_) - 1; \
while (*++kk) \
(_result_) += (*kk << (kk[1] & 0xf)); \
} while (0)
#define return_STRING_HASH_1(_key_) do { \
unsigned long result = 0; \
STRING_HASH_1 ((_key_), result); \
return result; \
} while (0)
#define STRING_HASH_2(_key_, _result_) do { \
unsigned char const *kk = (unsigned char const *) (_key_) - 1; \
while (*++kk) \
(_result_) += (*kk << (kk[1] & 0x7)); \
} while (0)
#define return_STRING_HASH_2(_key_) do { \
unsigned long result = 0; \
STRING_HASH_2 ((_key_), result); \
return result; \
} while (0)
#define STRING_COMPARE(_x_, _y_, _result_) do { \
unsigned char const *xx = (unsigned char const *) (_x_) - 1; \
unsigned char const *yy = (unsigned char const *) (_y_) - 1; \
do { \
if (*++xx == '\0') { \
yy++; \
break; \
} \
} while (*xx == *++yy); \
(_result_) = *xx - *yy; \
} while (0)
#define return_STRING_COMPARE(_x_, _y_) do { \
int result; \
STRING_COMPARE (_x_, _y_, result); \
return result; \
} while (0)
/* hash and comparison macros for integer keys. */
#define INTEGER_HASH_1(_key_, _result_) do { \
(_result_) += ((unsigned long)(_key_)); \
} while (0)
#define return_INTEGER_HASH_1(_key_) do { \
unsigned long result = 0; \
INTEGER_HASH_1 ((_key_), result); \
return result; \
} while (0)
#define INTEGER_HASH_2(_key_, _result_) do { \
(_result_) += ~((unsigned long)(_key_)); \
} while (0)
#define return_INTEGER_HASH_2(_key_) do { \
unsigned long result = 0; \
INTEGER_HASH_2 ((_key_), result); \
return result; \
} while (0)
#define INTEGER_COMPARE(_x_, _y_, _result_) do { \
(_result_) = _x_ - _y_; \
} while (0)
#define return_INTEGER_COMPARE(_x_, _y_) do { \
int result; \
INTEGER_COMPARE (_x_, _y_, result); \
return result; \
} while (0)
/* hash and comparison macros for address keys. */
#define ADDRESS_HASH_1(_key_, _result_) INTEGER_HASH_1 (((unsigned long)(_key_)) >> 3, (_result_))
#define ADDRESS_HASH_2(_key_, _result_) INTEGER_HASH_2 (((unsigned long)(_key_)) >> 3, (_result_))
#define ADDRESS_COMPARE(_x_, _y_, _result_) INTEGER_COMPARE ((_x_), (_y_), (_result_))
#define return_ADDRESS_HASH_1(_key_) return_INTEGER_HASH_1 (((unsigned long)(_key_)) >> 3)
#define return_ADDRESS_HASH_2(_key_) return_INTEGER_HASH_2 (((unsigned long)(_key_)) >> 3)
#define return_ADDRESS_COMPARE(_x_, _y_) return_INTEGER_COMPARE ((_x_), (_y_))
#endif /* not _hash_h_ */
+10 -1
View File
@@ -63,6 +63,11 @@
#endif
#if HAVE_WCHAR_H
/* BSD/OS 4.1 wchar.h requires FILE and struct tm to be declared. */
# include <stdio.h>
# include <time.h>
# include <wchar.h>
#endif
@@ -73,8 +78,12 @@
# undef MB_CUR_MAX
# define MB_CUR_MAX 1
# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0)
# define mbsinit(ps) 1
# define iswprint(wc) ISPRINT ((unsigned char) (wc))
# undef HAVE_MBSINIT
#endif
#if !defined mbsinit && !HAVE_MBSINIT
# define mbsinit(ps) 1
#endif
#ifndef iswprint
+2 -1
View File
@@ -1,8 +1,8 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
EXTRA_DIST = \
atconfig.m4 \
c-bs-a.m4 \
codeset.m4 \
dmalloc.m4 \
error.m4 \
gettext.m4 \
glibc21.m4 \
@@ -11,6 +11,7 @@ isc-posix.m4 \
lcmessage.m4 \
m4.m4 \
malloc.m4 \
mbrtowc.m4 \
mbstate_t.m4 \
prereq.m4 \
progtest.m4 \
-205
View File
@@ -1,205 +0,0 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 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.
# 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.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AT_TESTPATH = @AT_TESTPATH@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
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
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in
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
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = m4
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 -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
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
install-data-am:
install-data: install-data-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
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-generic clean-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."
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
# 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:
-22
View File
@@ -1,22 +0,0 @@
## ----------------------##
## Prepare for testing. ##
## ----------------------##
# serial 2
# Single argument says where are built sources to test, relative to the
# built test directory. Maybe omitted if the same (flat distribution).
AC_DEFUN([AT_CONFIG],
[AT_TESTPATH=ifelse([$1], [], [.], [$1])
AC_SUBST([AT_TESTPATH])
# Try to be compatible with both Autoconf 2.13 and 2.50.
if test -z "$ECHO_C$ECHO_N$ECHO_T"; then
ECHO_C="$ac_c"
ECHO_N="$ac_n"
ECHO_T="$ac_t"
AC_SUBST([ECHO_C])
AC_SUBST([ECHO_N])
AC_SUBST([ECHO_T])
fi
])
+22
View File
@@ -0,0 +1,22 @@
## ----------------------------------- ##
## Check if --with-dmalloc was given. ##
## From Franc,ois Pinard ##
## ----------------------------------- ##
# serial 1
AC_DEFUN([AM_WITH_DMALLOC],
[AC_MSG_CHECKING([if malloc debugging is wanted])
AC_ARG_WITH(dmalloc,
[ --with-dmalloc use dmalloc, as in
http://www.dmalloc.com/dmalloc.tar.gz],
[if test "$withval" = yes; then
AC_MSG_RESULT(yes)
AC_DEFINE(WITH_DMALLOC,1,
[Define if using the dmalloc debugging malloc package])
LIBS="$LIBS -ldmalloc"
LDFLAGS="$LDFLAGS -g"
else
AC_MSG_RESULT(no)
fi], [AC_MSG_RESULT(no)])
])
+18
View File
@@ -0,0 +1,18 @@
#serial 4
dnl From Paul Eggert
AC_DEFUN([jm_FUNC_MBRTOWC],
[
AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
jm_cv_func_mbrtowc,
[AC_TRY_LINK(
[#include <wchar.h>],
[mbstate_t state; return ! (sizeof state && mbrtowc);],
jm_cv_func_mbrtowc=yes,
jm_cv_func_mbrtowc=no)])
if test $jm_cv_func_mbrtowc = yes; then
AC_DEFINE(HAVE_MBRTOWC, 1,
[Define to 1 if mbrtowc and mbstate_t are properly declared.])
fi
])
+4 -3
View File
@@ -1,12 +1,13 @@
#serial 1
#serial 2
dnl These are the prerequisite macros for files in the lib/
dnl directories of Bison.
AC_DEFUN([jm_PREREQ_QUOTEARG],
[
AC_CHECK_FUNCS(isascii iswprint mbrtowc)
AC_CHECK_HEADERS(limits.h stdlib.h string.h wchar.h wctype.h)
AC_CHECK_FUNCS(isascii iswprint mbsinit)
jm_FUNC_MBRTOWC
AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h)
AC_HEADER_STDC
AC_C_BACKSLASH_A
AC_MBSTATE_T
-283
View File
@@ -1,283 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# 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
# 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.
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)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
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'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
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 0.3 - GNU automake"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
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
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
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_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
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_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 |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
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
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
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
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
-40
View File
@@ -1,40 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <[email protected]>
# Created: 1993-05-16
# Public domain
# $Id$
errstatus=0
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here
+1
View File
@@ -4,3 +4,4 @@ Makefile.in
POTFILES
bison.pot
stamp-cat-id
*.gmo
+10
View File
@@ -1,3 +1,13 @@
2001-10-04 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.40.
* cat-id-tbl.c: Remove file.
2001-09-27 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.40.
* cat-id-tbl.c: Remove file.
2001-08-03 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.39.
-1
View File
@@ -13,7 +13,6 @@ src/print.c
src/print_graph.c
src/reader.c
src/reduce.c
src/vcg.c
lib/error.c
lib/getopt.c
BIN
View File
Binary file not shown.
+161 -216
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-08-15 10:53+0200\n"
"POT-Creation-Date: 2001-10-02 18:30+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"
@@ -18,90 +18,90 @@ msgstr ""
msgid "too many states (max %d)"
msgstr ""
#: lib/error.c:117 src/complain.c:100
#: lib/error.c:117 src/complain.c:96
msgid "Unknown system error"
msgstr ""
#: src/complain.c:154
#: src/complain.c:150
msgid "warning: "
msgstr ""
#: src/complain.c:242 src/complain.c:283
#: src/complain.c:238 src/complain.c:279
#, fuzzy
msgid "fatal error: "
msgstr "fataler Fehler: %s\n"
#: src/conflicts.c:49
#: src/conflicts.c:48
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr "Konflikt in Zustand %d zwischen Regel %d and Token %s wurde %s.\n"
#: src/conflicts.c:115 src/conflicts.c:138
#: src/conflicts.c:114 src/conflicts.c:137
msgid "reduce"
msgstr "durch Reduzierung gelöst"
#: src/conflicts.c:121 src/conflicts.c:134
#: src/conflicts.c:120 src/conflicts.c:133
msgid "shift"
msgstr "durch Schieben gelöst"
#: src/conflicts.c:142
#: src/conflicts.c:141
msgid "an error"
msgstr "als Fehler betrachtet"
#: src/conflicts.c:422
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 Schiebe/Reduziere Konflikt"
#: src/conflicts.c:427
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d Schiebe/Reduziere Konflikte"
#: src/conflicts.c:433
#: src/conflicts.c:432
msgid " and"
msgstr " und"
#: src/conflicts.c:439
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 Reduziere/Reduziere Konflikt"
#: src/conflicts.c:444
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d Reduziere/Reduziere Konflikte"
#: src/conflicts.c:481
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
msgstr "Zustand %d enthält"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:493
#: src/conflicts.c:491
msgid "conflicts: "
msgstr "Konflikte: "
#: src/conflicts.c:495
#: src/conflicts.c:493
#, c-format
msgid " %d shift/reduce"
msgstr " %d Schiebe/Reduziere"
#: src/conflicts.c:499
#: src/conflicts.c:497
#, c-format
msgid " %d reduce/reduce"
msgstr " %d Reduziere/Reduziere"
#: src/conflicts.c:504
#: src/conflicts.c:502
#, c-format
msgid "%s contains"
msgstr "%s enthält"
#: src/conflicts.c:590 src/conflicts.c:711
#: src/conflicts.c:588 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[reduziere mit Regel %d (%s)]\n"
#: src/conflicts.c:602 src/print.c:173
#: src/conflicts.c:600 src/print.c:171
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -110,31 +110,31 @@ msgstr ""
" $default\treduziere mit Regel %d (%s)\n"
"\n"
#: src/conflicts.c:691 src/conflicts.c:705
#: src/conflicts.c:689 src/conflicts.c:703
#, c-format
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\treduziere mit Tegel %d (%s)\n"
#: src/conflicts.c:732
#: src/conflicts.c:730
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\treduziere mit Regel %d (%s)\n"
#: src/derives.c:44
#: src/derives.c:43
msgid "DERIVES"
msgstr ""
#: src/derives.c:49
#: src/derives.c:48
#, c-format
msgid "%s derives"
msgstr "%s leitet ab"
#: src/files.c:130
#: src/files.c:133
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:149
#: src/files.c:152
msgid "cannot close file"
msgstr ""
@@ -182,153 +182,155 @@ msgid ""
" -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:124
#: 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:138
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:143
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:147
#: 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:208 src/lex.c:635
#: src/getargs.c:214 src/lex.c:650
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:232
#: src/getargs.c:238
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:239
#: src/getargs.c:245
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: keine Grammatik-Datei angegeben\n"
#: src/getargs.c:243
#: src/getargs.c:249
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n"
#: src/lalr.c:312
#: src/lalr.c:311
#, c-format
msgid "too many gotos (max %d)"
msgstr ""
#: src/lex.c:70
#: src/lex.c:78
msgid "unexpected `/' found and ignored"
msgstr "»/« wird hier nicht erwartet und wird deshalb ignoriert"
#: src/lex.c:99 src/reader.c:270
#: src/lex.c:107 src/reader.c:269
msgid "unterminated comment"
msgstr "unbeendeter Kommentar"
#: src/lex.c:131
#: src/lex.c:139
#, fuzzy
msgid "unexpected end of file"
msgstr "Datei endet unerwartet"
# Oder soll man den Begriff "Escapezeichen" verwenden?
#: src/lex.c:160
#: src/lex.c:168
msgid "unescaped newline in constant"
msgstr "nicht maskiertes Zeilenendezeichen in Konstante"
#: src/lex.c:202
#: src/lex.c:210
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "oktaler Zahlenwert außerhalb des Bereichs 0...255: »\\%o«"
#: src/lex.c:227
#: src/lex.c:235
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadezimaler Zahlenwert größer als 255: »\\x%x«"
#: src/lex.c:239
#: src/lex.c:247
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "unbekanntes Fluchtzeichen: »\\« gefolgt von »%s«"
#: src/lex.c:335
#: src/lex.c:343
msgid "unterminated type name at end of file"
msgstr "unerwarteter Typname am Ende der Datei"
#: src/lex.c:338
#: src/lex.c:346
msgid "unterminated type name"
msgstr "unerwarteter Typname"
#: src/lex.c:430
#: src/lex.c:437
msgid "use \"...\" for multi-character literal tokens"
msgstr "für Literal mit mehreren Zeichen bitte \"...\" verwenden"
#: src/main.c:108
#: src/main.c:125
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interner Fehler, %s\n"
#: src/nullable.c:52
#: src/nullable.c:51
msgid "Entering set_nullable"
msgstr "Führe »set_nullable« aus"
#: src/output.c:993
#: src/output.c:986
#, fuzzy, c-format
msgid "maximum table size (%d) exceeded"
msgstr "maximale Tabellengröße (%s) überschritten"
#: src/print.c:38
#: src/print.c:37
#, c-format
msgid " type %d is %s\n"
msgstr " Typ %d ist %s\n"
#: src/print.c:86
#: src/print.c:85
#, c-format
msgid " (rule %d)"
msgstr " (Regel %d)"
#: src/print.c:112
#: src/print.c:111
msgid " $default\taccept\n"
msgstr " $default\takzeptiere\n"
#: src/print.c:114
#: src/print.c:113
msgid " NO ACTIONS\n"
msgstr " KEINE AKTIONEN\n"
#: src/print.c:133
#: src/print.c:132
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tgehe zu Zustand %d über\n"
#: src/print.c:136
#: src/print.c:135
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tSchiebe und gehe zu Zustand %d über\n"
#: src/print.c:160
#: src/print.c:159
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\tFehler (nicht assoziativ)\n"
#: src/print.c:190
#: src/print.c:187
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tgehe zu Zustand %d über\n"
#: src/print.c:202
#: src/print.c:199
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -337,23 +339,25 @@ msgstr ""
"Zustand %d\n"
"\n"
#: src/print.c:233
#. rule # : LHS -> RHS
#: src/print.c:229
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Grammatik\n"
#: src/print.c:240
#: src/print.c:234
#, c-format
msgid "rule %-4d %s ->"
msgstr "Regel %-4d %s ->"
#: src/print.c:246
msgid "\t\t/* empty */"
msgstr "\t\t/* leer */"
#: src/print.c:240
msgid "empty"
msgstr ""
#: src/print.c:253
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -361,7 +365,7 @@ msgstr ""
"Terminale und die Regeln un denen sie verwendet werden\n"
"\n"
#: src/print.c:302
#: src/print.c:268
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
@@ -369,11 +373,11 @@ msgstr ""
"Nicht-Terminal und die Regeln in denen sie verwendet werden\n"
"\n"
#: src/print.c:329
#: src/print.c:294
msgid " on left:"
msgstr " auf der linken Seite:"
#: src/print.c:344
#: src/print.c:309
msgid " on right:"
msgstr " auf der rechten Seite:"
@@ -387,116 +391,116 @@ msgstr " %-4s\tFehler (nicht assoziativ)\n"
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\treduziere mit Regel %d (%s)\n"
#: src/reader.c:79
#: src/reader.c:78
msgid " Skipping to next \\n"
msgstr " Überspringe Zeichen bis zum nächsten \\n"
#: src/reader.c:81
#: src/reader.c:80
#, c-format
msgid " Skipping to next %c"
msgstr " Überspringe Zeichen bis zum nächten %c"
#: src/reader.c:132 src/reader.c:144
#: src/reader.c:131 src/reader.c:143
msgid "invalid $ value"
msgstr "unzulässiger $ Wert"
#: src/reader.c:170 src/reader.c:185
#: src/reader.c:169 src/reader.c:184
msgid "unterminated string at end of file"
msgstr "unbeendete Zeichenkette am Ende der Datei"
#: src/reader.c:173
#: src/reader.c:172
msgid "unterminated string"
msgstr "unbeendete Zeichenkette"
#: src/reader.c:326 src/reader.c:390
#: src/reader.c:325 src/reader.c:389
#, fuzzy, c-format
msgid "%s is invalid"
msgstr "@%s ist unzulässig"
#: src/reader.c:366
#: src/reader.c:365
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ von »%s« hat keine deklarierten Wert"
#: src/reader.c:383
#: src/reader.c:382
#, fuzzy, c-format
msgid "$%d of `%s' has no declared type"
msgstr "»%s« von »%s« hat keine deklarierten Wert"
#: src/reader.c:437
#: src/reader.c:436
msgid "unterminated `%{' definition"
msgstr "unbeendete »%{« Definition"
#: src/reader.c:482 src/reader.c:598 src/reader.c:648
#: src/reader.c:481 src/reader.c:595 src/reader.c:645
#, c-format
msgid "Premature EOF after %s"
msgstr ""
#: src/reader.c:499
#: src/reader.c:498
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
#: src/reader.c:502
#: src/reader.c:501
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
#: src/reader.c:524 src/reader.c:667
#: src/reader.c:522 src/reader.c:664
#, c-format
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:1268
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#, c-format
msgid "type redeclaration for %s"
msgstr "erneute Deklaration des Typs für %s"
#: src/reader.c:544
#: src/reader.c:541
#, c-format
msgid "`%s' is invalid in %s"
msgstr "»%s« ist in %s nicht erlaubt"
#: src/reader.c:561 src/reader.c:721
#: src/reader.c:558 src/reader.c:717
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "mehr als eine %start Deklaration"
#: src/reader.c:563 src/reader.c:1246
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "ungültige %start Deklaration"
#: src/reader.c:583
#: src/reader.c:580
msgid "%type declaration has no <typename>"
msgstr "%type Deklaration hat keinen <Typ-Namen>"
#: src/reader.c:618
#: src/reader.c:615
#, fuzzy, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "ungültige %%type Deklaration wegen »%s«"
#: src/reader.c:663
#: src/reader.c:660
#, c-format
msgid "redefining precedence of %s"
msgstr "Stellenwertigkeit von %s wird erneut definiert"
#: src/reader.c:687
#: src/reader.c:683
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "unzulässiger Text (%s) - Nummer sollte nach Bezeichner kommen"
#: src/reader.c:697
#: src/reader.c:693
#, c-format
msgid "unexpected item: %s"
msgstr "unerwartetes Symbol: %s"
#: src/reader.c:759 src/reader.c:1072 src/reader.c:1143
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "»{« hat kein Gegenstück"
#: src/reader.c:791
#: src/reader.c:792
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "Argument von %expect ist keine ganze Zahl"
@@ -511,127 +515,117 @@ 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:887
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "erneute %union Definition"
#: src/reader.c:902
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "erneute %union Definition"
#: src/reader.c:988
#: src/reader.c:1005
#, c-format
msgid "unrecognized: %s"
msgstr "unbekannt: %s"
#: src/reader.c:993
#: src/reader.c:1010
msgid "no input grammar"
msgstr "keine Eingabe-Grammatik"
#: src/reader.c:998
#: src/reader.c:1015
#, c-format
msgid "unknown character: %s"
msgstr "unbekanntes Zeichen: %s"
#: src/reader.c:1166
#: src/reader.c:1183
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "unbeendeter %%guard Fall"
#: src/reader.c:1333
#: src/reader.c:1350
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:1340
#: src/reader.c:1357
msgid "grammar starts with vertical bar"
msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an"
#: src/reader.c:1371
#: src/reader.c:1388
#, 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:1473
#: src/reader.c:1490
msgid "two @prec's in a row"
msgstr "zwei @prec Anweisungen nacheinander"
#: src/reader.c:1481
#, fuzzy, c-format
#: src/reader.c:1498
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr ""
"%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben"
#: src/reader.c:1490
#: src/reader.c:1507
msgid "two actions at end of one rule"
msgstr "Zwei Aktionen am Ende einer Regel"
#: src/reader.c:1504
#: src/reader.c:1521
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion"
#: src/reader.c:1510
#: src/reader.c:1527
msgid "empty rule for typed nonterminal, and no action"
msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion"
#: src/reader.c:1554
#: src/reader.c:1571
#, c-format
msgid "invalid input: %s"
msgstr "ungültige Eingabe: %s"
#: src/reader.c:1562
#: src/reader.c:1579
#, 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:1565
#: src/reader.c:1582
msgid "no rules in the input grammar"
msgstr "Eingabegrammatik enthält keine Regeln"
#: src/reader.c:1589
#: src/reader.c:1606
#, 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:1694
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich"
#: src/reader.c:1706
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "assoc Werte für %s nd %s widersprechen sich"
#: src/reader.c:1757
#: src/reader.c:1770
#, 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:1770
#: src/reader.c:1782
#, c-format
msgid "the start symbol %s is undefined"
msgstr "das Startsymbol %s ist undefiniert"
#: src/reader.c:1772
#: src/reader.c:1784
#, c-format
msgid "the start symbol %s is a token"
msgstr "das Startsymbol %s ist ein Token"
#: src/reduce.c:404
#: src/reduce.c:401
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"Nutzlose Nicht-Terminale:\n"
"\n"
#: src/reduce.c:419
#: src/reduce.c:416
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -640,7 +634,7 @@ msgstr ""
"Nicht genutzte Terminale:\n"
"\n"
#: src/reduce.c:430
#: src/reduce.c:427
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -649,7 +643,7 @@ msgstr ""
"Ungenutzte Regeln:\n"
"\n"
#: src/reduce.c:459
#: src/reduce.c:456
msgid ""
"Variables\n"
"---------\n"
@@ -659,11 +653,11 @@ msgstr ""
"---------\n"
"\n"
#: src/reduce.c:461
#: src/reduce.c:458
msgid "Value Sprec Sassoc Tag\n"
msgstr "Wert Sprec Sassoc Tag\n"
#: src/reduce.c:466
#: src/reduce.c:463
msgid ""
"Rules\n"
"-----\n"
@@ -673,7 +667,7 @@ msgstr ""
"------\n"
"\n"
#: src/reduce.c:477
#: src/reduce.c:474
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -683,36 +677,36 @@ msgstr ""
"----------------------\n"
"\n"
#: src/reduce.c:494
#: src/reduce.c:491
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d wurde niemals reduziert\n"
#: src/reduce.c:496
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s enthält "
#: src/reduce.c:500
#: src/reduce.c:497
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d ungenutzte Nicht-Terminal"
#: src/reduce.c:505
#: src/reduce.c:502
msgid " and "
msgstr " und "
#: src/reduce.c:509
#: src/reduce.c:506
#, c-format
msgid "%d useless rule%s"
msgstr "%d ungenutzte Regel"
#: src/reduce.c:542
#: src/reduce.c:539
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "es lassen sich keine Sätze vom Startsymbol %s ableiten"
#: src/reduce.c:555
#: src/reduce.c:552
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -720,50 +714,6 @@ msgstr ""
"Reduzierung von %s definiert %d Terminal, %d Nicht-Terminal und %d "
"Produktionen.\n"
#: src/vcg.c:234
msgid "vcg graph: no such color."
msgstr ""
#: src/vcg.c:249
msgid "vcg graph: no such text mode"
msgstr ""
#: src/vcg.c:265
msgid "vcg graph: no such shape"
msgstr ""
#: src/vcg.c:304
msgid "vcg graph: no such decision"
msgstr ""
#: src/vcg.c:320
msgid "vcg graph: no such an orientation"
msgstr ""
#: src/vcg.c:335
msgid "vcg graph: no such an alignement"
msgstr ""
#: src/vcg.c:349
msgid "vcg graph: no such an arrow mode"
msgstr ""
#: src/vcg.c:365
msgid "vcg graph: no such crossing_type"
msgstr ""
#: src/vcg.c:382
msgid "vcg graph: no such view"
msgstr ""
#: src/vcg.c:398
msgid "vcg graph: no such linestyle"
msgstr ""
#: src/vcg.c:413
msgid "vcg graph: no such an arrowstyle"
msgstr ""
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
@@ -844,37 +794,14 @@ msgstr "%s: Hauptspeicher ersch
#. MARK). A British English Unicode locale should instead
#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:259
#: lib/quotearg.c:268
msgid "`"
msgstr ""
#: lib/quotearg.c:260
#: lib/quotearg.c:269
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 "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"
@@ -882,8 +809,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-"
@@ -893,15 +818,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"
@@ -914,3 +832,30 @@ msgstr ""
#~ msgid "limit of %d exceeded, too many %s"
#~ msgstr "Grenze von %d erreicht, zu viele %s"
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* leer */"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "unbeendeter Kommentar in »%{« Definition"
#~ msgid "multiple %union declarations"
#~ msgstr "erneute %union 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.
+177 -239
View File
@@ -30,7 +30,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.25\n"
"POT-Creation-Date: 2001-08-15 10:53+0200\n"
"POT-Creation-Date: 2001-10-02 18:30+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"
@@ -43,11 +43,11 @@ msgstr ""
msgid "too many states (max %d)"
msgstr ""
#: lib/error.c:117 src/complain.c:100
#: lib/error.c:117 src/complain.c:96
msgid "Unknown system error"
msgstr ""
#: src/complain.c:154
#: src/complain.c:150
msgid "warning: "
msgstr ""
@@ -58,60 +58,60 @@ msgstr ""
# La verdad es que a mi lo de error fatal me suena fatal
# ngp
#
#: src/complain.c:242 src/complain.c:283
#: src/complain.c:238 src/complain.c:279
#, fuzzy
msgid "fatal error: "
msgstr "error grave: %s\n"
#: src/conflicts.c:49
#: src/conflicts.c:48
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr ""
"El conflicto en el estado %s entre la regla %d y el terminal %s se resuelve "
"como %s.\n"
#: src/conflicts.c:115 src/conflicts.c:138
#: src/conflicts.c:114 src/conflicts.c:137
msgid "reduce"
msgstr "reduce"
#: src/conflicts.c:121 src/conflicts.c:134
#: src/conflicts.c:120 src/conflicts.c:133
msgid "shift"
msgstr "desplaza"
#: src/conflicts.c:142
#: src/conflicts.c:141
msgid "an error"
msgstr "un error"
#: src/conflicts.c:422
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 conflicto desplazamiento/reducción"
#: src/conflicts.c:427
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d conflictos desplazamiento/reducción"
#: src/conflicts.c:433
#: src/conflicts.c:432
msgid " and"
msgstr " y"
#: src/conflicts.c:439
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 conflicto reducción/reducción"
#: src/conflicts.c:444
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d conflictos reducción/reducción"
#: src/conflicts.c:481
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
msgstr "El estado %d contiene"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:493
#: src/conflicts.c:491
msgid "conflicts: "
msgstr "conflictos: "
@@ -127,7 +127,7 @@ msgstr "conflictos: "
# ok
# ngp
#
#: src/conflicts.c:495
#: src/conflicts.c:493
#, c-format
msgid " %d shift/reduce"
msgstr " %d desplazamiento(s)/reducción(ones)"
@@ -144,22 +144,22 @@ msgstr " %d desplazamiento(s)/reducci
#
# ok
# ngp
#: src/conflicts.c:499
#: src/conflicts.c:497
#, c-format
msgid " %d reduce/reduce"
msgstr " %d reducción(ones)/reducción(ones)"
#: src/conflicts.c:504
#: src/conflicts.c:502
#, c-format
msgid "%s contains"
msgstr "%s contiene"
#: src/conflicts.c:590 src/conflicts.c:711
#: src/conflicts.c:588 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[reduce usando la regla %d (%s)]\n"
#: src/conflicts.c:602 src/print.c:173
#: src/conflicts.c:600 src/print.c:171
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -168,17 +168,17 @@ msgstr ""
" $default\treduce usando la regla %d (%s)\n"
"\n"
#: src/conflicts.c:691 src/conflicts.c:705
#: src/conflicts.c:689 src/conflicts.c:703
#, c-format
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\treduce usando la regla %d (%s)\n"
#: src/conflicts.c:732
#: src/conflicts.c:730
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\treduce usando la regla %d (%s)\n"
#: src/derives.c:44
#: src/derives.c:43
#, fuzzy
msgid "DERIVES"
msgstr ""
@@ -187,17 +187,17 @@ msgstr ""
"\n"
"DERIVACIONES\n"
#: src/derives.c:49
#: src/derives.c:48
#, c-format
msgid "%s derives"
msgstr "%s deriva"
#: src/files.c:130
#: src/files.c:133
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:149
#: src/files.c:152
msgid "cannot close file"
msgstr ""
@@ -245,111 +245,113 @@ msgid ""
" -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:124
#: 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:138
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:143
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:147
#: 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:208 src/lex.c:635
#: src/getargs.c:214 src/lex.c:650
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:232
#: src/getargs.c:238
#, 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:239
#: src/getargs.c:245
#, 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:243
#: src/getargs.c:249
#, 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"
#: src/lalr.c:312
#: src/lalr.c:311
#, c-format
msgid "too many gotos (max %d)"
msgstr ""
# to ignore no es ignorar. Pon otra cosa, please. sv
#: src/lex.c:70
#: src/lex.c:78
msgid "unexpected `/' found and ignored"
msgstr "se ha encontrado `/' cuando no se esperaba, no se tendrán en cuenta"
#: src/lex.c:99 src/reader.c:270
#: src/lex.c:107 src/reader.c:269
msgid "unterminated comment"
msgstr "comentario sin terminar"
#: src/lex.c:131
#: src/lex.c:139
#, fuzzy
msgid "unexpected end of file"
msgstr "Fin de fichero inesperado"
# ¿unescaped?
#: src/lex.c:160
#: src/lex.c:168
msgid "unescaped newline in constant"
msgstr "salto de línea en constante sin secuencia de escape"
#: src/lex.c:202
#: src/lex.c:210
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "valor octal fuera del rango 0...255: `\\%o'"
#: src/lex.c:227
#: src/lex.c:235
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "valor hexadecimal mayor que 255: `\\x%x'"
#: src/lex.c:239
#: src/lex.c:247
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "secuencia de escape desconocida: `\\' seguido de `%s'"
#: src/lex.c:335
#: src/lex.c:343
msgid "unterminated type name at end of file"
msgstr "nombre de tipo sin terminar al final del fichero"
#: src/lex.c:338
#: src/lex.c:346
msgid "unterminated type name"
msgstr "nombre de tipo sin terminar"
# ¿multicarácter o multicaracteres? sv
#: src/lex.c:430
#: src/lex.c:437
msgid "use \"...\" for multi-character literal tokens"
msgstr "use \"...\" para terminales literales multicarácter"
#: src/main.c:108
#: src/main.c:125
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "error interno, %s\n"
#: src/nullable.c:52
#: src/nullable.c:51
msgid "Entering set_nullable"
msgstr "Entrando set_nullable"
@@ -358,50 +360,50 @@ msgstr "Entrando set_nullable"
# en inglés era así, pero quizás en español sea mejor como dices
# ngp
#
#: src/output.c:993
#: src/output.c:986
#, fuzzy, c-format
msgid "maximum table size (%d) exceeded"
msgstr "excedido el tamaño máximo de la tabla (%s)"
#: src/print.c:38
#: src/print.c:37
#, c-format
msgid " type %d is %s\n"
msgstr " el tipo %d es %s\n"
#: src/print.c:86
#: src/print.c:85
#, c-format
msgid " (rule %d)"
msgstr " (regla %d)"
#: src/print.c:112
#: src/print.c:111
msgid " $default\taccept\n"
msgstr " $default\taceptar\n"
#: src/print.c:114
#: src/print.c:113
msgid " NO ACTIONS\n"
msgstr " SIN ACCIONES\n"
#: src/print.c:133
#: src/print.c:132
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tir al estado %d\n"
#: src/print.c:136
#: src/print.c:135
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tdesplazar e ir al estado %d\n"
#: src/print.c:160
#: src/print.c:159
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\terror (no asociativo)\n"
#: src/print.c:190
#: src/print.c:187
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tir al estado %d\n"
#: src/print.c:202
#: src/print.c:199
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -410,28 +412,25 @@ msgstr ""
"estado %d\n"
"\n"
#: src/print.c:233
#. rule # : LHS -> RHS
#: src/print.c:229
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Gramática\n"
#: src/print.c:240
#: src/print.c:234
#, c-format
msgid "rule %-4d %s ->"
msgstr "regla %-4d %s ->"
# Duda: ¿Estás seguro de que no será `vacío'? Si no lo estás o, si por
# el contrario, pudiera cualquiera de los casos, debieras traducirlo
# como `vacía/o' - cll
# según el código indica reglas vacías por eso lo puse así
# ngp
#: src/print.c:246
msgid "\t\t/* empty */"
msgstr "\t\t/* vacía */"
#: src/print.c:240
msgid "empty"
msgstr ""
#: src/print.c:253
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -439,18 +438,18 @@ msgstr ""
"Terminales con las reglas donde aparecen\n"
"\n"
#: src/print.c:302
#: src/print.c:268
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
"\n"
"No terminales con las reglas donde aparecen\n"
#: src/print.c:329
#: src/print.c:294
msgid " on left:"
msgstr " en la izquierda:"
#: src/print.c:344
#: src/print.c:309
msgid " on right:"
msgstr " en la derecha:"
@@ -464,96 +463,96 @@ msgstr " %-4s\terror (no asociativo)\n"
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\treduce usando la regla %d (%s)\n"
#: src/reader.c:79
#: src/reader.c:78
msgid " Skipping to next \\n"
msgstr " Saltando al siguiente \\n"
#: src/reader.c:81
#: src/reader.c:80
#, c-format
msgid " Skipping to next %c"
msgstr " Saltando al siguiente %c"
#: src/reader.c:132 src/reader.c:144
#: src/reader.c:131 src/reader.c:143
msgid "invalid $ value"
msgstr "valor $ no válido"
#: src/reader.c:170 src/reader.c:185
#: src/reader.c:169 src/reader.c:184
msgid "unterminated string at end of file"
msgstr "cadena sin terminar al final del fichero"
#: src/reader.c:173
#: src/reader.c:172
msgid "unterminated string"
msgstr "cadena sin terminar"
#: src/reader.c:326 src/reader.c:390
#: src/reader.c:325 src/reader.c:389
#, fuzzy, c-format
msgid "%s is invalid"
msgstr "@%s no es válido"
#: src/reader.c:366
#: src/reader.c:365
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ de `%s' no tiene tipo declarado"
#: src/reader.c:383
#: src/reader.c:382
#, fuzzy, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%s de `%s' no tiene tipo declarado"
#: src/reader.c:437
#: src/reader.c:436
msgid "unterminated `%{' definition"
msgstr "definición `%{' sin terminar"
#: src/reader.c:482 src/reader.c:598 src/reader.c:648
#: src/reader.c:481 src/reader.c:595 src/reader.c:645
#, c-format
msgid "Premature EOF after %s"
msgstr ""
#: src/reader.c:499
#: src/reader.c:498
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
#: src/reader.c:502
#: src/reader.c:501
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
#: src/reader.c:524 src/reader.c:667
#: src/reader.c:522 src/reader.c:664
#, c-format
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:1268
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#, c-format
msgid "type redeclaration for %s"
msgstr "redeclaración del tipo de %s"
#: src/reader.c:544
#: src/reader.c:541
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' no es válido en %s"
#: src/reader.c:561 src/reader.c:721
#: src/reader.c:558 src/reader.c:717
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "múltiples declaraciones de %start"
#: src/reader.c:563 src/reader.c:1246
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "declaración de %start no válida"
#: src/reader.c:583
#: src/reader.c:580
msgid "%type declaration has no <typename>"
msgstr "la declaración %type no tiene <nombre-tipo>"
#: src/reader.c:618
#: src/reader.c:615
#, fuzzy, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "declaración de %%type no válida debido al ítem: `%s'"
#: src/reader.c:663
#: src/reader.c:660
#, c-format
msgid "redefining precedence of %s"
msgstr "redefinición de la precedencia de %s"
@@ -562,7 +561,7 @@ msgstr "redefinici
# de "to must" y aquí se emplea en su forma condicional. Por eso, he
# cambiado `debe' por `debería' - cll
# ahí me has pillado en un olvido del inglés - ngp
#: src/reader.c:687
#: src/reader.c:683
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr ""
@@ -572,18 +571,18 @@ msgstr ""
# otras, como `inesperado'. Cualquiera es correcta, por supuesto y, en
# este caso, la segunda me parece más apropiada - cll
# ok - ngp
#: src/reader.c:697
#: src/reader.c:693
#, c-format
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:1072 src/reader.c:1143
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "`{' desemparejada"
#: src/reader.c:791
#: src/reader.c:792
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "el argumento de %expect no es un entero"
@@ -604,26 +603,16 @@ 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:887
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "declaraciones múltiples de %union"
#: src/reader.c:902
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "declaraciones múltiples de %union"
#: src/reader.c:988
#: src/reader.c:1005
#, c-format
msgid "unrecognized: %s"
msgstr "no reconocido: %s"
#: src/reader.c:993
#: src/reader.c:1010
msgid "no input grammar"
msgstr "no hay gramática de entrada"
#: src/reader.c:998
#: src/reader.c:1015
#, c-format
msgid "unknown character: %s"
msgstr "carácter desconocido: %s"
@@ -632,105 +621,105 @@ 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:1166
#: src/reader.c:1183
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "cláusula %%guard sin terminar"
#: src/reader.c:1333
#: src/reader.c:1350
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:1340
#: src/reader.c:1357
msgid "grammar starts with vertical bar"
msgstr "la gramática comienza con una barra vertical"
#: src/reader.c:1371
#: src/reader.c:1388
#, 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:1473
#: src/reader.c:1490
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:1481
#, fuzzy, c-format
#: src/reader.c:1498
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard presente pero %%semantic_parser está sin especificar"
#: src/reader.c:1490
#: src/reader.c:1507
msgid "two actions at end of one rule"
msgstr "dos acciones al final de una regla"
#: src/reader.c:1504
#: src/reader.c:1521
#, 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:1510
#: src/reader.c:1527
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:1554
#: src/reader.c:1571
#, c-format
msgid "invalid input: %s"
msgstr "entrada no válida: %s"
#: src/reader.c:1562
#: src/reader.c:1579
#, 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:1565
#: src/reader.c:1582
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:1589
#: src/reader.c:1606
#, 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:1694
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedencias en conflicto entre %s y %s"
#: src/reader.c:1706
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflicto de valores assoc para %s y %s"
#: src/reader.c:1757
#: src/reader.c:1770
#, 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:1770
#: src/reader.c:1782
#, c-format
msgid "the start symbol %s is undefined"
msgstr "el símbolo de inicio (axioma) %s no está definido"
#: src/reader.c:1772
#: src/reader.c:1784
#, c-format
msgid "the start symbol %s is a token"
msgstr "el símbolo de inicio (axioma) %s es un terminal"
#: src/reduce.c:404
#: src/reduce.c:401
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"No terminales sin uso:\n"
"\n"
#: src/reduce.c:419
#: src/reduce.c:416
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -739,7 +728,7 @@ msgstr ""
"Terminales que no se usan:\n"
"\n"
#: src/reduce.c:430
#: src/reduce.c:427
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -748,7 +737,7 @@ msgstr ""
"Reglas sin uso:\n"
"\n"
#: src/reduce.c:459
#: src/reduce.c:456
msgid ""
"Variables\n"
"---------\n"
@@ -758,11 +747,11 @@ msgstr ""
"---------\n"
"\n"
#: src/reduce.c:461
#: src/reduce.c:458
msgid "Value Sprec Sassoc Tag\n"
msgstr "Valor Sprec Sasoc Tag\n"
#: src/reduce.c:466
#: src/reduce.c:463
msgid ""
"Rules\n"
"-----\n"
@@ -772,7 +761,7 @@ msgstr ""
"------\n"
"\n"
#: src/reduce.c:477
#: src/reduce.c:474
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -782,31 +771,31 @@ msgstr ""
"--------------------\n"
"\n"
#: src/reduce.c:494
#: src/reduce.c:491
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d reglas que nunca se han reducido\n"
#: src/reduce.c:496
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s contiene "
#: src/reduce.c:500
#: src/reduce.c:497
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d no terminales %s sin uso"
#: src/reduce.c:505
#: src/reduce.c:502
msgid " and "
msgstr " y "
#: src/reduce.c:509
#: src/reduce.c:506
#, c-format
msgid "%d useless rule%s"
msgstr "%d regla%s sin uso"
#: src/reduce.c:542
#: src/reduce.c:539
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "El símbolo de inicio (axioma) %s no deriva ninguna sentencia"
@@ -823,7 +812,7 @@ msgstr "El s
# Te recomiendo `la reducción de %s' en vez de seguir el estilo inglés y
# usar participios - cll
# un error lo tiene cualquiera - ngp
#: src/reduce.c:555
#: src/reduce.c:552
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -831,50 +820,6 @@ msgstr ""
"la reducción de %s define %d terminal%s, %d no terminal%s, y %d produccion%"
"s.\n"
#: src/vcg.c:234
msgid "vcg graph: no such color."
msgstr ""
#: src/vcg.c:249
msgid "vcg graph: no such text mode"
msgstr ""
#: src/vcg.c:265
msgid "vcg graph: no such shape"
msgstr ""
#: src/vcg.c:304
msgid "vcg graph: no such decision"
msgstr ""
#: src/vcg.c:320
msgid "vcg graph: no such an orientation"
msgstr ""
#: src/vcg.c:335
msgid "vcg graph: no such an alignement"
msgstr ""
#: src/vcg.c:349
msgid "vcg graph: no such an arrow mode"
msgstr ""
#: src/vcg.c:365
msgid "vcg graph: no such crossing_type"
msgstr ""
#: src/vcg.c:382
msgid "vcg graph: no such view"
msgstr ""
#: src/vcg.c:398
msgid "vcg graph: no such linestyle"
msgstr ""
#: src/vcg.c:413
msgid "vcg graph: no such an arrowstyle"
msgstr ""
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
@@ -979,45 +924,14 @@ msgstr "%s: memoria agotada\n"
#. MARK). A British English Unicode locale should instead
#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:259
#: lib/quotearg.c:268
msgid "`"
msgstr ""
#: lib/quotearg.c:260
#: lib/quotearg.c:269
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 "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
@@ -1069,7 +983,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"
@@ -1077,8 +990,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"
@@ -1088,26 +999,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"
@@ -1122,3 +1024,39 @@ 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"
# Duda: ¿Estás seguro de que no será `vacío'? Si no lo estás o, si por
# el contrario, pudiera cualquiera de los casos, debieras traducirlo
# como `vacía/o' - cll
# según el código indica reglas vacías por eso lo puse así
# ngp
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* vacía */"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "comentario sin terminar en la definición `%{'"
#~ 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 "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.
+186 -360
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+298 -322
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+141 -189
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.28\n"
"POT-Creation-Date: 2001-08-15 10:53+0200\n"
"POT-Creation-Date: 2001-10-02 18:30+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"
@@ -18,90 +18,90 @@ msgstr ""
msgid "too many states (max %d)"
msgstr "%s の数が多すぎます (最大 %d)"
#: lib/error.c:117 src/complain.c:100
#: lib/error.c:117 src/complain.c:96
msgid "Unknown system error"
msgstr ""
#: src/complain.c:154
#: src/complain.c:150
msgid "warning: "
msgstr ""
#: src/complain.c:242 src/complain.c:283
#: src/complain.c:238 src/complain.c:279
#, fuzzy
msgid "fatal error: "
msgstr "%s: 致命的エラー: "
#: src/conflicts.c:49
#: src/conflicts.c:48
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr "状態 %d の規則 %d とトークン %s の競合を%sとして解決。\n"
#: src/conflicts.c:115 src/conflicts.c:138
#: src/conflicts.c:114 src/conflicts.c:137
msgid "reduce"
msgstr "還元"
#: src/conflicts.c:121 src/conflicts.c:134
#: src/conflicts.c:120 src/conflicts.c:133
msgid "shift"
msgstr "シフト"
#: src/conflicts.c:142
#: src/conflicts.c:141
msgid "an error"
msgstr "エラー"
#: src/conflicts.c:422
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 シフト/還元衝突"
#: src/conflicts.c:427
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d シフト/還元衝突"
#: src/conflicts.c:433
#: src/conflicts.c:432
msgid " and"
msgstr " および"
#: src/conflicts.c:439
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 還元/還元衝突"
#: src/conflicts.c:444
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d 還元/還元衝突"
#: src/conflicts.c:481
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
msgstr "状態 %d が含むのは"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:493
#: src/conflicts.c:491
msgid "conflicts: "
msgstr "衝突: "
#: src/conflicts.c:495
#: src/conflicts.c:493
#, c-format
msgid " %d shift/reduce"
msgstr " %d シフト/還元"
#: src/conflicts.c:499
#: src/conflicts.c:497
#, c-format
msgid " %d reduce/reduce"
msgstr " %d 還元/還元"
#: src/conflicts.c:504
#: src/conflicts.c:502
#, c-format
msgid "%s contains"
msgstr "%s には、"
#: src/conflicts.c:590 src/conflicts.c:711
#: src/conflicts.c:588 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[規則 %d を利用して還元 (%s)]\n"
#: src/conflicts.c:602 src/print.c:173
#: src/conflicts.c:600 src/print.c:171
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -110,17 +110,17 @@ msgstr ""
" $default\t規則 %d を利用して還元 (%s)\n"
"\n"
#: src/conflicts.c:691 src/conflicts.c:705
#: src/conflicts.c:689 src/conflicts.c:703
#, c-format
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\t規則 %d を利用して還元 (%s)\n"
#: src/conflicts.c:732
#: src/conflicts.c:730
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\t規則 %d を利用して還元 (%s)\n"
#: src/derives.c:44
#: src/derives.c:43
#, fuzzy
msgid "DERIVES"
msgstr ""
@@ -130,17 +130,17 @@ msgstr ""
"DERIVES\n"
"\n"
#: src/derives.c:49
#: src/derives.c:48
#, c-format
msgid "%s derives"
msgstr "%s は以下から派生"
#: src/files.c:130
#: src/files.c:133
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:149
#: src/files.c:152
msgid "cannot close file"
msgstr ""
@@ -188,152 +188,154 @@ msgid ""
" -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:124
#: 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:138
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:143
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:147
#: 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:208 src/lex.c:635
#: src/getargs.c:214 src/lex.c:650
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:232
#: src/getargs.c:238
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:239
#: src/getargs.c:245
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: 文法ファイルが指定されていません\n"
#: src/getargs.c:243
#: src/getargs.c:249
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' より後ろの余分な引数は無視されました\n"
#: src/lalr.c:312
#: src/lalr.c:311
#, fuzzy, c-format
msgid "too many gotos (max %d)"
msgstr "%s の数が多すぎます (最大 %d)"
#: src/lex.c:70
#: src/lex.c:78
msgid "unexpected `/' found and ignored"
msgstr "予期しない `/' が見つかり、無視されました"
#: src/lex.c:99 src/reader.c:270
#: src/lex.c:107 src/reader.c:269
msgid "unterminated comment"
msgstr "閉じていないコメントです"
#: src/lex.c:131
#: src/lex.c:139
#, fuzzy
msgid "unexpected end of file"
msgstr "予期しないファイルの終端です"
#: src/lex.c:160
#: src/lex.c:168
msgid "unescaped newline in constant"
msgstr "定数の中にエスケープされていない改行があります"
#: src/lex.c:202
#: src/lex.c:210
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "8 進数の値が 0...255 の範囲外です: `\\%o'"
#: src/lex.c:227
#: src/lex.c:235
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "16 進数の値が 255 を越えています: `\\x%x'"
#: src/lex.c:239
#: src/lex.c:247
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "未知のエスケープシーケンス: `\\' の後に `%s'"
#: src/lex.c:335
#: src/lex.c:343
msgid "unterminated type name at end of file"
msgstr "閉じられていないタイプ名が、ファイル末尾にあります"
#: src/lex.c:338
#: src/lex.c:346
msgid "unterminated type name"
msgstr "閉じられていないタイプ名があります"
#: src/lex.c:430
#: src/lex.c:437
msgid "use \"...\" for multi-character literal tokens"
msgstr "複数文字のリテラルトークンには \"...\" を使いましょう"
#: src/main.c:108
#: src/main.c:125
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: 内部エラー: %s\n"
#: src/nullable.c:52
#: src/nullable.c:51
msgid "Entering set_nullable"
msgstr "set_nullable に入ります"
#: src/output.c:993
#: src/output.c:986
#, fuzzy, c-format
msgid "maximum table size (%d) exceeded"
msgstr "最大テーブルサイズ (%s) を超えました"
#: src/print.c:38
#: src/print.c:37
#, c-format
msgid " type %d is %s\n"
msgstr " タイプ %d は %s です\n"
#: src/print.c:86
#: src/print.c:85
#, c-format
msgid " (rule %d)"
msgstr " (規則 %d)"
#: src/print.c:112
#: src/print.c:111
msgid " $default\taccept\n"
msgstr " $default\taccept\n"
#: src/print.c:114
#: src/print.c:113
msgid " NO ACTIONS\n"
msgstr " 動作無し\n"
#: src/print.c:133
#: src/print.c:132
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \t状態 %d へ\n"
#: src/print.c:136
#: src/print.c:135
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tシフト、および状態 %d へ\n"
#: src/print.c:160
#: src/print.c:159
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\tエラー (非結合)\n"
#: src/print.c:190
#: src/print.c:187
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\t状態 %d へ\n"
#: src/print.c:202
#: src/print.c:199
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -342,23 +344,25 @@ msgstr ""
"状態 %d\n"
"\n"
#: src/print.c:233
#. rule # : LHS -> RHS
#: src/print.c:229
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"文法\n"
#: src/print.c:240
#: src/print.c:234
#, c-format
msgid "rule %-4d %s ->"
msgstr "規則 %-4d %s ->"
#: src/print.c:246
msgid "\t\t/* empty */"
msgstr "\t\t/* 空 */"
#: src/print.c:240
msgid "empty"
msgstr ""
#: src/print.c:253
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -366,7 +370,7 @@ msgstr ""
"終端トークン、およびそこに現れた規則\n"
"\n"
#: src/print.c:302
#: src/print.c:268
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
@@ -374,11 +378,11 @@ msgstr ""
"非終端トークン、およびそこに現れた規則\n"
"\n"
#: src/print.c:329
#: src/print.c:294
msgid " on left:"
msgstr " 左辺:"
#: src/print.c:344
#: src/print.c:309
msgid " on right:"
msgstr " 右辺:"
@@ -392,116 +396,116 @@ msgstr " %-4s\t
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\t規則 %d を利用して還元 (%s)\n"
#: src/reader.c:79
#: src/reader.c:78
msgid " Skipping to next \\n"
msgstr " 次の \\n にスキップ"
#: src/reader.c:81
#: src/reader.c:80
#, c-format
msgid " Skipping to next %c"
msgstr " 次の %c にスキップ"
#: src/reader.c:132 src/reader.c:144
#: src/reader.c:131 src/reader.c:143
msgid "invalid $ value"
msgstr "無効な $ の値"
#: src/reader.c:170 src/reader.c:185
#: src/reader.c:169 src/reader.c:184
msgid "unterminated string at end of file"
msgstr "閉じられていない文字列がファイル末尾にあります"
#: src/reader.c:173
#: src/reader.c:172
msgid "unterminated string"
msgstr "閉じられていない文字列"
#: src/reader.c:326 src/reader.c:390
#: src/reader.c:325 src/reader.c:389
#, fuzzy, c-format
msgid "%s is invalid"
msgstr "@%s は無効です"
#: src/reader.c:366
#: src/reader.c:365
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "`%s' の $$ に宣言のない型があります"
#: src/reader.c:383
#: src/reader.c:382
#, fuzzy, c-format
msgid "$%d of `%s' has no declared type"
msgstr "`%s' の $%s に宣言のない型があります"
#: src/reader.c:437
#: src/reader.c:436
msgid "unterminated `%{' definition"
msgstr "`%{' 定義 が閉じられていません"
#: src/reader.c:482 src/reader.c:598 src/reader.c:648
#: src/reader.c:481 src/reader.c:595 src/reader.c:645
#, c-format
msgid "Premature EOF after %s"
msgstr ""
#: src/reader.c:499
#: src/reader.c:498
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
#: src/reader.c:502
#: src/reader.c:501
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
#: src/reader.c:524 src/reader.c:667
#: src/reader.c:522 src/reader.c:664
#, c-format
msgid "symbol %s redefined"
msgstr "シンボル %s が再定義されました"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1268
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#, c-format
msgid "type redeclaration for %s"
msgstr "%s の型が再定義されました"
#: src/reader.c:544
#: src/reader.c:541
#, c-format
msgid "`%s' is invalid in %s"
msgstr "%2$s 内の `%1$s' は無効です"
#: src/reader.c:561 src/reader.c:721
#: src/reader.c:558 src/reader.c:717
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "複数の %start が宣言されました"
#: src/reader.c:563 src/reader.c:1246
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "無効な %start が宣言されました"
#: src/reader.c:583
#: src/reader.c:580
msgid "%type declaration has no <typename>"
msgstr "%type 宣言に <タイプ名> がありません"
#: src/reader.c:618
#: src/reader.c:615
#, fuzzy, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "アイテムに与えられるべき %%type 宣言が無効です: `%s'"
#: src/reader.c:663
#: src/reader.c:660
#, c-format
msgid "redefining precedence of %s"
msgstr "%s に先行した再定義です"
#: src/reader.c:687
#: src/reader.c:683
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "無効なテキスト (%s) - 数値は識別子の後ろにあるべきです"
#: src/reader.c:697
#: src/reader.c:693
#, c-format
msgid "unexpected item: %s"
msgstr "予期せぬアイテム: %s"
#: src/reader.c:759 src/reader.c:1072 src/reader.c:1143
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "対応のない `{' です"
#: src/reader.c:791
#: src/reader.c:792
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "%expect の引数が整数値ではありません"
@@ -516,124 +520,114 @@ msgstr "ǧ
msgid "expected string constant instead of %s"
msgstr "ここでは %s ではなく文字列定数が期待されます"
#: src/reader.c:887
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "複数の %union 宣言です"
#: src/reader.c:902
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "複数の %union 宣言です"
#: src/reader.c:988
#: src/reader.c:1005
#, c-format
msgid "unrecognized: %s"
msgstr "認識できない: %s"
#: src/reader.c:993
#: src/reader.c:1010
msgid "no input grammar"
msgstr "文法の入力が無い"
#: src/reader.c:998
#: src/reader.c:1015
#, c-format
msgid "unknown character: %s"
msgstr "未知の文字: %s"
#: src/reader.c:1166
#: src/reader.c:1183
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "閉じられていない %%guard 節です"
#: src/reader.c:1333
#: src/reader.c:1350
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "邪悪な規則: 初期化シンボルにコロン (:) が続いていません"
#: src/reader.c:1340
#: src/reader.c:1357
msgid "grammar starts with vertical bar"
msgstr "文法は縦棒 (|) で始めます"
#: src/reader.c:1371
#: src/reader.c:1388
#, c-format
msgid "rule given for %s, which is a token"
msgstr "%s に規則が与えられ、それはトークンとなります"
#: src/reader.c:1473
#: src/reader.c:1490
msgid "two @prec's in a row"
msgstr "@prec のもの二つが同列になっています"
#: src/reader.c:1481
#, fuzzy, c-format
#: src/reader.c:1498
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard がありますが %%semantic_parser が指定されていません"
#: src/reader.c:1490
#: src/reader.c:1507
msgid "two actions at end of one rule"
msgstr "一つの規則の終りに二つの動作を指定しています"
#: src/reader.c:1504
#: src/reader.c:1521
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "初期状態の動作では型 (`%s' `%s') が衝突します"
#: src/reader.c:1510
#: src/reader.c:1527
msgid "empty rule for typed nonterminal, and no action"
msgstr "空の型付き非終端アイテム用規則であり、動作が起りません"
#: src/reader.c:1554
#: src/reader.c:1571
#, c-format
msgid "invalid input: %s"
msgstr "無効な入力: %s"
#: src/reader.c:1562
#: src/reader.c:1579
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "シンボルが多すぎます (トークンと非終端アイテム) -- 最大 %s"
#: src/reader.c:1565
#: src/reader.c:1582
msgid "no rules in the input grammar"
msgstr "入力した文法に規則が定義されていません"
#: src/reader.c:1589
#: src/reader.c:1606
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"シンボル %s が使われていますが、トークンとして定義されておらず、規則を持ちま"
"せん"
#: src/reader.c:1694
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "先行している %s と %s で競合が生じています"
#: src/reader.c:1706
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "非結合値 %s と %s で競合が生じています"
#: src/reader.c:1757
#: src/reader.c:1770
#, fuzzy, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "トークン %s と %s の双方が番号 %s に割り当てられました"
#: src/reader.c:1770
#: src/reader.c:1782
#, c-format
msgid "the start symbol %s is undefined"
msgstr "開始シンボル %s は定義されていません"
#: src/reader.c:1772
#: src/reader.c:1784
#, c-format
msgid "the start symbol %s is a token"
msgstr "開始シンボル %s はトークンです"
#: src/reduce.c:404
#: src/reduce.c:401
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"不使用非終端子:\n"
"\n"
#: src/reduce.c:419
#: src/reduce.c:416
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -642,7 +636,7 @@ msgstr ""
"利用されない終端子:\n"
"\n"
#: src/reduce.c:430
#: src/reduce.c:427
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -651,7 +645,7 @@ msgstr ""
"不使用規則:\n"
"\n"
#: src/reduce.c:459
#: src/reduce.c:456
msgid ""
"Variables\n"
"---------\n"
@@ -661,11 +655,11 @@ msgstr ""
"---------\n"
"\n"
#: src/reduce.c:461
#: src/reduce.c:458
msgid "Value Sprec Sassoc Tag\n"
msgstr "値 前置 結合 タグ\n"
#: src/reduce.c:466
#: src/reduce.c:463
msgid ""
"Rules\n"
"-----\n"
@@ -675,7 +669,7 @@ msgstr ""
"-----\n"
"\n"
#: src/reduce.c:477
#: src/reduce.c:474
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -685,36 +679,36 @@ msgstr ""
"-----------------\n"
"\n"
#: src/reduce.c:494
#: src/reduce.c:491
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d 個の規則は決して還元されません\n"
#: src/reduce.c:496
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s には"
#: src/reduce.c:500
#: src/reduce.c:497
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d 個の不使用非終端子%.0s"
#: src/reduce.c:505
#: src/reduce.c:502
msgid " and "
msgstr "および"
#: src/reduce.c:509
#: src/reduce.c:506
#, c-format
msgid "%d useless rule%s"
msgstr "%d 個の不使用規則%.0s"
#: src/reduce.c:542
#: src/reduce.c:539
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "開始シンボル %s はどの文にも由来しません"
#: src/reduce.c:555
#: src/reduce.c:552
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -722,50 +716,6 @@ msgstr ""
"還元ファイル %s で %d 個の終端子%.0s, %d 個の非終端子%.0s, %d 個の規則%.0sが"
"定義されました\n"
#: src/vcg.c:234
msgid "vcg graph: no such color."
msgstr ""
#: src/vcg.c:249
msgid "vcg graph: no such text mode"
msgstr ""
#: src/vcg.c:265
msgid "vcg graph: no such shape"
msgstr ""
#: src/vcg.c:304
msgid "vcg graph: no such decision"
msgstr ""
#: src/vcg.c:320
msgid "vcg graph: no such an orientation"
msgstr ""
#: src/vcg.c:335
msgid "vcg graph: no such an alignement"
msgstr ""
#: src/vcg.c:349
msgid "vcg graph: no such an arrow mode"
msgstr ""
#: src/vcg.c:365
msgid "vcg graph: no such crossing_type"
msgstr ""
#: src/vcg.c:382
msgid "vcg graph: no such view"
msgstr ""
#: src/vcg.c:398
msgid "vcg graph: no such linestyle"
msgstr ""
#: src/vcg.c:413
msgid "vcg graph: no such an arrowstyle"
msgstr ""
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
@@ -846,21 +796,14 @@ msgstr "%s:
#. MARK). A British English Unicode locale should instead
#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:259
#: lib/quotearg.c:268
msgid "`"
msgstr ""
#: lib/quotearg.c:260
#: lib/quotearg.c:269
msgid "'"
msgstr ""
#, fuzzy
#~ msgid "Memory exhausted"
#~ msgstr "%s: メモリを使い果たしました\n"
#~ msgid "$%s is invalid"
#~ msgstr "$%s は無効です"
#~ msgid ""
#~ "\n"
#~ "\n"
@@ -938,9 +881,15 @@ msgstr ""
#~ msgid "%s:%d: "
#~ msgstr "%s:%d: "
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* 空 */"
#~ msgid "unterminated comment in `%{' definition"
#~ msgstr "`%{' 定義 に閉じられていないコメントがあります"
#~ msgid "multiple %union declarations"
#~ msgstr "複数の %union 宣言です"
#~ msgid "unterminated comment at end of file"
#~ msgstr "ファイル末尾に閉じられていないコメントがあります"
@@ -950,6 +899,9 @@ msgstr ""
#~ msgid "unmatched right brace (`}')"
#~ msgstr "対応のない右ブレース (`}') です"
#~ msgid "$%s is invalid"
#~ msgstr "$%s は無効です"
#~ msgid "invalid @-construct"
#~ msgstr "無効な @-コンストラクトです"
BIN
View File
Binary file not shown.
+157 -215
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-08-15 10:53+0200\n"
"POT-Creation-Date: 2001-10-02 18:30+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"
@@ -18,90 +18,90 @@ msgstr ""
msgid "too many states (max %d)"
msgstr ""
#: lib/error.c:117 src/complain.c:100
#: lib/error.c:117 src/complain.c:96
msgid "Unknown system error"
msgstr ""
#: src/complain.c:154
#: src/complain.c:150
msgid "warning: "
msgstr ""
#: src/complain.c:242 src/complain.c:283
#: src/complain.c:238 src/complain.c:279
#, fuzzy
msgid "fatal error: "
msgstr "fatale fout: %s\n"
#: src/conflicts.c:49
#: src/conflicts.c:48
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr "Conflict in stadium %d tussen regel %d en teken %s opgelost als %s.\n"
#: src/conflicts.c:115 src/conflicts.c:138
#: src/conflicts.c:114 src/conflicts.c:137
msgid "reduce"
msgstr "reduceer"
#: src/conflicts.c:121 src/conflicts.c:134
#: src/conflicts.c:120 src/conflicts.c:133
msgid "shift"
msgstr "verschuif"
#: src/conflicts.c:142
#: src/conflicts.c:141
msgid "an error"
msgstr "een fout"
#: src/conflicts.c:422
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 verschuif/reduceer conflict"
#: src/conflicts.c:427
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d verschuif/reduceer conflicten"
#: src/conflicts.c:433
#: src/conflicts.c:432
msgid " and"
msgstr " en"
#: src/conflicts.c:439
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 reduceer/reduceer conflict"
#: src/conflicts.c:444
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d reduceer/reduceer conflicten"
#: src/conflicts.c:481
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
msgstr "Stadium %d bevat"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:493
#: src/conflicts.c:491
msgid "conflicts: "
msgstr "conflictueerd: "
#: src/conflicts.c:495
#: src/conflicts.c:493
#, c-format
msgid " %d shift/reduce"
msgstr " %d vershuif/reduceer"
#: src/conflicts.c:499
#: src/conflicts.c:497
#, c-format
msgid " %d reduce/reduce"
msgstr " %d reduceer/reduceer"
#: src/conflicts.c:504
#: src/conflicts.c:502
#, c-format
msgid "%s contains"
msgstr "%s bevat"
#: src/conflicts.c:590 src/conflicts.c:711
#: src/conflicts.c:588 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[reduceer gebruikt regel %d (%s)]\n"
#: src/conflicts.c:602 src/print.c:173
#: src/conflicts.c:600 src/print.c:171
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -110,17 +110,17 @@ msgstr ""
" $default\treduce using rule %d (%s)\n"
"\n"
#: src/conflicts.c:691 src/conflicts.c:705
#: src/conflicts.c:689 src/conflicts.c:703
#, c-format
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr ""
#: src/conflicts.c:732
#: src/conflicts.c:730
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr ""
#: src/derives.c:44
#: src/derives.c:43
#, fuzzy
msgid "DERIVES"
msgstr ""
@@ -130,17 +130,17 @@ msgstr ""
"AFGELEIDEN\n"
"\n"
#: src/derives.c:49
#: src/derives.c:48
#, c-format
msgid "%s derives"
msgstr "%s afgeleiden"
#: src/files.c:130
#: src/files.c:133
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:149
#: src/files.c:152
msgid "cannot close file"
msgstr ""
@@ -188,152 +188,154 @@ msgid ""
" -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:124
#: 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:138
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:143
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:147
#: 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:208 src/lex.c:635
#: src/getargs.c:214 src/lex.c:650
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:232
#: src/getargs.c:238
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:239
#: src/getargs.c:245
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: geen grammatica bestand gegeven\n"
#: src/getargs.c:243
#: src/getargs.c:249
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argumenten genegeerd na '%s'\n"
#: src/lalr.c:312
#: src/lalr.c:311
#, c-format
msgid "too many gotos (max %d)"
msgstr ""
#: src/lex.c:70
#: src/lex.c:78
msgid "unexpected `/' found and ignored"
msgstr "onverwachte `/' gevonden en genegeerd"
#: src/lex.c:99 src/reader.c:270
#: src/lex.c:107 src/reader.c:269
msgid "unterminated comment"
msgstr "ongetermineerd commentaar"
#: src/lex.c:131
#: src/lex.c:139
#, fuzzy
msgid "unexpected end of file"
msgstr "Onverwacht bestandseinde"
#: src/lex.c:160
#: src/lex.c:168
msgid "unescaped newline in constant"
msgstr "niet geescapete nieuwe regel in constante"
#: src/lex.c:202
#: src/lex.c:210
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "octale waarde buiten domein 0...255: `\\%o'"
#: src/lex.c:227
#: src/lex.c:235
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadecimale waarde boven 255: `\\x%x'"
#: src/lex.c:239
#: src/lex.c:247
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "onbekende escape reeks: `\\' gevolgd door `%s'"
#: src/lex.c:335
#: src/lex.c:343
msgid "unterminated type name at end of file"
msgstr "niet getermineerd type naam aan het einde van bestand"
#: src/lex.c:338
#: src/lex.c:346
msgid "unterminated type name"
msgstr "niet getermineerd type naam"
#: src/lex.c:430
#: src/lex.c:437
msgid "use \"...\" for multi-character literal tokens"
msgstr "gebruik \"...\" voor meerdere karakters literal tekens"
#: src/main.c:108
#: src/main.c:125
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interne fout, %s\n"
#: src/nullable.c:52
#: src/nullable.c:51
msgid "Entering set_nullable"
msgstr "Inkomende set nullable"
#: src/output.c:993
#: src/output.c:986
#, fuzzy, c-format
msgid "maximum table size (%d) exceeded"
msgstr "maximale tabel grootte (%s) overschreden"
#: src/print.c:38
#: src/print.c:37
#, c-format
msgid " type %d is %s\n"
msgstr ""
#: src/print.c:86
#: src/print.c:85
#, c-format
msgid " (rule %d)"
msgstr " (regel %d)"
#: src/print.c:112
#: src/print.c:111
msgid " $default\taccept\n"
msgstr ""
#: src/print.c:114
#: src/print.c:113
msgid " NO ACTIONS\n"
msgstr " GEEN AKTIES\n"
#: src/print.c:133
#: src/print.c:132
#, c-format
msgid " $ \tgo to state %d\n"
msgstr ""
#: src/print.c:136
#: src/print.c:135
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr ""
#: src/print.c:160
#: src/print.c:159
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr ""
#: src/print.c:190
#: src/print.c:187
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr ""
#: src/print.c:202
#: src/print.c:199
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -342,23 +344,25 @@ msgstr ""
"stadium %d\n"
"\n"
#: src/print.c:233
#. rule # : LHS -> RHS
#: src/print.c:229
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Grammatica\n"
#: src/print.c:240
#: src/print.c:234
#, c-format
msgid "rule %-4d %s ->"
msgstr "regel %-4d %s ->"
#: src/print.c:246
msgid "\t\t/* empty */"
#: src/print.c:240
msgid "empty"
msgstr ""
#: src/print.c:253
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -366,7 +370,7 @@ msgstr ""
"Terminals, met regels waar ze voorkomen\n"
"\n"
#: src/print.c:302
#: src/print.c:268
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
@@ -374,11 +378,11 @@ msgstr ""
"Geen terminals, met regels waar ze voorkomen\n"
"\n"
#: src/print.c:329
#: src/print.c:294
msgid " on left:"
msgstr " links:"
#: src/print.c:344
#: src/print.c:309
msgid " on right:"
msgstr " rechts:"
@@ -394,116 +398,116 @@ msgstr ""
" $default\treduce using rule %d (%s)\n"
"\n"
#: src/reader.c:79
#: src/reader.c:78
msgid " Skipping to next \\n"
msgstr " Verder naar volgende \\n"
#: src/reader.c:81
#: src/reader.c:80
#, c-format
msgid " Skipping to next %c"
msgstr " Verder naar volgende %c"
#: src/reader.c:132 src/reader.c:144
#: src/reader.c:131 src/reader.c:143
msgid "invalid $ value"
msgstr "onjuiste $ waarde"
#: src/reader.c:170 src/reader.c:185
#: src/reader.c:169 src/reader.c:184
msgid "unterminated string at end of file"
msgstr "niet getermineerde string aan einde van bestand"
#: src/reader.c:173
#: src/reader.c:172
msgid "unterminated string"
msgstr "niet getermineerde string"
#: src/reader.c:326 src/reader.c:390
#: src/reader.c:325 src/reader.c:389
#, fuzzy, c-format
msgid "%s is invalid"
msgstr "@%s is onjuist"
#: src/reader.c:366
#: src/reader.c:365
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ van `%s' heeft geen gedeclareerd type"
#: src/reader.c:383
#: src/reader.c:382
#, fuzzy, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%s van `%s' heeft geen gedeclareerd type"
#: src/reader.c:437
#: src/reader.c:436
msgid "unterminated `%{' definition"
msgstr "niet getermineerde `%{' definitie"
#: src/reader.c:482 src/reader.c:598 src/reader.c:648
#: src/reader.c:481 src/reader.c:595 src/reader.c:645
#, c-format
msgid "Premature EOF after %s"
msgstr ""
#: src/reader.c:499
#: src/reader.c:498
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
#: src/reader.c:502
#: src/reader.c:501
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
#: src/reader.c:524 src/reader.c:667
#: src/reader.c:522 src/reader.c:664
#, c-format
msgid "symbol %s redefined"
msgstr "symbool %s opnieuw gedefinieerd"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1268
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#, c-format
msgid "type redeclaration for %s"
msgstr "type herdeclaratie voor %s"
#: src/reader.c:544
#: src/reader.c:541
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' is onjuist in %s"
#: src/reader.c:561 src/reader.c:721
#: src/reader.c:558 src/reader.c:717
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "meerdere %start declaraties"
#: src/reader.c:563 src/reader.c:1246
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "onjuiste %start declaratie"
#: src/reader.c:583
#: src/reader.c:580
msgid "%type declaration has no <typename>"
msgstr "%type declaratie heeft geen <typenaam>"
#: src/reader.c:618
#: src/reader.c:615
#, fuzzy, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "onjuist %%type declaratie door item: `%s'"
#: src/reader.c:663
#: src/reader.c:660
#, c-format
msgid "redefining precedence of %s"
msgstr "herdefinieren voorganger van %s"
#: src/reader.c:687
#: src/reader.c:683
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "onjuiste tekst (%s) - nummer hoort na de identifier"
#: src/reader.c:697
#: src/reader.c:693
#, c-format
msgid "unexpected item: %s"
msgstr "onbekend item: %s"
#: src/reader.c:759 src/reader.c:1072 src/reader.c:1143
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "niet overeenkomstige `{'"
#: src/reader.c:791
#: src/reader.c:792
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "argument van %expect is niet een integer"
@@ -518,125 +522,115 @@ 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:887
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "meerdere %union declaraties"
#: src/reader.c:902
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "meerdere %union declaraties"
#: src/reader.c:988
#: src/reader.c:1005
#, c-format
msgid "unrecognized: %s"
msgstr "onbekend: %s"
#: src/reader.c:993
#: src/reader.c:1010
msgid "no input grammar"
msgstr "geen invoer grammatica"
#: src/reader.c:998
#: src/reader.c:1015
#, c-format
msgid "unknown character: %s"
msgstr "onbekend karakter: %s"
#: src/reader.c:1166
#: src/reader.c:1183
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "niet getermineerde %%guard voorwaarde"
#: src/reader.c:1333
#: src/reader.c:1350
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr ""
"slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt"
#: src/reader.c:1340
#: src/reader.c:1357
msgid "grammar starts with vertical bar"
msgstr "grammatica start met een verticale bar"
#: src/reader.c:1371
#: src/reader.c:1388
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regel geven voor %s, welke een teken is"
#: src/reader.c:1473
#: src/reader.c:1490
msgid "two @prec's in a row"
msgstr "twee @prec's in een regel"
#: src/reader.c:1481
#, fuzzy, c-format
#: src/reader.c:1498
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd"
#: src/reader.c:1490
#: src/reader.c:1507
msgid "two actions at end of one rule"
msgstr "twee akties aan het einde van een regel"
#: src/reader.c:1504
#: src/reader.c:1521
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "type clash (`%s' `%s') bij standaard aktie"
#: src/reader.c:1510
#: src/reader.c:1527
msgid "empty rule for typed nonterminal, and no action"
msgstr "lege regel voor getypte niet terminal, en geen aktie"
#: src/reader.c:1554
#: src/reader.c:1571
#, c-format
msgid "invalid input: %s"
msgstr "ongeldige invoer: %s"
#: src/reader.c:1562
#: src/reader.c:1579
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "te veel symbolen (tekens plus nietterminals); maximum %s"
#: src/reader.c:1565
#: src/reader.c:1582
msgid "no rules in the input grammar"
msgstr "geen regels voor invoer grammatica"
#: src/reader.c:1589
#: src/reader.c:1606
#, 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:1694
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "conflictuerende precedentein voor %s en %s"
#: src/reader.c:1706
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflictuerende associatieve waarden voor %s en %s"
#: src/reader.c:1757
#: src/reader.c:1770
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr ""
#: src/reader.c:1770
#: src/reader.c:1782
#, c-format
msgid "the start symbol %s is undefined"
msgstr ""
#: src/reader.c:1772
#: src/reader.c:1784
#, c-format
msgid "the start symbol %s is a token"
msgstr "het start symbool %s is een token"
#: src/reduce.c:404
#: src/reduce.c:401
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"Onbruikbare niet terminals:\n"
"\n"
#: src/reduce.c:419
#: src/reduce.c:416
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -645,7 +639,7 @@ msgstr ""
"Terminals welke niet worden gebruikt:\n"
"\n"
#: src/reduce.c:430
#: src/reduce.c:427
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -654,7 +648,7 @@ msgstr ""
"Onbruikbare regels:\n"
"\n"
#: src/reduce.c:459
#: src/reduce.c:456
msgid ""
"Variables\n"
"---------\n"
@@ -664,11 +658,11 @@ msgstr ""
"----------\n"
"\n"
#: src/reduce.c:461
#: src/reduce.c:458
msgid "Value Sprec Sassoc Tag\n"
msgstr "Waarde Sprec Sassoc Tag\n"
#: src/reduce.c:466
#: src/reduce.c:463
msgid ""
"Rules\n"
"-----\n"
@@ -678,7 +672,7 @@ msgstr ""
"------\n"
"\n"
#: src/reduce.c:477
#: src/reduce.c:474
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -688,36 +682,36 @@ msgstr ""
"-----------------------\n"
"\n"
#: src/reduce.c:494
#: src/reduce.c:491
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d regels nooit gereduceerd\n"
#: src/reduce.c:496
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s bevat"
#: src/reduce.c:500
#: src/reduce.c:497
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d onbruikbare niet terminal%s"
#: src/reduce.c:505
#: src/reduce.c:502
msgid " and "
msgstr " en "
#: src/reduce.c:509
#: src/reduce.c:506
#, c-format
msgid "%d useless rule%s"
msgstr "%d onbruikbare regels%s"
#: src/reduce.c:542
#: src/reduce.c:539
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "Start symbool %s is niet afkomstig uit een zin"
#: src/reduce.c:555
#: src/reduce.c:552
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -725,50 +719,6 @@ msgstr ""
"gereduceerd %s gedefinieerd %d terminal%s, %d nietterminal%s, en %d productie"
"%s.\n"
#: src/vcg.c:234
msgid "vcg graph: no such color."
msgstr ""
#: src/vcg.c:249
msgid "vcg graph: no such text mode"
msgstr ""
#: src/vcg.c:265
msgid "vcg graph: no such shape"
msgstr ""
#: src/vcg.c:304
msgid "vcg graph: no such decision"
msgstr ""
#: src/vcg.c:320
msgid "vcg graph: no such an orientation"
msgstr ""
#: src/vcg.c:335
msgid "vcg graph: no such an alignement"
msgstr ""
#: src/vcg.c:349
msgid "vcg graph: no such an arrow mode"
msgstr ""
#: src/vcg.c:365
msgid "vcg graph: no such crossing_type"
msgstr ""
#: src/vcg.c:382
msgid "vcg graph: no such view"
msgstr ""
#: src/vcg.c:398
msgid "vcg graph: no such linestyle"
msgstr ""
#: src/vcg.c:413
msgid "vcg graph: no such an arrowstyle"
msgstr ""
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
@@ -849,36 +799,14 @@ msgstr "%s: geen geheugen meer beschikbaar\n"
#. MARK). A British English Unicode locale should instead
#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:259
#: lib/quotearg.c:268
msgid "`"
msgstr ""
#: lib/quotearg.c:260
#: lib/quotearg.c:269
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 "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"
@@ -925,7 +853,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"
@@ -933,8 +860,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"
@@ -943,15 +868,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"
@@ -964,3 +882,27 @@ 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 "multiple %union declarations"
#~ msgstr "meerdere %union declaraties"
#~ 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.
+187 -268
View File
@@ -1,12 +1,12 @@
# ðÅÒÅ×ÏÄ ÓÏÏÂÝÅÎÉÊ bison.
# Copyright (C) 1999 Free Software Foundation, Inc.
# Dmitry S. Sivachenko <[email protected]>, 1999,2000.
# Dmitry S. Sivachenko <[email protected]>, 1999,2000,2001.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.28a\n"
"POT-Creation-Date: 2001-08-15 10:53+0200\n"
"PO-Revision-Date: 2000-04-12 13:16+04:00\n"
"Project-Id-Version: bison 1.29\n"
"POT-Creation-Date: 2001-10-02 18:30+0200\n"
"PO-Revision-Date: 2001-09-09 13:49+04:00\n"
"Last-Translator: Dmitry S. Sivachenko <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -18,91 +18,90 @@ msgstr ""
msgid "too many states (max %d)"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÏÓÔÏÑÎÉÊ (ÍÁËÓÉÍÁÌØÎÏ %d)"
#: lib/error.c:117 src/complain.c:100
#: lib/error.c:117 src/complain.c:96
msgid "Unknown system error"
msgstr ""
msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ"
#: src/complain.c:154
#: src/complain.c:150
msgid "warning: "
msgstr ""
msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
#: src/complain.c:242 src/complain.c:283
#, fuzzy
#: src/complain.c:238 src/complain.c:279
msgid "fatal error: "
msgstr "ÏÛÉÂËÁ"
msgstr "ÆÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: "
#: src/conflicts.c:49
#: src/conflicts.c:48
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr ""
"ëÏÎÆÌÉËÔ × ÓÏÓÔÏÑÎÉÉ %d ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ËÁË %s.\n"
#: src/conflicts.c:115 src/conflicts.c:138
#: src/conflicts.c:114 src/conflicts.c:137
msgid "reduce"
msgstr "×Ù×ÏÄ"
#: src/conflicts.c:121 src/conflicts.c:134
#: src/conflicts.c:120 src/conflicts.c:133
msgid "shift"
msgstr "ÓÄ×ÉÇ"
#: src/conflicts.c:142
#: src/conflicts.c:141
msgid "an error"
msgstr "ÏÛÉÂËÁ"
#: src/conflicts.c:422
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:427
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:433
#: src/conflicts.c:432
msgid " and"
msgstr " É"
#: src/conflicts.c:439
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 ËÏÎÆÌÉËÔ ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:444
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d ËÏÎÆÌÉËÔÏ× ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:481
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
msgstr "óÏÓÔÏÑÎÉÅ %d ÓÏÄÅÒÖÉÔ"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:493
#: src/conflicts.c:491
msgid "conflicts: "
msgstr "ËÏÎÆÌÉËÔÙ: "
#: src/conflicts.c:495
#: src/conflicts.c:493
#, c-format
msgid " %d shift/reduce"
msgstr " %d ÓÄ×ÉÇ/×Ù×ÏÄ"
#: src/conflicts.c:499
#: src/conflicts.c:497
#, c-format
msgid " %d reduce/reduce"
msgstr " %d ×Ù×ÏÄ/×Ù×ÏÄ"
#: src/conflicts.c:504
#: src/conflicts.c:502
#, c-format
msgid "%s contains"
msgstr "%s ÓÏÄÅÒÖÉÔ"
#: src/conflicts.c:590 src/conflicts.c:711
#: src/conflicts.c:588 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)]\n"
#: src/conflicts.c:602 src/print.c:173
#: src/conflicts.c:600 src/print.c:171
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -111,39 +110,33 @@ msgstr ""
" $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
"\n"
#: src/conflicts.c:691 src/conflicts.c:705
#: src/conflicts.c:689 src/conflicts.c:703
#, c-format
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#: src/conflicts.c:732
#: src/conflicts.c:730
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#: src/derives.c:44
#, fuzzy
#: src/derives.c:43
msgid "DERIVES"
msgstr ""
"\n"
"\n"
"\n"
"DERIVES\n"
"\n"
msgstr "DERIVES"
#: src/derives.c:49
#: src/derives.c:48
#, c-format
msgid "%s derives"
msgstr "%s ×Ù×ÏÄÉÔ"
#: src/files.c:130
#: src/files.c:133
#, c-format
msgid "cannot open file `%s'"
msgstr ""
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ `%s'"
#: src/files.c:149
#: src/files.c:152
msgid "cannot close file"
msgstr ""
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÚÁËÒÙÔØ ÆÁÊÌ"
#. Some efforts were made to ease the translators' task, please
#. continue.
@@ -178,7 +171,6 @@ msgstr ""
" -y, --yacc ÜÍÕÌÉÒÏ×ÁÔØ POSIX yacc\n"
#: src/getargs.c:104
#, fuzzy
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -190,11 +182,12 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
"áÎÁÌÉÚÁÔÏÒ:\n"
" -S, --skeleton=æáêì ÕËÁÚÁÔØ ÆÁÊÌ ÛÁÂÌÏÎÁ\n"
" -t, --debug ÎÁÓÔÒÏÉÔØ ÁÎÁÌÉÚÁÔÏÒ ÄÌÑ ÏÔÌÁÄËÉ\n"
" --locations ×ËÌÀÞÉÔØ ×ÙÞÉÓÌÅÎÉÅ ÍÅÓÔÏÐÏÌÏÖÅÎÉÊ\n"
" -p, --name-prefix=ðòåæéëó ÐÏÄÓÔÁ×ÉÔØ ðòåæéëó ÄÌÑ ×ÎÅÛÎÉÈ ÓÉÍ×ÏÌÏ×\n"
" -l, --no-lines ÎÅ ÇÅÎÅÒÉÒÏ×ÁÔØ ÄÉÒÅËÔÉ×Ù `#line'\n"
" -n, --no-parser ÇÅÎÅÒÉÒÏ×ÁÔØ ÔÏÌØËÏ ÔÁÂÌÉÃÙ\n"
" -r, --raw ÎÕÍÅÒÏ×ÁÔØ ÌÅËÓÅÍÙ, ÎÁÞÉÎÁÑ Ó 3\n"
" -k, --token-table ×ËÌÀÞÉÔØ ÔÁÂÌÉÃÕ ÉÍÅÎ ÌÅËÓÅÍ\n"
#: src/getargs.c:116
@@ -204,327 +197,324 @@ msgid ""
" -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"
" -v, --verbose ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ × Á×ÔÏÍÁÔÕ\n"
" -b, --file-prefix=ðòåæéëó ÕËÁÚÁÔØ ðòåæéëó ÄÌÑ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×\n"
" -o, --output-file=æáêì ÐÏÍÅÓÔÉÔØ ÒÅÚÕÌØÔÁÔ × æáêì\n"
" -g, --graph ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ Ë Á×ÔÏÍÁÔÕ × ×ÉÄÅ \n"
"VCG-ÇÒÁÆÁ\n"
#: src/getargs.c:124
#: 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:138
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:143
#: 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:147
#: 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 ""
"üÔÏ Ó×ÏÂÏÄÎÁÑ ÐÒÏÇÒÁÍÍÁ; ÕÓÌÏ×ÉÑ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÓÍÏÔÒÉÔÅ × ÉÓÈÏÄÎÙÈ "
"ÔÅËÓÔÁÈ.\n"
"îéëáëéè ÇÁÒÁÎÔÉÊ ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔÓÑ, ÄÁÖÅ ÇÁÒÁÎÔÉÉ ðïìåúîïóôé ÉÌÉ "
"ðòéçïäîïóôé\n"
"äìñ ïðòåäåìåîîïê ãåìé.\n"
#: src/getargs.c:208 src/lex.c:635
#: src/getargs.c:214 src/lex.c:650
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
msgstr "`%s' ÂÏÌØÛÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
#: src/getargs.c:232
#: src/getargs.c:238
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
msgstr "éÓÐÏÌØÚÕÊÔÅ `%s --help' ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
#: src/getargs.c:239
#: src/getargs.c:245
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: ÎÅ ÚÁÄÁÎ ÆÁÊÌ Ó ÇÒÁÍÍÁÔÉËÏÊ\n"
#: src/getargs.c:243
#: src/getargs.c:249
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
#: src/lalr.c:312
#: src/lalr.c:311
#, c-format
msgid "too many gotos (max %d)"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)"
#: src/lex.c:70
#: src/lex.c:78
msgid "unexpected `/' found and ignored"
msgstr "×ÓÔÒÅÞÅÎ É ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ ÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'"
#: src/lex.c:99 src/reader.c:270
#: src/lex.c:107 src/reader.c:269
msgid "unterminated comment"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ"
#: src/lex.c:131
#: src/lex.c:139
msgid "unexpected end of file"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
#: src/lex.c:160
#: src/lex.c:168
msgid "unescaped newline in constant"
msgstr "ÎÅÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ËÏÎÓÔÁÎÔÅ"
#: src/lex.c:202
#: src/lex.c:210
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "×ÏÓØÍÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ 0...255: `\\%o'"
#: src/lex.c:227
#: src/lex.c:235
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÐÒÅ×ÙÛÁÅÔ 255: `\\x%x'"
#: src/lex.c:239
#: src/lex.c:247
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `%s' ÐÏÓÌÅ `\\'"
#: src/lex.c:335
#: src/lex.c:343
msgid "unterminated type name at end of file"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ × ËÏÎÃÅ ÆÁÊÌÁ"
#: src/lex.c:338
#: src/lex.c:346
msgid "unterminated type name"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ"
#: src/lex.c:430
#: src/lex.c:437
msgid "use \"...\" for multi-character literal tokens"
msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
#: src/main.c:108
#: src/main.c:125
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n"
#: src/nullable.c:52
#: src/nullable.c:51
msgid "Entering set_nullable"
msgstr "÷ÈÏÄ × set_nullable"
#: src/output.c:993
#: src/output.c:986
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
#: src/print.c:38
#: src/print.c:37
#, c-format
msgid " type %d is %s\n"
msgstr " ÔÉÐ %d Ñ×ÌÑÅÔÓÑ %s\n"
#: src/print.c:86
#: src/print.c:85
#, c-format
msgid " (rule %d)"
msgstr " (ÐÒÁ×ÉÌÏ %d)"
#: src/print.c:112
#: src/print.c:111
msgid " $default\taccept\n"
msgstr " $default\tÐÒÉÎÑÔÉÅ\n"
#: src/print.c:114
#: src/print.c:113
msgid " NO ACTIONS\n"
msgstr " îåô äåêóô÷éê\n"
#: src/print.c:133
#: src/print.c:132
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:136
#: src/print.c:135
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tÓÄ×ÉÇ, É ÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:160
#: src/print.c:159
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\tÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
#: src/print.c:190
#: src/print.c:187
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:202
#, fuzzy, c-format
#: src/print.c:199
#, c-format
msgid "state %d"
msgstr ""
"\n"
"\n"
"ÓÏÓÔÏÑÎÉÅ %d\n"
"\n"
msgstr "ÓÏÓÔÏÑÎÉÅ %d"
#: src/print.c:233
#, fuzzy
#. rule # : LHS -> RHS
#: src/print.c:229
msgid "Grammar"
msgstr ""
"\n"
"çÒÁÍÍÁÔÉËÁ\n"
msgstr "çÒÁÍÍÁÔÉËÁ"
#: src/print.c:240
#: src/print.c:234
#, c-format
msgid "rule %-4d %s ->"
msgstr "ÐÒÁ×ÉÌÏ %-4d %s ->"
#: src/print.c:246
msgid "\t\t/* empty */"
msgstr "\t\t/* ÐÕÓÔÏ */"
#: src/print.c:240
msgid "empty"
msgstr ""
#: src/print.c:253
#, fuzzy
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
msgid "Terminals, with rules where they appear"
msgstr ""
"\n"
"ôÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ\n"
"\n"
msgstr "ôÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
#: src/print.c:302
#, fuzzy
#: src/print.c:268
msgid "Nonterminals, with rules where they appear"
msgstr ""
"\n"
"îÅÔÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ\n"
"\n"
msgstr "îÅÔÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
#: src/print.c:329
#: src/print.c:294
msgid " on left:"
msgstr " ÎÁÌÅ×Ï:"
#: src/print.c:344
#: src/print.c:309
msgid " on right:"
msgstr " ÎÁÐÒÁ×Ï:"
#: src/print_graph.c:174
#, fuzzy, c-format
#, c-format
msgid "%-4s\terror (nonassociative)"
msgstr " %-4s\tÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
msgstr "%-4s\tÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)"
#: src/print_graph.c:187
#, fuzzy, c-format
#, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
msgstr "$default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)"
#: src/reader.c:79
#: src/reader.c:78
msgid " Skipping to next \\n"
msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n"
#: src/reader.c:81
#: src/reader.c:80
#, c-format
msgid " Skipping to next %c"
msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ %c"
#: src/reader.c:132 src/reader.c:144
#: src/reader.c:131 src/reader.c:143
msgid "invalid $ value"
msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ"
#: src/reader.c:170 src/reader.c:185
#: src/reader.c:169 src/reader.c:184
msgid "unterminated string at end of file"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ × ËÏÎÃÅ ÆÁÊÌÁ"
#: src/reader.c:173
#: src/reader.c:172
msgid "unterminated string"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ"
#: src/reader.c:326 src/reader.c:390
#, fuzzy, c-format
#: src/reader.c:325 src/reader.c:389
#, c-format
msgid "%s is invalid"
msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË $%s"
msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË %s"
#: src/reader.c:366
#: src/reader.c:365
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
#: src/reader.c:383
#: src/reader.c:382
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d ÉÚ `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
#: src/reader.c:437
#: src/reader.c:436
msgid "unterminated `%{' definition"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ `%{'"
#: src/reader.c:482 src/reader.c:598 src/reader.c:648
#: src/reader.c:481 src/reader.c:595 src/reader.c:645
#, c-format
msgid "Premature EOF after %s"
msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ ÐÏÓÌÅ %s"
#: src/reader.c:499
#: src/reader.c:498
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
#: src/reader.c:502
#: src/reader.c:501
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
#: src/reader.c:524 src/reader.c:667
#: src/reader.c:522 src/reader.c:664
#, c-format
msgid "symbol %s redefined"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
#: src/reader.c:534 src/reader.c:613 src/reader.c:674 src/reader.c:1268
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#, c-format
msgid "type redeclaration for %s"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
#: src/reader.c:544
#: src/reader.c:541
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' ÎÅ×ÅÒÎÏ × %s"
#: src/reader.c:561 src/reader.c:721
#, fuzzy, c-format
#: src/reader.c:558 src/reader.c:717
#, c-format
msgid "multiple %s declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %start"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %s"
#: src/reader.c:563 src/reader.c:1246
#, fuzzy, c-format
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#, c-format
msgid "invalid %s declaration"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %start"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %s"
#: src/reader.c:583
#: src/reader.c:580
msgid "%type declaration has no <typename>"
msgstr "ÏÐÉÓÁÎÉÅ %type ÎÅ ÉÍÅÅÔ <ÉÍÑ_ÔÉÐÁ>"
#: src/reader.c:618
#: src/reader.c:615
#, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %%type ÉÚ-ÚÁ ÜÌÅÍÅÎÔÁ: %s"
#: src/reader.c:663
#: src/reader.c:660
#, c-format
msgid "redefining precedence of %s"
msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÏÒÉÔÅÔÁ ÄÌÑ %s"
#: src/reader.c:687
#: src/reader.c:683
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "ÎÅ×ÅÒÎÙÊ ÔÅËÓÔ (%s) - ÞÉÓÌÏ ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÚÁ ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ"
#: src/reader.c:697
#: src/reader.c:693
#, c-format
msgid "unexpected item: %s"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
#: src/reader.c:759 src/reader.c:1072 src/reader.c:1143
#, fuzzy, c-format
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#, c-format
msgid "unmatched %s"
msgstr "ÎÅÐÁÒÎÁÑ `{'"
msgstr "ÎÅÐÁÒÎÁÑ %s"
#: src/reader.c:791
#, fuzzy, c-format
#: src/reader.c:792
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "ÁÒÇÕÍÅÎÔ %expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
msgstr "ÁÒÇÕÍÅÎÔ %%expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
#: src/reader.c:838
#, c-format
@@ -536,141 +526,118 @@ msgstr "
msgid "expected string constant instead of %s"
msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
#: src/reader.c:887
#, fuzzy, c-format
msgid "multiple %%header_extension declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %union"
#: src/reader.c:902
#, fuzzy, c-format
msgid "multiple %%source_extension declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %union"
#: src/reader.c:988
#: src/reader.c:1005
#, c-format
msgid "unrecognized: %s"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s"
#: src/reader.c:993
#: src/reader.c:1010
msgid "no input grammar"
msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
#: src/reader.c:998
#: src/reader.c:1015
#, c-format
msgid "unknown character: %s"
msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s"
#: src/reader.c:1166
#: src/reader.c:1183
#, c-format
msgid "unterminated %guard clause"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard"
#: src/reader.c:1333
#: src/reader.c:1350
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
#: src/reader.c:1340
#: src/reader.c:1357
msgid "grammar starts with vertical bar"
msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
#: src/reader.c:1371
#: src/reader.c:1388
#, c-format
msgid "rule given for %s, which is a token"
msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
#: src/reader.c:1473
#: src/reader.c:1490
msgid "two @prec's in a row"
msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
#: src/reader.c:1481
#, fuzzy, c-format
#: src/reader.c:1498
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %semantic_parser ÎÅ ÚÁÄÁÎ"
msgstr "%%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %%semantic_parser ÎÅ ÚÁÄÁÎ"
#: src/reader.c:1490
#: src/reader.c:1507
msgid "two actions at end of one rule"
msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
#: src/reader.c:1504
#: src/reader.c:1521
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
#: src/reader.c:1510
#: src/reader.c:1527
msgid "empty rule for typed nonterminal, and no action"
msgstr ""
"ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
#: src/reader.c:1554
#: src/reader.c:1571
#, c-format
msgid "invalid input: %s"
msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s"
#: src/reader.c:1562
#: src/reader.c:1579
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
#: src/reader.c:1565
#: src/reader.c:1582
msgid "no rules in the input grammar"
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
#: src/reader.c:1589
#: src/reader.c:1606
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
#: src/reader.c:1694
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
#: src/reader.c:1706
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
#: src/reader.c:1757
#: src/reader.c:1770
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %d"
#: src/reader.c:1770
#: src/reader.c:1782
#, c-format
msgid "the start symbol %s is undefined"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
#: src/reader.c:1772
#: src/reader.c:1784
#, c-format
msgid "the start symbol %s is a token"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
#: src/reduce.c:404
#, fuzzy
#: src/reduce.c:401
msgid "Useless nonterminals:"
msgstr ""
"âÅÓÐÏÌÅÚÎÙÅ ÎÅÔÅÒÍÉÎÁÌÙ:\n"
"\n"
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÎÅÔÅÒÍÉÎÁÌÙ:"
#: src/reduce.c:419
#, fuzzy
#: src/reduce.c:416
msgid "Terminals which are not used:"
msgstr ""
"\n"
"\n"
"îÅÉÓÐÏÌØÚÏ×ÁÎÎÙÅ ÔÅÒÍÉÎÁÌÙ:\n"
"\n"
msgstr "îÅÉÓÐÏÌØÚÏ×ÁÎÎÙÅ ÔÅÒÍÉÎÁÌÙ:"
#: src/reduce.c:430
#, fuzzy
#: src/reduce.c:427
msgid "Useless rules:"
msgstr ""
"\n"
"\n"
"âÅÓÐÏÌÅÚÎÙÅ ÐÒÁ×ÉÌÁ:\n"
"\n"
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÐÒÁ×ÉÌÁ:"
#: src/reduce.c:459
#: src/reduce.c:456
msgid ""
"Variables\n"
"---------\n"
@@ -680,11 +647,11 @@ msgstr ""
"----------\n"
"\n"
#: src/reduce.c:461
#: src/reduce.c:458
msgid "Value Sprec Sassoc Tag\n"
msgstr "úÎÁÞ ðÒÉÏÒ áÓÓÏÃ ôÅÇ\n"
#: src/reduce.c:466
#: src/reduce.c:463
msgid ""
"Rules\n"
"-----\n"
@@ -694,7 +661,7 @@ msgstr ""
"-------\n"
"\n"
#: src/reduce.c:477
#: src/reduce.c:474
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -704,36 +671,36 @@ msgstr ""
"--------------------------\n"
"\n"
#: src/reduce.c:494
#: src/reduce.c:491
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d ÐÒÁ×ÉÌ ÎÅ Ó×ÅÄÅÎÏ\n"
#: src/reduce.c:496
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s ÓÏÄÅÒÖÉÔ "
#: src/reduce.c:500
#: src/reduce.c:497
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d ÂÅÓÐÏÌÅÚÎÙÈ ÎÅÔÅÒÍÉÎÁÌÏ×%s"
#: src/reduce.c:505
#: src/reduce.c:502
msgid " and "
msgstr " É "
#: src/reduce.c:509
#: src/reduce.c:506
#, c-format
msgid "%d useless rule%s"
msgstr "%d ÂÅÓÐÏÌÅÚÎÙÈ ÐÒÁ×ÉÌ%s"
#: src/reduce.c:542
#: src/reduce.c:539
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "îÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅ ×Ù×ÏÄÉÔ ÎÉ ÏÄÎÏÇÏ ÐÒÅÄÌÏÖÅÎÉÑ"
#: src/reduce.c:555
#: src/reduce.c:552
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -741,50 +708,6 @@ msgstr ""
"×Ù×ÅÄÅÎÎÙÊ %s ÏÐÒÅÄÅÌÑÅÔ %d ÔÅÒÍÉÎÁÌÏ×%s, %d ÎÅÔÅÒÍÉÎÁÌÏ×%s, É %d ÐÒÁ×ÉÌ "
"×Ù×ÏÄÁ%s.\n"
#: src/vcg.c:234
msgid "vcg graph: no such color."
msgstr ""
#: src/vcg.c:249
msgid "vcg graph: no such text mode"
msgstr ""
#: src/vcg.c:265
msgid "vcg graph: no such shape"
msgstr ""
#: src/vcg.c:304
msgid "vcg graph: no such decision"
msgstr ""
#: src/vcg.c:320
msgid "vcg graph: no such an orientation"
msgstr ""
#: src/vcg.c:335
msgid "vcg graph: no such an alignement"
msgstr ""
#: src/vcg.c:349
msgid "vcg graph: no such an arrow mode"
msgstr ""
#: src/vcg.c:365
msgid "vcg graph: no such crossing_type"
msgstr ""
#: src/vcg.c:382
msgid "vcg graph: no such view"
msgstr ""
#: src/vcg.c:398
msgid "vcg graph: no such linestyle"
msgstr ""
#: src/vcg.c:413
msgid "vcg graph: no such an arrowstyle"
msgstr ""
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
@@ -847,9 +770,8 @@ msgstr "%s:
#. 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: ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ\n"
msgstr "ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ"
#. Get translations for open and closing quotation marks.
#.
@@ -865,25 +787,22 @@ msgstr "%s:
#. MARK). A British English Unicode locale should instead
#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:259
#: lib/quotearg.c:268
msgid "`"
msgstr ""
msgstr "`"
#: lib/quotearg.c:260
#: lib/quotearg.c:269
msgid "'"
msgstr ""
msgstr "'"
#~ msgid "unterminated comment at end of file"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ × ËÏÎÃÅ ÆÁÊÌÁ"
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* ÐÕÓÔÏ */"
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "ÎÅÐÁÒÎÁÑ ÚÁËÒÙ×ÁÀÝÁÑ ÆÉÇÕÒÎÁÑ ÓËÏÂËÁ (`}')"
#~ msgid "multiple %%header_extension declarations"
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÙÅ ÏÐÉÓÁÎÉÑ %%header_extension"
#~ msgid "multiple %%source_extension declarations"
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÙÅ ÏÐÉÓÁÎÉÑ %%source_extension"
#~ msgid "@%s is invalid"
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË @%s"
#~ msgid "unmatched right brace (`}')"
#~ msgstr "ÎÅÐÁÒÎÁÑ ÐÒÁ×ÁÑ ÆÉÇÕÒÎÁÑ ÓËÏÂËÁ (`}')"
#~ msgid "ill-formed %type declaration"
#~ msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %type"
+840
View File
@@ -0,0 +1,840 @@
# Turkish translations for GNU Bison messages.
# Copyright (C) 2001 Free Software Foundation, Inc.
# Altug Bayram <[email protected]>, 2001.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.28c\n"
"POT-Creation-Date: 2001-10-02 18:30+0200\n"
"PO-Revision-Date: 2001-09-10 10:54GMT\n"
"Last-Translator: Altug Bayram <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-9\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.5\n"
#: src/LR0.c:207
#, c-format
msgid "too many states (max %d)"
msgstr "çok fazla durum (en fazla %d)"
#: lib/error.c:117 src/complain.c:96
msgid "Unknown system error"
msgstr "Bilinmeyen sistem hatasý"
#: src/complain.c:150
msgid "warning: "
msgstr "uyarý: "
#: src/complain.c:238 src/complain.c:279
msgid "fatal error: "
msgstr "ölümcül hata:"
#: src/conflicts.c:48
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr ""
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s "
"olarakçözümlendi.\n"
#: src/conflicts.c:114 src/conflicts.c:137
msgid "reduce"
msgstr "indirgeme"
#: src/conflicts.c:120 src/conflicts.c:133
msgid "shift"
msgstr "öteleme"
#: src/conflicts.c:141
msgid "an error"
msgstr "bir hata"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 öteleme/indirgeme çeliþkisi"
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d öteleme/indirgeme çeliþkisi"
#: src/conflicts.c:432
msgid " and"
msgstr " ve"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 indirgeme/indirgeme çeliþkisi"
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d indirgeme/indirgeme çeliþkisi"
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
msgstr "%d durumu içerir"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:491
msgid "conflicts: "
msgstr "çeliþkiler: "
#: src/conflicts.c:493
#, c-format
msgid " %d shift/reduce"
msgstr " %d öteleme/indirgeme"
#: src/conflicts.c:497
#, c-format
msgid " %d reduce/reduce"
msgstr " %d indirgeme/indirgeme"
#: src/conflicts.c:502
#, c-format
msgid "%s contains"
msgstr "%s içerir"
#: src/conflicts.c:588 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[indirgeme kural %d (%s)'i kullanýyor]\n"
#: src/conflicts.c:600 src/print.c:171
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
"\n"
msgstr ""
" $default\tindirgeme kural %d (%s)'i kullanýyor\n"
"\n"
#: src/conflicts.c:689 src/conflicts.c:703
#, c-format
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\tindirgeme kural %d (%s)'i kullanýyor\n"
#: src/conflicts.c:730
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\tindirgeme kural %d (%s)'i kullanýyor\n"
#: src/derives.c:43
msgid "DERIVES"
msgstr "TÜRETÝLENLER"
#: src/derives.c:48
#, c-format
msgid "%s derives"
msgstr "%s türetildi"
#: src/files.c:133
#, c-format
msgid "cannot open file `%s'"
msgstr "`%s' dosyasý açýlamadý"
#: src/files.c:152
msgid "cannot close file"
msgstr "dosya kapatýlamýyor"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison LALR(1) gramerler için ayrýþtýrýcýlar üretir.\n"
#: src/getargs.c:87
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Kullaným: %s [SEÇENEK]... DOSYA\n"
#: 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 ""
"Eðer bir uzun seçenek bir argümaný gerektirirse, bu gereklilik, denk olan\n"
"kýsa seçenek için de geçerlidir. Bu durum, seçimli argümanlar için de\n"
"geçerlidir.\n"
#: 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 ""
"Çalýþma kipleri:\n"
" -h, --help bu yardýmý göster ve çýk\n"
" -V, --version sürüm bilgisini ver ve çýk\n"
" -y, --yacc POSIX yacc öykünmesi\n"
#: src/getargs.c:104
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Ayrýþtýrýcý:\n"
" -S, --skeleton=DOSYA kullanýlacak iskeleti belirler\n"
" -t, --debug ayrýþtýrýcý için hata ayýklayýcý aracý\n"
" --locations konum hesaplamalarýný etkinleþtirir\n"
" -p, --name-prefix=ÖNEK dýþ simgelere eklenen ÖNEK\n"
" -l, --no-lines `#line' bildirimlerini üretmez\n"
" -n, --no-parser sadece tablolarý üretir\n"
" -k, --token-table andaç isimlerinin bir tablosunu içerir\n"
#: 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 ""
"Çýktý:\n"
" -d, --defines bir baþlýk dosyasý da üretir\n"
" -v, --verbose otomatýn bir açýklamasýný da üretir\n"
" -b, --file-prefix=ÖNEK çýktý dosyalarý için bir ÖNEK belirtir\n"
" -o, --output-file=DOSYA çýktýyý DOSYAYA býrakýr\n"
#: src/getargs.c:126
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
"Hatalarý <[email protected]>'a,\n"
"çeviri hatalarýný <[email protected]>'e bildir.\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:145
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
"Telifhakký 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, "
"Inc.\n"
#: 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 ""
"Bu bir serbest yazýlýmdýr; kopyalama koþullarý için kaynak koduna bakýnýz.\n"
"Hiçbir garantisi yoktur; hatta SATILABÝLÝRLÝÐÝ veya HERHANGÝ BÝR AMACA\n"
"UYGUNLUÐU için bile garanti verilmez.\n"
#: src/getargs.c:214 src/lex.c:650
#, c-format
msgid "`%s' is no longer supported"
msgstr "`%s' artýk desteklenmiyor"
#: src/getargs.c:238
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Daha fazla bilgi için `%s --help' yazýn.\n"
#: src/getargs.c:245
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: gramer dosyasý verilmemiþ\n"
#: src/getargs.c:249
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n"
#: src/lalr.c:311
#, c-format
msgid "too many gotos (max %d)"
msgstr "gotos çok fazla (en fazla %d)"
#: src/lex.c:78
msgid "unexpected `/' found and ignored"
msgstr "beklenmeyen `/' bulundu ve yoksayýldý"
#: src/lex.c:107 src/reader.c:269
msgid "unterminated comment"
msgstr "sonlandýrýlmamýþ açýklama"
#: src/lex.c:139
msgid "unexpected end of file"
msgstr "beklenmeyen dosya sonu"
#: src/lex.c:168
msgid "unescaped newline in constant"
msgstr "sabit içinde kaçýþsýz yeni satýr"
#: src/lex.c:210
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "sekizli deðer 0...255'in dýþýnda: `\\%o'"
#: src/lex.c:235
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "onaltýlýk deðer 255'in üstünde: `\\x%x'"
#: src/lex.c:247
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "bilinmeyen kaçýþ sýrasý: `\\' `%s' tarafýndan takip edildi"
#: src/lex.c:343
msgid "unterminated type name at end of file"
msgstr "dosya sonunda sonlandýrýlmamýþ tip adý"
#: src/lex.c:346
msgid "unterminated type name"
msgstr "sonlandýrýlmamýþ tip ismi"
#: src/lex.c:437
msgid "use \"...\" for multi-character literal tokens"
msgstr "çok-karakterli yazýn andaçlarý için \"...\" kullan"
#: src/main.c:125
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: iç hata: %s\n"
#: src/nullable.c:51
msgid "Entering set_nullable"
msgstr "set_nullable'a girildi"
#: src/output.c:986
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "en büyük tablo uzunluðu (%d) aþýldý"
#: src/print.c:37
#, c-format
msgid " type %d is %s\n"
msgstr " tip %d %s'dir\n"
#: src/print.c:85
#, c-format
msgid " (rule %d)"
msgstr " (kural %d)"
#: src/print.c:111
msgid " $default\taccept\n"
msgstr " $default\tonayla\n"
#: src/print.c:113
msgid " NO ACTIONS\n"
msgstr " EYLEM YOK\n"
#: src/print.c:132
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tdurum %d'ye git\n"
#: src/print.c:135
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tötele, ve durum %d'ye git\n"
#: src/print.c:159
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\thata (birleþmeli deðil)\n"
#: src/print.c:187
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tdurum %d'ye git\n"
#: src/print.c:199
#, c-format
msgid "state %d"
msgstr "durum %d"
#. rule # : LHS -> RHS
#: src/print.c:229
msgid "Grammar"
msgstr "Gramer"
#: src/print.c:234
#, c-format
msgid "rule %-4d %s ->"
msgstr "kural %-4d %s ->"
#: src/print.c:240
msgid "empty"
msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
msgid "Terminals, with rules where they appear"
msgstr "Sabit simgeler, kurallarýnýn bulunduklarý yerde"
#: src/print.c:268
msgid "Nonterminals, with rules where they appear"
msgstr "Deðiþken simgeler, kurallarýnýn bulunduklarý yerde"
#: src/print.c:294
msgid " on left:"
msgstr " solda:"
#: src/print.c:309
msgid " on right:"
msgstr " saðda:"
#: src/print_graph.c:174
#, c-format
msgid "%-4s\terror (nonassociative)"
msgstr "%-4s\thata (birleþmeli deðil)"
#: src/print_graph.c:187
#, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr "$default\tindirgeme kural %d (%s)'i kullanýyor"
#: src/reader.c:78
msgid " Skipping to next \\n"
msgstr " Sonrakine atlanýyor \\n"
#: src/reader.c:80
#, c-format
msgid " Skipping to next %c"
msgstr " Sonraki %c'ye atlanýyor"
#: src/reader.c:131 src/reader.c:143
msgid "invalid $ value"
msgstr "geçersiz $ deðeri"
#: src/reader.c:169 src/reader.c:184
msgid "unterminated string at end of file"
msgstr "dosyanýn sonunda sonlandýrýlmamýþ dizge"
#: src/reader.c:172
msgid "unterminated string"
msgstr "sonlandýrýlmamýþ dizge"
#: src/reader.c:325 src/reader.c:389
#, c-format
msgid "%s is invalid"
msgstr "%s geçersizdir"
#: src/reader.c:365
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "`%s''in $$'ý bildirilmiþ tip deðil"
#: src/reader.c:382
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "`%d''in $%s'i bildirilmiþ tip deðil"
#: src/reader.c:436
msgid "unterminated `%{' definition"
msgstr "`%{' tanýmlamasý sonlandýrýlmamýþ"
#: src/reader.c:481 src/reader.c:595 src/reader.c:645
#, c-format
msgid "Premature EOF after %s"
msgstr "%s'den sonra erken EOF"
#: src/reader.c:498
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "simge `%s' birden fazla defa sabit dizge olarak kullanýldý"
#: src/reader.c:501
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "`%s' simgesine birden fazla sabit dizge verilmiþ"
#: src/reader.c:522 src/reader.c:664
#, c-format
msgid "symbol %s redefined"
msgstr "%s simgesi yeniden tanýmlandý"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#, c-format
msgid "type redeclaration for %s"
msgstr "%s için yeniden tip bildirimi"
#: src/reader.c:541
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' %s içinde geçersizdir"
#: src/reader.c:558 src/reader.c:717
#, c-format
msgid "multiple %s declarations"
msgstr "çoklu %s bildirimleri"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#, c-format
msgid "invalid %s declaration"
msgstr "geçersiz %s bildirimi"
#: src/reader.c:580
msgid "%type declaration has no <typename>"
msgstr "%type bildirimi <tipadý>'na sahip deðil"
#: src/reader.c:615
#, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "geçersiz %%type bildirimine neden olan öðe: %s"
#: src/reader.c:660
#, c-format
msgid "redefining precedence of %s"
msgstr "%s'in önceliði tekrar tanýmlandý"
#: src/reader.c:683
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "geçersiz metin (%s) - sayý tanýtýcýdan sonra olmalýdýr"
#: src/reader.c:693
#, c-format
msgid "unexpected item: %s"
msgstr "beklenmeyen öðe: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#, c-format
msgid "unmatched %s"
msgstr "eþlenemeyen %s"
#: src/reader.c:792
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "%%expect'in argümaný bir tamsayý deðil"
#: src/reader.c:838
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "%s öðesi tanýnmadý, beklenen bir tanýtýcýdýr"
#: src/reader.c:862
#, c-format
msgid "expected string constant instead of %s"
msgstr "%s'in yerine sabit dizge beklendi"
#: src/reader.c:1005
#, c-format
msgid "unrecognized: %s"
msgstr "tanýnmayan: %s"
#: src/reader.c:1010
msgid "no input grammar"
msgstr "girdi grameri yok"
#: src/reader.c:1015
#, c-format
msgid "unknown character: %s"
msgstr "bilinmeyen karakter: %s"
#: src/reader.c:1183
#, c-format
msgid "unterminated %guard clause"
msgstr "sonlandýrýlmamýþ %guard yantümcesi"
#: src/reader.c:1350
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "kötü-biçemli kural: baþlangýç simgesini takip eden \":\" yok"
#: src/reader.c:1357
msgid "grammar starts with vertical bar"
msgstr "gramer düþey çubuk ile baþlýyor"
#: src/reader.c:1388
#, c-format
msgid "rule given for %s, which is a token"
msgstr "bir andaç olan %s için verilen kural"
#: src/reader.c:1490
msgid "two @prec's in a row"
msgstr "bir satýrda iki @prec"
#: src/reader.c:1498
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard sunulmuþ fakat %%semantic_parser belirlenmemiþ"
#: src/reader.c:1507
msgid "two actions at end of one rule"
msgstr "bir kuralýn sonunda iki eylem"
#: src/reader.c:1521
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "öntanýmlý eylem üzerinde (`%s' `%s') tip çatýþmasý"
#: src/reader.c:1527
msgid "empty rule for typed nonterminal, and no action"
msgstr "Tipli deðiþken simge için boþ kural tanýmlanmýþ, ve eylembelirtilmemiþ"
#: src/reader.c:1571
#, c-format
msgid "invalid input: %s"
msgstr "geçersiz girdi: %s"
#: src/reader.c:1579
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "çok fazla simge var (andaçlar ve deðiþken simgeler); en fazla %d"
#: src/reader.c:1582
msgid "no rules in the input grammar"
msgstr "girdi grameri içinde kurallar yok"
#: src/reader.c:1606
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"simge %s kullanýldý, fakat bir andaç olarak tanýmlanmadý vekurallarý yok"
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "%s ve %s için çeliþen öncelikler"
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "%s ve %s için çeliþen birleþmeli deðerler"
#: src/reader.c:1770
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "%s ve %s andaçlarýnýn her ikisi %d sayýsýna atandý"
#: src/reader.c:1782
#, c-format
msgid "the start symbol %s is undefined"
msgstr "baþlangýç simgesi %s tanýmlanmadý"
#: src/reader.c:1784
#, c-format
msgid "the start symbol %s is a token"
msgstr "baþlangýç simgesi %s bir andaçtýr"
#: src/reduce.c:401
msgid "Useless nonterminals:"
msgstr "Yararsýz kurallar:"
#: src/reduce.c:416
msgid "Terminals which are not used:"
msgstr "Kullanýlmayan sabit simgeler:"
#: src/reduce.c:427
msgid "Useless rules:"
msgstr "Yararsýz kurallar:"
#: src/reduce.c:456
msgid ""
"Variables\n"
"---------\n"
"\n"
msgstr ""
"Deðiþkenler\n"
"-----------\n"
"\n"
#: src/reduce.c:458
msgid "Value Sprec Sassoc Tag\n"
msgstr "Deðer Söncel Sbirleþ Etiket\n"
#: src/reduce.c:463
msgid ""
"Rules\n"
"-----\n"
"\n"
msgstr ""
"Kurallar\n"
"--------\n"
"\n"
#: src/reduce.c:474
msgid ""
"Rules interpreted\n"
"-----------------\n"
"\n"
msgstr ""
"Kurallar yorumlandý\n"
"-------------------\n"
"\n"
#: src/reduce.c:491
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d kural asla indirgenmedi\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s içerir "
#: src/reduce.c:497
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d yararsýz deðiþken simge%s"
#: src/reduce.c:502
msgid " and "
msgstr " ve "
#: src/reduce.c:506
#, c-format
msgid "%d useless rule%s"
msgstr "%d yararsýz kural%s"
#: src/reduce.c:539
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "Baþlangýç simgesi %s herhangi bir cümleden türemez"
#: src/reduce.c:552
#, fuzzy, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
msgstr ""
"indirgenen %s tanýmlanan %d sabit simge%s, %d deðiþken simge%s, ve %düretilen"
"%s.\n"
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: `%s' seçeneði belirsiz\n"
#: lib/getopt.c:700
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: `--%s' seçeneði argümansýz kullanýlýr\n"
#: lib/getopt.c:705
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: seçenek `%c%s' argümansýz kullanýlýr\n"
#: lib/getopt.c:723 lib/getopt.c:896
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: `%s' seçeneði bir argümanla kullanýlýr\n"
#. --option
#: lib/getopt.c:752
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: `--%s' seçeneði bilinmiyor\n"
#. +option or -option
#: lib/getopt.c:756
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: `%c%s' seçeneði bilinmiyor\n"
#. 1003.2 specifies the format of this message.
#: lib/getopt.c:782
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: kuraldýþý seçenek -- %c\n"
#: lib/getopt.c:785
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: geçersiz seçenek -- %c\n"
#. 1003.2 specifies the format of this message.
#: lib/getopt.c:815 lib/getopt.c:945
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: seçenek bir argümanla kullanýlýr -- %c\n"
#: lib/getopt.c:862
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: `-W %s' seçeneði belirsiz\n"
#: lib/getopt.c:880
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: `-W %s' seçeneði argümansýz kullanýlýr\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
msgid "memory exhausted"
msgstr "bellek tükendi"
#. Get translations for open and closing quotation marks.
#.
#. The message catalog should translate "`" to a left
#. quotation mark suitable for the locale, and similarly for
#. "'". If the catalog has no translation,
#. locale_quoting_style quotes `like this', and
#. clocale_quoting_style quotes "like this".
#.
#. For example, an American English Unicode locale should
#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
#. MARK). A British English Unicode locale should instead
#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:268
msgid "`"
msgstr "`"
#: lib/quotearg.c:269
msgid "'"
msgstr "'"
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* boþ */"
#~ msgid "multiple %%header_extension declarations"
#~ msgstr "çoklu %%header_extension bildirimleri"
#~ msgid "multiple %%source_extension declarations"
#~ msgstr "çoklu %%source_extension bildirimleri"
#~ msgid "vcg graph: no such color."
#~ msgstr "vcg graph: böyle bir renk yok."
#~ msgid "vcg graph: no such text mode"
#~ msgstr "vcg graph: böyle bir metin kipi yok"
#~ msgid "vcg graph: no such shape"
#~ msgstr "vcg graph: böyle bir þekil yok"
#~ msgid "vcg graph: no such decision"
#~ msgstr "vcg graph: böyle bir karar yok"
#~ msgid "vcg graph: no such an orientation"
#~ msgstr "vcg graph: böyle bir konum yok"
#~ msgid "vcg graph: no such an alignement"
#~ msgstr "vcg graph: böyle bir hizalama yok"
#~ msgid "vcg graph: no such an arrow mode"
#~ msgstr "vcg graph: böyle bir yön kipi yok"
#~ msgid "vcg graph: no such crossing_type"
#~ msgstr "vcg graph: böyle bir kesme tipi yok"
#~ msgid "vcg graph: no such view"
#~ msgstr "vcg graph: böyle bir görünüm yok"
#~ msgid "vcg graph: no such linestyle"
#~ msgstr "vcg graph: böyle bir çizgi biçemi yok"
#~ msgid "vcg graph: no such an arrowstyle"
#~ msgstr "vcg graph: böyle bir yön biçemi yok"
+1
View File
@@ -3,3 +3,4 @@
Makefile
bison
*.log
*.flc
+18 -18
View File
@@ -23,7 +23,6 @@
The entry point is generate_states. */
#include "system.h"
#include "xalloc.h"
#include "gram.h"
#include "state.h"
#include "complain.h"
@@ -33,39 +32,39 @@
int nstates;
int final_state;
core *first_state;
shifts *first_shift;
reductions *first_reduction;
core *first_state = NULL;
shifts *first_shift = NULL;
reductions *first_reduction = NULL;
static core *this_state;
static core *last_state;
static shifts *last_shift;
static reductions *last_reduction;
static core *this_state = NULL;
static core *last_state = NULL;
static shifts *last_shift = NULL;
static reductions *last_reduction = NULL;
static int nshifts;
static short *shift_symbol;
static short *shift_symbol = NULL;
static short *redset;
static short *shiftset;
static short *redset = NULL;
static short *shiftset = NULL;
static short **kernel_base;
static short **kernel_end;
static short *kernel_items;
static short **kernel_base = NULL;
static short **kernel_end = NULL;
static short *kernel_items = NULL;
/* hash table for states, to recognize equivalent ones. */
#define STATE_TABLE_SIZE 1009
static core **state_table;
static core **state_table = NULL;
static void
allocate_itemsets (void)
{
short *itemp;
short *itemp = NULL;
int symbol;
int i;
int count;
short *symbol_count;
short *symbol_count = NULL;
count = 0;
symbol_count = XCALLOC (short, nsyms);
@@ -89,7 +88,8 @@ allocate_itemsets (void)
We allocate that much space for each symbol. */
kernel_base = XCALLOC (short *, nsyms);
kernel_items = XCALLOC (short, count);
if (count)
kernel_items = XCALLOC (short, count);
count = 0;
for (i = 0; i < nsyms; i++)
+7 -5
View File
@@ -13,17 +13,19 @@ 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 vcg.c print_graph.c
output.c print_graph.c \
muscle_tab.c options.c \
print.c reader.c reduce.c symtab.c warshall.c vcg.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 \
vcg.h vcg_defaults.h print_graph.h
output.h print_graph.h \
muscle_tab.h options.h \
print.h reader.h reduce.h state.h symtab.h warshall.h system.h \
types.h vcg.h vcg_defaults.h
pkgdata_DATA = bison.simple bison.hairy
-466
View File
@@ -1,466 +0,0 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 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.
# 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.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AT_TESTPATH = @AT_TESTPATH@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CPP = @CPP@
DATADIRNAME = @DATADIRNAME@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
M4 = @M4@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
POSUB = @POSUB@
RANLIB = @RANLIB@
U = @U@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARNING_CFLAGS = @WARNING_CFLAGS@
AUTOMAKE_OPTIONS = 1.4 ../lib/ansi2knr
DEFS = @DEFS@ -DBISON_SIMPLE=\"$(pkgdatadir)/bison.simple\" -DBISON_HAIRY=\"$(pkgdatadir)/bison.hairy\" -DLOCALEDIR=\"$(datadir)/locale\"
INCLUDES = -I../intl -I$(top_srcdir)/lib -I..
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 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 vcg.h vcg_defaults.h print_graph.h
pkgdata_DATA = bison.simple bison.hairy
EXTRA_DIST = $(pkgdata_DATA) build.com bison.cld vmshlp.mar
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
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 vcg$U.o print_graph$U.o
bison_LDADD = $(LDADD)
bison_DEPENDENCIES = ../lib/libbison.a
bison_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(pkgdata_DATA)
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/print_graph.P .deps/reader.P \
.deps/reduce.P .deps/symtab.P .deps/vcg.P .deps/vmsgetargs.P \
.deps/warshall.P
SOURCES = $(bison_SOURCES) $(EXTRA_bison_SOURCES)
OBJECTS = $(bison_OBJECTS)
all: all-redirect
.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:
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)/'`; \
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)/'`; \
done
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
../lib/ansi2knr: ../lib/ansi2knr.o
cd ../lib && $(MAKE) $(AM_MAKEFLAGS) ansi2knr
../lib/ansi2knr.o:
cd ../lib && $(MAKE) $(AM_MAKEFLAGS) ansi2knr.o
mostlyclean-kr:
-rm -f *_.c
clean-kr:
distclean-kr:
maintainer-clean-kr:
bison: $(bison_OBJECTS) $(bison_DEPENDENCIES)
@rm -f bison
$(LINK) $(bison_LDFLAGS) $(bison_OBJECTS) $(bison_LDADD) $(LIBS)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
print_graph_.c: print_graph.c $(ANSI2KNR)
$(CPP) $(DEFS) $(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
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
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
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
vcg_.c: vcg.c $(ANSI2KNR)
$(CPP) $(DEFS) $(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
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
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 print_graph_.o reader_.o reduce_.o \
stpcpy_.o strndup_.o strnlen_.o strspn_.o symtab_.o vcg_.o \
vmsgetargs_.o warshall_.o : $(ANSI2KNR)
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; \
done
uninstall-pkgdataDATA:
@$(NORMAL_UNINSTALL)
list='$(pkgdata_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; 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)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = src
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 -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
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
install-data-am: install-pkgdataDATA
install-data: install-data-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
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(pkgdatadir)
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log 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
clean: clean-am
distclean-am: distclean-binPROGRAMS distclean-compile distclean-kr \
distclean-tags distclean-depend distclean-generic \
clean-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."
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
# 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:
+209 -42
View File
@@ -1,5 +1,8 @@
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line
/* -*- C -*- */
/* A Bison parser, made from %%filename
by GNU bison %%version. */
/* Skeleton output parser for bison,
Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
@@ -28,6 +31,29 @@
It was written by Richard Stallman by simplifying the hairy parser
used when %semantic_parser is specified. */
#include <stdio.h>
/* If name_prefix is specify substitute the variables and functions
names. */
#define yyparse %%prefix##parse
#define yylex %%prefix##lex
#define yyerror %%prefix##error
#define yylval %%prefix##lval
#define yychar %%prefix##char
#define yydebug %%prefix##debug
#define yynerrs %%prefix##nerrs
/* Copy the user declarations. */
#line %%input_line "%%filename"
%%prologue
#line %%line "%%skeleton"
#ifndef __cplusplus
# ifndef __STDC__
# define const
# endif
#endif
#ifndef YYSTACK_USE_ALLOCA
# ifdef alloca
# define YYSTACK_USE_ALLOCA 1
@@ -78,31 +104,163 @@
# define YYSTACK_ALLOC malloc
#endif
#define YYBISON 1 /* Identify Bison output. */
#define YYPURE %%pure /* Identify pure parsers. */
#ifndef YYDEBUG
# define YYDEBUG %%debug
#endif
#line %%input_line "%%filename"
#ifndef YYSTYPE
typedef %%stype YYSTYPE;
#endif
#ifndef YYLTYPE
typedef struct yyltype
{
int first_line;
int first_column;
int last_line;
int last_column;
} yyltype;
# define YYLTYPE %%ltype
#endif
#ifndef YYERROR_VERBOSE
# define YYERROR_VERBOSE %%verbose
#endif
/* Tokens. */
%%tokendef
#define YYFINAL %%final
#define YYFLAG %%flag
#define YYNTBASE %%ntbase
#define YYLAST %%last
#define YYNTOKENS %%ntokens
#define YYNNTS %%nnts
#define YYNRULES %%nrules
#define YYNSTATES %%nstates
#define YYMAXUTOK %%maxtok
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
#define YYTRANSLATE(x) ((unsigned)(x) <= %%maxtok ? yytranslate[x] : %%nsym)
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
static const char yytranslate[] =
{
%%translate
};
#if YYDEBUG
static const short yyprhs[] =
{
%%prhs
};
static const short yyrhs[] =
{
%%rhs
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{
%%rline
};
#endif
#if YYDEBUG || YYERROR_VERBOSE
/* YYTNME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
static const char *const yytname[] =
{
%%tname
};
#endif
/* YYTOKNUM[YYN] -- Index in YYTNAME corresponding to YYLEX. */
static const short yytoknum[] =
{
%%toknum
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const short yyr1[] =
{
%%r1
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
{
%%r2
};
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
doesn't specify something else to do. Zero means the default is an
error. */
static const short yydefact[] =
{
%%defact
};
static const short yydefgoto[] =
{
%%defgoto
};
static const short yypact[] =
{
%%pact
};
static const short yypgoto[] =
{
%%pgoto
};
static const short yytable[] =
{
%%table
};
static const short yycheck[] =
{
%%check
};
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
yylval = (Value); \
yychar1 = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
{ \
yyerror ("syntax error: cannot back up"); \
yyerror ("syntax error: cannot back up"); \
YYERROR; \
} \
while (0)
@@ -110,7 +268,6 @@ while (0)
#define YYTERROR 1
#define YYERRCODE 256
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
are run).
@@ -124,6 +281,8 @@ while (0)
Current.last_column = Rhs[N].last_column;
#endif
/* Definition of YYLSP_NEEDED. */
#define YYLSP_NEEDED %%locations_flag
/* YYLEX -- calling `yylex' with the right arguments. */
@@ -145,7 +304,6 @@ while (0)
# define YYLEX yylex ()
#endif /* !YYPURE */
/* Enable debugging if requested. */
#if YYDEBUG
# define YYDPRINTF(Args) \
@@ -164,7 +322,7 @@ int yydebug;
/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH
# define YYINITDEPTH 200
# define YYINITDEPTH %%initdepth
#endif
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
@@ -174,9 +332,11 @@ int yydebug;
#endif
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
# define YYMAXDEPTH %%maxdepth
#endif
/* Define __yy_memcpy. Note that the size argument
should be passed with type unsigned int, because that is what the non-GCC
definitions require. With GCC, __builtin_memcpy takes an arg
@@ -205,10 +365,11 @@ __yy_memcpy (char *to, const char *from, unsigned int count)
while (i-- > 0)
*t++ = *f++;
}
#endif
#line
#line %%line "%%skeleton"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
@@ -245,7 +406,7 @@ int yyparse (void);
/* The lookahead symbol. */ \
int yychar; \
\
/* The semantic value of the lookahead symbol. */ \
/* The semantic value of the lookahead symbol. */ \
YYSTYPE yylval; \
\
/* Number of parse errors so far. */ \
@@ -262,8 +423,7 @@ YYLTYPE yylloc;
_YY_DECL_VARIABLES
#endif
/* If nonreentrant, generate the variables here. */
/* If nonreentrant, generate the variables here. */
#if !YYPURE
YY_DECL_VARIABLES
@@ -273,7 +433,7 @@ int
yyparse (YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{
/* If reentrant, generate the variables here. */
/* If reentrant, generate the variables here. */
#if YYPURE
YY_DECL_VARIABLES
#endif /* !YYPURE */
@@ -293,7 +453,7 @@ yyparse (YYPARSE_PARAM_ARG)
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
/* The state stack. */
short yyssa[YYINITDEPTH];
short *yyss = yyssa;
register short *yyssp;
@@ -319,7 +479,6 @@ yyparse (YYPARSE_PARAM_ARG)
int yystacksize = YYINITDEPTH;
int yyfree_stacks = 0;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
@@ -328,7 +487,7 @@ yyparse (YYPARSE_PARAM_ARG)
# endif
/* When reducing, the number of symbols on the RHS of the reduced
rule. */
rule. */
int yylen;
YYDPRINTF ((stderr, "Starting parse\n"));
@@ -343,21 +502,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)
{
@@ -413,7 +575,7 @@ yynewstate:
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
# ifndef YYSTACK_USE_ALLOCA
# if !YYSTACK_USE_ALLOCA
yyfree_stacks = 1;
# endif
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
@@ -445,7 +607,6 @@ yynewstate:
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
@@ -472,12 +633,12 @@ yybackup:
yychar = YYLEX;
}
/* Convert token to internal form (in yychar1) for indexing tables with */
/* Convert token to internal form (in yychar1) for indexing tables with. */
if (yychar <= 0) /* This means end of input. */
if (yychar <= 0) /* This means end of input. */
{
yychar1 = 0;
yychar = YYEOF; /* Don't call YYLEX any more */
yychar = YYEOF; /* Don't call YYLEX any more. */
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
@@ -598,8 +759,11 @@ yyreduce:
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
%% actions /* The action file replaces this line. */
#line
switch (yyn)
{
%%action
}
#line %%line "%%skeleton"
yyvsp -= yylen;
yyssp -= yylen;
@@ -647,7 +811,7 @@ yyerrlab:
{
++yynerrs;
#ifdef YYERROR_VERBOSE
#if YYERROR_VERBOSE
yyn = yypact[yystate];
if (yyn > YYFLAG && yyn < YYLAST)
@@ -675,11 +839,11 @@ yyerrlab:
{
count = 0;
for (x = (yyn < 0 ? -yyn : 0);
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
if (yycheck[x + yyn] == x)
{
strcat (msg, count == 0 ? ", expecting `" : " or `");
strcat (msg, yytname[x]);
strcat (msg, count == 0 ? ", expecting `" : " or `");
strcat (msg, yytname[x]);
strcat (msg, "'");
count++;
}
@@ -687,26 +851,26 @@ yyerrlab:
yyerror (msg);
free (msg);
}
else
else
yyerror ("parse error; also virtual memory exceeded");
}
}
else
#endif /* YYERROR_VERBOSE */
yyerror ("parse error");
yyerror ("parse error");
}
goto yyerrlab1;
/*--------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action |
`--------------------------------------------------*/
/*----------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action. |
`----------------------------------------------------*/
yyerrlab1:
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
error, discard it. */
/* return failure if at end of input */
/* Return failure if at end of input. */
if (yychar == YYEOF)
YYABORT;
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
@@ -717,7 +881,7 @@ yyerrlab1:
/* Else will try to reuse lookahead token after shifting the error
token. */
yyerrstatus = 3; /* Each real token shifted decrements this */
yyerrstatus = 3; /* Each real token shifted decrements this. */
goto yyerrhandle;
@@ -740,7 +904,7 @@ yyerrdefault:
/*---------------------------------------------------------------.
| yyerrpop -- pop the current state because it cannot handle the |
| error token |
| error token. |
`---------------------------------------------------------------*/
yyerrpop:
if (yyssp == yyss)
@@ -828,3 +992,6 @@ yyabortlab:
}
return 1;
}
#line %%input_line "%%filename"
%%epilogue

Some files were not shown because too many files have changed in this diff Show More