Compare commits

..
41 Commits
Author SHA1 Message Date
Akim Demaille 1e883de90c Version 1.30c. 2001-11-14 15:25:51 +00:00
Akim Demaille efcff8cd5c * tests/calc.at, tests/output.at, tests/regression.at,
* tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
now the tests are run in private dirs, therefore AC_CLEANUP and
family can be simplified to 0-ary.
* tests/atlocal.in: Now that we run `elsewhere' than in tests/,
use abs. path to find config.h.
2001-11-14 15:16:40 +00:00
Akim Demaille 3e85a00236 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
defined only if yyoverflow is defined, to avoid `warning: unused
variable `yyvs1''.
Reported by The Test Suite.
2001-11-14 14:57:06 +00:00
Akim Demaille f85c981ac1 * src/print.c: Include reduce.h.
Reported by Hans Aberg.
2001-11-14 14:43:29 +00:00
Akim Demaille 5cb10dae3c * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
Revert a previous patch:  these are really const.
* src/conflicts.c (conflict_report): Additional useless pair of
braces to pacify GCC's warnings for `if () if () {} else {}'.
* src/lex.c (parse_percent_token): Replace equal_offset with
arg_offset.
arg is const.
Be sure to strdup `arg' when used, since there is no reason for
token_buffer not to change.
2001-11-14 14:42:14 +00:00
Akim Demaille 26e1ca45ba * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
definition.
* src/main.c (main): Use them.
Suggested by Hans Aberg.
2001-11-14 14:14:48 +00:00
Akim Demaille 8888e43b2c Bump to 1.30c. 2001-11-12 10:31:00 +00:00
Akim Demaille d9ca2df2aa . 2001-11-12 10:21:45 +00:00
Akim Demaille e8def3ff6e Version 1.30b. 2001-11-12 10:16:50 +00:00
Akim Demaille 76e734e5ed Adjust ngettext default. 2001-11-12 10:11:49 +00:00
Akim Demaille b8b4a730a0 Typo. 2001-11-12 09:58:30 +00:00
Akim Demaille b9d2d2a881 Version 1.30b.
* config/config.guess, config/config.sub, po/*.po: Update.
* src/system.h (ngettext): Now that we use ngettext, be sure to
provide a default definition when NLS are not used.
2001-11-12 09:56:20 +00:00
Akim Demaille 78986eff74 Version 1.30b.
* config/config.guess, config/config.sub, po/*.po: Update.
2001-11-12 09:42:14 +00:00
Akim Demaille 1393a78454 Typos. 2001-11-12 09:36:17 +00:00
Akim Demaille de11686376 * doc/bison.texinfo: Use $' as shell prompt, not %'.
Use @kbd to denote user input.
(Language and Grammar): ANSIfy the example.
Adjust its layout for info/notinfo.
(Location Tracking Calc): Output error messages to stderr.
Output locations in a more GNUtically correct way.
Fix a couple of Englishos.
Adjust @group/@end group pairs.
2001-11-12 09:20:35 +00:00
Akim Demaille badfc69c26 %expext was not functioning at all.
* src/conflicts.c (expected_conflicts): Set to -1.
(conflict_report): Use ngettext.
(conflicts_print): Check %expect and make its violation an error.
* doc/bison.texinfo (Expect Decl): Adjust.
* configure.in (AM_GNU_GETTEXT): Ask for ngettext.
* tests/regression.at (%expect not enough, %expect right)
(%expect too much): New.
2001-11-12 09:19:48 +00:00
Akim Demaille fb28699f95 * tests/regression.at (Conflicts): Rename as...
(Unresolved SR Conflicts): this.
(Solved SR Conflicts): New.
2001-11-12 09:16:10 +00:00
Akim Demaille 6b307af66c * src/reduce.c (print_results): Rename as...
(reduce_output): This.
Output to OUT, passed as argument, instead of output_obstack.
(dump_grammar): Likewise.
(reduce_free): New.
Also free V1.
(reduce_grammar): No longer call reduce_output, since...
* src/print.c (print_results): do it.
* src/main.c (main): Call reduce_free;
2001-11-12 09:15:57 +00:00
Akim Demaille dad56b10d3 * src/conflicts.c (print_reductions): Accept OUT as argument.
Output to it, not to output_obstack.
* src/print.c (print_actions): Adjust.
2001-11-12 09:15:43 +00:00
Akim Demaille 5f1ff7cd74 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
the result instead of using...
(src_total, rrc_total, src_count, rrc_count): Remove.
(any_conflicts): Remove.
(print_conflicts): Split into...
(conflicts_print, conflicts_output): New.
* src/conflicts.h: Adjust.
* src/main.c (main): Invoke both conflicts_output and conflicts_print.
* src/print.c (print_grammar): Issue `n' between to rule outputs.
* tests/regression.at (Conflicts): New.
Reported by Tom Lane.
2001-11-12 09:15:25 +00:00
Akim Demaille b6cac93afa * tests/regression.at (Invalid input): Remove, duplicate with
``Invalid input: 1''.
2001-11-12 09:15:03 +00:00
Akim Demaille 86d5a1ed5c * tests/torture.at (AT_DATA_STACK_TORTURE)
(Exploding the Stack Size with Alloca)
(Exploding the Stack Size with Malloc): New.
2001-11-12 09:14:50 +00:00
Akim Demaille 97e9ee3ad5 * src/bison.simple (YYSTACK_REALLOC): New.
(yyparse) [!yyoverflow]: Use it and free the old stack.
Reported by FIXME: Who.
2001-11-12 09:14:35 +00:00
Akim Demaille d81e5db73f Bump to 1.30b. 2001-11-05 15:15:47 +00:00
Akim Demaille 029806c785 . 2001-11-05 10:15:57 +00:00
Akim Demaille a2874a4e5d Regen. 2001-11-05 10:12:42 +00:00
Akim Demaille d54387b4bc Version 1.30a.
* src/lex.c (parse_percent_token): s/quotearg/quote/.
2001-11-05 10:06:27 +00:00
Akim Demaille a4c22fa4bf Version 1.30a. 2001-11-05 09:55:38 +00:00
Akim Demaille 0d214b93b0 Regen. 2001-11-05 09:29:10 +00:00
Akim Demaille 3c5d71ca8b * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
pattern.
2001-11-05 09:18:31 +00:00
Akim Demaille d61c57b70c * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
with yyltype/YYLTYPE.  This allows inclusion of the generated
header within the parser if the compiler, such as GGC, accepts
multiple equivalent #defines.
2001-11-05 09:12:38 +00:00
Akim Demaille ea57e0a3c4 * src/getargs.c (longopts): Support `--output'. getopt is now
able to understand that `--out' is OK: the two racing long options
are aliases.
(usage): Adjust.
* src/lex.h (tok_setopt): Remove, replaced with...
(tok_intopt, tok_stropt): these new guys.
* src/lex.c (getopt.h): Not needed.
(token_buffer, unlexed_token_buffer): Not const.
(percent_table): Promote `-' over `_' in directive names.
Active `%name-prefix', `file-prefix', and `output'.
(parse_percent_token): Accept possible arguments to directives.
Promote `-' over `_' in directive names.
* doc/bison.texinfo (Decl Summary): Split the list into
`directives for grammars' and `directives for bison'.
Sort'em.
Add description of `%name-prefix', `file-prefix', and `output'.
Promote `-' over `_' in directive names.
(Bison Options): s/%locactions/%locations/.  Nice Freudian slip.
Simplify the description of `--name-prefix'.
Promote `-' over `_' in directive names.
Promote `--output' over `--output-file'.
Fix the description of `--defines'.
* tests/output.at: Exercise %file-prefix and %output.
2001-11-04 16:26:59 +00:00
Akim Demaille 57c429f305 * doc/refcard.tex: Update. 2001-11-02 17:18:52 +00:00
Akim Demaille 239e5c1a9a * src/symtab.h (SUNDEF): New.
* src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
stand for `uninitialized', instead of 0.
* src/reader.c (packsymbols, parse_thong_decl): Adjust.
* src/lex.c (lex): Adjust.
* tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
Number it 0.
Let yylex return it instead of a plain 0.
Reported by Dick Streefland.
2001-11-02 15:26:33 +00:00
Akim Demaille ae9b5e5a4f * tests/regression.at (Mixing %token styles): New test. 2001-11-02 14:12:42 +00:00
Akim Demaille 7ae1c5929e * src/reader.c (parse_thong_decl): Formatting changes.
(token_translations_init): New, extracted from...
(packsymbols): Here.
Adjust.
2001-11-02 14:02:31 +00:00
Akim Demaille 1d708336d4 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
Check that `9foo.y' produces correct cpp guards.
* src/files.c (compute_header_macro): Prepend `BISON_' to CPP
guards.
Reported by Wwp.
2001-11-01 18:29:36 +00:00
Akim Demaille 705131d1de * tests/regression.at (Invalid input: 2): New.
* src/lex.c (unlexed_token_buffer): New.
(lex, unlex): Adjust: when unlexing, be sure to save token_buffer
too.
Reported by Wwp.
2001-11-01 18:03:46 +00:00
Akim Demaille 5c2a5a8970 Update. 2001-11-01 14:35:28 +00:00
Akim Demaille 6b784f8552 * configure.in: Bump to 1.30a.
Adjust to newer Autotest.
2001-11-01 14:27:42 +00:00
Akim Demaille 32a1edfccd . 2001-10-29 09:01:49 +00:00
63 changed files with 3534 additions and 2250 deletions
+229
View File
@@ -1,3 +1,232 @@
2001-11-14 Akim Demaille <[email protected]>
Version 1.30c.
2001-11-14 Akim Demaille <[email protected]>
* tests/calc.at, tests/output.at, tests/regression.at,
* tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
now the tests are run in private dirs, therefore AC_CLEANUP and
family can be simplified to 0-ary.
* tests/atlocal.in: Now that we run `elsewhere' than in tests/,
use abs. path to find config.h.
2001-11-14 Akim Demaille <[email protected]>
* tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
stderr, there can be way too much random noise.
Instead pass -Werror to GCC and rely on the exit status.
Reported by Wolfram Wagner.
2001-11-14 Akim Demaille <[email protected]>
* src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
defined only if yyoverflow is defined, to avoid `warning: unused
variable `yyvs1''.
Reported by The Test Suite.
2001-11-14 Akim Demaille <[email protected]>
* src/print.c: Include reduce.h.
Reported by Hans Aberg.
2001-11-14 Akim Demaille <[email protected]>
* src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
Revert a previous patch: these are really const.
* src/conflicts.c (conflict_report): Additional useless pair of
braces to pacify GCC's warnings for `if () if () {} else {}'.
* src/lex.c (parse_percent_token): Replace equal_offset with
arg_offset.
arg is const.
Be sure to strdup `arg' when used, since there is no reason for
token_buffer not to change.
2001-11-14 Akim Demaille <[email protected]>
* src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
definition.
* src/main.c (main): Use them.
Suggested by Hans Aberg.
2001-11-12 Akim Demaille <[email protected]>
Version 1.30b.
* src/system.h (ngettext): Now that we use ngettext, be sure to
provide a default definition when NLS are not used that takes care
of the cardinality.
2001-11-12 Akim Demaille <[email protected]>
* doc/bison.texinfo: Use `$' as shell prompt, not `%'.
Use @kbd to denote user input.
(Language and Grammar): ANSIfy the example.
Adjust its layout for info/notinfo.
(Location Tracking Calc): Output error messages to stderr.
Output locations in a more GNUtically correct way.
Fix a couple of Englishos.
Adjust @group/@end group pairs.
2001-11-12 Akim Demaille <[email protected]>
%expext was not functioning at all.
* src/conflicts.c (expected_conflicts): Set to -1.
(conflict_report): Use ngettext.
(conflicts_print): Check %expect and make its violation an error.
* doc/bison.texinfo (Expect Decl): Adjust.
* configure.in (AM_GNU_GETTEXT): Ask for ngettext.
* tests/regression.at (%expect not enough, %expect right)
(%expect too much): New.
2001-11-12 Akim Demaille <[email protected]>
* tests/regression.at (Conflicts): Rename as...
(Unresolved SR Conflicts): this.
(Solved SR Conflicts): New.
2001-11-12 Akim Demaille <[email protected]>
* src/reduce.c (print_results): Rename as...
(reduce_output): This.
Output to OUT, passed as argument, instead of output_obstack.
(dump_grammar): Likewise.
(reduce_free): New.
Also free V1.
(reduce_grammar): No longer call reduce_output, since...
* src/print.c (print_results): do it.
* src/main.c (main): Call reduce_free;
2001-11-12 Akim Demaille <[email protected]>
* src/conflicts.c (print_reductions): Accept OUT as argument.
Output to it, not to output_obstack.
* src/print.c (print_actions): Adjust.
2001-11-12 Akim Demaille <[email protected]>
* src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
the result instead of using...
(src_total, rrc_total, src_count, rrc_count): Remove.
(any_conflicts): Remove.
(print_conflicts): Split into...
(conflicts_print, conflicts_output): New.
* src/conflicts.h: Adjust.
* src/main.c (main): Invoke both conflicts_output and conflicts_print.
* src/print.c (print_grammar): Issue `\n' between to rule outputs.
* tests/regression.at (Conflicts): New.
Reported by Tom Lane.
2001-11-12 Akim Demaille <[email protected]>
* tests/regression.at (Invalid input): Remove, duplicate with
``Invalid input: 1''.
2001-11-12 Akim Demaille <[email protected]>
* tests/torture.at (AT_DATA_STACK_TORTURE)
(Exploding the Stack Size with Alloca)
(Exploding the Stack Size with Malloc): New.
2001-11-12 Akim Demaille <[email protected]>
* src/bison.simple (YYSTACK_REALLOC): New.
(yyparse) [!yyoverflow]: Use it and free the old stack.
Reported by Per Allansson.
2001-11-05 Akim Demaille <[email protected]>
Version 1.30a.
* src/lex.c (parse_percent_token): s/quotearg/quote/.
2001-11-05 Akim Demaille <[email protected]>
* tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
pattern.
2001-11-05 Akim Demaille <[email protected]>
* src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
with yyltype/YYLTYPE. This allows inclusion of the generated
header within the parser if the compiler, such as GGC, accepts
multiple equivalent #defines.
2001-11-04 Akim Demaille <[email protected]>
* src/getargs.c (longopts): Support `--output'. getopt is now
able to understand that `--out' is OK: the two racing long options
are aliases.
(usage): Adjust.
* src/lex.h (tok_setopt): Remove, replaced with...
(tok_intopt, tok_stropt): these new guys.
* src/lex.c (getopt.h): Not needed.
(token_buffer, unlexed_token_buffer): Not const.
(percent_table): Promote `-' over `_' in directive names.
Active `%name-prefix', `file-prefix', and `output'.
(parse_percent_token): Accept possible arguments to directives.
Promote `-' over `_' in directive names.
* doc/bison.texinfo (Decl Summary): Split the list into
`directives for grammars' and `directives for bison'.
Sort'em.
Add description of `%name-prefix', `file-prefix', and `output'.
Promote `-' over `_' in directive names.
(Bison Options): s/%locactions/%locations/. Nice Freudian slip.
Simplify the description of `--name-prefix'.
Promote `-' over `_' in directive names.
Promote `--output' over `--output-file'.
Fix the description of `--defines'.
* tests/output.at: Exercise %file-prefix and %output.
2001-11-02 Akim Demaille <[email protected]>
* doc/refcard.tex: Update.
2001-11-02 Akim Demaille <[email protected]>
* src/symtab.h (SUNDEF): New.
* src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
stand for `uninitialized', instead of 0.
* src/reader.c (packsymbols, parse_thong_decl): Adjust.
* src/lex.c (lex): Adjust.
* tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
Number it 0.
Let yylex return it instead of a plain 0.
Reported by Dick Streefland.
2001-11-02 Akim Demaille <[email protected]>
* tests/regression.at (Mixing %token styles): New test.
2001-11-02 Akim Demaille <[email protected]>
* src/reader.c (parse_thong_decl): Formatting changes.
(token_translations_init): New, extracted from...
(packsymbols): Here.
Adjust.
2001-11-01 Akim Demaille <[email protected]>
* tests/regression.at (AT_TEST_CPP_GUARD_H): New.
Check that `9foo.y' produces correct cpp guards.
* src/files.c (compute_header_macro): Prepend `BISON_' to CPP
guards.
Reported by Wwp.
2001-11-01 Akim Demaille <[email protected]>
* tests/regression.at (Invalid input: 2): New.
* src/lex.c (unlexed_token_buffer): New.
(lex, unlex): Adjust: when unlexing, be sure to save token_buffer
too.
Reported by Wwp.
2001-11-01 Akim Demaille <[email protected]>
* configure.in: Bump to 1.30a.
Adjust to newer Autotest.
2001-10-26 Akim Demaille <[email protected]>
Version 1.30.
+3 -3
View File
@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
@@ -138,8 +138,8 @@ RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
install-exec-recursive installdirs-recursive install-recursive \
uninstall-recursive check-recursive installcheck-recursive
DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL \
Makefile.am Makefile.in NEWS THANKS aclocal.m4 config.hin \
configure configure.in
Makefile.am Makefile.in NEWS README-alpha THANKS aclocal.m4 \
config.hin configure configure.in
DIST_SUBDIRS = $(SUBDIRS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
+53 -8
View File
@@ -1,7 +1,47 @@
Bison News
----------
Changes in version 1.30:
Changes in version 1.30c:
* Fixed a few warnings.
* Some portability issues.
Changes in version 1.30b:
* Fixed parser memory leaks.
When the generated parser was using malloc to extend its stacks, the
previous allocations were not freed.
* Fixed verbose output file.
Some newlines were missing.
Some conflicts in state descriptions were missing.
* Fixed conflict report.
Option -v was needed to get the result.
* %expect
Was not used.
Mismatches are errors, not warnings.
* Fixed incorrect processing of some invalid input.
* Fixed CPP guards: 9foo.h uses BISON_9FOO_H instead of 9FOO_H.
* Fixed some typos in the documentation.
* %token MY_EOF 0 is supported.
Before, MY_EOF was silently renumbered as 257.
* doc/refcard.tex is updated.
* %output, %file-prefix, %name-prefix.
New.
* --output
New, aliasing `--output-file'.
Changes in version 1.30, 2001-10-26:
* `--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
@@ -10,11 +50,9 @@ Changes in version 1.30:
* `%source_extension' and `%header_extension' are removed, failed
experiment.
* The test suite is more portable.
* Better portability.
Changes in version 1.29:
* Portability fixes.
Changes in version 1.29, 2001-09-07:
* The output file does not define const, as this caused problems when used
with common autoconfiguration schemes. If you still use ancient compilers
@@ -45,8 +83,11 @@ Changes in version 1.29:
* New directives.
`%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose',
`%debug', `%source_extension' and `%header_extension'.
* @$
Automatic location tracking.
Changes in version 1.28:
Changes in version 1.28, 1999-07-06:
* Should compile better now with K&R compilers.
@@ -78,7 +119,7 @@ Changes in version 1.26:
* Generated parsers should now work even on operating systems which do
not provide alloca().
Changes in version 1.25:
Changes in version 1.25, 1995-10-16:
* Errors in the input grammar are not fatal; Bison keeps reading
the grammar file, and reports all the errors found in it.
@@ -119,3 +160,7 @@ Changes in version 1.22:
Changes in version 1.20:
Output file does not redefine const for C++.
Local Variables:
mode: outline
End:
+6 -1
View File
@@ -2,11 +2,12 @@ Bison was originally written by Robert Corbett. It would not be what
it is today without the invaluable help of these people:
Airy Andre [email protected]
Akim Demaille akim@epita.fr
Akim Demaille akim@freefriends.org
Albert Chin-A-Young [email protected]
Alexander Belopolsky [email protected]
Daniel Hagerty [email protected]
David J. MacKenzie [email protected]
Dick Streefland [email protected]
Fabrice Bauzac [email protected]
Hans Aberg [email protected]
Jesse Thilo [email protected]
@@ -19,10 +20,14 @@ Neil Booth [email protected]
Noah Friedman [email protected]
Pascal Bart [email protected]
Paul Eggert [email protected]
Per Allansson [email protected]
Piotr Gackiewicz [email protected]
Richard Stallman [email protected]
Robert Anisko [email protected]
Shura [email protected]
Tom Lane [email protected]
Wolfram Wagner [email protected]
Wwp [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.
+1 -1
View File
@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
+2 -2
View File
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
timestamp='2001-10-05'
timestamp='2001-11-08'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -947,7 +947,7 @@ EOF
exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+12 -8
View File
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
timestamp='2001-10-05'
timestamp='2001-11-08'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -245,14 +245,13 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| s390 | s390x \
| sh | sh[34] | sh[34]eb | shbe | shle \
| sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
| stormy16 | strongarm \
| strongarm \
| tahoe | thumb | tic80 | tron \
| v850 \
| we32k \
| x86 | xscale \
| x86 | xscale | xstormy16 \
| z8k)
basic_machine=$basic_machine-unknown
;;
@@ -304,14 +303,13 @@ case $basic_machine in
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
| s390-* | s390x-* \
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
| sparc-* | sparc64-* | sparc86x-* | sparclite-* \
| sparcv9-* | sparcv9b-* | stormy16-* | strongarm-* | sv1-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \
| t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
| v850-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* | xstormy16-* \
| ymp-* \
| z8k-*)
;;
@@ -786,6 +784,12 @@ case $basic_machine in
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
s390 | s390-*)
basic_machine=s390-ibm
;;
s390x | s390x-*)
basic_machine=s390x-ibm
;;
sa29200)
basic_machine=a29k-amd
os=-udi
@@ -1070,7 +1074,7 @@ case $os in
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos*)
| -os2* | -vos* | -palmos* | -uclinux*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
+1 -1
View File
@@ -1 +1 @@
1.28
1.30b
Vendored
+414 -125
View File
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -18,15 +18,16 @@
# We need a recent Autoconf to run a recent Autotest.
AC_PREREQ(2.52e)
AC_INIT([GNU Bison], [1.30], [[email protected]])
AC_INIT([GNU Bison], [1.30c], [[email protected]])
AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE([bison], [1.30])
AM_INIT_AUTOMAKE([bison], [1.30c])
AM_CONFIG_HEADER(config.h:config.hin)
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
# Needed by tests/atlocal.in.
AC_SUBST([GCC])
@@ -89,16 +90,15 @@ jm_PREREQ_ERROR
AM_WITH_DMALLOC
ALL_LINGUAS="de es et fr ja nl tr ru"
AM_GNU_GETTEXT
AM_GNU_GETTEXT(, need-ngettext)
# This is necessary so that .o files in LIBOBJS are also built via
# the ANSI2KNR-filtering rules.
LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
AC_SUBST(LIBOBJS)
LIB@&t@OBJS=`echo $LIB@&t@OBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
AC_SUBST(LIB@&t@OBJS)
AC_OUTPUT([Makefile
config/Makefile
intl/Makefile po/Makefile.in
lib/Makefile src/Makefile doc/Makefile
m4/Makefile
tests/Makefile])
m4/Makefile])
+1 -1
View File
@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
+105 -105
View File
@@ -31,115 +31,115 @@ instead of in the original English.

Indirect:
bison.info-1: 1313
bison.info-2: 50689
bison.info-3: 100579
bison.info-4: 150129
bison.info-5: 197906
bison.info-2: 50632
bison.info-3: 100395
bison.info-4: 147417
bison.info-5: 197287

Tag Table:
(Indirect)
Node: Top1313
Node: Introduction8968
Node: Conditions10242
Node: Copying11706
Node: Concepts30909
Node: Language and Grammar31988
Node: Grammar in Bison37004
Node: Semantic Values38928
Node: Semantic Actions41029
Node: Locations Overview42218
Node: Bison Parser43665
Node: Stages45977
Node: Grammar Layout47260
Node: Examples48517
Node: RPN Calc49715
Node: Rpcalc Decls50689
Node: Rpcalc Rules52276
Node: Rpcalc Input54076
Node: Rpcalc Line55537
Node: Rpcalc Expr56652
Node: Rpcalc Lexer58597
Node: Rpcalc Main61169
Node: Rpcalc Error61567
Node: Rpcalc Gen62575
Node: Rpcalc Compile63724
Node: Infix Calc64599
Node: Simple Error Recovery67306
Node: Location Tracking Calc69195
Node: Ltcalc Decls69925
Node: Ltcalc Rules70834
Node: Ltcalc Lexer72895
Node: Multi-function Calc75233
Node: Mfcalc Decl76800
Node: Mfcalc Rules78823
Node: Mfcalc Symtab80203
Node: Exercises86576
Node: Grammar File87082
Node: Grammar Outline87930
Node: C Declarations88664
Node: Bison Declarations89244
Node: Grammar Rules89656
Node: C Code90116
Node: Symbols91046
Node: Rules96127
Node: Recursion97766
Node: Semantics99485
Node: Value Type100579
Node: Multiple Types101251
Node: Actions102268
Node: Action Types105053
Node: Mid-Rule Actions106356
Node: Locations111926
Node: Location Type112574
Node: Actions and Locations113132
Node: Location Default Action115288
Node: Declarations116751
Node: Token Decl118070
Node: Precedence Decl120083
Node: Union Decl121634
Node: Type Decl122478
Node: Expect Decl123384
Node: Start Decl124930
Node: Pure Decl125308
Node: Decl Summary126985
Node: Multiple Parsers132368
Node: Interface133862
Node: Parser Function134734
Node: Lexical135569
Node: Calling Convention136975
Node: Token Values139746
Node: Token Positions140895
Node: Pure Calling141780
Node: Error Reporting144712
Node: Action Features146834
Node: Algorithm150129
Node: Look-Ahead152422
Node: Shift/Reduce154554
Node: Precedence157466
Node: Why Precedence158117
Node: Using Precedence159982
Node: Precedence Examples160950
Node: How Precedence161651
Node: Contextual Precedence162800
Node: Parser States164591
Node: Reduce/Reduce165834
Node: Mystery Conflicts169395
Node: Stack Overflow172781
Node: Error Recovery174154
Node: Context Dependency179290
Node: Semantic Tokens180138
Node: Lexical Tie-ins183155
Node: Tie-in Recovery184703
Node: Debugging186875
Node: Invocation190176
Node: Bison Options191428
Node: Environment Variables195396
Node: Option Cross Key196244
Node: VMS Invocation197122
Node: Table of Symbols197906
Node: Glossary205545
Node: Copying This Manual211849
Node: GNU Free Documentation License212058
Node: Index231923
Node: Conditions10243
Node: Copying11707
Node: Concepts30910
Node: Language and Grammar31989
Node: Grammar in Bison36947
Node: Semantic Values38871
Node: Semantic Actions40972
Node: Locations Overview42161
Node: Bison Parser43608
Node: Stages45920
Node: Grammar Layout47203
Node: Examples48460
Node: RPN Calc49658
Node: Rpcalc Decls50632
Node: Rpcalc Rules52219
Node: Rpcalc Input54019
Node: Rpcalc Line55480
Node: Rpcalc Expr56595
Node: Rpcalc Lexer58540
Node: Rpcalc Main61112
Node: Rpcalc Error61510
Node: Rpcalc Gen62518
Node: Rpcalc Compile63667
Node: Infix Calc64542
Node: Simple Error Recovery67249
Node: Location Tracking Calc69138
Node: Ltcalc Decls69820
Node: Ltcalc Rules70713
Node: Ltcalc Lexer72723
Node: Multi-function Calc75049
Node: Mfcalc Decl76616
Node: Mfcalc Rules78639
Node: Mfcalc Symtab80019
Node: Exercises86392
Node: Grammar File86898
Node: Grammar Outline87746
Node: C Declarations88480
Node: Bison Declarations89060
Node: Grammar Rules89472
Node: C Code89932
Node: Symbols90862
Node: Rules95943
Node: Recursion97582
Node: Semantics99301
Node: Value Type100395
Node: Multiple Types101067
Node: Actions102084
Node: Action Types104869
Node: Mid-Rule Actions106172
Node: Locations111742
Node: Location Type112390
Node: Actions and Locations112948
Node: Location Default Action115104
Node: Declarations116567
Node: Token Decl117886
Node: Precedence Decl119899
Node: Union Decl121450
Node: Type Decl122294
Node: Expect Decl123200
Node: Start Decl124768
Node: Pure Decl125146
Node: Decl Summary126823
Node: Multiple Parsers132951
Node: Interface134445
Node: Parser Function135317
Node: Lexical136152
Node: Calling Convention137558
Node: Token Values140329
Node: Token Positions141478
Node: Pure Calling142363
Node: Error Reporting145295
Node: Action Features147417
Node: Algorithm150712
Node: Look-Ahead153005
Node: Shift/Reduce155137
Node: Precedence158049
Node: Why Precedence158700
Node: Using Precedence160565
Node: Precedence Examples161533
Node: How Precedence162234
Node: Contextual Precedence163383
Node: Parser States165174
Node: Reduce/Reduce166417
Node: Mystery Conflicts169978
Node: Stack Overflow173364
Node: Error Recovery174737
Node: Context Dependency179873
Node: Semantic Tokens180721
Node: Lexical Tie-ins183738
Node: Tie-in Recovery185286
Node: Debugging187458
Node: Invocation190759
Node: Bison Options192011
Node: Environment Variables195561
Node: Option Cross Key196409
Node: VMS Invocation197287
Node: Table of Symbols198071
Node: Glossary206039
Node: Copying This Manual212343
Node: GNU Free Documentation License212552
Node: Index232417

End Tag Table
+6 -7
View File
@@ -34,7 +34,7 @@ File: bison.info, Node: Top, Next: Introduction, Up: (dir)
Bison
*****
This manual documents version 1.30 of Bison, updated 20 September
This manual documents version 1.30c of Bison, updated 12 November
2001.
* Menu:
@@ -238,7 +238,7 @@ Bison in detail.
it Yacc-compatible. Wilfred Hansen of Carnegie Mellon University added
multi-character string literals and other features.
This edition corresponds to version 1.30 of Bison.
This edition corresponds to version 1.30c of Bison.

File: bison.info, Node: Conditions, Next: Copying, Prev: Introduction, Up: Top
@@ -709,12 +709,11 @@ matter of lexicography, not grammar.)
Here is a simple C function subdivided into tokens:
int /* keyword `int' */
square (x) /* identifier, open-paren, */
/* identifier, close-paren */
int x; /* keyword `int', identifier, semicolon */
square (int x) /* identifier, open-paren, identifier,
identifier, close-paren */
{ /* open-brace */
return x * x; /* keyword `return', identifier, */
/* asterisk, identifier, semicolon */
return x * x; /* keyword `return', identifier, asterisk,
identifier, semicolon */
} /* close-brace */
The syntactic groupings of C include the expression, the statement,
+43 -47
View File
@@ -385,21 +385,21 @@ Compiling the Parser File
Here is how to compile and run the parser file:
# List files in current directory.
% ls
$ ls
rpcalc.tab.c rpcalc.y
# Compile the Bison parser.
# `-lm' tells compiler to search math library for `pow'.
% cc rpcalc.tab.c -lm -o rpcalc
$ cc rpcalc.tab.c -lm -o rpcalc
# List files again.
% ls
$ ls
rpcalc rpcalc.tab.c rpcalc.y
The file `rpcalc' now contains the executable code. Here is an
example session using `rpcalc'.
% rpcalc
$ rpcalc
4 9 +
13
3 7 + 3 4 5 *+-
@@ -411,7 +411,7 @@ example session using `rpcalc'.
3 4 ^ Exponentiation
81
^D End-of-file indicator
%
$

File: bison.info, Node: Infix Calc, Next: Simple Error Recovery, Prev: RPN Calc, Up: Examples
@@ -485,7 +485,7 @@ Precedence.
Here is a sample run of `calc.y':
% calc
$ calc
4 + 4.5 - (34/(8*3+-3))
6.880952381
-56 + 2
@@ -539,12 +539,10 @@ Location Tracking Calculator: `ltcalc'
======================================
This example extends the infix notation calculator with location
tracking. This feature will be used to improve error reporting, and
provide better error messages.
For the sake of clarity, we will switch for this example to an
integer calculator, since most of the work needed to use locations will
be done in the lexical analyser.
tracking. This feature will be used to improve the error messages. For
the sake of clarity, this example is a simple integer calculator, since
most of the work needed to use locations will be done in the lexical
analyser.
* Menu:
@@ -558,8 +556,8 @@ File: bison.info, Node: Ltcalc Decls, Next: Ltcalc Rules, Up: Location Tracki
Declarations for `ltcalc'
-------------------------
The C and Bison declarations for the location tracking calculator
are the same as the declarations for the infix notation calculator.
The C and Bison declarations for the location tracking calculator are
the same as the declarations for the infix notation calculator.
/* Location tracking calculator. */
@@ -578,11 +576,11 @@ are the same as the declarations for the infix notation calculator.
%% /* Grammar follows */
In the code above, there are no declarations specific to locations.
Defining a data type for storing locations is not needed: we will use
the type provided by default (*note Data Types of Locations: Location
Type.), which is a four member structure with the following integer
fields: `first_line', `first_column', `last_line' and `last_column'.
Note there are no declarations specific to locations. Defining a data
type for storing locations is not needed: we will use the type provided
by default (*note Data Types of Locations: Location Type.), which is a
four member structure with the following integer fields: `first_line',
`first_column', `last_line' and `last_column'.

File: bison.info, Node: Ltcalc Rules, Next: Ltcalc Lexer, Prev: Ltcalc Decls, Up: Location Tracking Calc
@@ -590,10 +588,10 @@ File: bison.info, Node: Ltcalc Rules, Next: Ltcalc Lexer, Prev: Ltcalc Decls,
Grammar Rules for `ltcalc'
--------------------------
Whether you choose to handle locations or not has no effect on the
syntax of your language. Therefore, grammar rules for this example
will be very close to those of the previous example: we will only
modify them to benefit from the new informations we will have.
Whether handling locations or not has no effect on the syntax of your
language. Therefore, grammar rules for this example will be very close
to those of the previous example: we will only modify them to benefit
from the new information.
Here, we will use locations to report divisions by zero, and locate
the wrong expressions or subexpressions.
@@ -617,9 +615,9 @@ the wrong expressions or subexpressions.
else
{
$$ = 1;
printf("Division by zero, l%d,c%d-l%d,c%d",
@3.first_line, @3.first_column,
@3.last_line, @3.last_column);
fprintf (stderr, "%d.%d-%d.%d: division by zero",
@3.first_line, @3.first_column,
@3.last_line, @3.last_column);
}
}
| '-' exp %preg NEG { $$ = -$2; }
@@ -630,14 +628,12 @@ the wrong expressions or subexpressions.
using the pseudo-variables `@N' for rule components, and the
pseudo-variable `@$' for groupings.
In this example, we never assign a value to `@$', because the output
parser can do this automatically. By default, before executing the C
code of each action, `@$' is set to range from the beginning of `@1' to
the end of `@N', for a rule with N components.
Of course, this behavior can be redefined (*note Default Action for
Locations: Location Default Action.), and for very specific rules, `@$'
can be computed by hand.
We don't need to assign a value to `@$': the output parser does it
automatically. By default, before executing the C code of each action,
`@$' is set to range from the beginning of `@1' to the end of `@N', for
a rule with N components. This behavior can be redefined (*note
Default Action for Locations: Location Default Action.), and for very
specific rules, `@$' can be computed by hand.

File: bison.info, Node: Ltcalc Lexer, Prev: Ltcalc Rules, Up: Location Tracking Calc
@@ -647,10 +643,10 @@ The `ltcalc' Lexical Analyzer.
Until now, we relied on Bison's defaults to enable location
tracking. The next step is to rewrite the lexical analyser, and make it
able to feed the parser with locations of tokens, as he already does
for semantic values.
able to feed the parser with the token locations, as it already does for
semantic values.
To do so, we must take into account every single character of the
To this end, we must take into account every single character of the
input text, to avoid the computed locations of being fuzzy or wrong:
int
@@ -695,14 +691,14 @@ input text, to avoid the computed locations of being fuzzy or wrong:
return c;
}
Basically, the lexical analyzer does the same processing as before:
it skips blanks and tabs, and reads numbers or single-character tokens.
In addition to this, it updates the `yylloc' global variable (of type
`YYLTYPE'), where the location of tokens is stored.
Basically, the lexical analyzer performs the same processing as
before: it skips blanks and tabs, and reads numbers or single-character
tokens. In addition, it updates `yylloc', the global variable (of type
`YYLTYPE') containing the token's location.
Now, each time this function returns a token, the parser has it's
number as well as it's semantic value, and it's position in the text.
The last needed change is to initialize `yylloc', for example in the
Now, each time this function returns a token, the parser has its
number as well as its semantic value, and its location in the text. The
last needed change is to initialize `yylloc', for example in the
controlling function:
int
@@ -715,7 +711,7 @@ controlling function:
Remember that computing locations is not a matter of syntax. Every
character must be associated to a location update, whether it is in
valid input, in comments, in literal strings, and so on...
valid input, in comments, in literal strings, and so on.

File: bison.info, Node: Multi-function Calc, Next: Exercises, Prev: Location Tracking Calc, Up: Examples
@@ -741,7 +737,7 @@ At the same time, we will add memory to the calculator, by allowing you
to create named variables, store values in them, and use them later.
Here is a sample session with the multi-function calculator:
% mfcalc
$ mfcalc
pi = 3.141592653589
3.1415926536
sin(pi)
@@ -754,7 +750,7 @@ Here is a sample session with the multi-function calculator:
0.8329091229
exp(ln(beta1))
2.3000000000
%
$
Note that multiple assignment and nested function calls are
permitted.
+71 -140
View File
@@ -623,19 +623,20 @@ Suppressing Conflict Warnings
Bison normally warns if there are any conflicts in the grammar
(*note Shift/Reduce Conflicts: Shift/Reduce.), but most real grammars
have harmless shift/reduce conflicts which are resolved in a
predictable way and would be difficult to eliminate. It is desirable
to suppress the warning about these conflicts unless the number of
conflicts changes. You can do this with the `%expect' declaration.
have harmless shift/reduce conflicts which are resolved in a predictable
way and would be difficult to eliminate. It is desirable to suppress
the warning about these conflicts unless the number of conflicts
changes. You can do this with the `%expect' declaration.
The declaration looks like this:
%expect N
Here N is a decimal integer. The declaration says there should be no
warning if there are N shift/reduce conflicts and no reduce/reduce
conflicts. The usual warning is given if there are either more or fewer
conflicts, or if there are any reduce/reduce conflicts.
Here N is a decimal integer. The declaration says there should be
no warning if there are N shift/reduce conflicts and no reduce/reduce
conflicts. An error, instead of the usual warning, is given if there
are either more or fewer conflicts, or if there are any reduce/reduce
conflicts.
In general, using `%expect' involves these steps:
@@ -710,7 +711,7 @@ File: bison.info, Node: Decl Summary, Prev: Pure Decl, Up: Declarations
Bison Declaration Summary
-------------------------
Here is a summary of all Bison declarations:
Here is a summary of the declarations used to define a grammar:
`%union'
Declare the collection of data types that semantic values may have
@@ -745,38 +746,9 @@ Bison Declaration Summary
Declare the expected number of shift-reduce conflicts (*note
Suppressing Conflict Warnings: Expect Decl.).
`%yacc'
`%fixed_output_files'
Pretend the option `--yacc' was given, i.e., imitate Yacc,
including its naming conventions. *Note Bison Options::, for more.
`%locations'
Generate the code processing the locations (*note Special Features
for Use in Actions: Action Features.). This mode is enabled as
soon as the grammar uses the special `@N' tokens, but if your
grammar does not use it, using `%locations' allows for more
accurate parse error messages.
`%pure_parser'
Request a pure (reentrant) parser program (*note A Pure
(Reentrant) Parser: Pure Decl.).
`%no_parser'
Do not include any C code in the parser file; generate tables
only. The parser file contains just `#define' directives and
static variable declarations.
This option also tells Bison to write the C code for the grammar
actions into a file named `FILENAME.act', in the form of a
brace-surrounded body fit for a `switch' statement.
`%no_lines'
Don't generate any `#line' preprocessor commands in the parser
file. Ordinarily Bison writes these commands in the parser file
so that the C compiler and debuggers will associate errors and
object code with your source file (the grammar file). This
directive causes them to associate errors with the parser file,
treating it an independent source file in its own right.
In order to change the behavior of `bison', use the following
directives:
`%debug'
Output a definition of the macro `YYDEBUG' into the parser file, so
@@ -796,20 +768,48 @@ Bison Declaration Summary
able to refer to token type codes and the variable `yylval'.
*Note Semantic Values of Tokens: Token Values.
`%verbose'
Write an extra output file containing verbose descriptions of the
parser states and what is done for each type of look-ahead token in
that state.
`%file-prefix="PREFIX"'
Specify a prefix to use for all Bison output file names. The
names are chosen as if the input file were named `PREFIX.y'.
This file also describes all the conflicts, both those resolved by
operator precedence and the unresolved ones.
`%locations'
Generate the code processing the locations (*note Special Features
for Use in Actions: Action Features.). This mode is enabled as
soon as the grammar uses the special `@N' tokens, but if your
grammar does not use it, using `%locations' allows for more
accurate parse error messages.
The file's name is made by removing `.tab.c' or `.c' from the
parser output file name, and adding `.output' instead.
`%name-prefix="PREFIX"'
Rename the external symbols used in the parser so that they start
with PREFIX instead of `yy'. The precise list of symbols renamed
is `yyparse', `yylex', `yyerror', `yynerrs', `yylval', `yychar'
and `yydebug'. For example, if you use `%name-prefix="c_"', the
names become `c_parse', `c_lex', and so on. *Note Multiple
Parsers in the Same Program: Multiple Parsers.
Therefore, if the input file is `foo.y', then the parser file is
called `foo.tab.c' by default. As a consequence, the verbose
output file is called `foo.output'.
`%no-parser'
Do not include any C code in the parser file; generate tables
only. The parser file contains just `#define' directives and
static variable declarations.
This option also tells Bison to write the C code for the grammar
actions into a file named `FILENAME.act', in the form of a
brace-surrounded body fit for a `switch' statement.
`%no-lines'
Don't generate any `#line' preprocessor commands in the parser
file. Ordinarily Bison writes these commands in the parser file
so that the C compiler and debuggers will associate errors and
object code with your source file (the grammar file). This
directive causes them to associate errors with the parser file,
treating it an independent source file in its own right.
`%output="FILENAME"'
Specify the FILENAME for the parser file.
`%pure-parser'
Request a pure (reentrant) parser program (*note A Pure
(Reentrant) Parser: Pure Decl.).
`%token_table'
Generate an array of token names in the parser file. The name of
@@ -845,6 +845,26 @@ Bison Declaration Summary
`YYNSTATES'
The number of parser states (*note Parser States::).
`%verbose'
Write an extra output file containing verbose descriptions of the
parser states and what is done for each type of look-ahead token in
that state.
This file also describes all the conflicts, both those resolved by
operator precedence and the unresolved ones.
The file's name is made by removing `.tab.c' or `.c' from the
parser output file name, and adding `.output' instead.
Therefore, if the input file is `foo.y', then the parser file is
called `foo.tab.c' by default. As a consequence, the verbose
output file is called `foo.output'.
`%yacc'
`%fixed-output-files'
Pretend the option `--yacc' was given, i.e., imitate Yacc,
including its naming conventions. *Note Bison Options::, for more.

File: bison.info, Node: Multiple Parsers, Prev: Declarations, Up: Grammar File
@@ -1226,92 +1246,3 @@ encountered so far. Normally this variable is global; but if you
request a pure parser (*note A Pure (Reentrant) Parser: Pure Decl.)
then it is a local variable which only the actions can access.

File: bison.info, Node: Action Features, Prev: Error Reporting, Up: Interface
Special Features for Use in Actions
===================================
Here is a table of Bison constructs, variables and macros that are
useful in actions.
`$$'
Acts like a variable that contains the semantic value for the
grouping made by the current rule. *Note Actions::.
`$N'
Acts like a variable that contains the semantic value for the Nth
component of the current rule. *Note Actions::.
`$<TYPEALT>$'
Like `$$' but specifies alternative TYPEALT in the union specified
by the `%union' declaration. *Note Data Types of Values in
Actions: Action Types.
`$<TYPEALT>N'
Like `$N' but specifies alternative TYPEALT in the union specified
by the `%union' declaration. *Note Data Types of Values in
Actions: Action Types.
`YYABORT;'
Return immediately from `yyparse', indicating failure. *Note The
Parser Function `yyparse': Parser Function.
`YYACCEPT;'
Return immediately from `yyparse', indicating success. *Note The
Parser Function `yyparse': Parser Function.
`YYBACKUP (TOKEN, VALUE);'
Unshift a token. This macro is allowed only for rules that reduce
a single value, and only when there is no look-ahead token. It
installs a look-ahead token with token type TOKEN and semantic
value VALUE; then it discards the value that was going to be
reduced by this rule.
If the macro is used when it is not valid, such as when there is a
look-ahead token already, then it reports a syntax error with a
message `cannot back up' and performs ordinary error recovery.
In either case, the rest of the action is not executed.
`YYEMPTY'
Value stored in `yychar' when there is no look-ahead token.
`YYERROR;'
Cause an immediate syntax error. This statement initiates error
recovery just as if the parser itself had detected an error;
however, it does not call `yyerror', and does not print any
message. If you want to print an error message, call `yyerror'
explicitly before the `YYERROR;' statement. *Note Error
Recovery::.
`YYRECOVERING'
This macro stands for an expression that has the value 1 when the
parser is recovering from a syntax error, and 0 the rest of the
time. *Note Error Recovery::.
`yychar'
Variable containing the current look-ahead token. (In a pure
parser, this is actually a local variable within `yyparse'.) When
there is no look-ahead token, the value `YYEMPTY' is stored in the
variable. *Note Look-Ahead Tokens: Look-Ahead.
`yyclearin;'
Discard the current look-ahead token. This is useful primarily in
error rules. *Note Error Recovery::.
`yyerrok;'
Resume generating error messages immediately for subsequent syntax
errors. This is useful primarily in error rules. *Note Error
Recovery::.
`@$'
Acts like a structure variable containing information on the
textual position of the grouping made by the current rule. *Note
Tracking Locations: Locations.
`@N'
Acts like a structure variable containing information on the
textual position of the Nth component of the current rule. *Note
Tracking Locations: Locations.
+105 -48
View File
@@ -28,6 +28,95 @@ License", "Conditions for Using Bison" and this permission notice may be
included in translations approved by the Free Software Foundation
instead of in the original English.

File: bison.info, Node: Action Features, Prev: Error Reporting, Up: Interface
Special Features for Use in Actions
===================================
Here is a table of Bison constructs, variables and macros that are
useful in actions.
`$$'
Acts like a variable that contains the semantic value for the
grouping made by the current rule. *Note Actions::.
`$N'
Acts like a variable that contains the semantic value for the Nth
component of the current rule. *Note Actions::.
`$<TYPEALT>$'
Like `$$' but specifies alternative TYPEALT in the union specified
by the `%union' declaration. *Note Data Types of Values in
Actions: Action Types.
`$<TYPEALT>N'
Like `$N' but specifies alternative TYPEALT in the union specified
by the `%union' declaration. *Note Data Types of Values in
Actions: Action Types.
`YYABORT;'
Return immediately from `yyparse', indicating failure. *Note The
Parser Function `yyparse': Parser Function.
`YYACCEPT;'
Return immediately from `yyparse', indicating success. *Note The
Parser Function `yyparse': Parser Function.
`YYBACKUP (TOKEN, VALUE);'
Unshift a token. This macro is allowed only for rules that reduce
a single value, and only when there is no look-ahead token. It
installs a look-ahead token with token type TOKEN and semantic
value VALUE; then it discards the value that was going to be
reduced by this rule.
If the macro is used when it is not valid, such as when there is a
look-ahead token already, then it reports a syntax error with a
message `cannot back up' and performs ordinary error recovery.
In either case, the rest of the action is not executed.
`YYEMPTY'
Value stored in `yychar' when there is no look-ahead token.
`YYERROR;'
Cause an immediate syntax error. This statement initiates error
recovery just as if the parser itself had detected an error;
however, it does not call `yyerror', and does not print any
message. If you want to print an error message, call `yyerror'
explicitly before the `YYERROR;' statement. *Note Error
Recovery::.
`YYRECOVERING'
This macro stands for an expression that has the value 1 when the
parser is recovering from a syntax error, and 0 the rest of the
time. *Note Error Recovery::.
`yychar'
Variable containing the current look-ahead token. (In a pure
parser, this is actually a local variable within `yyparse'.) When
there is no look-ahead token, the value `YYEMPTY' is stored in the
variable. *Note Look-Ahead Tokens: Look-Ahead.
`yyclearin;'
Discard the current look-ahead token. This is useful primarily in
error rules. *Note Error Recovery::.
`yyerrok;'
Resume generating error messages immediately for subsequent syntax
errors. This is useful primarily in error rules. *Note Error
Recovery::.
`@$'
Acts like a structure variable containing information on the
textual position of the grouping made by the current rule. *Note
Tracking Locations: Locations.
`@N'
Acts like a structure variable containing information on the
textual position of the Nth component of the current rule. *Note
Tracking Locations: Locations.

File: bison.info, Node: Algorithm, Next: Error Recovery, Prev: Interface, Up: Top
@@ -1118,19 +1207,12 @@ Tuning the parser:
Parser: Debugging.
`--locations'
Pretend that `%locactions' was specified. *Note Decl Summary::.
Pretend that `%locations' was specified. *Note Decl Summary::.
`-p PREFIX'
`--name-prefix=PREFIX'
Rename the external symbols used in the parser so that they start
with PREFIX instead of `yy'. The precise list of symbols renamed
is `yyparse', `yylex', `yyerror', `yynerrs', `yylval', `yychar'
and `yydebug'.
For example, if you use `-p c', the names become `cparse', `clex',
and so on.
*Note Multiple Parsers in the Same Program: Multiple Parsers.
Pretend that `%name-prefix="PREFIX"' was specified. *Note Decl
Summary::.
`-l'
`--no-lines'
@@ -1143,41 +1225,40 @@ Tuning the parser:
`-n'
`--no-parser'
Pretend that `%no_parser' was specified. *Note Decl Summary::.
Pretend that `%no-parser' was specified. *Note Decl Summary::.
`-k'
`--token-table'
Pretend that `%token_table' was specified. *Note Decl Summary::.
Pretend that `%token-table' was specified. *Note Decl Summary::.
Adjust the output:
`-d'
Pretend that `%verbose' was specified, i.e., write an extra output
`--defines'
Pretend that `%defines' was specified, i.e., write an extra output
file containing macro definitions for the token type names defined
in the grammar and the semantic value type `YYSTYPE', as well as a
few `extern' variable declarations. *Note Decl Summary::.
`--defines=DEFINES-FILE'
The behaviour of -DEFINES is the same than `-d'. The only
difference is that it has an optionnal argument which is the name
of the output filename.
Same as above, but save in the file DEFINES-FILE.
`-b FILE-PREFIX'
`--file-prefix=PREFIX'
Specify a prefix to use for all Bison output file names. The
names are chosen as if the input file were named `PREFIX.c'.
Pretend that `%verbose' was specified, i.e, specify prefix to use
for all Bison output file names. *Note Decl Summary::.
`-v'
`--verbose'
Pretend that `%verbose' was specified, i.e, write an extra output
file containing verbose descriptions of the grammar and parser.
*Note Decl Summary::, for more.
*Note Decl Summary::.
`-o OUTFILE'
`--output-file=OUTFILE'
Specify the name OUTFILE for the parser file.
`-o FILENAME'
`--output=FILENAME'
Specify the FILENAME for the parser file.
The other output files' names are constructed from OUTFILE as
The other output files' names are constructed from FILENAME as
described under the `-v' and `-d' options.
`-g'
@@ -1230,32 +1311,8 @@ find the corresponding short option.
--name-prefix=PREFIX -p NAME-PREFIX
--no-lines -l
--no-parser -n
--output-file=OUTFILE -o OUTFILE
--output=OUTFILE -o OUTFILE
--token-table -k
--verbose -v
--version -V

File: bison.info, Node: VMS Invocation, Prev: Option Cross Key, Up: Invocation
Invoking Bison under VMS
========================
The command line syntax for Bison on VMS is a variant of the usual
Bison command syntax--adapted to fit VMS conventions.
To find the VMS equivalent for any Bison option, start with the long
option, and substitute a `/' for the leading `--', and substitute a `_'
for each `-' in the name of the long option. For example, the
following invocation under VMS:
bison /debug/name_prefix=bar foo.y
is equivalent to the following command under POSIX.
bison --debug --name-prefix=bar foo.y
The VMS file system does not permit filenames such as `foo.tab.c'.
In the above example, the output file would instead be named
`foo_tab.c'.
+39 -3
View File
@@ -28,6 +28,30 @@ License", "Conditions for Using Bison" and this permission notice may be
included in translations approved by the Free Software Foundation
instead of in the original English.

File: bison.info, Node: VMS Invocation, Prev: Option Cross Key, Up: Invocation
Invoking Bison under VMS
========================
The command line syntax for Bison on VMS is a variant of the usual
Bison command syntax--adapted to fit VMS conventions.
To find the VMS equivalent for any Bison option, start with the long
option, and substitute a `/' for the leading `--', and substitute a `_'
for each `-' in the name of the long option. For example, the
following invocation under VMS:
bison /debug/name_prefix=bar foo.y
is equivalent to the following command under POSIX.
bison --debug --name-prefix=bar foo.y
The VMS file system does not permit filenames such as `foo.tab.c'.
In the above example, the output file would instead be named
`foo_tab.c'.

File: bison.info, Node: Table of Symbols, Next: Glossary, Prev: Invocation, Up: Top
@@ -172,11 +196,19 @@ Bison Symbols
Bison declaration to create a header file meant for the scanner.
*Note Decl Summary::.
`%file-prefix="PREFIX"'
Bison declaration to set tge prefix of the output files. *Note
Decl Summary::.
`%left'
Bison declaration to assign left associativity to token(s). *Note
Operator Precedence: Precedence Decl.
`%no_lines'
`%name-prefix="PREFIX"'
Bison declaration to rename the external symbols. *Note Decl
Summary::.
`%no-lines'
Bison declaration to avoid generating `#line' directives in the
parser file. *Note Decl Summary::.
@@ -184,11 +216,15 @@ Bison Symbols
Bison declaration to assign non-associativity to token(s). *Note
Operator Precedence: Precedence Decl.
`%output="FILENAME"'
Bison declaration to set the name of the parser file. *Note Decl
Summary::.
`%prec'
Bison declaration to assign a precedence to a specific rule.
*Note Context-Dependent Precedence: Contextual Precedence.
`%pure_parser'
`%pure-parser'
Bison declaration to request a pure (reentrant) parser. *Note A
Pure (Reentrant) Parser: Pure Decl.
@@ -204,7 +240,7 @@ Bison Symbols
Bison declaration to declare token(s) without specifying
precedence. *Note Token Type Names: Token Decl.
`%token_table'
`%token-table'
Bison declaration to include a token name table in the parser file.
*Note Decl Summary::.
+226 -182
View File
@@ -447,16 +447,26 @@ lexicography, not grammar.)
Here is a simple C function subdivided into tokens:
@ifinfo
@example
int /* @r{keyword `int'} */
square (x) /* @r{identifier, open-paren,} */
/* @r{identifier, close-paren} */
int x; /* @r{keyword `int', identifier, semicolon} */
square (int x) /* @r{identifier, open-paren, identifier,}
@r{identifier, close-paren} */
@{ /* @r{open-brace} */
return x * x; /* @r{keyword `return', identifier,} */
/* @r{asterisk, identifier, semicolon} */
return x * x; /* @r{keyword `return', identifier, asterisk,
identifier, semicolon} */
@} /* @r{close-brace} */
@end example
@end ifinfo
@ifnotinfo
@example
int /* @r{keyword `int'} */
square (int x) /* @r{identifier, open-paren, identifier, identifier, close-paren} */
@{ /* @r{open-brace} */
return x * x; /* @r{keyword `return', identifier, asterisk, identifier, semicolon} */
@} /* @r{close-brace} */
@end example
@end ifnotinfo
The syntactic groupings of C include the expression, the statement, the
declaration, and the function definition. These are represented in the
@@ -855,11 +865,12 @@ The C declarations section (@pxref{C Declarations, ,The C Declarations Section})
preprocessor directives.
The @code{#define} directive defines the macro @code{YYSTYPE}, thus
specifying the C data type for semantic values of both tokens and groupings
(@pxref{Value Type, ,Data Types of Semantic Values}). The Bison parser will use whatever type
@code{YYSTYPE} is defined as; if you don't define it, @code{int} is the
default. Because we specify @code{double}, each token and each expression
has an associated value, which is a floating point number.
specifying the C data type for semantic values of both tokens and
groupings (@pxref{Value Type, ,Data Types of Semantic Values}). The
Bison parser will use whatever type @code{YYSTYPE} is defined as; if you
don't define it, @code{int} is the default. Because we specify
@code{double}, each token and each expression has an associated value,
which is a floating point number.
The @code{#include} directive is used to declare the exponentiation
function @code{pow}.
@@ -1066,10 +1077,11 @@ token type is an identifier, that identifier is defined by Bison as a C
macro whose definition is the appropriate number. In this example,
therefore, @code{NUM} becomes a macro for @code{yylex} to use.
The semantic value of the token (if it has one) is stored into the global
variable @code{yylval}, which is where the Bison parser will look for it.
(The C data type of @code{yylval} is @code{YYSTYPE}, which was defined
at the beginning of the grammar; @pxref{Rpcalc Decls, ,Declarations for @code{rpcalc}}.)
The semantic value of the token (if it has one) is stored into the
global variable @code{yylval}, which is where the Bison parser will look
for it. (The C data type of @code{yylval} is @code{YYSTYPE}, which was
defined at the beginning of the grammar; @pxref{Rpcalc Decls,
,Declarations for @code{rpcalc}}.)
A token type code of zero is returned if the end-of-file is encountered.
(Bison recognizes any nonpositive value as indicating the end of the
@@ -1202,19 +1214,19 @@ Here is how to compile and run the parser file:
@example
@group
# @r{List files in current directory.}
% ls
$ @kbd{ls}
rpcalc.tab.c rpcalc.y
@end group
@group
# @r{Compile the Bison parser.}
# @r{@samp{-lm} tells compiler to search math library for @code{pow}.}
% cc rpcalc.tab.c -lm -o rpcalc
$ @kbd{cc rpcalc.tab.c -lm -o rpcalc}
@end group
@group
# @r{List files again.}
% ls
$ @kbd{ls}
rpcalc rpcalc.tab.c rpcalc.y
@end group
@end example
@@ -1223,19 +1235,19 @@ The file @file{rpcalc} now contains the executable code. Here is an
example session using @code{rpcalc}.
@example
% rpcalc
4 9 +
$ @kbd{rpcalc}
@kbd{4 9 +}
13
3 7 + 3 4 5 *+-
@kbd{3 7 + 3 4 5 *+-}
-13
3 7 + 3 4 5 * + - n @r{Note the unary minus, @samp{n}}
@kbd{3 7 + 3 4 5 * + - n} @r{Note the unary minus, @samp{n}}
13
5 6 / 4 n +
@kbd{5 6 / 4 n +}
-3.166666667
3 4 ^ @r{Exponentiation}
@kbd{3 4 ^} @r{Exponentiation}
81
^D @r{End-of-file indicator}
%
@kbd{^D} @r{End-of-file indicator}
$
@end example
@node Infix Calc
@@ -1315,12 +1327,12 @@ Here is a sample run of @file{calc.y}:
@need 500
@example
% calc
4 + 4.5 - (34/(8*3+-3))
$ @kbd{calc}
@kbd{4 + 4.5 - (34/(8*3+-3))}
6.880952381
-56 + 2
@kbd{-56 + 2}
-54
3 ^ 2
@kbd{3 ^ 2}
9
@end example
@@ -1372,13 +1384,11 @@ Bison programs.
@cindex @code{ltcalc}
@cindex calculator, location tracking
This example extends the infix notation calculator with location tracking.
This feature will be used to improve error reporting, and provide better
error messages.
For the sake of clarity, we will switch for this example to an integer
calculator, since most of the work needed to use locations will be done
in the lexical analyser.
This example extends the infix notation calculator with location
tracking. This feature will be used to improve the error messages. For
the sake of clarity, this example is a simple integer calculator, since
most of the work needed to use locations will be done in the lexical
analyser.
@menu
* Decls: Ltcalc Decls. Bison and C declarations for ltcalc.
@@ -1389,8 +1399,8 @@ in the lexical analyser.
@node Ltcalc Decls
@subsection Declarations for @code{ltcalc}
The C and Bison declarations for the location tracking calculator are the same
as the declarations for the infix notation calculator.
The C and Bison declarations for the location tracking calculator are
the same as the declarations for the infix notation calculator.
@example
/* Location tracking calculator. */
@@ -1411,22 +1421,24 @@ as the declarations for the infix notation calculator.
%% /* Grammar follows */
@end example
In the code above, there are no declarations specific to locations. Defining
a data type for storing locations is not needed: we will use the type provided
by default (@pxref{Location Type, ,Data Types of Locations}), which is a four
member structure with the following integer fields: @code{first_line},
@code{first_column}, @code{last_line} and @code{last_column}.
@noindent
Note there are no declarations specific to locations. Defining a data
type for storing locations is not needed: we will use the type provided
by default (@pxref{Location Type, ,Data Types of Locations}), which is a
four member structure with the following integer fields:
@code{first_line}, @code{first_column}, @code{last_line} and
@code{last_column}.
@node Ltcalc Rules
@subsection Grammar Rules for @code{ltcalc}
Whether you choose to handle locations or not has no effect on the syntax of
your language. Therefore, grammar rules for this example will be very close to
those of the previous example: we will only modify them to benefit from the new
informations we will have.
Whether handling locations or not has no effect on the syntax of your
language. Therefore, grammar rules for this example will be very close
to those of the previous example: we will only modify them to benefit
from the new information.
Here, we will use locations to report divisions by zero, and locate the wrong
expressions or subexpressions.
Here, we will use locations to report divisions by zero, and locate the
wrong expressions or subexpressions.
@example
@group
@@ -1447,17 +1459,17 @@ exp : NUM @{ $$ = $1; @}
| exp '-' exp @{ $$ = $1 - $3; @}
| exp '*' exp @{ $$ = $1 * $3; @}
@end group
| exp '/' exp
@group
| exp '/' exp
@{
if ($3)
$$ = $1 / $3;
else
@{
$$ = 1;
printf("Division by zero, l%d,c%d-l%d,c%d",
@@3.first_line, @@3.first_column,
@@3.last_line, @@3.last_column);
fprintf (stderr, "%d.%d-%d.%d: division by zero",
@@3.first_line, @@3.first_column,
@@3.last_line, @@3.last_column);
@}
@}
@end group
@@ -1472,25 +1484,24 @@ This code shows how to reach locations inside of semantic actions, by
using the pseudo-variables @code{@@@var{n}} for rule components, and the
pseudo-variable @code{@@$} for groupings.
In this example, we never assign a value to @code{@@$}, because the
output parser can do this automatically. By default, before executing
the C code of each action, @code{@@$} is set to range from the beginning
of @code{@@1} to the end of @code{@@@var{n}}, for a rule with @var{n}
components.
Of course, this behavior can be redefined (@pxref{Location Default
Action, , Default Action for Locations}), and for very specific rules,
@code{@@$} can be computed by hand.
We don't need to assign a value to @code{@@$}: the output parser does it
automatically. By default, before executing the C code of each action,
@code{@@$} is set to range from the beginning of @code{@@1} to the end
of @code{@@@var{n}}, for a rule with @var{n} components. This behavior
can be redefined (@pxref{Location Default Action, , Default Action for
Locations}), and for very specific rules, @code{@@$} can be computed by
hand.
@node Ltcalc Lexer
@subsection The @code{ltcalc} Lexical Analyzer.
Until now, we relied on Bison's defaults to enable location tracking. The next
step is to rewrite the lexical analyser, and make it able to feed the parser
with locations of tokens, as he already does for semantic values.
Until now, we relied on Bison's defaults to enable location
tracking. The next step is to rewrite the lexical analyser, and make it
able to feed the parser with the token locations, as it already does for
semantic values.
To do so, we must take into account every single character of the input text,
to avoid the computed locations of being fuzzy or wrong:
To this end, we must take into account every single character of the
input text, to avoid the computed locations of being fuzzy or wrong:
@example
@group
@@ -1540,17 +1551,18 @@ yylex (void)
@}
@end example
Basically, the lexical analyzer does the same processing as before: it skips
blanks and tabs, and reads numbers or single-character tokens. In addition
to this, it updates the @code{yylloc} global variable (of type @code{YYLTYPE}),
where the location of tokens is stored.
Basically, the lexical analyzer performs the same processing as before:
it skips blanks and tabs, and reads numbers or single-character tokens.
In addition, it updates @code{yylloc}, the global variable (of type
@code{YYLTYPE}) containing the token's location.
Now, each time this function returns a token, the parser has it's number as
well as it's semantic value, and it's position in the text. The last needed
change is to initialize @code{yylloc}, for example in the controlling
function:
Now, each time this function returns a token, the parser has its number
as well as its semantic value, and its location in the text. The last
needed change is to initialize @code{yylloc}, for example in the
controlling function:
@example
@group
int
main (void)
@{
@@ -1558,11 +1570,12 @@ main (void)
yylloc.first_column = yylloc.last_column = 0;
return yyparse ();
@}
@end group
@end example
Remember that computing locations is not a matter of syntax. Every character
must be associated to a location update, whether it is in valid input, in
comments, in literal strings, and so on...
Remember that computing locations is not a matter of syntax. Every
character must be associated to a location update, whether it is in
valid input, in comments, in literal strings, and so on.
@node Multi-function Calc
@section Multi-Function Calculator: @code{mfcalc}
@@ -1592,20 +1605,20 @@ to create named variables, store values in them, and use them later.
Here is a sample session with the multi-function calculator:
@example
% mfcalc
pi = 3.141592653589
$ @kbd{mfcalc}
@kbd{pi = 3.141592653589}
3.1415926536
sin(pi)
@kbd{sin(pi)}
0.0000000000
alpha = beta1 = 2.3
@kbd{alpha = beta1 = 2.3}
2.3000000000
alpha
@kbd{alpha}
2.3000000000
ln(alpha)
@kbd{ln(alpha)}
0.8329091229
exp(ln(beta1))
@kbd{exp(ln(beta1))}
2.3000000000
%
$
@end example
Note that multiple assignment and nested function calls are permitted.
@@ -2374,7 +2387,8 @@ the numbers associated with @var{x} and @var{y}.
In a simple program it may be sufficient to use the same data type for
the semantic values of all language constructs. This was true in the
RPN and infix calculator examples (@pxref{RPN Calc, ,Reverse Polish Notation Calculator}).
RPN and infix calculator examples (@pxref{RPN Calc, ,Reverse Polish
Notation Calculator}).
Bison's default is to use type @code{int} for all semantic values. To
specify some other type, define @code{YYSTYPE} as a macro, like this:
@@ -3067,11 +3081,11 @@ terminal symbol. All kinds of token declarations allow
@findex %expect
Bison normally warns if there are any conflicts in the grammar
(@pxref{Shift/Reduce, ,Shift/Reduce Conflicts}), but most real grammars have harmless shift/reduce
conflicts which are resolved in a predictable way and would be difficult to
eliminate. It is desirable to suppress the warning about these conflicts
unless the number of conflicts changes. You can do this with the
@code{%expect} declaration.
(@pxref{Shift/Reduce, ,Shift/Reduce Conflicts}), but most real grammars
have harmless shift/reduce conflicts which are resolved in a predictable
way and would be difficult to eliminate. It is desirable to suppress
the warning about these conflicts unless the number of conflicts
changes. You can do this with the @code{%expect} declaration.
The declaration looks like this:
@@ -3079,10 +3093,11 @@ The declaration looks like this:
%expect @var{n}
@end example
Here @var{n} is a decimal integer. The declaration says there should be no
warning if there are @var{n} shift/reduce conflicts and no reduce/reduce
conflicts. The usual warning is given if there are either more or fewer
conflicts, or if there are any reduce/reduce conflicts.
Here @var{n} is a decimal integer. The declaration says there should be
no warning if there are @var{n} shift/reduce conflicts and no
reduce/reduce conflicts. An error, instead of the usual warning, is
given if there are either more or fewer conflicts, or if there are any
reduce/reduce conflicts.
In general, using @code{%expect} involves these steps:
@@ -3167,7 +3182,7 @@ valid grammar.
@cindex declaration summary
@cindex summary, Bison declaration
Here is a summary of all Bison declarations:
Here is a summary of the declarations used to define a grammar:
@table @code
@item %union
@@ -3202,40 +3217,14 @@ Start-Symbol}).
@item %expect
Declare the expected number of shift-reduce conflicts
(@pxref{Expect Decl, ,Suppressing Conflict Warnings}).
@end table
@item %yacc
@itemx %fixed_output_files
Pretend the option @option{--yacc} was given, i.e., imitate Yacc,
including its naming conventions. @xref{Bison Options}, for more.
@item %locations
Generate the code processing the locations (@pxref{Action Features,
,Special Features for Use in Actions}). This mode is enabled as soon as
the grammar uses the special @samp{@@@var{n}} tokens, but if your
grammar does not use it, using @samp{%locations} allows for more
accurate parse error messages.
@item %pure_parser
Request a pure (reentrant) parser program (@pxref{Pure Decl, ,A Pure
(Reentrant) Parser}).
@item %no_parser
Do not include any C code in the parser file; generate tables only. The
parser file contains just @code{#define} directives and static variable
declarations.
This option also tells Bison to write the C code for the grammar actions
into a file named @file{@var{filename}.act}, in the form of a
brace-surrounded body fit for a @code{switch} statement.
@item %no_lines
Don't generate any @code{#line} preprocessor commands in the parser
file. Ordinarily Bison writes these commands in the parser file so that
the C compiler and debuggers will associate errors and object code with
your source file (the grammar file). This directive causes them to
associate errors with the parser file, treating it an independent source
file in its own right.
@sp 1
@noindent
In order to change the behavior of @command{bison}, use the following
directives:
@table @code
@item %debug
Output a definition of the macro @code{YYDEBUG} into the parser file, so
that the debugging facilities are compiled. @xref{Debugging, ,Debugging
@@ -3254,35 +3243,64 @@ This output file is essential if you wish to put the definition of
be able to refer to token type codes and the variable
@code{yylval}. @xref{Token Values, ,Semantic Values of Tokens}.@refill
@item %file-prefix="@var{prefix}"
Specify a prefix to use for all Bison output file names. The names are
chosen as if the input file were named @file{@var{prefix}.y}.
@c @item %header_extension
@c Specify the extension of the parser header file generated when
@c @code{%define} or @samp{-d} are used.
@c
@c For example, a grammar file named @file{foo.ypp} and containing a
@c @code{%header_extension .hh} directive will produce a header file
@c named @file{foo.tab.hh}
@item %locations
Generate the code processing the locations (@pxref{Action Features,
,Special Features for Use in Actions}). This mode is enabled as soon as
the grammar uses the special @samp{@@@var{n}} tokens, but if your
grammar does not use it, using @samp{%locations} allows for more
accurate parse error messages.
@item %name-prefix="@var{prefix}"
Rename the external symbols used in the parser so that they start with
@var{prefix} instead of @samp{yy}. The precise list of symbols renamed
is @code{yyparse}, @code{yylex}, @code{yyerror}, @code{yynerrs},
@code{yylval}, @code{yychar} and @code{yydebug}. For example, if you
use @samp{%name-prefix="c_"}, the names become @code{c_parse},
@code{c_lex}, and so on. @xref{Multiple Parsers, ,Multiple Parsers in
the Same Program}.
@item %no-parser
Do not include any C code in the parser file; generate tables only. The
parser file contains just @code{#define} directives and static variable
declarations.
This option also tells Bison to write the C code for the grammar actions
into a file named @file{@var{filename}.act}, in the form of a
brace-surrounded body fit for a @code{switch} statement.
@item %no-lines
Don't generate any @code{#line} preprocessor commands in the parser
file. Ordinarily Bison writes these commands in the parser file so that
the C compiler and debuggers will associate errors and object code with
your source file (the grammar file). This directive causes them to
associate errors with the parser file, treating it an independent source
file in its own right.
@item %output="@var{filename}"
Specify the @var{filename} for the parser file.
@item %pure-parser
Request a pure (reentrant) parser program (@pxref{Pure Decl, ,A Pure
(Reentrant) Parser}).
@c @item %source_extension
@c Specify the extension of the parser output file.
@c
@c For example, a grammar file named @file{foo.yy} and containing a
@c @code{%source_extension .cpp} directive will produce a parser file
@c named @file{foo.tab.cpp}
@c
@c @item %header_extension
@c Specify the extension of the parser header file generated when
@c @code{%define} or @samp{-d} are used.
@c
@c For example, a garmmar file named @file{foo.ypp} and containing a
@c @code{%header_extension .hh} directive will produce a header file
@c named @file{foo.tab.hh}
@item %verbose
Write an extra output file containing verbose descriptions of the
parser states and what is done for each type of look-ahead token in
that state.
This file also describes all the conflicts, both those resolved by
operator precedence and the unresolved ones.
The file's name is made by removing @samp{.tab.c} or @samp{.c} from
the parser output file name, and adding @samp{.output} instead.@refill
Therefore, if the input file is @file{foo.y}, then the parser file is
called @file{foo.tab.c} by default. As a consequence, the verbose
output file is called @file{foo.output}.@refill
@item %token_table
Generate an array of token names in the parser file. The name of the
@@ -3316,8 +3334,31 @@ The number of grammar rules,
@item YYNSTATES
The number of parser states (@pxref{Parser States}).
@end table
@item %verbose
Write an extra output file containing verbose descriptions of the
parser states and what is done for each type of look-ahead token in
that state.
This file also describes all the conflicts, both those resolved by
operator precedence and the unresolved ones.
The file's name is made by removing @samp{.tab.c} or @samp{.c} from
the parser output file name, and adding @samp{.output} instead.@refill
Therefore, if the input file is @file{foo.y}, then the parser file is
called @file{foo.tab.c} by default. As a consequence, the verbose
output file is called @file{foo.output}.@refill
@item %yacc
@itemx %fixed-output-files
Pretend the option @option{--yacc} was given, i.e., imitate Yacc,
including its naming conventions. @xref{Bison Options}, for more.
@end table
@node Multiple Parsers
@section Multiple Parsers in the Same Program
@@ -5049,19 +5090,12 @@ that the debugging facilities are compiled. @xref{Debugging, ,Debugging
Your Parser}.
@item --locations
Pretend that @code{%locactions} was specified. @xref{Decl Summary}.
Pretend that @code{%locations} was specified. @xref{Decl Summary}.
@item -p @var{prefix}
@itemx --name-prefix=@var{prefix}
Rename the external symbols used in the parser so that they start with
@var{prefix} instead of @samp{yy}. The precise list of symbols renamed
is @code{yyparse}, @code{yylex}, @code{yyerror}, @code{yynerrs},
@code{yylval}, @code{yychar} and @code{yydebug}.
For example, if you use @samp{-p c}, the names become @code{cparse},
@code{clex}, and so on.
@xref{Multiple Parsers, ,Multiple Parsers in the Same Program}.
Pretend that @code{%name-prefix="@var{prefix}"} was specified.
@xref{Decl Summary}.
@item -l
@itemx --no-lines
@@ -5073,11 +5107,11 @@ parser file, treating it as an independent source file in its own right.
@item -n
@itemx --no-parser
Pretend that @code{%no_parser} was specified. @xref{Decl Summary}.
Pretend that @code{%no-parser} was specified. @xref{Decl Summary}.
@item -k
@itemx --token-table
Pretend that @code{%token_table} was specified. @xref{Decl Summary}.
Pretend that @code{%token-table} was specified. @xref{Decl Summary}.
@end table
@noindent
@@ -5085,33 +5119,32 @@ Adjust the output:
@table @option
@item -d
Pretend that @code{%verbose} was specified, i.e., write an extra output
@itemx --defines
Pretend that @code{%defines} was specified, i.e., write an extra output
file containing macro definitions for the token type names defined in
the grammar and the semantic value type @code{YYSTYPE}, as well as a few
@code{extern} variable declarations. @xref{Decl Summary}.
@item --defines=@var{defines-file}
The behaviour of @var{--defines} is the same than @samp{-d}. The only
difference is that it has an optionnal argument which is the name of
the output filename.
Same as above, but save in the file @var{defines-file}.
@item -b @var{file-prefix}
@itemx --file-prefix=@var{prefix}
Specify a prefix to use for all Bison output file names. The names are
chosen as if the input file were named @file{@var{prefix}.c}.
Pretend that @code{%verbose} was specified, i.e, specify prefix to use
for all Bison output file names. @xref{Decl Summary}.
@item -v
@itemx --verbose
Pretend that @code{%verbose} was specified, i.e, write an extra output
file containing verbose descriptions of the grammar and
parser. @xref{Decl Summary}, for more.
parser. @xref{Decl Summary}.
@item -o @var{outfile}
@itemx --output-file=@var{outfile}
Specify the name @var{outfile} for the parser file.
@item -o @var{filename}
@itemx --output=@var{filename}
Specify the @var{filename} for the parser file.
The other output files' names are constructed from @var{outfile}
as described under the @samp{-v} and @samp{-d} options.
The other output files' names are constructed from @var{filename} as
described under the @samp{-v} and @samp{-d} options.
@item -g
Output a VCG definition of the LALR(1) grammar automaton computed by
@@ -5119,7 +5152,7 @@ Bison. If the grammar file is @file{foo.y}, the VCG output file will
be @file{foo.vcg}.
@item --graph=@var{graph-file}
The behaviour of @var{--graph} is the same than @samp{-g}. The only
The behaviour of @var{--graph} is the same than @samp{-g}. The only
difference is that it has an optionnal argument which is the name of
the output graph filename.
@end table
@@ -5168,7 +5201,7 @@ the corresponding short option.
\line{ --name-prefix \leaderfill -p}
\line{ --no-lines \leaderfill -l}
\line{ --no-parser \leaderfill -n}
\line{ --output-file \leaderfill -o}
\line{ --output \leaderfill -o}
\line{ --token-table \leaderfill -k}
\line{ --verbose \leaderfill -v}
\line{ --version \leaderfill -V}
@@ -5187,7 +5220,7 @@ the corresponding short option.
--name-prefix=@var{prefix} -p @var{name-prefix}
--no-lines -l
--no-parser -n
--output-file=@var{outfile} -o @var{outfile}
--output=@var{outfile} -o @var{outfile}
--token-table -k
--verbose -v
--version -V
@@ -5361,6 +5394,10 @@ Equip the parser for debugging. @xref{Decl Summary}.
Bison declaration to create a header file meant for the scanner.
@xref{Decl Summary}.
@item %file-prefix="@var{prefix}"
Bison declaration to set tge prefix of the output files. @xref{Decl
Summary}.
@c @item %source_extension
@c Bison declaration to specify the generated parser output file extension.
@c @xref{Decl Summary}.
@@ -5373,7 +5410,10 @@ Bison declaration to create a header file meant for the scanner.
Bison declaration to assign left associativity to token(s).
@xref{Precedence Decl, ,Operator Precedence}.
@item %no_lines
@item %name-prefix="@var{prefix}"
Bison declaration to rename the external symbols. @xref{Decl Summary}.
@item %no-lines
Bison declaration to avoid generating @code{#line} directives in the
parser file. @xref{Decl Summary}.
@@ -5381,11 +5421,15 @@ parser file. @xref{Decl Summary}.
Bison declaration to assign non-associativity to token(s).
@xref{Precedence Decl, ,Operator Precedence}.
@item %output="@var{filename}"
Bison declaration to set the name of the parser file. @xref{Decl
Summary}.
@item %prec
Bison declaration to assign a precedence to a specific rule.
@xref{Contextual Precedence, ,Context-Dependent Precedence}.
@item %pure_parser
@item %pure-parser
Bison declaration to request a pure (reentrant) parser.
@xref{Pure Decl, ,A Pure (Reentrant) Parser}.
@@ -5400,7 +5444,7 @@ Bison declaration to specify the start symbol. @xref{Start Decl, ,The Start-Sym
Bison declaration to declare token(s) without specifying precedence.
@xref{Token Decl, ,Token Type Names}.
@item %token_table
@item %token-table
Bison declaration to include a token name table in the parser file.
@xref{Decl Summary}.
+44 -38
View File
@@ -6,7 +6,7 @@
% This file can be printed with 1 or 2 columns per page (see below).
% Specify how many you want here. Nothing else needs to be changed
% unless you are maintaining the documentation.
% For printing reference cards to use in books, specify one column
% For printing reference cards to use in books, specify one column
% per page and reduce to 80%.
% Note that if columnsperpage is set to 2, there will be a few overfull
% boxes, but they are not serious. Just uncomment \finalout.
@@ -19,7 +19,7 @@
\def\finalout{\overfullrule=0pt}
%\finalout
% Copyright (c) 1998 Free Software Foundation, Inc.
% Copyright (c) 1998, 2001 Free Software Foundation, Inc.
%
% This file is part of Bison.
%
@@ -51,11 +51,11 @@
% Which mode to use is controlled by setting \columnsperpage above.
%
% Authors:
% Brendan Kehoe
% Brendan Kehoe
% UUCP: widener!brendan
% Internet: [email protected]
% Internet: [email protected]
%
% Gavin Nicol
% Gavin Nicol
% Internet: [email protected]
%
% This refcard format was created by Steve Gildea.
@@ -66,12 +66,12 @@
% We only change the following to change the version numbers and
% such.
\def\bisonversion{1.20} % the bison version
\def\bisonversion{1.31} % the bison version
\def\refcardversion{0.4a} % reference card version
\def\month{August} % month
\def\year{1998} % year
\def\version{\month\ \year, Bison Refcard Version \refcardversion}
\def\refcardversion{0.5} % reference card version
\def\month{November} % month
\def\year{2001} % year
\def\version{\month\ \year, Bison Refcard Version \refcardversion}
% for copyright notices
\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
@@ -90,7 +90,7 @@
Permission is granted to make and distribute copies of this card
provided the copyright notice and this permission notice
are preserved on all copies.
are preserved on all copies.
\vskip .2\baselineskip
For information, write to the:
\vskip .2\baselineskip
@@ -115,7 +115,7 @@ For information, write to the:
Permission is granted to make and distribute copies of this card
provided the copyright notice and this permission notice
are preserved on all copies.
are preserved on all copies.
\vskip .2\baselineskip
For information, write to the:
\vskip .2\baselineskip
@@ -136,7 +136,7 @@ For information, write to the:
\def\ncolumns{\the\columnsperpage}
\message{[\ncolumns\space
\message{[\ncolumns\space
column\if 1\ncolumns\else s\fi\space per page]}
\def\scaledmag#1{ scaled \magstep #1}
@@ -227,7 +227,7 @@ For information, write to the:
\def\bye{\par\vfill\supereject
\if a\abc \else\null\vfill\eject\fi
\if a\abc \else\null\vfill\eject\fi
\end}
\end}
\fi
% we won't be using math mode much, so redefine some of the characters
@@ -316,41 +316,44 @@ Options can be used as: \kbd{bison {\it options} {\it filename}}
\section{Command Line Options}
%*****************************
\key{Display usage information.} {-h}
\key{Display version information.} {-V}
\key{Generate token and {\tt YYSTYPE} definitions.} {-d}
\key{Prepend a prefix to external symbols.} {-p {\it prefix}}
\key{Don't put {\tt \#line} directives in the parser.} {-l}
\key{Specify the output file.} {-o {\it filename}}
\key{Debug or {\it trace} mode.} {-t}
\key{Debug or {\it trace} mode.} {-t}
\key{Verbose description of the parser.} {-v}
\key{Emulate {\tt yacc} (generate {\tt y.tab.*} files).} {-y}
\vskip .10truein
{\bf Note:} The token and {\tt YYSTYPE} definitions are generated
to a file called {\tt y.tab.h} if the {\tt -y} option is used,
{\bf Note:} The token and {\tt YYSTYPE} definitions are generated
to a file called {\tt y.tab.h} if the {\tt -y} option is used,
otherwise it will have the format {\tt {\it name}.tab.h}, where
{\it name} is the leading part of the parser definition filename.
\section{Definitions}
%********************
\key{Declare a terminal symbol.}{\%token <{\it t\/}>
\key{Declare a terminal symbol.}{\%token <{\it t\/}>
{\it n}}
\key{Declare a terminal symbol, and define its association.}
\key{Declare a terminal symbol, and define its association.}
{{\it association} <{\it t\/}> {\it n}}
\vskip .2\baselineskip
\key{Generate a reentrant (pure) parser.}
\key{Generate a reentrant (pure) parser.}
{\%pure_parser}
\key{Define the union of all data types used in the parser.}
\key{Define the union of all data types used in the parser.}
{\%union\{{\it field list}\} }
\vskip .2\baselineskip
\key{Tell {\tt bison} where to start parsing.}
{\%start {\it m}}
\key{Tell {\tt bison} where to start parsing.}
{\%start {\it m}}
\key{Tell {\tt bison} the data type of symbols.}
{\%type <{\it t\/}> {\it s1}\dots{\it sn}}
\key{Tell {\tt bison} the data type of symbols.}
{\%type <{\it t\/}> {\it s1}\dots{\it sn}}
\vskip .10truein
@@ -362,8 +365,8 @@ definition, {\it n} is a {\it terminal} symbol name, {\it m} is a
\vskip .10truein
The {\tt <{\it t\/}>} after {\tt \%token, \%left, \%right} and {\tt
\%nonassoc} is optional. Additionally, precedence may be overridden with
embedded {\tt \%prec} commands.
\%nonassoc} is optional. Additionally, precedence may be overridden
in the rules with {\tt \%prec} commands.
\section{Parser Definition Files}
%*********************************
@@ -379,7 +382,7 @@ The general form for a parser definition is:
\%\%
Rule definition 1
Rule definition 1
\vdots
Rule definition {\it n}
@@ -397,8 +400,9 @@ The general form for a parser definition is:
Rules take the form:
\vskip -\baselineskip
\beginexample
non-terminal : {\it statement} 1
non-terminal : {\it statement} 1
| {\it statement} 2
\vdots
| {\it statement n}
@@ -406,12 +410,12 @@ Rules take the form:
\endexample
Where {\it statements} can be either empty, or contain
a mixture of C code (enclosed in {\tt \{...\}}), and the
a mixture of C code (enclosed in {\tt \{...\}}), and the
symbols that make up the non-terminal. For example:
\vskip -\baselineskip
\beginexample
expression : number '$+$' number \{ \$\$ $=$ \$1 $+$ \$3 \}
expression : number '$+$' number \{ \$\$ $=$ \$1 $+$ \$3 \}
| number '$-$' number \{ \$\$ $=$ \$1 $-$ \$3 \}
| number '$/$' number \{ \$\$ $=$ \$1 $/$ \$3 \}
| number '$*$' number \{ \$\$ $=$ \$1 $*$ \$3 \}
@@ -428,7 +432,7 @@ For altering the precedence of a symbol use:
For example:
\vskip -\baselineskip
\beginexample
foo : gnu bar gnu \%prec bar
foo : gnu bar gnu \%prec bar
;
\endexample
@@ -438,16 +442,18 @@ For example:
\key{Recognize an error \& continue parsing.}{error}
\key{Access data associated with a symbol.} {\$\$, \$0\dots\${\it n}}
\key{Access a field of the data union.} {\$\$.{\it t},
\$0.{\it t}\dots\${\it n}.{\it t}}
\key{Access data's line position.} {@{\it n}.{\it line\_spec}}
\key{Access data's column position.} {@{\it n}.{\it column\_spec}}
\$0.{\it t}\dots\${\it n}.{\it t}}
\key{Access symbol's location.} {@\$, @0\dots@{\it n}}
\key{Access data's line location.} {@{\it x}.{\it line\_spec}}
\key{Access data's column location.} {@{\it x}.{\it column\_spec}}
\vskip .10truein
%
Where {\it t} is a type defined in the {\tt \%union}, {\it n} is a
number, {\it line\_spec} one of {\tt first_line} and {\tt last_line},
and {\it column\_spec} is specified as either {\tt first_column} or {\tt
last_column}.
number, {\it x} is a number or \$, {\it line\_spec} one of {\tt
first_line} and {\tt last_line}, and {\it column\_spec} is specified
as either {\tt first_column} or {\tt last_column}.
\section {Variables and Types}
%*****************************
+4 -4
View File
@@ -1,4 +1,4 @@
@set UPDATED 20 September 2001
@set UPDATED-MONTH September 2001
@set EDITION 1.30
@set VERSION 1.30
@set UPDATED 12 November 2001
@set UPDATED-MONTH November 2001
@set EDITION 1.30c
@set VERSION 1.30c
+4 -4
View File
@@ -1,4 +1,4 @@
@set UPDATED 20 September 2001
@set UPDATED-MONTH September 2001
@set EDITION 1.30
@set VERSION 1.30
@set UPDATED 12 November 2001
@set UPDATED-MONTH November 2001
@set EDITION 1.30c
@set VERSION 1.30c
+1 -1
View File
@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
+1 -1
View File
@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
+12
View File
@@ -1,3 +1,15 @@
2001-11-02 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.40.
2001-11-02 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.40.
2001-11-02 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.40.
2001-10-10 gettextize <[email protected]>
* Makefile.in.in: Upgrade to gettext-0.10.40.
BIN
View File
Binary file not shown.
+148 -133
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\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"
@@ -31,77 +31,78 @@ msgstr ""
msgid "fatal error: "
msgstr "fataler Fehler: %s\n"
#: src/conflicts.c:48
#: src/conflicts.c:45
#, 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:114 src/conflicts.c:137
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "durch Reduzierung gelöst"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "durch Schieben gelöst"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "als Fehler betrachtet"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 Schiebe/Reduziere Konflikt"
#: src/conflicts.c:411
#, fuzzy, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d Schiebe/Reduziere Konflikte"
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d Schiebe/Reduziere Konflikte"
#: src/conflicts.c:432
msgid " and"
#: src/conflicts.c:418
#, fuzzy
msgid "and"
msgstr " und"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 Reduziere/Reduziere Konflikt"
#: src/conflicts.c:424
#, fuzzy, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d Reduziere/Reduziere Konflikte"
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d Reduziere/Reduziere Konflikte"
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
#: src/conflicts.c:448
#, fuzzy, 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:491
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "Konflikte: "
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d Schiebe/Reduziere"
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d Reduziere/Reduziere"
#: src/conflicts.c:502
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains"
msgstr "%s enthält"
msgid "%s contains "
msgstr "%s enthält "
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:502
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] " %d Schiebe/Reduziere Konflikte"
#: src/conflicts.c:589 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:600 src/print.c:171
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -115,7 +116,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\treduziere mit Tegel %d (%s)\n"
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\treduziere mit Regel %d (%s)\n"
@@ -129,33 +130,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s leitet ab"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:87
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:91
#: src/getargs.c:92
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:97
#: src/getargs.c:98
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -163,7 +164,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:104
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -175,55 +176,55 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:116
#: src/getargs.c:117
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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:126
#: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:146
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:149
#: src/getargs.c:150
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:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:238
#: src/getargs.c:239
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:245
#: src/getargs.c:246
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: keine Grammatik-Datei angegeben\n"
#: src/getargs.c:249
#: src/getargs.c:250
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n"
@@ -233,52 +234,62 @@ msgstr "%s: zus
msgid "too many gotos (max %d)"
msgstr ""
#: src/lex.c:78
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "»/« wird hier nicht erwartet und wird deshalb ignoriert"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "unbeendeter Kommentar"
#: src/lex.c:139
#: src/lex.c:137
#, fuzzy
msgid "unexpected end of file"
msgstr "Datei endet unerwartet"
# Oder soll man den Begriff "Escapezeichen" verwenden?
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "nicht maskiertes Zeilenendezeichen in Konstante"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "oktaler Zahlenwert außerhalb des Bereichs 0...255: »\\%o«"
#: src/lex.c:235
#: src/lex.c:233
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadezimaler Zahlenwert größer als 255: »\\x%x«"
#: src/lex.c:247
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "unbekanntes Fluchtzeichen: »\\« gefolgt von »%s«"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "unerwarteter Typname am Ende der Datei"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "unerwarteter Typname"
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "für Literal mit mehreren Zeichen bitte \"...\" verwenden"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr ""
#: src/lex.c:683
#, fuzzy, c-format
msgid "`%s' requires an argument"
msgstr "%s: die Option »%s« erfordert ein Argument\n"
#: src/main.c:128
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interner Fehler, %s\n"
@@ -292,45 +303,45 @@ msgstr "F
msgid "maximum table size (%d) exceeded"
msgstr "maximale Tabellengröße (%s) überschritten"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr " Typ %d ist %s\n"
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (Regel %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr " $default\takzeptiere\n"
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " KEINE AKTIONEN\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tgehe zu Zustand %d über\n"
#: src/print.c:135
#: src/print.c:136
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tSchiebe und gehe zu Zustand %d über\n"
#: src/print.c:159
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\tFehler (nicht assoziativ)\n"
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tgehe zu Zustand %d über\n"
#: src/print.c:199
#: src/print.c:200
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -340,24 +351,24 @@ msgstr ""
"\n"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Grammatik\n"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "Regel %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -365,7 +376,7 @@ msgstr ""
"Terminale und die Regeln un denen sie verwendet werden\n"
"\n"
#: src/print.c:268
#: src/print.c:270
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
@@ -373,11 +384,11 @@ msgstr ""
"Nicht-Terminal und die Regeln in denen sie verwendet werden\n"
"\n"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " auf der linken Seite:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " auf der rechten Seite:"
@@ -451,7 +462,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "Symbol %s noch einmal definiert"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "erneute Deklaration des Typs für %s"
@@ -461,12 +472,12 @@ msgstr "erneute Deklaration des Typs f
msgid "`%s' is invalid in %s"
msgstr "»%s« ist in %s nicht erlaubt"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "mehr als eine %start Deklaration"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "ungültige %start Deklaration"
@@ -495,137 +506,137 @@ msgstr "unzul
msgid "unexpected item: %s"
msgstr "unerwartetes Symbol: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "»{« hat kein Gegenstück"
#: src/reader.c:792
#: src/reader.c:798
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "Argument von %expect ist keine ganze Zahl"
#: src/reader.c:838
#: src/reader.c:844
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "unerwartetes Symbol %s, hier wird ein Bezeichner erwartet"
#: src/reader.c:862
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "hier wird eine Zeichenkette erwartet, nicht %s"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "unbekannt: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "keine Eingabe-Grammatik"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "unbekanntes Zeichen: %s"
#: src/reader.c:1183
#: src/reader.c:1192
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "unbeendeter %%guard Fall"
#: src/reader.c:1350
#: src/reader.c:1359
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:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an"
#: src/reader.c:1388
#: src/reader.c:1397
#, 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:1490
#: src/reader.c:1499
msgid "two @prec's in a row"
msgstr "zwei @prec Anweisungen nacheinander"
#: src/reader.c:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr ""
"%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "Zwei Aktionen am Ende einer Regel"
#: src/reader.c:1521
#: src/reader.c:1530
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion"
#: src/reader.c:1527
#: src/reader.c:1536
msgid "empty rule for typed nonterminal, and no action"
msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion"
#: src/reader.c:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "ungültige Eingabe: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, 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:1582
#: src/reader.c:1591
msgid "no rules in the input grammar"
msgstr "Eingabegrammatik enthält keine Regeln"
#: src/reader.c:1606
#: src/reader.c:1615
#, 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:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich"
#: 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:1770
#: src/reader.c:1707
#, 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:1782
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich"
#: src/reader.c:1772
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "assoc Werte für %s nd %s widersprechen sich"
#: src/reader.c:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr "das Startsymbol %s ist undefiniert"
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "das Startsymbol %s ist ein Token"
#: src/reduce.c:401
#: src/reduce.c:405
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"Nutzlose Nicht-Terminale:\n"
"\n"
#: src/reduce.c:416
#: src/reduce.c:419
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -634,7 +645,7 @@ msgstr ""
"Nicht genutzte Terminale:\n"
"\n"
#: src/reduce.c:427
#: src/reduce.c:430
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -643,7 +654,7 @@ msgstr ""
"Ungenutzte Regeln:\n"
"\n"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -653,7 +664,7 @@ msgstr ""
"---------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "Wert Sprec Sassoc Tag\n"
@@ -667,7 +678,7 @@ msgstr ""
"------\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -677,36 +688,31 @@ msgstr ""
"----------------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d wurde niemals reduziert\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s enthält "
#: src/reduce.c:497
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d ungenutzte Nicht-Terminal"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr " und "
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d ungenutzte Regel"
#: src/reduce.c:539
#: src/reduce.c:540
#, 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:552
#: src/reduce.c:553
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -802,6 +808,15 @@ msgstr ""
msgid "'"
msgstr ""
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 Schiebe/Reduziere Konflikt"
#~ msgid " 1 reduce/reduce conflict"
#~ msgstr " 1 Reduziere/Reduziere Konflikt"
#~ msgid "%s contains"
#~ msgstr "%s enthält"
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
BIN
View File
Binary file not shown.
+148 -133
View File
@@ -30,7 +30,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.25\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\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"
@@ -63,55 +63,50 @@ msgstr ""
msgid "fatal error: "
msgstr "error grave: %s\n"
#: src/conflicts.c:48
#: src/conflicts.c:45
#, 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:114 src/conflicts.c:137
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "reduce"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "desplaza"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "un error"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 conflicto desplazamiento/reducción"
#: src/conflicts.c:411
#, fuzzy, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d conflictos desplazamiento/reducción"
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d conflictos desplazamiento/reducción"
#: src/conflicts.c:432
msgid " and"
#: src/conflicts.c:418
#, fuzzy
msgid "and"
msgstr " y"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 conflicto reducción/reducción"
#: src/conflicts.c:424
#, fuzzy, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d conflictos reducción/reducción"
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d conflictos reducción/reducción"
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
#: src/conflicts.c:448
#, fuzzy, 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:491
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "conflictos: "
@@ -127,7 +122,7 @@ msgstr "conflictos: "
# ok
# ngp
#
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d desplazamiento(s)/reducción(ones)"
@@ -144,22 +139,28 @@ msgstr " %d desplazamiento(s)/reducci
#
# ok
# ngp
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d reducción(ones)/reducción(ones)"
#: src/conflicts.c:502
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains"
msgstr "%s contiene"
msgid "%s contains "
msgstr "%s contiene "
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:502
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] " %d conflictos desplazamiento/reducción"
#: src/conflicts.c:589 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:600 src/print.c:171
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -173,7 +174,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\treduce usando la regla %d (%s)\n"
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\treduce usando la regla %d (%s)\n"
@@ -192,33 +193,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s deriva"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:87
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:91
#: src/getargs.c:92
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:97
#: src/getargs.c:98
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -226,7 +227,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:104
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -238,58 +239,58 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:116
#: src/getargs.c:117
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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:126
#: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:146
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:149
#: src/getargs.c:150
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:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:238
#: src/getargs.c:239
#, 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:245
#: src/getargs.c:246
#, 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:249
#: src/getargs.c:250
#, 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"
@@ -300,53 +301,63 @@ msgid "too many gotos (max %d)"
msgstr ""
# to ignore no es ignorar. Pon otra cosa, please. sv
#: src/lex.c:78
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "se ha encontrado `/' cuando no se esperaba, no se tendrán en cuenta"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "comentario sin terminar"
#: src/lex.c:139
#: src/lex.c:137
#, fuzzy
msgid "unexpected end of file"
msgstr "Fin de fichero inesperado"
# ¿unescaped?
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "salto de línea en constante sin secuencia de escape"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "valor octal fuera del rango 0...255: `\\%o'"
#: src/lex.c:235
#: src/lex.c:233
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "valor hexadecimal mayor que 255: `\\x%x'"
#: src/lex.c:247
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "secuencia de escape desconocida: `\\' seguido de `%s'"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "nombre de tipo sin terminar al final del fichero"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "nombre de tipo sin terminar"
# ¿multicarácter o multicaracteres? sv
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "use \"...\" para terminales literales multicarácter"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr ""
#: src/lex.c:683
#, fuzzy, c-format
msgid "`%s' requires an argument"
msgstr "%s: la opción `%s' requiere un argumento\n"
#: src/main.c:128
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "error interno, %s\n"
@@ -365,45 +376,45 @@ msgstr "Entrando set_nullable"
msgid "maximum table size (%d) exceeded"
msgstr "excedido el tamaño máximo de la tabla (%s)"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr " el tipo %d es %s\n"
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (regla %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr " $default\taceptar\n"
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " SIN ACCIONES\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tir al estado %d\n"
#: src/print.c:135
#: src/print.c:136
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tdesplazar e ir al estado %d\n"
#: src/print.c:159
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\terror (no asociativo)\n"
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tir al estado %d\n"
#: src/print.c:199
#: src/print.c:200
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -413,24 +424,24 @@ msgstr ""
"\n"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Gramática\n"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "regla %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -438,18 +449,18 @@ msgstr ""
"Terminales con las reglas donde aparecen\n"
"\n"
#: src/print.c:268
#: src/print.c:270
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
"\n"
"No terminales con las reglas donde aparecen\n"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " en la izquierda:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " en la derecha:"
@@ -523,7 +534,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "redefinido el símbolo %s"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "redeclaración del tipo de %s"
@@ -533,12 +544,12 @@ msgstr "redeclaraci
msgid "`%s' is invalid in %s"
msgstr "`%s' no es válido en %s"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "múltiples declaraciones de %start"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "declaración de %start no válida"
@@ -577,12 +588,12 @@ msgid "unexpected item: %s"
msgstr "ítem inesperado: %s"
# Cambio el orden y el sexo. Ahora está "en español". sv
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "`{' desemparejada"
#: src/reader.c:792
#: src/reader.c:798
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "el argumento de %expect no es un entero"
@@ -593,26 +604,26 @@ msgstr "el argumento de %expect no es un entero"
# - cll
# ok - ngp
#
#: src/reader.c:838
#: src/reader.c:844
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "no se reconoce el ítem %s, se esperaba un identificador"
#: src/reader.c:862
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "se esperaba una cadena constante en lugar de %s"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "no reconocido: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "no hay gramática de entrada"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "carácter desconocido: %s"
@@ -621,105 +632,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:1183
#: src/reader.c:1192
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "cláusula %%guard sin terminar"
#: src/reader.c:1350
#: src/reader.c:1359
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:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "la gramática comienza con una barra vertical"
#: src/reader.c:1388
#: src/reader.c:1397
#, 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:1490
#: src/reader.c:1499
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:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard presente pero %%semantic_parser está sin especificar"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "dos acciones al final de una regla"
#: src/reader.c:1521
#: src/reader.c:1530
#, 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:1527
#: src/reader.c:1536
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:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "entrada no válida: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, 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:1582
#: src/reader.c:1591
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:1606
#: src/reader.c:1615
#, 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:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedencias en conflicto entre %s y %s"
#: 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:1770
#: src/reader.c:1707
#, 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:1782
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedencias en conflicto entre %s y %s"
#: src/reader.c:1772
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflicto de valores assoc para %s y %s"
#: src/reader.c:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr "el símbolo de inicio (axioma) %s no está definido"
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "el símbolo de inicio (axioma) %s es un terminal"
#: src/reduce.c:401
#: src/reduce.c:405
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"No terminales sin uso:\n"
"\n"
#: src/reduce.c:416
#: src/reduce.c:419
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -728,7 +739,7 @@ msgstr ""
"Terminales que no se usan:\n"
"\n"
#: src/reduce.c:427
#: src/reduce.c:430
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -737,7 +748,7 @@ msgstr ""
"Reglas sin uso:\n"
"\n"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -747,7 +758,7 @@ msgstr ""
"---------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "Valor Sprec Sasoc Tag\n"
@@ -761,7 +772,7 @@ msgstr ""
"------\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -771,31 +782,26 @@ msgstr ""
"--------------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d reglas que nunca se han reducido\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s contiene "
#: src/reduce.c:497
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d no terminales %s sin uso"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr " y "
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d regla%s sin uso"
#: src/reduce.c:539
#: src/reduce.c:540
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "El símbolo de inicio (axioma) %s no deriva ninguna sentencia"
@@ -812,7 +818,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:552
#: src/reduce.c:553
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -983,6 +989,15 @@ msgstr ""
#~ "\n"
#~ "%s deriva\n"
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 conflicto desplazamiento/reducción"
#~ msgid " 1 reduce/reduce conflict"
#~ msgstr " 1 conflicto reducción/reducción"
#~ msgid "%s contains"
#~ msgstr "%s contiene"
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
BIN
View File
Binary file not shown.
+141 -133
View File
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.29f\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"PO-Revision-Date: 2001-10-19 17:53+02:00\n"
"Project-Id-Version: bison 1.30b\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\n"
"PO-Revision-Date: 2001-11-13 10:42+02:00\n"
"Last-Translator: Toomas Soome <[email protected]>\n"
"Language-Team: Estonian <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -30,77 +30,80 @@ msgstr "hoiatus: "
msgid "fatal error: "
msgstr "fataalne viga: "
#: src/conflicts.c:48
#: src/conflicts.c:45
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr "Konflikt olekus %d reegli %d ja märgi %s vahel lahendatud, kui %s.\n"
#: src/conflicts.c:114 src/conflicts.c:137
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "redutseerimine"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "nihutamine"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "viga"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 nihutamine/redutseerimine konflikt"
#: src/conflicts.c:426
#: src/conflicts.c:411
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d nihutamine/redutseerimine konflikti"
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] "%d nihutamine/redutseerimine konflikt"
msgstr[1] "%d nihutamine/redutseerimine konflikti"
#: src/conflicts.c:432
msgid " and"
msgstr " ja"
#: src/conflicts.c:418
msgid "and"
msgstr "ja"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 redutseerimine/redutseerimine konflikt"
#: src/conflicts.c:443
#: src/conflicts.c:424
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d redutseerimine/redutseerimine konflikti"
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] "%d redutseerimine/redutseerimine konflikt"
msgstr[1] "%d redutseerimine/redutseerimine konflikti"
#: src/conflicts.c:480
#: src/conflicts.c:448
#, c-format
msgid "State %d contains"
msgstr "Olek %d sisaldab"
msgid "State %d contains "
msgstr "Olek %d sisaldab "
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:491
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "konfliktid: "
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d nihutamine/redutseerimine"
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d redutseerimine/redutseerimine"
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains "
msgstr "%s sisaldab "
#: src/conflicts.c:502
#, c-format
msgid "%s contains"
msgstr "%s sisaldab"
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "eeldasime %d nihutamine/redutseerimine konflikti"
msgstr[1] "eeldasime %d nihutamine/redutseerimine konflikti"
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:589 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[redutseerin, kasutades reeglit %d (%s)]\n"
#: src/conflicts.c:600 src/print.c:171
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -114,7 +117,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\tredutseerin kasutades reeglit %d (%s)\n"
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\tredutseerin kasutades reeglit %d (%s)\n"
@@ -128,27 +131,27 @@ msgstr "DERIVES"
msgid "%s derives"
msgstr "%s derives"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr "faili `%s' ei saa avada"
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr "faili ei õnnestu sulgeda"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genereerib parsereid LALR(1) grammatikatele.\n"
#: src/getargs.c:87
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Kasuta: %s [VÕTI]...FAIL\n"
#: src/getargs.c:91
#: src/getargs.c:92
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"
@@ -156,7 +159,7 @@ msgstr ""
"Kui pikk võti näitab, et argument on kohustuslik, siis on see kohustuslik \n"
"ka lühikese võtme korral. Sama ka vabalt valitavate võtmete korral.\n"
#: src/getargs.c:97
#: src/getargs.c:98
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -168,7 +171,7 @@ msgstr ""
" -V, --version esita versiooniinfo ja lõpeta töö\n"
" -y, --yacc emuleeri POSIX yacc\n"
#: src/getargs.c:104
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -188,14 +191,14 @@ msgstr ""
" -n, --no-parser genereeri ainult tabelid\n"
" -k, --token-table lisa ka sümbolite nimede tabel\n"
#: src/getargs.c:116
#: src/getargs.c:117
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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Väljund:\n"
@@ -205,25 +208,25 @@ msgstr ""
" -o, --output-file=FAIL jäta väljund FAILi\n"
" -g, --graph loo automaadi kirjeldus VCG graafina\n"
#: src/getargs.c:126
#: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n"
msgstr "Teatage palun vigadest aadressil <[email protected]>.\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:145
#: src/getargs.c:146
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
"Autoriõigus 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, "
"Inc.\n"
#: src/getargs.c:149
#: src/getargs.c:150
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"
@@ -231,22 +234,22 @@ msgstr ""
"See on vaba tarkvara; kopeerimistingimused leiate lähtetekstidest. Garantii\n"
"PUUDUB; ka müügiks või mingil eesmärgil kasutamiseks.\n"
#: src/getargs.c:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr "`%s' ei ole enam toetatud"
#: src/getargs.c:238
#: src/getargs.c:239
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Lisainfo saamiseks proovige `%s --help'.\n"
#: src/getargs.c:245
#: src/getargs.c:246
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: puudub grammatikafail\n"
#: src/getargs.c:249
#: src/getargs.c:250
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
@@ -256,50 +259,60 @@ msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
msgid "too many gotos (max %d)"
msgstr "liiga palju gotosid (maks %d)"
#: src/lex.c:78
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "leidsin ja ignoreerin ootamatu `/'"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "lõpetamata kommentaar"
#: src/lex.c:139
#: src/lex.c:137
msgid "unexpected end of file"
msgstr "ootamatu faililõpp"
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "paojadata reavahetus konstandis"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "kaheksandväärtus väljaspool piire 0...255: `\\%o'"
#: src/lex.c:235
#: src/lex.c:233
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "kuueteistkümnendväärtus suurem, kui above 255: `\\x%x'"
#: src/lex.c:247
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "tundmatu paojada: `\\' järgneb `%s'"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "lõpetamata tüübinimi faili lõpus"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "lõpetamata tüübinimi"
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "kasuta mitmesümboliliste literaalidega \"...\" konstruktsiooni"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr "`%s' ei toeta argumente: %s"
#: src/lex.c:683
#, c-format
msgid "`%s' requires an argument"
msgstr "võti `%s' nõuab argumenti"
#: src/main.c:128
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: sisemine viga: %s\n"
@@ -313,77 +326,77 @@ msgstr "Entering set_nullable"
msgid "maximum table size (%d) exceeded"
msgstr "ületati maksimaalset tabelisuurust (%d)"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr " tüüp %d on %s\n"
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (reegel %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr " $default\taktsepteerin\n"
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " TEGEVUSI POLE\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tliigu olekule %d\n"
#: src/print.c:135
#: src/print.c:136
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tnihuta ja liigu olekule %d\n"
#: src/print.c:159
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\tviga (mitteassotsiatiivne)\n"
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tliigu olekule %d\n"
#: src/print.c:199
#: src/print.c:200
#, c-format
msgid "state %d"
msgstr "olek %d"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
msgid "Grammar"
msgstr "Grammatika"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "reegel %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr "tühi"
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
msgid "Terminals, with rules where they appear"
msgstr "Terminalid, koos reeglitega, kus nad ilmuvad"
#: src/print.c:268
#: src/print.c:270
msgid "Nonterminals, with rules where they appear"
msgstr "Mitteterminalid, koos reeglitega, kus nad ilmuvad"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " vasakul:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " paremal:"
@@ -457,7 +470,7 @@ msgstr "s
msgid "symbol %s redefined"
msgstr "sümbol %s on uuesti defineeritud"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "%s tüübi uuesti deklareerimine"
@@ -467,12 +480,12 @@ msgstr "%s t
msgid "`%s' is invalid in %s"
msgstr "`%s' ei ole %s sees lubatud"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, c-format
msgid "multiple %s declarations"
msgstr "korduvad %s deklaratsioonid"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, c-format
msgid "invalid %s declaration"
msgstr "vigane %s deklaratsioon"
@@ -501,139 +514,139 @@ msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit"
msgid "unexpected item: %s"
msgstr "ootamatu element: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, c-format
msgid "unmatched %s"
msgstr "puudub %s"
#: src/reader.c:792
#: src/reader.c:798
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "%%expect argument ei ole täisarv"
#: src/reader.c:838
#: src/reader.c:844
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "tundmatu element %s, eeldasin identifikaatorit"
#: src/reader.c:862
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "eeldasin %s asemel sõnekonstanti"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "tundmatu: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "sisendgrammatikat pole"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "tundmatu sümbol: %s"
#: src/reader.c:1183
#: src/reader.c:1192
#, c-format
msgid "unterminated %guard clause"
msgstr "lõpetamata %guard klausel"
#: src/reader.c:1350
#: src/reader.c:1359
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit"
#: src/reader.c:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "grammatika algab püstkriipsuga"
#: src/reader.c:1388
#: src/reader.c:1397
#, c-format
msgid "rule given for %s, which is a token"
msgstr "%s jaoks on antud reegel, aga see on märk"
#: src/reader.c:1490
#: src/reader.c:1499
msgid "two @prec's in a row"
msgstr "kaks @prec ühel real"
#: src/reader.c:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard on määratud, aga %%semantic_parser ei ole"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "kaks tegevust ühe reegli lõpus"
#: src/reader.c:1521
#: src/reader.c:1530
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')"
#: src/reader.c:1527
#: src/reader.c:1536
msgid "empty rule for typed nonterminal, and no action"
msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
#: src/reader.c:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "vigane sisend: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d"
#: src/reader.c:1582
#: src/reader.c:1591
msgid "no rules in the input grammar"
msgstr "sisendgrammatikas pole reegleid"
#: src/reader.c:1606
#: src/reader.c:1615
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad "
"reeglid"
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "%s ja %s omavad konfliktseid prioriteete"
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid"
#: src/reader.c:1770
#: src/reader.c:1707
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "märkidele %s ja %s on mõlemale omistatud number %d"
#: src/reader.c:1782
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "%s ja %s omavad konfliktseid prioriteete"
#: src/reader.c:1772
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid"
#: src/reader.c:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr "stardisümbol %s ei ole defineeritud"
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "stardisümbol %s on märk"
#: src/reduce.c:401
#: src/reduce.c:405
msgid "Useless nonterminals:"
msgstr "Kasutamata mitteterminalid:"
#: src/reduce.c:416
#: src/reduce.c:419
msgid "Terminals which are not used:"
msgstr "Terminalid, mida ei kasutatud:"
#: src/reduce.c:427
#: src/reduce.c:430
msgid "Useless rules:"
msgstr "Kasutamata reeglid:"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -643,7 +656,7 @@ msgstr ""
"--------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "Value Sprec Sassoc Tag\n"
@@ -657,7 +670,7 @@ msgstr ""
"-------\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -667,36 +680,31 @@ msgstr ""
"------------------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d reeglit ei redutseeritud\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s sisaldab "
#: src/reduce.c:497
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d kasutamata mitteterminali%s"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr " ja "
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d kasutamata reeglit%s"
#: src/reduce.c:539
#: src/reduce.c:540
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "Stardisümbolist %s ei tuletata ühtegi lauset"
#: src/reduce.c:552
#: src/reduce.c:553
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
BIN
View File
Binary file not shown.
+160 -145
View File
@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.29f\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"PO-Revision-Date: 2001-10-19 15:00-0500\n"
"Project-Id-Version: GNU bison 1.30a\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\n"
"PO-Revision-Date: 2001-11-12 08:00-0500\n"
"Last-Translator: Michel Robitaille <[email protected]>\n"
"Language-Team: French <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -31,78 +31,79 @@ msgstr "AVERTISSEMENT: "
msgid "fatal error: "
msgstr "erreur fatale: "
#: src/conflicts.c:48
#: src/conflicts.c:45
#, c-format
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
msgstr ""
"Conflit à l'état %d entre la règle %d et le terminal %s résolu par %s.\n"
#: src/conflicts.c:114 src/conflicts.c:137
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "réduction"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "décalage"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "une erreur"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 conflit décalage/réduction"
#: src/conflicts.c:411
#, fuzzy, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d conflits décalage/réduction"
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d conflits décalage/réduction"
#: src/conflicts.c:432
msgid " and"
#: src/conflicts.c:418
#, fuzzy
msgid "and"
msgstr " et"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr "1 conflit réduction/réduction"
#: src/conflicts.c:424
#, fuzzy, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d conflits réduction/réduction"
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d conflits réduction/réduction"
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
#: src/conflicts.c:448
#, fuzzy, c-format
msgid "State %d contains "
msgstr "L'état %d contient"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:491
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "conflits: "
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d décalage/réduction"
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d réduction/réduction"
#: src/conflicts.c:502
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains"
msgstr "%s contient"
msgid "%s contains "
msgstr "%s contient "
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:502
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] " %d conflits décalage/réduction"
#: src/conflicts.c:589 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[réduction par la règle %d (%s)\n"
#: src/conflicts.c:600 src/print.c:171
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -116,7 +117,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\tréduction par la règle %d (%s)\n"
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $défaut\tréduction par la règle %d (%s)\n"
@@ -130,36 +131,36 @@ msgstr "D
msgid "%s derives"
msgstr "%s dérive"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr "ne peut ouvrir le fichier `%s'"
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr "ne peut fermer le fichier"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison génère des analyseurs pour les grammaires de type LALR(1).\n"
#: src/getargs.c:87
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Usage: %s [OPTION]... FICHIER\n"
#: src/getargs.c:91
#: src/getargs.c:92
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
"Si une option de forme longue montre un paramètre comme étant obligatoire,\n"
"Si une option de forme longue montre un arguement comme étant obligatoire,\n"
"il est alors obligatoire également pour une option de forme courte.\n"
"Il en est de même pour les paramètres optionnels.\n"
"Il en est de même pour les arguments optionnels.\n"
#: src/getargs.c:97
#: src/getargs.c:98
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -171,7 +172,7 @@ msgstr ""
" -V, --version afficher le nom et la version du logiciel\n"
" -y, --yacc émuler yacc en mode POSIX\n"
#: src/getargs.c:104
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -193,42 +194,42 @@ msgstr ""
" -r, --raw compter les jetons à partir de 3\n"
" -k, --token-table inclure la table des noms de jetons\n"
#: src/getargs.c:116
#: src/getargs.c:117
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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Sortie:\n"
" -d, --defines produire un fichier d'en-tête\n"
" -v, --verbose produire une explication de l'automate\n"
" -b, --file-prefix=PREFIXE utiliser le PREFIXE pour le fichier de sortie\n"
" -o, --output-file=FICHIER produire la sortie dans le FICHIER\n"
" -o, --output=FICHIER produire la sortie dans le FICHIER\n"
" -g, --graph produire aussi la description du graphe VCG de "
"l'automate\n"
#: src/getargs.c:126
#: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n"
msgstr "Rapporter toutes anomalies à <[email protected]>.\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:145
#: src/getargs.c:146
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:149
#: src/getargs.c:150
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"
@@ -237,75 +238,85 @@ msgstr ""
"reproduction. AUCUNE garantie n'est donnée; tant pour des raisons\n"
"COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n"
#: src/getargs.c:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr "`%s' n'est plus supporté"
#: src/getargs.c:238
#: src/getargs.c:239
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Pour en savoir davantage, faites: `%s --help'.\n"
#: src/getargs.c:245
#: src/getargs.c:246
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: grammaire manquante\n"
#: src/getargs.c:249
#: src/getargs.c:250
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: paramètres supplémentaires ignorés après `%s'\n"
msgstr "%s: arguments supplémentaires ignorés après `%s'\n"
#: src/lalr.c:311
#, c-format
msgid "too many gotos (max %d)"
msgstr "nombre trop grand de \"goto\" (Max %d)"
#: src/lex.c:78
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "`/' inattendu et ignoré"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "le commentaire ne se termine pas"
#: src/lex.c:139
#: src/lex.c:137
msgid "unexpected end of file"
msgstr "Fin de fichier inattendue"
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "retour de chariot sans échappement dans une constante"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "valeur octale à l'extérieur de l'intervalle 0...255: \\%o"
#: src/lex.c:235
#: src/lex.c:233
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "valeur hexadécimale supérieure à 255: \\x%x"
#: src/lex.c:247
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "séquence d'échappement inconnue: `\\' suivie de `%s'"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "le nom de type ne se termine pas avant la fin de fichier"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "le nom de type ne se termine pas"
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "utilisez \"...\" pour les terminaux litéraux de plusieurs caractères"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr "`%s' ne supporte aucun argument: %s"
#: src/lex.c:683
#, c-format
msgid "`%s' requires an argument"
msgstr "`%s': requiert un argument"
#: src/main.c:128
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: erreur interne: %s\n"
@@ -319,77 +330,77 @@ msgstr "Entr
msgid "maximum table size (%d) exceeded"
msgstr "taille maximale de la table (%d) dépassée"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr " le type %d est %s\n"
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (règle %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr " $défaut\taccepter\n"
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " PAS D'ACTION\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \taller à l'état %d\n"
#: src/print.c:135
#: src/print.c:136
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tdécalage et aller à l'état %d\n"
#: src/print.c:159
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\terreur (non-associatif)\n"
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\taller à l'état %d\n"
#: src/print.c:199
#: src/print.c:200
#, c-format
msgid "state %d"
msgstr "état %d"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
msgid "Grammar"
msgstr "Grammaire"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "règle %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr "vide"
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
msgid "Terminals, with rules where they appear"
msgstr "Terminaux, suivis des règles où ils apparaissent"
#: src/print.c:268
#: src/print.c:270
msgid "Nonterminals, with rules where they appear"
msgstr "Non-terminaux, suivis des règles où ils apparaissent"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " à gauche:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " à droite:"
@@ -463,7 +474,7 @@ msgstr "symbole `%s' pr
msgid "symbol %s redefined"
msgstr "symbole %s redéfini"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "redéclaration du type de %s"
@@ -473,12 +484,12 @@ msgstr "red
msgid "`%s' is invalid in %s"
msgstr "`%s' n'est pas valide dans %s"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, c-format
msgid "multiple %s declarations"
msgstr "multiples déclarations %s"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, c-format
msgid "invalid %s declaration"
msgstr "la déclaration %s n'est pas valide"
@@ -508,139 +519,139 @@ msgstr ""
msgid "unexpected item: %s"
msgstr "item inattendu: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, c-format
msgid "unmatched %s"
msgstr "non appariement de %s"
#: src/reader.c:792
#: src/reader.c:798
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "le paramètre de %%expect n'est pas un entier"
msgstr "l'argument de %%expect n'est pas un entier"
#: src/reader.c:838
#: src/reader.c:844
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "item %s non reconnu, un identificateur est attendu"
#: src/reader.c:862
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "chaîne de caractères constante attendue plutôt que %s"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "non reconnu: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "aucune grammaire en entrée"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "caractère inconnu: %s"
#: src/reader.c:1183
#: src/reader.c:1192
#, c-format
msgid "unterminated %guard clause"
msgstr "clause %guard non terminée"
#: src/reader.c:1350
#: src/reader.c:1359
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "règle mal formée: le symbole initial n'est pas suivi de `:'"
#: src/reader.c:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "la grammaire débute par une barre verticale"
#: src/reader.c:1388
#: src/reader.c:1397
#, c-format
msgid "rule given for %s, which is a token"
msgstr "la règle pour %s, qui est un terminal"
#: src/reader.c:1490
#: src/reader.c:1499
msgid "two @prec's in a row"
msgstr "deux @prec de suite"
#: src/reader.c:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard est présent mais %%semantic_parser n'est pas spécifié"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "deux actions à la fin d'une même règle"
#: src/reader.c:1521
#: src/reader.c:1530
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "conflit de type (`%s' `%s') pour l'action par défaut"
#: src/reader.c:1527
#: src/reader.c:1536
msgid "empty rule for typed nonterminal, and no action"
msgstr "règle vide pour une catégorie typée et aucune action"
#: src/reader.c:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "entrée non valide: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "trop de symboles (jeton plus non terminaux); maximum %d"
#: src/reader.c:1582
#: src/reader.c:1591
msgid "no rules in the input grammar"
msgstr "la grammaire n'a pas de règles"
#: src/reader.c:1606
#: src/reader.c:1615
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"le symbole %s est utilisé mais ce n'est pas un terminal et il ne possède pas "
"de règle"
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "les priorités pour %s et %s entrent en conflit"
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "les valeurs d'association de %s et %s entrent en conflit"
#: src/reader.c:1770
#: src/reader.c:1707
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "les jetons %s et %s se sont vus assigner le nombre %d"
#: src/reader.c:1782
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "les priorités pour %s et %s entrent en conflit"
#: src/reader.c:1772
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "les valeurs d'association de %s et %s entrent en conflit"
#: src/reader.c:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr "le symbole de départ %s n'est pas défini"
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "le symbole de départ %s est un terminal"
#: src/reduce.c:401
#: src/reduce.c:405
msgid "Useless nonterminals:"
msgstr "Non-terminaux inutiles:"
#: src/reduce.c:416
#: src/reduce.c:419
msgid "Terminals which are not used:"
msgstr "Terminaux non utilisés:"
#: src/reduce.c:427
#: src/reduce.c:430
msgid "Useless rules:"
msgstr "Règles inutiles:"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -650,7 +661,7 @@ msgstr ""
"---------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "Valeur Spréc Sassoc Tag\n"
@@ -664,7 +675,7 @@ msgstr ""
"------\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -674,36 +685,31 @@ msgstr ""
"-------------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d règles jamais réduites\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s contient "
#: src/reduce.c:497
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d catégories non productives%s"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr " et "
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d règle(s) non productive(s)%s"
#: src/reduce.c:539
#: src/reduce.c:540
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "Aucune phrase ne peut être dérivée du symbole de départ %s"
#: src/reduce.c:552
#: src/reduce.c:553
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -719,17 +725,17 @@ msgstr "%s: l'option %s est ambig
#: lib/getopt.c:719
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: l'option --%s n'admet pas de paramètre\n"
msgstr "%s: l'option --%s n'admet pas d'argument\n"
#: lib/getopt.c:724
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: l'option %c%s n'admet pas de paramètre\n"
msgstr "%s: l'option %c%s n'admet pas d'argument\n"
#: lib/getopt.c:742 lib/getopt.c:915
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: l'option %s requiert un paramètre\n"
msgstr "%s: l'option %s requiert un argument\n"
#. --option
#: lib/getopt.c:771
@@ -758,7 +764,7 @@ msgstr "%s: option non valide -- %c\n"
#: lib/getopt.c:834 lib/getopt.c:964
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: l'option requiert un paramètre -- %c\n"
msgstr "%s: l'option requiert un argument -- %c\n"
#: lib/getopt.c:881
#, c-format
@@ -768,7 +774,7 @@ msgstr "%s: l'option `-W %s' est ambigu
#: lib/getopt.c:899
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: l'option `-W %s' n'admet pas de paramètre\n"
msgstr "%s: l'option `-W %s' n'admet pas d'argument\n"
#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
#. before exiting when memory is exhausted. Goes through gettext.
@@ -798,6 +804,15 @@ msgstr "`"
msgid "'"
msgstr "'"
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 conflit décalage/réduction"
#~ msgid " 1 reduce/reduce conflict"
#~ msgstr "1 conflit réduction/réduction"
#~ msgid "%s contains"
#~ msgstr "%s contient"
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* epsilon */"
BIN
View File
Binary file not shown.
+148 -133
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.28\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\n"
"PO-Revision-Date: 1999-09-28 21:10+0900\n"
"Last-Translator: Daisuke Yamashita <[email protected]>\n"
"Language-Team: Japanese <[email protected]>\n"
@@ -31,77 +31,78 @@ msgstr ""
msgid "fatal error: "
msgstr "%s: 致命的エラー: "
#: src/conflicts.c:48
#: src/conflicts.c:45
#, 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:114 src/conflicts.c:137
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "還元"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "シフト"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "エラー"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 シフト/還元衝突"
#: src/conflicts.c:411
#, fuzzy, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d シフト/還元衝突"
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d シフト/還元衝突"
#: src/conflicts.c:432
msgid " and"
#: src/conflicts.c:418
#, fuzzy
msgid "and"
msgstr " および"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 還元/還元衝突"
#: src/conflicts.c:424
#, fuzzy, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d 還元/還元衝突"
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d 還元/還元衝突"
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
#: src/conflicts.c:448
#, fuzzy, c-format
msgid "State %d contains "
msgstr "状態 %d が含むのは"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:491
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "衝突: "
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d シフト/還元"
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d 還元/還元"
#: src/conflicts.c:502
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains"
msgstr "%s には"
msgid "%s contains "
msgstr "%s には"
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:502
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] " %d シフト/還元衝突"
#: src/conflicts.c:589 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[規則 %d を利用して還元 (%s)]\n"
#: src/conflicts.c:600 src/print.c:171
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -115,7 +116,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\t規則 %d を利用して還元 (%s)\n"
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\t規則 %d を利用して還元 (%s)\n"
@@ -135,33 +136,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s は以下から派生"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:87
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:91
#: src/getargs.c:92
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:97
#: src/getargs.c:98
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -169,7 +170,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:104
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -181,55 +182,55 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:116
#: src/getargs.c:117
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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:126
#: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:146
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:149
#: src/getargs.c:150
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:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:238
#: src/getargs.c:239
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:245
#: src/getargs.c:246
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: 文法ファイルが指定されていません\n"
#: src/getargs.c:249
#: src/getargs.c:250
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' より後ろの余分な引数は無視されました\n"
@@ -239,51 +240,61 @@ msgstr "%s: '%s'
msgid "too many gotos (max %d)"
msgstr "%s の数が多すぎます (最大 %d)"
#: src/lex.c:78
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "予期しない `/' が見つかり、無視されました"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "閉じていないコメントです"
#: src/lex.c:139
#: src/lex.c:137
#, fuzzy
msgid "unexpected end of file"
msgstr "予期しないファイルの終端です"
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "定数の中にエスケープされていない改行があります"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "8 進数の値が 0...255 の範囲外です: `\\%o'"
#: src/lex.c:235
#: src/lex.c:233
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "16 進数の値が 255 を越えています: `\\x%x'"
#: src/lex.c:247
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "未知のエスケープシーケンス: `\\' の後に `%s'"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "閉じられていないタイプ名が、ファイル末尾にあります"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "閉じられていないタイプ名があります"
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "複数文字のリテラルトークンには \"...\" を使いましょう"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr ""
#: src/lex.c:683
#, fuzzy, c-format
msgid "`%s' requires an argument"
msgstr "%s: オプション `%s' は引数を要求します\n"
#: src/main.c:128
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: 内部エラー: %s\n"
@@ -297,45 +308,45 @@ msgstr "set_nullable
msgid "maximum table size (%d) exceeded"
msgstr "最大テーブルサイズ (%s) を超えました"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr " タイプ %d は %s です\n"
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (規則 %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr " $default\taccept\n"
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " 動作無し\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \t状態 %d へ\n"
#: src/print.c:135
#: src/print.c:136
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tシフト、および状態 %d へ\n"
#: src/print.c:159
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\tエラー (非結合)\n"
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\t状態 %d へ\n"
#: src/print.c:199
#: src/print.c:200
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -345,24 +356,24 @@ msgstr ""
"\n"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"文法\n"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "規則 %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -370,7 +381,7 @@ msgstr ""
"終端トークン、およびそこに現れた規則\n"
"\n"
#: src/print.c:268
#: src/print.c:270
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
@@ -378,11 +389,11 @@ msgstr ""
"非終端トークン、およびそこに現れた規則\n"
"\n"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " 左辺:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " 右辺:"
@@ -456,7 +467,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "シンボル %s が再定義されました"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "%s の型が再定義されました"
@@ -466,12 +477,12 @@ msgstr "%s
msgid "`%s' is invalid in %s"
msgstr "%2$s 内の `%1$s' は無効です"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "複数の %start が宣言されました"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "無効な %start が宣言されました"
@@ -500,134 +511,134 @@ msgstr "̵
msgid "unexpected item: %s"
msgstr "予期せぬアイテム: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "対応のない `{' です"
#: src/reader.c:792
#: src/reader.c:798
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "%expect の引数が整数値ではありません"
#: src/reader.c:838
#: src/reader.c:844
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "認識できないアイテム %s、ここでは識別子が期待されます"
#: src/reader.c:862
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "ここでは %s ではなく文字列定数が期待されます"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "認識できない: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "文法の入力が無い"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "未知の文字: %s"
#: src/reader.c:1183
#: src/reader.c:1192
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "閉じられていない %%guard 節です"
#: src/reader.c:1350
#: src/reader.c:1359
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "邪悪な規則: 初期化シンボルにコロン (:) が続いていません"
#: src/reader.c:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "文法は縦棒 (|) で始めます"
#: src/reader.c:1388
#: src/reader.c:1397
#, c-format
msgid "rule given for %s, which is a token"
msgstr "%s に規則が与えられ、それはトークンとなります"
#: src/reader.c:1490
#: src/reader.c:1499
msgid "two @prec's in a row"
msgstr "@prec のもの二つが同列になっています"
#: src/reader.c:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard がありますが %%semantic_parser が指定されていません"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "一つの規則の終りに二つの動作を指定しています"
#: src/reader.c:1521
#: src/reader.c:1530
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "初期状態の動作では型 (`%s' `%s') が衝突します"
#: src/reader.c:1527
#: src/reader.c:1536
msgid "empty rule for typed nonterminal, and no action"
msgstr "空の型付き非終端アイテム用規則であり、動作が起りません"
#: src/reader.c:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "無効な入力: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "シンボルが多すぎます (トークンと非終端アイテム) -- 最大 %s"
#: src/reader.c:1582
#: src/reader.c:1591
msgid "no rules in the input grammar"
msgstr "入力した文法に規則が定義されていません"
#: src/reader.c:1606
#: src/reader.c:1615
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"シンボル %s が使われていますが、トークンとして定義されておらず、規則を持ちま"
"せん"
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "先行している %s と %s で競合が生じています"
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "非結合値 %s と %s で競合が生じています"
#: src/reader.c:1770
#: src/reader.c:1707
#, fuzzy, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "トークン %s と %s の双方が番号 %s に割り当てられました"
#: src/reader.c:1782
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "先行している %s と %s で競合が生じています"
#: src/reader.c:1772
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "非結合値 %s と %s で競合が生じています"
#: src/reader.c:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr "開始シンボル %s は定義されていません"
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "開始シンボル %s はトークンです"
#: src/reduce.c:401
#: src/reduce.c:405
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"不使用非終端子:\n"
"\n"
#: src/reduce.c:416
#: src/reduce.c:419
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -636,7 +647,7 @@ msgstr ""
"利用されない終端子:\n"
"\n"
#: src/reduce.c:427
#: src/reduce.c:430
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -645,7 +656,7 @@ msgstr ""
"不使用規則:\n"
"\n"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -655,7 +666,7 @@ msgstr ""
"---------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "値 前置 結合 タグ\n"
@@ -669,7 +680,7 @@ msgstr ""
"-----\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -679,36 +690,31 @@ msgstr ""
"-----------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d 個の規則は決して還元されません\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s には"
#: src/reduce.c:497
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d 個の不使用非終端子%.0s"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr "および"
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d 個の不使用規則%.0s"
#: src/reduce.c:539
#: src/reduce.c:540
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "開始シンボル %s はどの文にも由来しません"
#: src/reduce.c:552
#: src/reduce.c:553
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -850,6 +856,15 @@ msgstr ""
#~ "%s は以下から派生\n"
#~ "\n"
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 シフト/還元衝突"
#~ msgid " 1 reduce/reduce conflict"
#~ msgstr " 1 還元/還元衝突"
#~ msgid "%s contains"
#~ msgstr "%s には、"
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
BIN
View File
Binary file not shown.
+147 -132
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\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"
@@ -31,77 +31,78 @@ msgstr ""
msgid "fatal error: "
msgstr "fatale fout: %s\n"
#: src/conflicts.c:48
#: src/conflicts.c:45
#, 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:114 src/conflicts.c:137
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "reduceer"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "verschuif"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "een fout"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 verschuif/reduceer conflict"
#: src/conflicts.c:411
#, fuzzy, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d verschuif/reduceer conflicten"
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d verschuif/reduceer conflicten"
#: src/conflicts.c:432
msgid " and"
#: src/conflicts.c:418
#, fuzzy
msgid "and"
msgstr " en"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 reduceer/reduceer conflict"
#: src/conflicts.c:424
#, fuzzy, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d reduceer/reduceer conflicten"
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d reduceer/reduceer conflicten"
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
#: src/conflicts.c:448
#, fuzzy, c-format
msgid "State %d contains "
msgstr "Stadium %d bevat"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:491
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "conflictueerd: "
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d vershuif/reduceer"
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d reduceer/reduceer"
#: src/conflicts.c:502
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains"
msgid "%s contains "
msgstr "%s bevat"
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:502
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] " %d verschuif/reduceer conflicten"
#: src/conflicts.c:589 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:600 src/print.c:171
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -115,7 +116,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr ""
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr ""
@@ -135,33 +136,33 @@ msgstr ""
msgid "%s derives"
msgstr "%s afgeleiden"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr ""
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
#: src/getargs.c:87
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
#: src/getargs.c:91
#: src/getargs.c:92
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
#: src/getargs.c:97
#: src/getargs.c:98
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -169,7 +170,7 @@ msgid ""
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
#: src/getargs.c:104
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -181,55 +182,55 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
#: src/getargs.c:116
#: src/getargs.c:117
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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
#: src/getargs.c:126
#: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
#: src/getargs.c:145
#: src/getargs.c:146
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: src/getargs.c:149
#: src/getargs.c:150
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:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
#: src/getargs.c:238
#: src/getargs.c:239
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/getargs.c:245
#: src/getargs.c:246
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: geen grammatica bestand gegeven\n"
#: src/getargs.c:249
#: src/getargs.c:250
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argumenten genegeerd na '%s'\n"
@@ -239,51 +240,61 @@ msgstr "%s: extra argumenten genegeerd na '%s'\n"
msgid "too many gotos (max %d)"
msgstr ""
#: src/lex.c:78
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "onverwachte `/' gevonden en genegeerd"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "ongetermineerd commentaar"
#: src/lex.c:139
#: src/lex.c:137
#, fuzzy
msgid "unexpected end of file"
msgstr "Onverwacht bestandseinde"
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "niet geescapete nieuwe regel in constante"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "octale waarde buiten domein 0...255: `\\%o'"
#: src/lex.c:235
#: src/lex.c:233
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadecimale waarde boven 255: `\\x%x'"
#: src/lex.c:247
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "onbekende escape reeks: `\\' gevolgd door `%s'"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "niet getermineerd type naam aan het einde van bestand"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "niet getermineerd type naam"
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "gebruik \"...\" voor meerdere karakters literal tekens"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr ""
#: src/lex.c:683
#, fuzzy, c-format
msgid "`%s' requires an argument"
msgstr "%s: optie `%s' vereist een argument\n"
#: src/main.c:128
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interne fout, %s\n"
@@ -297,45 +308,45 @@ msgstr "Inkomende set nullable"
msgid "maximum table size (%d) exceeded"
msgstr "maximale tabel grootte (%s) overschreden"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr ""
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (regel %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr ""
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " GEEN AKTIES\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr ""
#: src/print.c:135
#: src/print.c:136
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr ""
#: src/print.c:159
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr ""
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr ""
#: src/print.c:199
#: src/print.c:200
#, fuzzy, c-format
msgid "state %d"
msgstr ""
@@ -345,24 +356,24 @@ msgstr ""
"\n"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"Grammatica\n"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "regel %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
@@ -370,7 +381,7 @@ msgstr ""
"Terminals, met regels waar ze voorkomen\n"
"\n"
#: src/print.c:268
#: src/print.c:270
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
@@ -378,11 +389,11 @@ msgstr ""
"Geen terminals, met regels waar ze voorkomen\n"
"\n"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " links:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " rechts:"
@@ -458,7 +469,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "symbool %s opnieuw gedefinieerd"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "type herdeclaratie voor %s"
@@ -468,12 +479,12 @@ msgstr "type herdeclaratie voor %s"
msgid "`%s' is invalid in %s"
msgstr "`%s' is onjuist in %s"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, fuzzy, c-format
msgid "multiple %s declarations"
msgstr "meerdere %start declaraties"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, fuzzy, c-format
msgid "invalid %s declaration"
msgstr "onjuiste %start declaratie"
@@ -502,135 +513,135 @@ msgstr "onjuiste tekst (%s) - nummer hoort na de identifier"
msgid "unexpected item: %s"
msgstr "onbekend item: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, fuzzy, c-format
msgid "unmatched %s"
msgstr "niet overeenkomstige `{'"
#: src/reader.c:792
#: src/reader.c:798
#, fuzzy, c-format
msgid "argument of %%expect is not an integer"
msgstr "argument van %expect is niet een integer"
#: src/reader.c:838
#: src/reader.c:844
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "onbekend item %s, verwacht een identifier"
#: src/reader.c:862
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "verwacht string constante in plaats van %s"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "onbekend: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "geen invoer grammatica"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "onbekend karakter: %s"
#: src/reader.c:1183
#: src/reader.c:1192
#, fuzzy, c-format
msgid "unterminated %guard clause"
msgstr "niet getermineerde %%guard voorwaarde"
#: src/reader.c:1350
#: src/reader.c:1359
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr ""
"slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt"
#: src/reader.c:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "grammatica start met een verticale bar"
#: src/reader.c:1388
#: src/reader.c:1397
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regel geven voor %s, welke een teken is"
#: src/reader.c:1490
#: src/reader.c:1499
msgid "two @prec's in a row"
msgstr "twee @prec's in een regel"
#: src/reader.c:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "twee akties aan het einde van een regel"
#: src/reader.c:1521
#: src/reader.c:1530
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "type clash (`%s' `%s') bij standaard aktie"
#: src/reader.c:1527
#: src/reader.c:1536
msgid "empty rule for typed nonterminal, and no action"
msgstr "lege regel voor getypte niet terminal, en geen aktie"
#: src/reader.c:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "ongeldige invoer: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, fuzzy, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "te veel symbolen (tekens plus nietterminals); maximum %s"
#: src/reader.c:1582
#: src/reader.c:1591
msgid "no rules in the input grammar"
msgstr "geen regels voor invoer grammatica"
#: src/reader.c:1606
#: src/reader.c:1615
#, 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:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "conflictuerende precedentein voor %s en %s"
#: 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:1770
#: src/reader.c:1707
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr ""
#: src/reader.c:1782
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "conflictuerende precedentein voor %s en %s"
#: src/reader.c:1772
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflictuerende associatieve waarden voor %s en %s"
#: src/reader.c:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr ""
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "het start symbool %s is een token"
#: src/reduce.c:401
#: src/reduce.c:405
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"Onbruikbare niet terminals:\n"
"\n"
#: src/reduce.c:416
#: src/reduce.c:419
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
@@ -639,7 +650,7 @@ msgstr ""
"Terminals welke niet worden gebruikt:\n"
"\n"
#: src/reduce.c:427
#: src/reduce.c:430
#, fuzzy
msgid "Useless rules:"
msgstr ""
@@ -648,7 +659,7 @@ msgstr ""
"Onbruikbare regels:\n"
"\n"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -658,7 +669,7 @@ msgstr ""
"----------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "Waarde Sprec Sassoc Tag\n"
@@ -672,7 +683,7 @@ msgstr ""
"------\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -682,36 +693,31 @@ msgstr ""
"-----------------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d regels nooit gereduceerd\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s bevat"
#: src/reduce.c:497
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d onbruikbare niet terminal%s"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr " en "
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d onbruikbare regels%s"
#: src/reduce.c:539
#: src/reduce.c:540
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "Start symbool %s is niet afkomstig uit een zin"
#: src/reduce.c:552
#: src/reduce.c:553
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -853,6 +859,15 @@ msgstr ""
#~ "%s afgeleiden\n"
#~ "\n"
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 verschuif/reduceer conflict"
#~ msgid " 1 reduce/reduce conflict"
#~ msgstr " 1 reduceer/reduceer conflict"
#~ msgid "%s contains"
#~ msgstr "%s bevat"
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#~ " [--debug] [--defines] [--fixed-output-files] [--no-lines]\n"
BIN
View File
Binary file not shown.
+149 -133
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.29\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\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"
@@ -30,78 +30,79 @@ msgstr "
msgid "fatal error: "
msgstr "ÆÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: "
#: src/conflicts.c:48
#: src/conflicts.c:45
#, 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:114 src/conflicts.c:137
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "×Ù×ÏÄ"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "ÓÄ×ÉÇ"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "ÏÛÉÂËÁ"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:411
#, fuzzy, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:426
#, c-format
msgid " %d shift/reduce conflicts"
msgstr " %d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:432
msgid " and"
#: src/conflicts.c:418
#, fuzzy
msgid "and"
msgstr " É"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 ËÏÎÆÌÉËÔ ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:424
#, fuzzy, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d ËÏÎÆÌÉËÔÏ× ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:443
#, c-format
msgid " %d reduce/reduce conflicts"
msgstr " %d ËÏÎÆÌÉËÔÏ× ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:480
#, c-format
msgid "State %d contains"
#: src/conflicts.c:448
#, fuzzy, c-format
msgid "State %d contains "
msgstr "óÏÓÔÏÑÎÉÅ %d ÓÏÄÅÒÖÉÔ"
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
#: src/conflicts.c:491
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "ËÏÎÆÌÉËÔÙ: "
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d ÓÄ×ÉÇ/×Ù×ÏÄ"
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d ×Ù×ÏÄ/×Ù×ÏÄ"
#: src/conflicts.c:502
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains"
msgstr "%s ÓÏÄÅÒÖÉÔ"
msgid "%s contains "
msgstr "%s ÓÏÄÅÒÖÉÔ "
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:502
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] " %d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:589 src/conflicts.c:709
#, c-format
msgid " %-4s\t[reduce using rule %d (%s)]\n"
msgstr " %-4s\t[×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)]\n"
#: src/conflicts.c:600 src/print.c:171
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -115,7 +116,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
@@ -129,27 +130,27 @@ msgstr "DERIVES"
msgid "%s derives"
msgstr "%s ×Ù×ÏÄÉÔ"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ `%s'"
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÚÁËÒÙÔØ ÆÁÊÌ"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison ÇÅÎÅÒÉÒÕÅÔ ÁÎÁÌÉÚÁÔÏÒÙ ÄÌÑ ÇÒÁÍÍÁÔÉË LALR(1).\n"
#: src/getargs.c:87
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþé]... æáêì\n"
#: src/getargs.c:91
#: src/getargs.c:92
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"
@@ -158,7 +159,7 @@ msgstr ""
"Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ ÄÌÑ ËÏÒÏÔËÏÊ ÆÏÒÍÙ. ôÏ ÖÅ ËÁÓÁÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÈ\n"
"ÁÒÇÕÍÅÎÔÏ×.\n"
#: src/getargs.c:97
#: src/getargs.c:98
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
@@ -170,7 +171,7 @@ msgstr ""
" -V, --version ×Ù×ÅÓÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
" -y, --yacc ÜÍÕÌÉÒÏ×ÁÔØ POSIX yacc\n"
#: src/getargs.c:104
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -190,14 +191,15 @@ msgstr ""
" -n, --no-parser ÇÅÎÅÒÉÒÏ×ÁÔØ ÔÏÌØËÏ ÔÁÂÌÉÃÙ\n"
" -k, --token-table ×ËÌÀÞÉÔØ ÔÁÂÌÉÃÕ ÉÍÅÎ ÌÅËÓÅÍ\n"
#: src/getargs.c:116
#: src/getargs.c:117
#, 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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"÷Ù×ÏÄ:\n"
@@ -208,24 +210,24 @@ msgstr ""
" -g, --graph ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ Ë Á×ÔÏÍÁÔÕ × ×ÉÄÅ \n"
"VCG-ÇÒÁÆÁ\n"
#: src/getargs.c:126
#: src/getargs.c:127
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:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:145
#: src/getargs.c:146
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:149
#: src/getargs.c:150
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"
@@ -236,22 +238,22 @@ msgstr ""
"ðòéçïäîïóôé\n"
"äìñ ïðòåäåìåîîïê ãåìé.\n"
#: src/getargs.c:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr "`%s' ÂÏÌØÛÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
#: src/getargs.c:238
#: src/getargs.c:239
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "éÓÐÏÌØÚÕÊÔÅ `%s --help' ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
#: src/getargs.c:245
#: src/getargs.c:246
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: ÎÅ ÚÁÄÁÎ ÆÁÊÌ Ó ÇÒÁÍÍÁÔÉËÏÊ\n"
#: src/getargs.c:249
#: src/getargs.c:250
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
@@ -261,50 +263,60 @@ msgstr "%s:
msgid "too many gotos (max %d)"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)"
#: src/lex.c:78
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "×ÓÔÒÅÞÅÎ É ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ ÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ"
#: src/lex.c:139
#: src/lex.c:137
msgid "unexpected end of file"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "ÎÅÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ËÏÎÓÔÁÎÔÅ"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "×ÏÓØÍÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ 0...255: `\\%o'"
#: src/lex.c:235
#: src/lex.c:233
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÐÒÅ×ÙÛÁÅÔ 255: `\\x%x'"
#: src/lex.c:247
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `%s' ÐÏÓÌÅ `\\'"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ × ËÏÎÃÅ ÆÁÊÌÁ"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ"
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr ""
#: src/lex.c:683
#, fuzzy, c-format
msgid "`%s' requires an argument"
msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n"
#: src/main.c:128
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n"
@@ -318,77 +330,77 @@ msgstr "
msgid "maximum table size (%d) exceeded"
msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr " ÔÉÐ %d Ñ×ÌÑÅÔÓÑ %s\n"
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (ÐÒÁ×ÉÌÏ %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr " $default\tÐÒÉÎÑÔÉÅ\n"
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " îåô äåêóô÷éê\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:135
#: src/print.c:136
#, c-format
msgid " %-4s\tshift, and go to state %d\n"
msgstr " %-4s\tÓÄ×ÉÇ, É ÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:159
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\tÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:199
#: src/print.c:200
#, c-format
msgid "state %d"
msgstr "ÓÏÓÔÏÑÎÉÅ %d"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
msgid "Grammar"
msgstr "çÒÁÍÍÁÔÉËÁ"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "ÐÒÁ×ÉÌÏ %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
msgid "Terminals, with rules where they appear"
msgstr "ôÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
#: src/print.c:268
#: src/print.c:270
msgid "Nonterminals, with rules where they appear"
msgstr "îÅÔÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " ÎÁÌÅ×Ï:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " ÎÁÐÒÁ×Ï:"
@@ -462,7 +474,7 @@ msgstr ""
msgid "symbol %s redefined"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
@@ -472,12 +484,12 @@ msgstr "
msgid "`%s' is invalid in %s"
msgstr "`%s' ÎÅ×ÅÒÎÏ × %s"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, c-format
msgid "multiple %s declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %s"
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, c-format
msgid "invalid %s declaration"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %s"
@@ -506,138 +518,138 @@ msgstr "
msgid "unexpected item: %s"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, c-format
msgid "unmatched %s"
msgstr "ÎÅÐÁÒÎÁÑ %s"
#: src/reader.c:792
#: src/reader.c:798
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "ÁÒÇÕÍÅÎÔ %%expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
#: src/reader.c:838
#: src/reader.c:844
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÜÌÅÍÅÎÔ %s, ÏÖÉÄÁÌÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
#: src/reader.c:862
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s"
#: src/reader.c:1183
#: src/reader.c:1192
#, c-format
msgid "unterminated %guard clause"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard"
#: src/reader.c:1350
#: src/reader.c:1359
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
#: src/reader.c:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
#: src/reader.c:1388
#: src/reader.c:1397
#, c-format
msgid "rule given for %s, which is a token"
msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
#: src/reader.c:1490
#: src/reader.c:1499
msgid "two @prec's in a row"
msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
#: src/reader.c:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %%semantic_parser ÎÅ ÚÁÄÁÎ"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
#: src/reader.c:1521
#: src/reader.c:1530
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
#: src/reader.c:1527
#: src/reader.c:1536
msgid "empty rule for typed nonterminal, and no action"
msgstr ""
"ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
#: src/reader.c:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
#: src/reader.c:1582
#: src/reader.c:1591
msgid "no rules in the input grammar"
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
#: src/reader.c:1606
#: src/reader.c:1615
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
#: src/reader.c:1712
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
#: src/reader.c:1724
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
#: src/reader.c:1770
#: src/reader.c:1707
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %d"
#: src/reader.c:1782
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
#: src/reader.c:1772
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
#: src/reader.c:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
#: src/reduce.c:401
#: src/reduce.c:405
msgid "Useless nonterminals:"
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÎÅÔÅÒÍÉÎÁÌÙ:"
#: src/reduce.c:416
#: src/reduce.c:419
msgid "Terminals which are not used:"
msgstr "îÅÉÓÐÏÌØÚÏ×ÁÎÎÙÅ ÔÅÒÍÉÎÁÌÙ:"
#: src/reduce.c:427
#: src/reduce.c:430
msgid "Useless rules:"
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÐÒÁ×ÉÌÁ:"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -647,7 +659,7 @@ msgstr ""
"----------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "úÎÁÞ ðÒÉÏÒ áÓÓÏÃ ôÅÇ\n"
@@ -661,7 +673,7 @@ msgstr ""
"-------\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -671,36 +683,31 @@ msgstr ""
"--------------------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, c-format
msgid "%d rules never reduced\n"
msgstr "%d ÐÒÁ×ÉÌ ÎÅ Ó×ÅÄÅÎÏ\n"
#: src/reduce.c:493
#, c-format
msgid "%s contains "
msgstr "%s ÓÏÄÅÒÖÉÔ "
#: src/reduce.c:497
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d ÂÅÓÐÏÌÅÚÎÙÈ ÎÅÔÅÒÍÉÎÁÌÏ×%s"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr " É "
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d ÂÅÓÐÏÌÅÚÎÙÈ ÐÒÁ×ÉÌ%s"
#: src/reduce.c:539
#: src/reduce.c:540
#, c-format
msgid "Start symbol %s does not derive any sentence"
msgstr "îÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅ ×Ù×ÏÄÉÔ ÎÉ ÏÄÎÏÇÏ ÐÒÅÄÌÏÖÅÎÉÑ"
#: src/reduce.c:552
#: src/reduce.c:553
#, c-format
msgid ""
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
@@ -795,6 +802,15 @@ msgstr "`"
msgid "'"
msgstr "'"
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#~ msgid " 1 reduce/reduce conflict"
#~ msgstr " 1 ËÏÎÆÌÉËÔ ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
#~ msgid "%s contains"
#~ msgstr "%s ÓÏÄÅÒÖÉÔ"
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* ÐÕÓÔÏ */"
+181 -207
View File
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.28c\n"
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
"PO-Revision-Date: 2001-09-10 10:54GMT\n"
"Project-Id-Version: bison 1.30\n"
"POT-Creation-Date: 2001-11-14 15:59+0100\n"
"PO-Revision-Date: 2001-11-02 14:49GMT\n"
"Last-Translator: Altug Bayram <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -31,79 +31,80 @@ msgstr "uyar
msgid "fatal error: "
msgstr "ölümcül hata:"
#: src/conflicts.c:48
#: src/conflicts.c:45
#, 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
#: src/conflicts.c:111 src/conflicts.c:134
msgid "reduce"
msgstr "indirgeme"
#: src/conflicts.c:120 src/conflicts.c:133
#: src/conflicts.c:117 src/conflicts.c:130
msgid "shift"
msgstr "öteleme"
#: src/conflicts.c:141
#: src/conflicts.c:138
msgid "an error"
msgstr "bir hata"
#: src/conflicts.c:421
msgid " 1 shift/reduce conflict"
msgstr " 1 öteleme/indirgeme çeliþkisi"
#: src/conflicts.c:411
#, fuzzy, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d ö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"
#: src/conflicts.c:418
#, fuzzy
msgid "and"
msgstr " ve"
#: src/conflicts.c:438
msgid " 1 reduce/reduce conflict"
msgstr " 1 indirgeme/indirgeme çeliþkisi"
#: src/conflicts.c:424
#, fuzzy, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d 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"
#: src/conflicts.c:448
#, fuzzy, 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
#: src/conflicts.c:482
msgid "conflicts: "
msgstr "çeliþkiler: "
#: src/conflicts.c:493
#: src/conflicts.c:484
#, c-format
msgid " %d shift/reduce"
msgstr " %d öteleme/indirgeme"
#: src/conflicts.c:497
#: src/conflicts.c:488
#, c-format
msgid " %d reduce/reduce"
msgstr " %d indirgeme/indirgeme"
#: src/conflicts.c:502
#: src/conflicts.c:493 src/reduce.c:497
#, c-format
msgid "%s contains"
msgstr "%s içerir"
msgid "%s contains "
msgstr "%s içerir "
#: src/conflicts.c:588 src/conflicts.c:709
#: src/conflicts.c:502
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] " %d öteleme/indirgeme çeliþkisi"
#: src/conflicts.c:589 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
#: src/conflicts.c:600 src/print.c:172
#, c-format
msgid ""
" $default\treduce using rule %d (%s)\n"
@@ -117,7 +118,7 @@ msgstr ""
msgid " %-4s\treduce using rule %d (%s)\n"
msgstr " %-4s\tindirgeme kural %d (%s)'i kullanýyor\n"
#: src/conflicts.c:730
#: src/conflicts.c:729
#, c-format
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\tindirgeme kural %d (%s)'i kullanýyor\n"
@@ -131,48 +132,48 @@ msgstr "T
msgid "%s derives"
msgstr "%s türetildi"
#: src/files.c:133
#: src/files.c:143
#, c-format
msgid "cannot open file `%s'"
msgstr "`%s' dosyasý açýlamadý"
#: src/files.c:152
#: src/files.c:162
msgid "cannot close file"
msgstr "dosya kapatýlamýyor"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:83
#: src/getargs.c:84
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
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Kullaným: %s [SEÇENEK]... DOSYA\n"
#: src/getargs.c:91
#: src/getargs.c:92
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"
"Eðer bir uzun seçenek bir baðýmsýz deðiþkeni zorunlu gibi gösterilirse odenk "
"kýsa\n"
"seçenek için dahi zorunludur. Seçimli baðýmsýz deðiþkenler için "
"benzerþekildedir.\n"
#: src/getargs.c:97
#: src/getargs.c:98
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
#: src/getargs.c:105
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
@@ -184,23 +185,23 @@ msgid ""
" -k, --token-table include a table of token names\n"
msgstr ""
"Ayrýþtýrýcý:\n"
" -S, --skeleton=DOSYA kullanýlacak iskeleti belirler\n"
" -S, --skeleton=FILE kullanýlacak iskeleti belirle\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"
" --locations konum hesaplamalarýný etkinleþtir\n"
" -p, --name-prefix=PREFIX dýþ simgelere hazýr bekletilen ÖNEK\n"
" -l, --no-lines `#line' bildirimlerini üretme\n"
" -n, --no-parser sadece tablolarý üret\n"
" -k, --token-table andaç isimlerinin bir tablosunu içer\n"
#: src/getargs.c:116
#: src/getargs.c:117
#, 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 "
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Çýktý:\n"
@@ -208,105 +209,114 @@ msgstr ""
" -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"
" -g, --graph otomatýn bir VCG grafik açýklamasýný da üretir\n"
#: src/getargs.c:126
#: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
"Hatalarý <[email protected]>'a,\n"
"çeviri hatalarýný <[email protected]>'e bildir.\n"
msgstr "Hatalarý <[email protected]>'a bildir.\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:140
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:145
#: src/getargs.c:146
msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr ""
"Telifhakký 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, "
"Kopyahakký 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, "
"Inc.\n"
#: src/getargs.c:149
#: src/getargs.c:150
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"
"Hiçbir garantisi yoktur; hatta SATILABÝLÝRLÝÐÝ veya ÞAHSÝ KULLANIMINIZA\n"
"UYGUNLUÐU için bile garanti verilmez.\n"
#: src/getargs.c:214 src/lex.c:650
#: src/getargs.c:215 src/lex.c:694
#, c-format
msgid "`%s' is no longer supported"
msgstr "`%s' artýk desteklenmiyor"
msgstr "`%s' artýk desteklenmeyecek"
#: src/getargs.c:238
#: src/getargs.c:239
#, 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
#: src/getargs.c:246
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: gramer dosyasý verilmemiþ\n"
msgstr "%s: verilen gramer dosyasý yok\n"
#: src/getargs.c:249
#: src/getargs.c:250
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n"
msgstr "%s: '%s' den sonraki ek baðýmsýz deðiþkenler 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
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
msgstr "beklenmeyen `/' bulundu ve yoksayýldý"
#: src/lex.c:107 src/reader.c:269
#: src/lex.c:105 src/reader.c:269
msgid "unterminated comment"
msgstr "sonlandýrýlmamýþ açýklama"
#: src/lex.c:139
#: src/lex.c:137
msgid "unexpected end of file"
msgstr "beklenmeyen dosya sonu"
#: src/lex.c:168
#: src/lex.c:166
msgid "unescaped newline in constant"
msgstr "sabit içinde kaçýþsýz yeni satýr"
msgstr "sabit içinde kaçamayan yeni satýr"
#: src/lex.c:210
#: src/lex.c:208
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "sekizli deðer 0...255'in dýþýnda: `\\%o'"
#: src/lex.c:235
#: src/lex.c:233
#, 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
#: src/lex.c:245
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "bilinmeyen kaçýþ sýrasý: `\\' `%s' tarafýndan takip edildi"
#: src/lex.c:343
#: src/lex.c:342
msgid "unterminated type name at end of file"
msgstr "dosya sonunda sonlandýrýlmamýþ tip adý"
msgstr "dosyanýn sonunda sonlandýrýlmamýþ tip adý"
#: src/lex.c:346
#: src/lex.c:345
msgid "unterminated type name"
msgstr "sonlandýrýlmamýþ tip ismi"
#: src/lex.c:437
#: src/lex.c:438
msgid "use \"...\" for multi-character literal tokens"
msgstr "çok-karakterli yazýn andaçlarý için \"...\" kullan"
msgstr "cok-karakterli yazýn andaçlarý için \"...\" kullan"
#: src/main.c:125
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr ""
#: src/lex.c:683
#, fuzzy, c-format
msgid "`%s' requires an argument"
msgstr "%s: `%s' seçeneði bir argümanla kullanýlýr\n"
#: src/main.c:128
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: iç hata: %s\n"
@@ -320,77 +330,77 @@ msgstr "set_nullable'a girildi"
msgid "maximum table size (%d) exceeded"
msgstr "en büyük tablo uzunluðu (%d) aþýldý"
#: src/print.c:37
#: src/print.c:38
#, c-format
msgid " type %d is %s\n"
msgstr " tip %d %s'dir\n"
#: src/print.c:85
#: src/print.c:86
#, c-format
msgid " (rule %d)"
msgstr " (kural %d)"
#: src/print.c:111
#: src/print.c:112
msgid " $default\taccept\n"
msgstr " $default\tonayla\n"
#: src/print.c:113
#: src/print.c:114
msgid " NO ACTIONS\n"
msgstr " EYLEM YOK\n"
msgstr " EYLEMLER YOK\n"
#: src/print.c:132
#: src/print.c:133
#, c-format
msgid " $ \tgo to state %d\n"
msgstr " $ \tdurum %d'ye git\n"
#: src/print.c:135
#: src/print.c:136
#, 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
#: src/print.c:160
#, c-format
msgid " %-4s\terror (nonassociative)\n"
msgstr " %-4s\thata (birleþmeli deðil)\n"
#: src/print.c:187
#: src/print.c:188
#, c-format
msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\tdurum %d'ye git\n"
#: src/print.c:199
#: src/print.c:200
#, c-format
msgid "state %d"
msgstr "durum %d"
#. rule # : LHS -> RHS
#: src/print.c:229
#: src/print.c:230
msgid "Grammar"
msgstr "Gramer"
#: src/print.c:234
#: src/print.c:235
#, c-format
msgid "rule %-4d %s ->"
msgstr "kural %-4d %s ->"
#: src/print.c:240
#: src/print.c:241
msgid "empty"
msgstr ""
msgstr "boþ"
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:244
#: src/print.c:246
msgid "Terminals, with rules where they appear"
msgstr "Sabit simgeler, kurallarýnýn bulunduklarý yerde"
#: src/print.c:268
#: src/print.c:270
msgid "Nonterminals, with rules where they appear"
msgstr "Deðiþken simgeler, kurallarýnýn bulunduklarý yerde"
#: src/print.c:294
#: src/print.c:296
msgid " on left:"
msgstr " solda:"
#: src/print.c:309
#: src/print.c:311
msgid " on right:"
msgstr " saðda:"
@@ -452,19 +462,19 @@ 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ý"
msgstr "simge `%s' bir harfiyen uyumlu dizgi gibi birden fazla 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þ"
msgstr "simge `%s' bir harfiyen uyumlu dizgi gibi birden fazla 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
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1294
#, c-format
msgid "type redeclaration for %s"
msgstr "%s için yeniden tip bildirimi"
@@ -474,12 +484,12 @@ msgstr "%s i
msgid "`%s' is invalid in %s"
msgstr "`%s' %s içinde geçersizdir"
#: src/reader.c:558 src/reader.c:717
#: src/reader.c:558 src/reader.c:723
#, 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
#: src/reader.c:560 src/reader.c:902 src/reader.c:927 src/reader.c:1272
#, c-format
msgid "invalid %s declaration"
msgstr "geçersiz %s bildirimi"
@@ -491,7 +501,7 @@ msgstr "%type bildirimi <tipad
#: src/reader.c:615
#, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "geçersiz %%type bildirimine neden olan öðe: %s"
msgstr "geçersiz %%type bildirimine neden olan öðe: `%s'"
#: src/reader.c:660
#, c-format
@@ -508,138 +518,140 @@ msgstr "ge
msgid "unexpected item: %s"
msgstr "beklenmeyen öðe: %s"
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
#: src/reader.c:766 src/reader.c:1098 src/reader.c:1169
#, c-format
msgid "unmatched %s"
msgstr "eþlenemeyen %s"
#: src/reader.c:792
#: src/reader.c:798
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "%%expect'in argümaný bir tamsayý deðil"
msgstr "%%expect'in baðýmsýz deðiþkeni bir tamsayý deðildir"
#: src/reader.c:838
#: src/reader.c:844
#, 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
#: src/reader.c:866
#, c-format
msgid "expected string constant instead of %s"
msgstr "%s'in yerine sabit dizge beklendi"
msgstr "%s'in yerine beklenen dizgi sabitidir"
#: src/reader.c:1005
#: src/reader.c:1014
#, c-format
msgid "unrecognized: %s"
msgstr "tanýnmayan: %s"
#: src/reader.c:1010
#: src/reader.c:1019
msgid "no input grammar"
msgstr "girdi grameri yok"
#: src/reader.c:1015
#: src/reader.c:1024
#, c-format
msgid "unknown character: %s"
msgstr "bilinmeyen karakter: %s"
#: src/reader.c:1183
#: src/reader.c:1192
#, c-format
msgid "unterminated %guard clause"
msgstr "sonlandýrýlmamýþ %guard yantümcesi"
#: src/reader.c:1350
#: src/reader.c:1359
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "kötü-biçemli kural: baþlangýç simgesini takip eden \":\" yok"
msgstr "kötü-biçimli kural: baþlangýç simgesini takip eden kolon(:) yok"
#: src/reader.c:1357
#: src/reader.c:1366
msgid "grammar starts with vertical bar"
msgstr "gramer düþey çubuk ile baþlýyor"
#: src/reader.c:1388
#: src/reader.c:1397
#, c-format
msgid "rule given for %s, which is a token"
msgstr "bir andaç olan %s için verilen kural"
#: src/reader.c:1490
#: src/reader.c:1499
msgid "two @prec's in a row"
msgstr "bir satýrda iki @prec"
#: src/reader.c:1498
#: src/reader.c:1507
#, c-format
msgid "%%guard present but %%semantic_parser not specified"
msgstr "%%guard sunulmuþ fakat %%semantic_parser belirlenmemiþ"
#: src/reader.c:1507
#: src/reader.c:1516
msgid "two actions at end of one rule"
msgstr "bir kuralýn sonunda iki eylem"
#: src/reader.c:1521
#: src/reader.c:1530
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "öntanýmlý eylem üzerinde (`%s' `%s') tip çatýþmasý"
#: src/reader.c:1527
#: src/reader.c:1536
msgid "empty rule for typed nonterminal, and no action"
msgstr "Tipli deðiþken simge için boþ kural tanýmlanmýþ, ve eylembelirtilmemiþ"
msgstr ""
"Tipli deðiþken simge için boþ kural tanýmlanmýþ, ve eylem belirtilmemiþ"
#: src/reader.c:1571
#: src/reader.c:1580
#, c-format
msgid "invalid input: %s"
msgstr "geçersiz girdi: %s"
#: src/reader.c:1579
#: src/reader.c:1588
#, 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
#: src/reader.c:1591
msgid "no rules in the input grammar"
msgstr "girdi grameri içinde kurallar yok"
#: src/reader.c:1606
#: src/reader.c:1615
#, 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"
"simge %s kullanýldý, fakat bir andaç gibi tanýmlanmadý ve kurallara "
"sahipdeðil"
#: 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
#: src/reader.c:1707
#, 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
#: src/reader.c:1760
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "%s ve %s için çeliþen öncelikler"
#: src/reader.c:1772
#, 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:1811
#, c-format
msgid "the start symbol %s is undefined"
msgstr "baþlangýç simgesi %s tanýmlanmadý"
#: src/reader.c:1784
#: src/reader.c:1813
#, c-format
msgid "the start symbol %s is a token"
msgstr "baþlangýç simgesi %s bir andaçtýr"
#: src/reduce.c:401
#: src/reduce.c:405
msgid "Useless nonterminals:"
msgstr "Yararsýz kurallar:"
#: src/reduce.c:416
#: src/reduce.c:419
msgid "Terminals which are not used:"
msgstr "Kullanýlmayan sabit simgeler:"
#: src/reduce.c:427
#: src/reduce.c:430
msgid "Useless rules:"
msgstr "Yararsýz kurallar:"
#: src/reduce.c:456
#: src/reduce.c:458
msgid ""
"Variables\n"
"---------\n"
@@ -649,7 +661,7 @@ msgstr ""
"-----------\n"
"\n"
#: src/reduce.c:458
#: src/reduce.c:459
msgid "Value Sprec Sassoc Tag\n"
msgstr "Deðer Söncel Sbirleþ Etiket\n"
@@ -663,7 +675,7 @@ msgstr ""
"--------\n"
"\n"
#: src/reduce.c:474
#: src/reduce.c:473
msgid ""
"Rules interpreted\n"
"-----------------\n"
@@ -673,41 +685,36 @@ msgstr ""
"-------------------\n"
"\n"
#: src/reduce.c:491
#: src/reduce.c:495
#, 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
#: src/reduce.c:501
#, c-format
msgid "%d useless nonterminal%s"
msgstr "%d yararsýz deðiþken simge%s"
#: src/reduce.c:502
#: src/reduce.c:506
msgid " and "
msgstr " ve "
#: src/reduce.c:506
#: src/reduce.c:510
#, c-format
msgid "%d useless rule%s"
msgstr "%d yararsýz kural%s"
#: src/reduce.c:539
#: src/reduce.c:540
#, 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
#: src/reduce.c:553
#, 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"
"indirgenen %s tanýmlanan %d sabit simge%s, %d deðiþken simge%s,ve %d üretilen"
"%s.\n"
#: lib/getopt.c:694
@@ -797,44 +804,11 @@ msgstr "`"
msgid "'"
msgstr "'"
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* boþ */"
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 öteleme/indirgeme çeliþkisi"
#~ msgid "multiple %%header_extension declarations"
#~ msgstr "çoklu %%header_extension bildirimleri"
#~ msgid " 1 reduce/reduce conflict"
#~ msgstr " 1 indirgeme/indirgeme çeliþkisi"
#~ 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"
#~ msgid "%s contains"
#~ msgstr "%s içerir"
+1 -1
View File
@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
+49 -42
View File
@@ -76,10 +76,27 @@
# define YYSTACK_USE_ALLOCA 0
#endif
/* Realloc WHAT from SIZE to YYSTACKSIZE elements of TYPE.
If WHAT was malloc'ed (not the original automatic ARRAY), free it. */
#if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
# define YYSTACK_REALLOC(Type, What, Array) \
do { \
Type *old = What; \
What = (Type *) malloc (yystacksize * sizeof (Type)); \
__yy_memcpy ((char *) What, (char *) old, \
(size) * (unsigned int) sizeof (Type)); \
yyfree_stacks = 1; \
if (old != Array) \
free (old); \
} while (0)
#else
# define YYSTACK_ALLOC malloc
# define YYSTACK_REALLOC(Type, What, Array) \
do { \
Type *old = What; \
What = (Type *) alloca (yystacksize * sizeof (Type)); \
__yy_memcpy ((char *) What, (char *) old, \
(size) * (unsigned int) sizeof (Type)); \
} while (0)
#endif
#define yyerrok (yyerrstatus = 0)
@@ -291,7 +308,7 @@ yyparse (YYPARSE_PARAM_ARG)
/* Three stacks and their tools:
`yyss': related to states,
`yysv': related to semantic values,
`yyvs': related to semantic values,
`yyls': related to locations.
Refer to the stacks thru separate pointers, to allow yyoverflow
@@ -368,40 +385,38 @@ yyparse (YYPARSE_PARAM_ARG)
if (yyssp >= yyss + yystacksize - 1)
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into memory.
*/
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
#if YYLSP_NEEDED
YYLTYPE *yyls1 = yyls;
#endif
/* Get the current used size of the three stacks, in elements. */
int size = yyssp - yyss + 1;
#ifdef yyoverflow
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. */
# if YYLSP_NEEDED
/* This used to be a conditional around just the two extra args,
but that might be undefined if yyoverflow is a macro. */
yyoverflow ("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yyls1, size * sizeof (*yylsp),
&yystacksize);
# else
yyoverflow ("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yystacksize);
# endif
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
yyss = yyss1; yyvs = yyvs1;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. */
# if YYLSP_NEEDED
yyls = yyls1;
YYLTYPE *yyls1 = yyls;
/* This used to be a conditional around just the two extra args,
but that might be undefined if yyoverflow is a macro. */
yyoverflow ("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yyls1, size * sizeof (*yylsp),
&yystacksize);
yyls = yyls1;
# else
yyoverflow ("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yystacksize);
# endif
yyss = yyss1;
yyvs = yyvs1;
}
#else /* no yyoverflow */
/* Extend the stack our own way. */
if (yystacksize >= YYMAXDEPTH)
@@ -420,19 +435,11 @@ yyparse (YYPARSE_PARAM_ARG)
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
# if !YYSTACK_USE_ALLOCA
yyfree_stacks = 1;
# endif
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
__yy_memcpy ((char *)yyss, (char *)yyss1,
size * (unsigned int) sizeof (*yyssp));
yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
__yy_memcpy ((char *)yyvs, (char *)yyvs1,
size * (unsigned int) sizeof (*yyvsp));
YYSTACK_REALLOC (short, yyss, yyssa);
YYSTACK_REALLOC (YYSTYPE, yyvs, yyvsa);
# if YYLSP_NEEDED
yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
__yy_memcpy ((char *)yyls, (char *)yyls1,
size * (unsigned int) sizeof (*yylsp));
YYSTACK_REALLOC (YYLTYPE, yyls, yylsa);
# endif
#endif /* no yyoverflow */
+94 -97
View File
@@ -19,6 +19,7 @@
02111-1307, USA. */
#include "system.h"
#include "complain.h"
#include "getargs.h"
#include "files.h"
#include "gram.h"
@@ -28,17 +29,13 @@
#include "reader.h"
#include "LR0.h"
int any_conflicts = 0;
errs **err_table = NULL;
int expected_conflicts;
/* -1 stands for not specified. */
int expected_conflicts = -1;
static char *conflicts = NULL;
static unsigned *shiftset = NULL;
static unsigned *lookaheadset = NULL;
static int src_total;
static int rrc_total;
static int src_count;
static int rrc_count;
static inline void
@@ -246,13 +243,8 @@ set_conflicts (int state)
fp3 = lookaheadset;
while (fp3 < fp4)
{
if (*fp2++ & *fp3++)
{
conflicts[state] = 1;
any_conflicts = 1;
}
}
if (*fp2++ & *fp3++)
conflicts[state] = 1;
fp2 = fp1;
fp3 = lookaheadset;
@@ -273,8 +265,6 @@ solve_conflicts (void)
err_table = XCALLOC (errs *, nstates);
any_conflicts = 0;
for (i = 0; i < nstates; i++)
set_conflicts (i);
}
@@ -284,7 +274,7 @@ solve_conflicts (void)
| Count the number of shift/reduce conflicts. |
`---------------------------------------------*/
static void
static int
count_sr_conflicts (int state)
{
int i;
@@ -296,11 +286,11 @@ count_sr_conflicts (int state)
unsigned *fp3;
int symbol;
src_count = 0;
int src_count = 0;
shiftp = shift_table[state];
if (!shiftp)
return;
return 0;
for (i = 0; i < tokensetsize; i++)
{
@@ -351,6 +341,8 @@ count_sr_conflicts (int state)
fp2++;
}
}
return src_count;
}
@@ -358,33 +350,29 @@ count_sr_conflicts (int state)
| Count the number of reduce/reduce conflicts. |
`----------------------------------------------*/
static void
static int
count_rr_conflicts (int state)
{
int i;
int j;
int count;
unsigned mask;
unsigned *baseword;
unsigned *wordp;
int m;
int n;
rrc_count = 0;
int rrc_count = 0;
m = lookaheads[state];
n = lookaheads[state + 1];
int m = lookaheads[state];
int n = lookaheads[state + 1];
if (n - m < 2)
return;
return 0;
mask = 1;
baseword = LA + m * tokensetsize;
for (i = 0; i < ntokens; i++)
{
wordp = baseword;
unsigned *wordp = baseword;
count = 0;
int count = 0;
int j;
for (j = m; j < n; j++)
{
if (mask & *wordp)
@@ -403,6 +391,8 @@ count_rr_conflicts (int state)
baseword++;
}
}
return rrc_count;
}
/*--------------------------------------------------------------.
@@ -416,31 +406,23 @@ conflict_report (int src_num, int rrc_num)
static char res[4096];
char *cp = res;
if (src_num == 1)
if (src_num >= 1)
{
sprintf (cp, _(" 1 shift/reduce conflict"));
cp += strlen (cp);
}
else if (src_num > 1)
{
sprintf (cp, _(" %d shift/reduce conflicts"), src_num);
sprintf (cp, ngettext ("%d shift/reduce conflict",
"%d shift/reduce conflicts", src_num), src_num);
cp += strlen (cp);
}
if (src_num > 0 && rrc_num > 0)
{
sprintf (cp, _(" and"));
sprintf (cp, " %s ", _("and"));
cp += strlen (cp);
}
if (rrc_num == 1)
if (rrc_num >= 1)
{
sprintf (cp, _(" 1 reduce/reduce conflict"));
cp += strlen (cp);
}
else if (rrc_num > 1)
{
sprintf (cp, _(" %d reduce/reduce conflicts"), rrc_num);
sprintf (cp, ngettext ("%d reduce/reduce conflict",
"%d reduce/reduce conflicts", rrc_num), rrc_num);
cp += strlen (cp);
}
@@ -452,61 +434,81 @@ conflict_report (int src_num, int rrc_num)
}
/*---------------------------------------------.
| Compute and give a report on the conflicts. |
`---------------------------------------------*/
/*-----------------------------------------------------------.
| Output the detailed description of states with conflicts. |
`-----------------------------------------------------------*/
void
print_conflicts (FILE *out)
conflicts_output (FILE *out)
{
int i;
for (i = 0; i < nstates; i++)
if (conflicts[i])
{
fprintf (out, _("State %d contains "), i);
fputs (conflict_report (count_sr_conflicts (i),
count_rr_conflicts (i)), out);
}
}
/*------------------------------------------.
| Reporting the total number of conflicts. |
`------------------------------------------*/
void
conflicts_print (void)
{
int i;
src_total = 0;
rrc_total = 0;
int src_total = 0;
int rrc_total = 0;
/* Count the total number of conflicts, and if wanted, give a
detailed report in FOUTPUT. */
/* Conflicts by state. */
for (i = 0; i < nstates; i++)
{
if (conflicts[i])
{
count_sr_conflicts (i);
count_rr_conflicts (i);
src_total += src_count;
rrc_total += rrc_count;
if (conflicts[i])
{
src_total += count_sr_conflicts (i);
rrc_total += count_rr_conflicts (i);
}
if (verbose_flag)
{
fprintf (out, _("State %d contains"), i);
fputs (conflict_report (src_count, rrc_count), out);
}
/* Report the total number of conflicts on STDERR. */
if (src_total || rrc_total)
{
if (yacc_flag)
{
/* If invoked with `--yacc', use the output format specified by
POSIX. */
fprintf (stderr, _("conflicts: "));
if (src_total > 0)
fprintf (stderr, _(" %d shift/reduce"), src_total);
if (src_total > 0 && rrc_total > 0)
fprintf (stderr, ",");
if (rrc_total > 0)
fprintf (stderr, _(" %d reduce/reduce"), rrc_total);
putc ('\n', stderr);
}
else
{
fprintf (stderr, _("%s contains "), infile);
fputs (conflict_report (src_total, rrc_total), stderr);
}
}
/* Report the total number of conflicts on STDERR. */
if (yacc_flag)
if (expected_conflicts != -1
&& src_total != expected_conflicts)
{
/* If invoked with `--yacc', use the output format specified by
POSIX. */
fprintf (stderr, _("conflicts: "));
if (src_total > 0)
fprintf (stderr, _(" %d shift/reduce"), src_total);
if (src_total > 0 && rrc_total > 0)
fprintf (stderr, ",");
if (rrc_total > 0)
fprintf (stderr, _(" %d reduce/reduce"), rrc_total);
putc ('\n', stderr);
}
else
{
fprintf (stderr, _("%s contains"), infile);
fputs (conflict_report (src_total, rrc_total), stderr);
complain_message_count++;
fprintf (stderr, ngettext ("expected %d shift/reduce conflict",
"expected %d shift/reduce conflicts",
expected_conflicts),
expected_conflicts);
}
}
void
print_reductions (int state)
print_reductions (FILE *out, int state)
{
int i;
int j;
@@ -584,9 +586,8 @@ print_reductions (int state)
for (i = 0; i < ntokens; i++)
{
if (mask & *fp3)
obstack_fgrow3 (&output_obstack,
_(" %-4s\t[reduce using rule %d (%s)]\n"),
tags[i], default_rule, tags[rlhs[default_rule]]);
fprintf (out, _(" %-4s\t[reduce using rule %d (%s)]\n"),
tags[i], default_rule, tags[rlhs[default_rule]]);
mask <<= 1;
if (mask == 0)
@@ -596,9 +597,8 @@ print_reductions (int state)
}
}
obstack_fgrow2 (&output_obstack,
_(" $default\treduce using rule %d (%s)\n\n"),
default_rule, tags[rlhs[default_rule]]);
fprintf (out, _(" $default\treduce using rule %d (%s)\n\n"),
default_rule, tags[rlhs[default_rule]]);
}
else if (n - m >= 1)
{
@@ -685,7 +685,7 @@ print_reductions (int state)
if (j != default_LA)
{
rule = LAruleno[j];
obstack_fgrow3 (&output_obstack,
fprintf (out,
_(" %-4s\treduce using rule %d (%s)\n"),
tags[i], rule, tags[rlhs[rule]]);
}
@@ -699,13 +699,13 @@ print_reductions (int state)
if (defaulted)
{
rule = LAruleno[default_LA];
obstack_fgrow3 (&output_obstack,
fprintf (out,
_(" %-4s\treduce using rule %d (%s)\n"),
tags[i], rule, tags[rlhs[rule]]);
defaulted = 0;
}
rule = LAruleno[j];
obstack_fgrow3 (&output_obstack,
fprintf (out,
_(" %-4s\t[reduce using rule %d (%s)]\n"),
tags[i], rule, tags[rlhs[rule]]);
}
@@ -726,11 +726,8 @@ print_reductions (int state)
}
if (default_LA >= 0)
obstack_fgrow2 (&output_obstack,
_(" $default\treduce using rule %d (%s)\n"),
default_rule, tags[rlhs[default_rule]]);
obstack_1grow (&output_obstack, '\n');
fprintf (out, _(" $default\treduce using rule %d (%s)\n"),
default_rule, tags[rlhs[default_rule]]);
}
}
+3 -3
View File
@@ -23,12 +23,12 @@
# include "state.h"
void solve_conflicts PARAMS ((void));
void print_conflicts PARAMS ((FILE *out));
void print_reductions PARAMS ((int));
void conflicts_print PARAMS ((void));
void conflicts_output PARAMS ((FILE *out));
void print_reductions PARAMS ((FILE*out, int state));
void free_conflicts PARAMS ((void));
/* Were there conflicts? */
extern int any_conflicts;
extern errs **err_table;
extern int expected_conflicts;
#endif /* !CONFLICTS_H_ */
+18 -8
View File
@@ -86,26 +86,36 @@ stringappend (const char *string1, const char *string2)
}
/*---------------------------------------------------------------.
| Computes the macro name used to avoid double inclusion in the |
| header of the parser and store it in header_macro_name. |
`---------------------------------------------------------------*/
/*-----------------------------------------------------------------.
| Computes the macro name used to avoid double inclusion in the |
| header of the parser and store it in header_macro_name. Be sure |
| to produce valid CPP names (don't start with digit, remain |
| alphanumerical + underscore). |
`-----------------------------------------------------------------*/
static char *
compute_header_macro (void)
{
const char *prefix = "BISON_";
char *macro_name, *cp;
if (spec_defines_file)
macro_name = xstrdup (spec_defines_file);
{
macro_name = XMALLOC (char,
strlen (prefix) +
strlen (spec_defines_file) + 1);
cp = stpcpy (macro_name, prefix);
cp = stpcpy (cp, spec_defines_file);
}
else
{
macro_name = XMALLOC (char,
strlen (prefix) +
strlen (base_name) +
strlen (header_extension) + 1);
stpcpy (macro_name, base_name);
strcat (macro_name, header_extension);
cp = stpcpy (macro_name, prefix);
cp = stpcpy (cp, base_name);
cp = stpcpy (cp, header_extension);
}
for (cp = macro_name; *cp; ++cp)
+4 -3
View File
@@ -63,6 +63,7 @@ static struct option longopts[] =
{"defines", optional_argument, 0, 'd'},
{"verbose", no_argument, 0, 'v'},
{"file-prefix", required_argument, 0, 'b'},
{"output", required_argument, 0, 'o'},
{"output-file", required_argument, 0, 'o'},
{"graph", optional_argument, 0, 'g'},
@@ -118,9 +119,9 @@ Output:\n\
-d, --defines also produce a header file\n\
-v, --verbose also produce an explanation of the automaton\n\
-b, --file-prefix=PREFIX specify a PREFIX for output files\n\
-o, --output-file=FILE leave output to FILE\n\
-g, --graph also produce a VCG graph description of the \
automaton\n"), stream);
-o, --output=FILE leave output to FILE\n\
-g, --graph also produce a VCG description of the automaton\n\
"), stream);
putc ('\n', stream);
fputs (_("\
+86 -42
View File
@@ -21,7 +21,6 @@
#include "system.h"
#include "getargs.h"
#include "files.h"
#include "getopt.h" /* for optarg */
#include "symtab.h"
#include "lex.h"
#include "complain.h"
@@ -32,14 +31,13 @@
struct obstack token_obstack;
const char *token_buffer = NULL;
bucket *symval;
bucket *symval = NULL;
int numval;
/* these two describe a token to be reread */
/* A token to be reread, see unlex and lex. */
static token_t unlexed = tok_undef;
/* by the next call to lex */
static bucket *unlexed_symval = NULL;
static const char *unlexed_token_buffer = NULL;
void
lex_init (void)
@@ -324,6 +322,7 @@ void
unlex (token_t token)
{
unlexed = token;
unlexed_token_buffer = token_buffer;
unlexed_symval = symval;
}
@@ -368,6 +367,7 @@ lex (void)
{
token_t res = unlexed;
symval = unlexed_symval;
token_buffer = unlexed_token_buffer;
unlexed = tok_undef;
return res;
}
@@ -426,7 +426,7 @@ lex (void)
/* parse the literal token and compute character code in code */
{
int code, discode;
int code;
obstack_1grow (&token_obstack, '\'');
literalchar (&token_obstack, &code, '\'');
@@ -434,6 +434,7 @@ lex (void)
c = getc (finput);
if (c != '\'')
{
int discode;
complain (_("use \"...\" for multi-character literal tokens"));
while (1)
if (!literalchar (0, &discode, '\''))
@@ -444,7 +445,7 @@ lex (void)
token_buffer = obstack_finish (&token_obstack);
symval = getsym (token_buffer);
symval->class = token_sym;
if (!symval->user_token_number)
if (symval->user_token_number == SUNDEF)
symval->user_token_number = code;
return tok_identifier;
}
@@ -552,28 +553,27 @@ struct percent_table_struct percent_table[] =
{ "nonassoc", NULL, tok_nonassoc },
{ "binary", NULL, tok_nonassoc },
{ "prec", NULL, tok_prec },
{ "locations", &locations_flag, tok_noop }, /* -l */
{ "no_lines", &no_lines_flag, tok_noop }, /* -l */
{ "locations", &locations_flag, tok_intopt }, /* -l */
{ "no-lines", &no_lines_flag, tok_intopt }, /* -l */
{ "raw", NULL, tok_obsolete }, /* -r */
{ "token_table", &token_table_flag, tok_noop }, /* -k */
{ "yacc", &yacc_flag, tok_noop }, /* -y */
{ "fixed_output_files",&yacc_flag, tok_noop }, /* -y */
{ "defines", &defines_flag, tok_noop }, /* -d */
{ "no_parser", &no_parser_flag, tok_noop }, /* -n */
{ "graph", &graph_flag, tok_noop }, /* -g */
#if 0
/* For the time being, this is not enabled yet, while it's possible
though, since we use obstacks. The only risk is with semantic
parsers which will output an `include' of an output file: be sure
that the name included is indeed the name of the output file. */
{ "output_file", &spec_outfile, tok_setopt }, /* -o */
{ "file_prefix", &spec_file_prefix, tok_setopt }, /* -b */
{ "name_prefix", &spec_name_prefix, tok_setopt }, /* -p */
#endif
{ "verbose", &verbose_flag, tok_noop }, /* -v */
{ "debug", &debug_flag, tok_noop }, /* -t */
{ "semantic_parser", &semantic_parser, tok_noop },
{ "pure_parser", &pure_parser, tok_noop },
{ "token-table", &token_table_flag, tok_intopt }, /* -k */
{ "yacc", &yacc_flag, tok_intopt }, /* -y */
{ "fixed-output-files",&yacc_flag, tok_intopt }, /* -y */
{ "defines", &defines_flag, tok_intopt }, /* -d */
{ "no-parser", &no_parser_flag, tok_intopt }, /* -n */
{ "graph", &graph_flag, tok_intopt }, /* -g */
/* FIXME: semantic parsers which will output an `include' of an
output file: be sure that the name included is indeed the name of
the output file. */
{ "output", &spec_outfile, tok_stropt }, /* -o */
{ "file-prefix", &spec_file_prefix, tok_stropt }, /* -b */
{ "name-prefix", &spec_name_prefix, tok_stropt }, /* -p */
{ "verbose", &verbose_flag, tok_intopt }, /* -v */
{ "debug", &debug_flag, tok_intopt }, /* -t */
{ "semantic-parser", &semantic_parser, tok_intopt },
{ "pure-parser", &pure_parser, tok_intopt },
{ NULL, NULL, tok_illegal}
};
@@ -584,7 +584,10 @@ struct percent_table_struct percent_table[] =
token_t
parse_percent_token (void)
{
struct percent_table_struct *tx;
struct percent_table_struct *tx = NULL;
const char *arg = NULL;
/* Where the ARG was found in token_buffer. */
size_t arg_offset = 0;
int c = getc (finput);
@@ -596,6 +599,8 @@ parse_percent_token (void)
case '{':
return tok_percent_left_curly;
/* FIXME: Who the heck are those 5 guys!?! `%<' = `%left'!!!
Let's ask for there removal. */
case '<':
return tok_left;
@@ -618,42 +623,81 @@ parse_percent_token (void)
obstack_1grow (&token_obstack, '%');
while (isalpha (c) || c == '_' || c == '-')
{
if (c == '-')
c = '_';
if (c == '_')
c = '-';
obstack_1grow (&token_obstack, c);
c = getc (finput);
}
ungetc (c, finput);
/* %DIRECTIVE="ARG". Separate into
TOKEN_BUFFER = `%DIRECTIVE\0ARG\0'.
This is a bit hackish, but once we move to a Bison parser,
things will be cleaned up. */
if (c == '=')
{
/* End of the directive. We skip the `='. */
obstack_1grow (&token_obstack, '\0');
/* Fetch the ARG if present. */
c = getc (finput);
if (c == '"')
{
int code;
arg_offset = obstack_object_size (&token_obstack);
/* Read up to and including `"'. Do not append the closing
`"' in the output: it's not part of the ARG. */
while (literalchar (NULL, &code, '"'))
obstack_1grow (&token_obstack, code);
}
/* else: should be an error. */
}
else
ungetc (c, finput);
obstack_1grow (&token_obstack, '\0');
token_buffer = obstack_finish (&token_obstack);
if (arg_offset)
arg = token_buffer + arg_offset;
/* table lookup % directive */
for (tx = percent_table; tx->name; tx++)
if (strcmp (token_buffer + 1, tx->name) == 0)
break;
if (tx->set_flag)
{
*((int *) (tx->set_flag)) = 1;
return tok_noop;
}
if (arg && tx->retval != tok_stropt)
fatal (_("`%s' supports no argument: %s"), token_buffer, quote (arg));
switch (tx->retval)
{
case tok_setopt:
*((char **) (tx->set_flag)) = optarg;
case tok_stropt:
assert (tx->set_flag);
if (arg)
{
/* Keep only the first assignment: command line options have
already been processed, and we want them to have
precedence. Side effect: if this %-option is used
several times, only the first is honored. Bah. */
if (!*((char **) (tx->set_flag)))
*((char **) (tx->set_flag)) = xstrdup (arg);
}
else
fatal (_("`%s' requires an argument"), token_buffer);
return tok_noop;
break;
case tok_intopt:
assert (tx->set_flag);
*((int *) (tx->set_flag)) = 1;
return tok_noop;
break;
case tok_obsolete:
fatal (_("`%s' is no longer supported"), token_buffer);
return tok_noop;
break;
default:
/* Other cases do not apply here. */
return tx->retval;
break;
}
return tx->retval;
abort ();
}
+2 -1
View File
@@ -49,7 +49,8 @@ typedef enum token_e
tok_expect,
tok_thong,
tok_noop,
tok_setopt,
tok_intopt,
tok_stropt,
tok_illegal,
tok_obsolete
} token_t;
+12 -9
View File
@@ -62,15 +62,16 @@ main (int argc, char *argv[])
if (complain_message_count)
exit (1);
/* find useless nonterminals and productions and reduce the grammar. In
file reduce.c */
/* Find useless nonterminals and productions and reduce the grammar.
In file reduce.c. */
reduce_grammar ();
/* record other info about the grammar. In files derives and nullable. */
/* Record other info about the grammar. In files derives and
nullable. */
set_derives ();
set_nullable ();
/* convert to nondeterministic finite state machine. In file LR0.
/* Convert to nondeterministic finite state machine. In file LR0.
See state.h for more info. */
generate_states ();
@@ -82,6 +83,7 @@ main (int argc, char *argv[])
conflicts. Also resolve s/r conflicts based on precedence
declarations. */
solve_conflicts ();
conflicts_print ();
/* Output file names. */
compute_output_file_names ();
@@ -91,7 +93,7 @@ main (int argc, char *argv[])
if (complain_message_count)
exit (1);
/* Print information about results, if requested. */
/* Output the detailed report on the grammar. */
print_results ();
/* Output the VCG graph. */
@@ -100,21 +102,22 @@ main (int argc, char *argv[])
/* Output the tables and the parser to ftable. In file output. */
output ();
/* Close the input files. */
close_files ();
/* Free the symbol table data structure. */
free_symtab ();
lex_free ();
/* Close the input files. */
close_files ();
reduce_free ();
free_conflicts ();
free_nullable ();
free_derives ();
output_files ();
exit (complain_message_count ? 1 : 0);
return complain_message_count ? EXIT_FAILURE : EXIT_SUCCESS;
}
/* Abort for an internal error denoted by string S. */
+8 -6
View File
@@ -1,5 +1,5 @@
/* Print information on generated parser, for bison,
Copyright 1984, 1986, 1989, 2000 Free Software Foundation, Inc.
Copyright 1984, 1986, 1989, 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -29,6 +29,7 @@
#include "state.h"
#include "reader.h"
#include "print.h"
#include "reduce.h"
#if 0
static void
@@ -173,7 +174,7 @@ print_actions (FILE *out, int state)
}
else if (redp)
{
print_reductions (state);
print_reductions (out, state);
}
if (i < k)
@@ -226,7 +227,7 @@ print_grammar (FILE *out)
int column = 0;
/* rule # : LHS -> RHS */
fprintf (out, "\n%s\n", _("Grammar"));
fprintf (out, "\n%s\n\n", _("Grammar"));
for (i = 1; i <= nrules; i++)
/* Don't print rules disabled in reduce_grammar_tables. */
if (rlhs[i] >= 0)
@@ -237,7 +238,8 @@ print_grammar (FILE *out)
while (*rule > 0)
fprintf (out, " %s", tags[*rule++]);
else
fprintf (out, " /* %s */\n", _("empty"));
fprintf (out, " /* %s */", _("empty"));
fputc ('\n', out);
}
/* TERMINAL (type #) : rule #s terminal is on RHS */
@@ -336,8 +338,8 @@ print_results (void)
size_t size = obstack_object_size (&output_obstack);
fwrite (obstack_finish (&output_obstack), 1, size, out);
if (any_conflicts)
print_conflicts (out);
reduce_output (out);
conflicts_output (out);
print_grammar (out);
+88 -56
View File
@@ -1,5 +1,5 @@
/* Input parser for bison
Copyright 1984, 1986, 1989, 1992, 1998, 2000
Copyright 1984, 1986, 1989, 1992, 1998, 2000, 2001
Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -695,7 +695,6 @@ token_buffer);
}
prev = t;
}
}
@@ -712,6 +711,13 @@ parse_union_decl (void)
{
int c;
int count = 0;
const char *prologue = "\
#ifndef YYSTYPE\n\
typedef union";
const char *epilogue = "\
yystype;\n\
# define YYSTYPE yystype\n\
#endif\n";
if (typed)
complain (_("multiple %s declarations"), "%union");
@@ -724,9 +730,9 @@ parse_union_decl (void)
else
obstack_1grow (&attrs_obstack, '\n');
obstack_sgrow (&attrs_obstack, "typedef union");
obstack_sgrow (&attrs_obstack, prologue);
if (defines_flag)
obstack_sgrow (&defines_obstack, "typedef union");
obstack_sgrow (&defines_obstack, prologue);
c = getc (finput);
@@ -761,9 +767,9 @@ parse_union_decl (void)
count--;
if (count <= 0)
{
obstack_sgrow (&attrs_obstack, " YYSTYPE;\n");
obstack_sgrow (&attrs_obstack, epilogue);
if (defines_flag)
obstack_sgrow (&defines_obstack, " YYSTYPE;\n");
obstack_sgrow (&defines_obstack, epilogue);
/* JF don't choke on trailing semi */
c = skip_white_space ();
if (c != ';')
@@ -821,7 +827,7 @@ parse_thong_decl (void)
token_t token;
struct bucket *symbol;
char *typename = 0;
int usrtoknum;
int usrtoknum = SUNDEF;
token = lex (); /* fetch typename or first token */
if (token == tok_typename)
@@ -852,8 +858,6 @@ parse_thong_decl (void)
usrtoknum = numval;
token = lex (); /* okay, did number, now get literal */
}
else
usrtoknum = 0;
/* process literal string token */
@@ -875,10 +879,11 @@ parse_thong_decl (void)
}
/*-----------------------------------------------------------------------------.
| Parse a double quoted parameter. It was used for %{source,header}_extension. |
| For the moment, It is not used since extension features have been removed. |
`-----------------------------------------------------------------------------*/
/*------------------------------------------------------------------.
| Parse a double quoted parameter. It was used for |
| %{source,header}_extension. For the moment, It is not used since |
| extension features have been removed. |
`------------------------------------------------------------------*/
#if 0
@@ -938,16 +943,13 @@ parse_dquoted_param (const char *from)
static void
read_declarations (void)
{
int c;
int tok;
for (;;)
{
c = skip_white_space ();
int c = skip_white_space ();
if (c == '%')
{
tok = parse_percent_token ();
token_t tok = parse_percent_token ();
switch (tok)
{
@@ -1001,6 +1003,13 @@ read_declarations (void)
case tok_noop:
break;
case tok_stropt:
case tok_intopt:
case tok_obsolete:
case tok_illegal:
abort ();
break;
default:
complain (_("unrecognized: %s"), token_buffer);
skip_to_char ('%');
@@ -1663,6 +1672,46 @@ output_token_defines (struct obstack *oout)
}
/*------------------------------------------------------------------.
| Set TOKEN_TRANSLATIONS. Check that no two symbols share the same |
| number. |
`------------------------------------------------------------------*/
static void
token_translations_init (void)
{
bucket *bp = NULL;
int i;
token_translations = XCALLOC (short, max_user_token_number + 1);
/* Initialize all entries for literal tokens to 2, the internal
token number for $undefined., which represents all invalid
inputs. */
for (i = 0; i <= max_user_token_number; i++)
token_translations[i] = 2;
for (bp = firstsymbol; bp; bp = bp->next)
{
/* Non-terminal? */
if (bp->value >= ntokens)
continue;
/* A token string alias? */
if (bp->user_token_number == SALIAS)
continue;
assert (bp->user_token_number != SUNDEF);
/* A token which translation has already been set? */
if (token_translations[bp->user_token_number] != 2)
complain (_("tokens %s and %s both assigned number %d"),
tags[token_translations[bp->user_token_number]],
bp->tag, bp->user_token_number);
token_translations[bp->user_token_number] = bp->value;
}
}
/*------------------------------------------------------------------.
| Assign symbol numbers, and write definition of token names into |
| FDEFINES. Set up vectors TAGS and SPREC of names and precedences |
@@ -1674,20 +1723,19 @@ packsymbols (void)
{
bucket *bp = NULL;
int tokno = 1;
int i, j;
int last_user_token_number;
static char DOLLAR[] = "$";
/* int lossage = 0; JF set but not used */
tags = XCALLOC (char *, nsyms + 1);
tags[0] = DOLLAR;
user_toknums = XCALLOC (short, nsyms + 1);
user_toknums[0] = 0;
sprec = XCALLOC (short, nsyms);
sassoc = XCALLOC (short, nsyms);
/* The EOF token. */
tags[0] = DOLLAR;
user_toknums[0] = 0;
max_user_token_number = 256;
last_user_token_number = 256;
@@ -1740,7 +1788,7 @@ packsymbols (void)
if (bp->class == token_sym)
{
if (!bp->user_token_number)
if (bp->user_token_number == SUNDEF)
bp->user_token_number = ++last_user_token_number;
if (bp->user_token_number > max_user_token_number)
max_user_token_number = bp->user_token_number;
@@ -1752,26 +1800,7 @@ packsymbols (void)
sassoc[bp->value] = bp->assoc;
}
token_translations = XCALLOC (short, max_user_token_number + 1);
/* initialize all entries for literal tokens to 2, the internal
token number for $undefined., which represents all invalid
inputs. */
for (j = 0; j <= max_user_token_number; j++)
token_translations[j] = 2;
for (bp = firstsymbol; bp; bp = bp->next)
{
if (bp->value >= ntokens)
continue; /* non-terminal */
if (bp->user_token_number == SALIAS)
continue;
if (token_translations[bp->user_token_number] != 2)
complain (_("tokens %s and %s both assigned number %d"),
tags[token_translations[bp->user_token_number]],
bp->tag, bp->user_token_number);
token_translations[bp->user_token_number] = bp->value;
}
token_translations_init ();
error_token_number = errtoken->value;
@@ -1800,19 +1829,23 @@ packsymbols (void)
}
if (semantic_parser)
for (i = ntokens; i < nsyms; i++)
{
/* don't make these for dummy nonterminals made by gensym. */
if (*tags[i] != '@')
obstack_fgrow2 (&defines_obstack,
"# define\tNT%s\t%d\n", tags[i], i);
}
{
int i;
for (i = ntokens; i < nsyms; i++)
{
/* don't make these for dummy nonterminals made by gensym. */
if (*tags[i] != '@')
obstack_fgrow2 (&defines_obstack,
"# define\tNT%s\t%d\n", tags[i], i);
}
#if 0
/* `fdefines' is now a temporary file, so we need to copy its
contents in `done', so we can't close it here. */
fclose (fdefines);
fdefines = NULL;
/* `fdefines' is now a temporary file, so we need to copy its
contents in `done', so we can't close it here. */
fclose (fdefines);
fdefines = NULL;
#endif
}
}
}
@@ -1929,7 +1962,6 @@ reader (void)
/* Read the declaration section. Copy %{ ... %} groups to
TABLE_OBSTACK and FDEFINES file. Also notice any %token, %left,
etc. found there. */
obstack_1grow (&table_obstack, '\n');
obstack_fgrow3 (&table_obstack, "\
/* %s, made from %s\n\
by GNU bison %s. */\n\
+59 -51
View File
@@ -1,5 +1,5 @@
/* Grammar reduction for Bison.
Copyright 1988, 1989, 2000 Free Software Foundation, Inc.
Copyright 1988, 1989, 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -388,21 +388,25 @@ reduce_grammar_tables (void)
}
}
static void
print_results (void)
/*-----------------------------------------------------------------.
| Ouput the detailed results of the reductions. For FILE.output. |
`-----------------------------------------------------------------*/
void
reduce_output (FILE *out)
{
int i;
/* short j; JF unused */
rule r;
bool b;
if (nuseless_nonterminals > 0)
{
obstack_sgrow (&output_obstack, _("Useless nonterminals:"));
obstack_sgrow (&output_obstack, "\n\n");
fprintf (out, _("Useless nonterminals:"));
fprintf (out, "\n\n");
for (i = ntokens; i < nsyms; i++)
if (!BITISSET (V, i))
obstack_fgrow1 (&output_obstack, " %s\n", tags[i]);
fprintf (out, " %s\n", tags[i]);
}
b = FALSE;
for (i = 0; i < ntokens; i++)
@@ -411,81 +415,81 @@ print_results (void)
{
if (!b)
{
obstack_sgrow (&output_obstack, "\n\n");
obstack_sgrow (&output_obstack,
_("Terminals which are not used:"));
obstack_sgrow (&output_obstack, "\n\n");
fprintf (out, "\n\n");
fprintf (out, _("Terminals which are not used:"));
fprintf (out, "\n\n");
b = TRUE;
}
obstack_fgrow1 (&output_obstack, " %s\n", tags[i]);
fprintf (out, " %s\n", tags[i]);
}
}
if (nuseless_productions > 0)
{
obstack_sgrow (&output_obstack, "\n\n");
obstack_sgrow (&output_obstack, _("Useless rules:"));
obstack_sgrow (&output_obstack, "\n\n");
fprintf (out, "\n\n");
fprintf (out, _("Useless rules:"));
fprintf (out, "\n\n");
for (i = 1; i <= nrules; i++)
{
if (!BITISSET (P, i))
{
obstack_fgrow1 (&output_obstack, "#%-4d ", i);
obstack_fgrow1 (&output_obstack, "%s :\t", tags[rlhs[i]]);
fprintf (out, "#%-4d ", i);
fprintf (out, "%s :\t", tags[rlhs[i]]);
for (r = &ritem[rrhs[i]]; *r >= 0; r++)
obstack_fgrow1 (&output_obstack, " %s", tags[*r]);
obstack_sgrow (&output_obstack, ";\n");
fprintf (out, " %s", tags[*r]);
fprintf (out, ";\n");
}
}
}
if (nuseless_nonterminals > 0 || nuseless_productions > 0 || b)
obstack_sgrow (&output_obstack, "\n\n");
fprintf (out, "\n\n");
}
#if 0 /* XXX currently unused. */
static void
dump_grammar (void)
dump_grammar (FILE *out)
{
int i;
rule r;
obstack_fgrow5 (&output_obstack,
fprintf (out,
"ntokens = %d, nvars = %d, nsyms = %d, nrules = %d, nitems = %d\n\n",
ntokens, nvars, nsyms, nrules, nitems);
obstack_sgrow (&output_obstack,
_("Variables\n---------\n\n"));
obstack_sgrow (&output_obstack,
_("Value Sprec Sassoc Tag\n"));
fprintf (out, _("Variables\n---------\n\n"));
fprintf (out, _("Value Sprec Sassoc Tag\n"));
for (i = ntokens; i < nsyms; i++)
obstack_fgrow4 (&output_obstack,
"%5d %5d %5d %s\n", i, sprec[i], sassoc[i], tags[i]);
obstack_sgrow (&output_obstack, "\n\n");
obstack_sgrow (&output_obstack, _("Rules\n-----\n\n"));
fprintf (out, "%5d %5d %5d %s\n", i, sprec[i], sassoc[i], tags[i]);
fprintf (out, "\n\n");
fprintf (out, _("Rules\n-----\n\n"));
for (i = 1; i <= nrules; i++)
{
obstack_fgrow5 (&output_obstack, "%-5d(%5d%5d)%5d : (@%-5d)",
i, rprec[i], rassoc[i], rlhs[i], rrhs[i]);
fprintf (out, "%-5d(%5d%5d)%5d : (@%-5d)",
i, rprec[i], rassoc[i], rlhs[i], rrhs[i]);
for (r = &ritem[rrhs[i]]; *r > 0; r++)
obstack_fgrow1 (&output_obstack, "%5d", *r);
obstack_fgrow1 (&output_obstack, " [%d]\n", -(*r));
fprintf (out, "%5d", *r);
fprintf (out, " [%d]\n", -(*r));
}
obstack_sgrow (&output_obstack, "\n\n");
obstack_sgrow (&output_obstack,
_("Rules interpreted\n-----------------\n\n"));
fprintf (out, "\n\n");
fprintf (out, _("Rules interpreted\n-----------------\n\n"));
for (i = 1; i <= nrules; i++)
{
obstack_fgrow2 (&output_obstack, "%-5d %s :", i, tags[rlhs[i]]);
fprintf (out, "%-5d %s :", i, tags[rlhs[i]]);
for (r = &ritem[rrhs[i]]; *r > 0; r++)
obstack_fgrow1 (&output_obstack, " %s", tags[*r]);
obstack_grow1 (&output_obstack, '\n');
fprintf (out, " %s", tags[*r]);
fputc ('\n', out);
}
obstack_sgrow (&output_obstack, "\n\n");
fprintf (out, "\n\n");
}
#endif
/*-------------------------------.
| Report the results to STDERR. |
`-------------------------------*/
static void
print_notices (void)
reduce_print (void)
{
if (yacc_flag && nuseless_productions)
fprintf (stderr, _("%d rules never reduced\n"), nuseless_productions);
@@ -527,13 +531,10 @@ reduce_grammar (void)
reduced = (bool) (nuseless_nonterminals + nuseless_productions > 0);
if (verbose_flag)
print_results ();
if (!reduced)
return;
if (reduced == FALSE)
goto done_reducing;
print_notices ();
reduce_print ();
if (!BITISSET (N, start_symbol - ntokens))
fatal (_("Start symbol %s does not derive any sentence"),
@@ -543,7 +544,7 @@ reduce_grammar (void)
#if 0
if (verbose_flag)
{
obstack_fgrow1 (&output_obstack, "REDUCED GRAMMAR\n\n");
fprintf (out, "REDUCED GRAMMAR\n\n");
dump_grammar ();
}
#endif
@@ -558,11 +559,18 @@ reduce_grammar (void)
(nvars == 1 ? "" : "s"),
nrules,
(nrules == 1 ? "" : "s"));
}
done_reducing:
/* Free the global sets used to compute the reduced grammar */
/*-----------------------------------------------------------.
| Free the global sets used to compute the reduced grammar. |
`-----------------------------------------------------------*/
void
reduce_free (void)
{
XFREE (N);
XFREE (V);
XFREE (V1);
XFREE (P);
}
+3 -2
View File
@@ -1,5 +1,5 @@
/* Grammar reduction for Bison.
Copyright 2000 Free Software Foundation, Inc.
Copyright 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -22,5 +22,6 @@
# define REDUCE_H_
void reduce_grammar PARAMS ((void));
void reduce_output PARAMS ((FILE *out));
void reduce_free PARAMS ((void));
#endif /* !REDUCE_H_ */
+2 -2
View File
@@ -1,5 +1,5 @@
/* Symbol table manager for Bison,
Copyright 1984, 1989, 2000 Free Software Foundation, Inc.
Copyright 1984, 1989, 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -58,7 +58,7 @@ bucket_new (const char *tag, int hashval)
res->value = 0;
res->prec = 0;
res->assoc = right_assoc;
res->user_token_number = 0;
res->user_token_number = SUNDEF;
res->alias = NULL;
res->class = unknown_sym;
+2 -1
View File
@@ -1,5 +1,5 @@
/* Definitions for symtab.c and callers, part of bison,
Copyright 1984, 1989, 1992, 2000 Free Software Foundation, Inc.
Copyright 1984, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -33,6 +33,7 @@ typedef enum
nterm_sym /* non-terminal */
} symbol_class;
#define SUNDEF -1 /* For undefined user number. */
#define SALIAS -9991 /* for symbol generated with an alias */
typedef struct bucket
+17 -2
View File
@@ -40,6 +40,18 @@
# include <stdlib.h>
#endif
/* The following test is to work around the gross typo in
systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE
is defined to 0, not 1. */
#if !EXIT_FAILURE
# undef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
#ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
@@ -126,10 +138,13 @@ size_t strnlen PARAMS ((const char *s, size_t maxlen));
# include <libintl.h>
# define _(Text) gettext (Text)
#else
# undef bindtextdomain
# undef bindtextdomain
# define bindtextdomain(Domain, Directory)
# undef textdomain
# undef textdomain
# define textdomain(Domain)
# undef ngettext
# define ngettext(Singular, Plural, Number) \
((Number == 1) ? Singular : Plural)
# define _(Text) Text
#endif
#define N_(Text) Text
+3 -6
View File
@@ -18,14 +18,14 @@
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
EXTRA_DIST = atlocal.in $(TESTSUITE_AT) testsuite
EXTRA_DIST = $(TESTSUITE_AT) testsuite
DISTCLEANFILES = atconfig atlocal bison package.m4
DISTCLEANFILES = atconfig bison package.m4
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
TESTSUITE_AT = \
testsuite.at \
output.at calc.at regression.at
output.at calc.at torture.at regression.at
TESTSUITE = $(srcdir)/testsuite
AUTOTEST = $(AUTOM4TE) --language=autotest
@@ -36,9 +36,6 @@ $(srcdir)/$(TESTSUITE): $(TESTSUITE_AT)
atconfig: $(top_builddir)/config.status
cd $(top_builddir) && ./config.status tests/$@
atlocal: $(srcdir)/atlocal.in $(top_builddir)/config.status
cd $(top_builddir) && ./config.status tests/$@
clean-local:
$(SHELL) $(TESTSUITE) --clean
+8 -9
View File
@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@
@@ -101,14 +101,14 @@ am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
EXTRA_DIST = atlocal.in $(TESTSUITE_AT) testsuite
EXTRA_DIST = $(TESTSUITE_AT) testsuite
DISTCLEANFILES = atconfig atlocal bison package.m4
DISTCLEANFILES = atconfig bison package.m4
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
TESTSUITE_AT = \
testsuite.at \
output.at calc.at regression.at
output.at calc.at torture.at regression.at
TESTSUITE = $(srcdir)/testsuite
@@ -116,9 +116,9 @@ AUTOTEST = $(AUTOM4TE) --language=autotest
subdir = tests
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = bison
CONFIG_CLEAN_FILES = bison atlocal
DIST_SOURCES =
DIST_COMMON = Makefile.am Makefile.in bison.in
DIST_COMMON = Makefile.am Makefile.in atlocal.in bison.in
all: all-am
.SUFFIXES:
@@ -129,6 +129,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
bison: $(top_builddir)/config.status bison.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
atlocal: $(top_builddir)/config.status atlocal.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
uninstall-info-am:
tags: TAGS
TAGS:
@@ -239,9 +241,6 @@ $(srcdir)/$(TESTSUITE): $(TESTSUITE_AT)
atconfig: $(top_builddir)/config.status
cd $(top_builddir) && ./config.status tests/$@
atlocal: $(srcdir)/atlocal.in $(top_builddir)/config.status
cd $(top_builddir) && ./config.status tests/$@
clean-local:
$(SHELL) $(TESTSUITE) --clean
+1 -1
View File
@@ -10,4 +10,4 @@ CFLAGS='@CFLAGS@'
GCC='@GCC@'
# We need `config.h'.
CPPFLAGS="-I $top_builddir @CPPFLAGS@"
CPPFLAGS="-I $top_buildpath @CPPFLAGS@"
+12 -5
View File
@@ -64,7 +64,8 @@ static void yyungetc (int c);
extern void perror (const char *s);
%}
/* BISON Declarations */
/* Bison Declarations */
%token CALC_EOF 0
%token NUM
%nonassoc '=' /* comparison */
@@ -204,7 +205,7 @@ yylex (void)
/* Return end-of-file. */
if (c == EOF)
return 0;
return CALC_EOF;
/* Return single chars. */
return c;
@@ -337,8 +338,14 @@ AT_CHECK([bison calc.y -o calc.c m4_bpatsubst([$1], [--yyerror-verbose])],
# Maybe some day we will have proper Autoconf macros to disable these
# warnings, but this place is not the right one for that.
# So let's keep only GCC warnings, which we know are sane.
AT_CHECK([$CC $CFLAGS $CPPFLAGS calc.c -o calc], 0, [], [stderr])
AT_CHECK([if test "$GCC" = yes; then cat stderr; else true; fi])
# Well, that's only part of the story: some assemblers issue warnings
# which can be totally useless, and actually polluting. It seems that
# the best bet be to completely ignore stderr, but to pass -Werror
# to GCC.
if test "$GCC" = yes; then
CFLAGS="$CFLAGS -Werror"
fi
AT_CHECK([$CC $CFLAGS $CPPFLAGS calc.c -o calc], 0, [], [ignore])
# Test the priorities.
_AT_CHECK_CALC([$1],
@@ -376,7 +383,7 @@ _AT_CHECK_CALC_ERROR([$1],
[2.0:2.1],
[unexpected `'+''])
AT_CLEANUP(calc calc.c calc.h calc.output)
AT_CLEANUP
])# AT_CHECK_CALC
+11 -1
View File
@@ -31,7 +31,7 @@ foo: {}
AT_CHECK([bison $3 $1], 0)
AT_CHECK([ls $4], [], [ignore])
AT_CLEANUP($4)
AT_CLEANUP
])
AT_CHECK_OUTPUT([foo.y], [], [-dv],
@@ -53,6 +53,16 @@ AT_CHECK_OUTPUT([foo.y], [%defines %verbose], [],
AT_CHECK_OUTPUT([foo.y], [%defines %verbose %yacc],[],
[y.output y.tab.c y.tab.h])
# Exercise %output and %file-prefix
AT_CHECK_OUTPUT([foo.y], [%file-prefix="bar" %defines %verbose], [],
[bar.output bar.tab.c bar.tab.h])
AT_CHECK_OUTPUT([foo.y], [%output="bar.c" %defines %verbose %yacc],[],
[bar.output bar.c bar.h])
AT_CHECK_OUTPUT([foo.y],
[%file-prefix="baz" %output="bar.c" %defines %verbose %yacc],
[],
[bar.output bar.c bar.h])
# Check priorities of extension control.
AT_CHECK_OUTPUT([foo.yy], [%defines %verbose], [],
+321 -15
View File
@@ -40,7 +40,285 @@ exp: '(' exp ')' | NUM ;
AT_CHECK([bison -v duplicate.y -o duplicate.c], 0, ignore, ignore)
AT_CLEANUP([duplicate.*])
AT_CLEANUP
## ------------------------- ##
## Unresolved SR Conflicts. ##
## ------------------------- ##
AT_SETUP([Unresolved SR Conflicts])
AT_DATA([input.y],
[[%token NUM OP
%%
exp: exp OP exp | NUM;
]])
AT_CHECK([bison input.y -o input.c -v], 0, [],
[input.y contains 1 shift/reduce conflict.
])
# Check the contents of the report.
AT_CHECK([cat input.output], [],
[[State 4 contains 1 shift/reduce conflict.
Grammar
rule 1 exp -> exp OP exp
rule 2 exp -> NUM
Terminals, with rules where they appear
$ (-1)
error (256)
NUM (257) 2
OP (258) 1
Nonterminals, with rules where they appear
exp (5)
on left: 1 2, on right: 1
state 0
NUM shift, and go to state 1
exp go to state 2
state 1
exp -> NUM . (rule 2)
$default reduce using rule 2 (exp)
state 2
exp -> exp . OP exp (rule 1)
$ go to state 5
OP shift, and go to state 3
state 3
exp -> exp OP . exp (rule 1)
NUM shift, and go to state 1
exp go to state 4
state 4
exp -> exp . OP exp (rule 1)
exp -> exp OP exp . (rule 1)
OP shift, and go to state 3
OP [reduce using rule 1 (exp)]
$default reduce using rule 1 (exp)
state 5
$ go to state 6
state 6
$default accept
]])
AT_CLEANUP
## --------------------- ##
## Solved SR Conflicts. ##
## --------------------- ##
AT_SETUP([Solved SR Conflicts])
AT_DATA([input.y],
[[%token NUM OP
%right OP
%%
exp: exp OP exp | NUM;
]])
AT_CHECK([bison input.y -o input.c -v], 0, [], [])
# Check the contents of the report.
AT_CHECK([cat input.output], [],
[[Conflict in state 4 between rule 1 and token OP resolved as shift.
Grammar
rule 1 exp -> exp OP exp
rule 2 exp -> NUM
Terminals, with rules where they appear
$ (-1)
error (256)
NUM (257) 2
OP (258) 1
Nonterminals, with rules where they appear
exp (5)
on left: 1 2, on right: 1
state 0
NUM shift, and go to state 1
exp go to state 2
state 1
exp -> NUM . (rule 2)
$default reduce using rule 2 (exp)
state 2
exp -> exp . OP exp (rule 1)
$ go to state 5
OP shift, and go to state 3
state 3
exp -> exp OP . exp (rule 1)
NUM shift, and go to state 1
exp go to state 4
state 4
exp -> exp . OP exp (rule 1)
exp -> exp OP exp . (rule 1)
OP shift, and go to state 3
$default reduce using rule 1 (exp)
state 5
$ go to state 6
state 6
$default accept
]])
AT_CLEANUP
## -------------------- ##
## %expect not enough. ##
## -------------------- ##
AT_SETUP([%expect not enough])
AT_DATA([input.y],
[[%token NUM OP
%expect 0
%%
exp: exp OP exp | NUM;
]])
AT_CHECK([bison input.y -o input.c], 1, [],
[input.y contains 1 shift/reduce conflict.
expected 0 shift/reduce conflicts
])
AT_CLEANUP
## --------------- ##
## %expect right. ##
## --------------- ##
AT_SETUP([%expect right])
AT_DATA([input.y],
[[%token NUM OP
%expect 1
%%
exp: exp OP exp | NUM;
]])
AT_CHECK([bison input.y -o input.c], 0, [],
[input.y contains 1 shift/reduce conflict.
])
AT_CLEANUP
## ------------------ ##
## %expect too much. ##
## ------------------ ##
AT_SETUP([%expect too much])
AT_DATA([input.y],
[[%token NUM OP
%expect 2
%%
exp: exp OP exp | NUM;
]])
AT_CHECK([bison input.y -o input.c], 1, [],
[input.y contains 1 shift/reduce conflict.
expected 2 shift/reduce conflicts
])
AT_CLEANUP
## ---------------------- ##
## Mixing %token styles. ##
## ---------------------- ##
AT_SETUP([Mixing %token styles])
# Taken from the documentation.
AT_DATA([input.y],
[[%token <operator> OR "||"
%token <operator> LE 134 "<="
%left OR "<="
%%
exp: ;
%%
]])
AT_CHECK([bison -v input.y -o input.c], 0, ignore, ignore)
AT_CLEANUP
@@ -63,7 +341,7 @@ exp: {};
AT_CHECK([bison --defines union.y])
AT_CLEANUP([union.*])
AT_CLEANUP
## --------------------------------------- ##
@@ -86,15 +364,15 @@ exp: {};
AT_CHECK([bison union-comment.y])
AT_CHECK([fgrep '//*' union-comment.tab.c], [1], [])
AT_CLEANUP([union-comment.*])
AT_CLEANUP
## --------------- ##
## invalid input. ##
## --------------- ##
## ----------------- ##
## Invalid input 1. ##
## ----------------- ##
AT_SETUP([Invalid input])
AT_SETUP([Invalid input: 1])
AT_DATA([input.y],
[[%%
@@ -109,23 +387,51 @@ input.y:3: fatal error: no rules in the input grammar
AT_CLEANUP
## ----------------- ##
## Invalid input 2. ##
## ----------------- ##
AT_SETUP([Invalid input: 2])
AT_DATA([input.y],
[[%%
default: 'a' }
]])
AT_CHECK([bison input.y], [1], [],
[input.y:2: invalid input: `}'
])
AT_CLEANUP
## --------------------- ##
## Invalid CPP headers. ##
## --------------------- ##
AT_SETUP([Invalid CPP headers])
# AT_TEST_CPP_GUARD_H([INPUT-FILE-BASE)
# -------------------------------------
m4_define([AT_TEST_CPP_GUARD_H],
[AT_SETUP([Invalid CPP guards: $1])
mkdir input
# Possibly create inner directories.
dirname=`AS_DIRNAME([$1])`
AS_MKDIR_P([$dirname])
AT_DATA([input/input.y],
AT_DATA([$1.y],
[%%
dummy:
])
AT_CHECK([bison --defines input/input.y])
AT_CHECK([bison --defines=$1.h $1.y])
AT_CHECK([sed 1q input/input.tab.h], 0,
[[#ifndef INPUT_INPUT_TAB_H
]])
# CPP should be happy with it.
AT_CHECK([$CC -E $1.h], 0, [ignore])
AT_CLEANUP(input)
AT_CLEANUP
])
AT_TEST_CPP_GUARD_H([input/input])
AT_TEST_CPP_GUARD_H([9foo])
+2 -1
View File
@@ -19,7 +19,7 @@
# 02111-1307, USA.
# We need a recent Autotest.
m4_version_prereq([2.52e])
m4_version_prereq([2.52g])
AT_INIT
@@ -27,4 +27,5 @@ AT_TESTED([bison])
m4_include([output.at])
m4_include([calc.at])
m4_include([torture.at])
m4_include([regression.at])
+116
View File
@@ -0,0 +1,116 @@
# Torturing Bison. -*- Autotest -*-
# Copyright 2001 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
AT_BANNER([[Torture Tests.]])
# AT_DATA_STACK_TORTURE(C-PROLOGUE)
# ---------------------------------
# A parser specialized in torturing the stack size.
m4_define([AT_DATA_STACK_TORTURE],
[# A grammar of parens growing the stack thanks to right recursion.
# exp:
AT_DATA([input.y],
[[%{
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
]$1[
static int yylex (void);
static void yyerror (const char *msg);
#define YYERROR_VERBOSE 1
#define YYPRINT(File, Type, Value) \
fprintf (File, " (%d, stack size = %d, max = %d)", \
Value, yyssp - yyss + 1, yystacksize);
%}
%debug
%token WAIT_FOR_EOF
%%
exp: WAIT_FOR_EOF exp | ;
%%
static void
yyerror (const char *msg)
{
fprintf (stderr, "%s\n", msg);
exit (1);
}
/* There are YYLVAL_MAX of WAIT_FOR_EOFs. */
unsigned int yylval_max;
static int
yylex (void)
{
if (yylval--)
return WAIT_FOR_EOF;
else
return EOF;
}
int
main (int argc, const char **argv)
{
assert (argc == 2);
yylval = atoi (argv[1]);
yydebug = 1;
return yyparse ();
}
]])
AT_CHECK([bison input.y -o input.c])
AT_CHECK([$CC $CFLAGS $CPPFLAGS input.c -o input], 0, [], [ignore])
])
## -------------------------------------- ##
## Exploding the Stack Size with Alloca. ##
## -------------------------------------- ##
AT_SETUP([Exploding the Stack Size with Alloca])
AT_DATA_STACK_TORTURE
# Below the limit of 200.
AT_CHECK([input 20], 0, [], [ignore])
# Two enlargements: 2 * 2 * 200.
AT_CHECK([input 900], 0, [], [ignore])
# Fails: beyond the limit of 10,000 (which we don't reach anyway since we
# multiply by two starting at 200 => 5120 is the last possible).
AT_CHECK([input 10000], 1, [], [ignore])
AT_CLEANUP
## -------------------------------------- ##
## Exploding the Stack Size with Malloc. ##
## -------------------------------------- ##
AT_SETUP([Exploding the Stack Size with Malloc])
AT_DATA_STACK_TORTURE([[#define YYSTACK_USE_ALLOCA_ALLOCA 0]])
# Below the limit of 200.
AT_CHECK([input 20], 0, [], [ignore])
# Two enlargements: 2 * 2 * 200.
AT_CHECK([input 900], 0, [], [ignore])
# Fails: beyond the limit of 10,000 (which we don't reach anyway since we
# multiply by two starting at 200 => 5120 is the possible).
AT_CHECK([input 10000], 1, [], [ignore])
AT_CLEANUP