Compare commits

..
16 Commits
Author SHA1 Message Date
Akim Demaille c0760f18e0 Version 1.30g. 2001-12-13 11:14:19 +00:00
Akim Demaille c884affb0b Update. 2001-12-13 11:06:18 +00:00
Akim Demaille f7e7f57941 The computation of nullable is broken: it doesn't handle empty
RHS's properly.
* tests/torture.at (GNU AWK Grammar): New.
* tests/sets.at (Nullable): New.
* src/nullable.c (set_nullable): Instead of blindly looping over
`ritems', loop over the rules, and then over their rhs's.
Work around Autotest bugs.
* src/warshall.c (bitmatrix_print): Don't use `+--+' as table
frame, because Autotest understand lines starting with a `+' as
traces from the shell.  Then, they are not processed properly.
Admittedly an Autotest bug, but we don't have time to wait for
Autotest to catch up.
* tests/regression.at (Broken Closure): Adjust to the new table
frames.
Move to...
* tests/sets.at: here.
2001-12-13 10:59:37 +00:00
Paul Eggert d1210d1d6e Document YYPRINTF, YYSTDERR. 2001-12-13 02:45:14 +00:00
Paul Eggert d5c2eff246 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
Do not infringe on the global user namespace when using C++.
	(YYFPRINTF, YYSTDERR): New macros, needed for the above.
	All uses of `fprintf' and `stderr' changed.

	* src/output.c (output): Do not output "#include <stdio.h>"; that
	is bison.simple's job.  stdio.h should be included only if
	necessary, to avoid infringing on the user name space when
	possible.
2001-12-13 02:22:05 +00:00
Paul Eggert b59b91bb6e (output): Do not output "#include <stdio.h>"; that is bison.simple's
job.  stdio.h should be included only if necessary, to avoid
infringing on the user name space when possible.
2001-12-13 02:21:12 +00:00
Paul Eggert 63e75f2e38 (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
Do not infringe on the global user namespace when using C++.
(YYFPRINTF, YYSTDERR): New macros, needed for the above.
All uses of `fprintf' and `stderr' changed.
2001-12-13 02:20:28 +00:00
Akim Demaille 69dc1147ba * src/complain.h, src/complain.c: Remove error_one_per_line, rely
on that of lib/error.c.
2001-12-12 15:21:59 +00:00
Akim Demaille 3d9d5d34ff Regen. 2001-12-12 15:19:25 +00:00
Akim Demaille 701d80ffa0 Regen. 2001-12-12 12:01:09 +00:00
Akim Demaille 88f06d2beb Some hosts don't like `/' in includes.
* src/system.h: Include libgettext.h without qualifying the path.
* src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
$(top_srcdir).
2001-12-12 11:55:56 +00:00
Akim Demaille daa938e7f0 Regen. 2001-12-12 11:55:29 +00:00
Akim Demaille ed45e93ed8 Bison dumps core on bash.y.
Reported by Pascal Bart.
* src/warshall.c (bitmatrix_print): New.
(TC): Use it.
When performing a transitive closure R(i, j) && R(j, k) => R(i,	k),
j must be the outer loop.
* tests/regression.at (Broken Closure): New.
2001-12-10 08:43:38 +00:00
Akim Demaille 74d757ab92 Fix an es.po problem. 2001-12-06 14:24:41 +00:00
Akim Demaille 4be25f1591 Version 1.30g. 2001-12-05 15:24:53 +00:00
Akim Demaille b7008317cf . 2001-12-05 12:01:24 +00:00
33 changed files with 1079 additions and 475 deletions
+62
View File
@@ -1,3 +1,65 @@
2001-12-13 Akim Demaille <[email protected]>
Version 1.30g.
2001-12-13 Akim Demaille <[email protected]>
The computation of nullable is broken: it doesn't handle empty
RHS's properly.
* tests/torture.at (GNU AWK Grammar): New.
* tests/sets.at (Nullable): New.
* src/nullable.c (set_nullable): Instead of blindly looping over
`ritems', loop over the rules, and then over their rhs's.
Work around Autotest bugs.
* src/warshall.c (bitmatrix_print): Don't use `+--+' as table
frame, because Autotest understand lines starting with a `+' as
traces from the shell. Then, they are not processed properly.
Admittedly an Autotest bug, but we don't have time to wait for
Autotest to catch up.
* tests/regression.at (Broken Closure): Adjust to the new table
frames.
Move to...
* tests/sets.at: here.
2001-12-12 Paul Eggert <[email protected]>
* src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
Do not infringe on the global user namespace when using C++.
(YYFPRINTF, YYSTDERR): New macros, needed for the above.
All uses of `fprintf' and `stderr' changed.
* src/output.c (output): Do not output "#include <stdio.h>"; that
is bison.simple's job. stdio.h should be included only if
necessary, to avoid infringing on the user name space when
possible.
2001-12-12 Akim Demaille <[email protected]>
* src/complain.h, src/complain.c: Remove error_one_per_line, rely
on that of lib/error.c.
2001-12-12 Akim Demaille <[email protected]>
Some hosts don't like `/' in includes.
* src/system.h: Include libgettext.h without qualifying the path.
* src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
$(top_srcdir).
2001-12-10 Akim Demaille <[email protected]>
Bison dumps core on bash.y.
Reported by Pascal Bart.
* src/warshall.c (bitmatrix_print): New.
(TC): Use it.
When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
j must be the outer loop.
* tests/regression.at (Broken Closure): New.
2001-12-05 Akim Demaille <[email protected]> 2001-12-05 Akim Demaille <[email protected]>
Version 1.30f. Version 1.30f.
+7
View File
@@ -1,6 +1,13 @@
Bison News Bison News
---------- ----------
Changes in version 1.30g:
* Bug fixes
* Better C++ compliance
The output parsers try to respect C++ namespaces.
Changes in version 1.30f: Changes in version 1.30f:
* Reduced Grammars * Reduced Grammars
+46 -44
View File
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc. # Free Software Foundation, Inc.
timestamp='2001-11-26' timestamp='2001-12-12'
# This file is free software; you can redistribute it and/or modify it # 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 # under the terms of the GNU General Public License as published by
@@ -135,23 +135,21 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# object file format. This provides both forward # object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the # compatibility and a consistent mechanism for selecting the
# object file format. # object file format.
# Determine the machine/vendor (is the vendor relevant). #
case "${UNAME_MACHINE}" in # Note: NetBSD doesn't particularly care about the vendor
amiga) machine=m68k-unknown ;; # portion of the name. We always set it to "unknown".
arm32) machine=arm-unknown ;; UNAME_MACHINE_ARCH=`(uname -p) 2>/dev/null` || \
atari*) machine=m68k-atari ;; UNAME_MACHINE_ARCH=unknown
sun3*) machine=m68k-sun ;; case "${UNAME_MACHINE_ARCH}" in
mac68k) machine=m68k-apple ;; arm*) machine=arm-unknown ;;
macppc) machine=powerpc-apple ;; sh3el) machine=shl-unknown ;;
hp3[0-9][05]) machine=m68k-hp ;; sh3eb) machine=sh-unknown ;;
ibmrt|romp-ibm) machine=romp-ibm ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
sparc*) machine=`uname -p`-unknown ;;
*) machine=${UNAME_MACHINE}-unknown ;;
esac esac
# The Operating System including object format, if it has switched # The Operating System including object format, if it has switched
# to ELF recently, or will in the future. # to ELF recently, or will in the future.
case "${UNAME_MACHINE}" in case "${UNAME_MACHINE_ARCH}" in
i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep __ELF__ >/dev/null | grep __ELF__ >/dev/null
@@ -767,10 +765,21 @@ EOF
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;; exit 0 ;;
mips:Linux:*:*) mips:Linux:*:*)
case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in eval $set_cc_for_build
big) echo mips-unknown-linux-gnu && exit 0 ;; sed 's/^ //' << EOF >$dummy.c
little) echo mipsel-unknown-linux-gnu && exit 0 ;; #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
esac CPU=mipsel
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=mips
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
rm -f $dummy.c
test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
;; ;;
ppc:Linux:*:*) ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu echo powerpc-unknown-linux-gnu
@@ -843,32 +852,25 @@ EOF
esac esac
# Determine whether the default compiler is a.out or elf # Determine whether the default compiler is a.out or elf
eval $set_cc_for_build eval $set_cc_for_build
cat >$dummy.c <<EOF sed 's/^ //' << EOF >$dummy.c
#include <features.h> #include <features.h>
#ifdef __cplusplus #ifdef __ELF__
#include <stdio.h> /* for printf() prototype */ # ifdef __GLIBC__
int main (int argc, char *argv[]) { # if __GLIBC__ >= 2
#else LIBC=gnu
int main (argc, argv) int argc; char *argv[]; { # else
#endif LIBC=gnulibc1
#ifdef __ELF__ # endif
# ifdef __GLIBC__ # else
# if __GLIBC__ >= 2 LIBC=gnulibc1
printf ("%s-pc-linux-gnu\n", argv[1]); # endif
# else #else
printf ("%s-pc-linux-gnulibc1\n", argv[1]); LIBC=gnuaout
# endif #endif
# else
printf ("%s-pc-linux-gnulibc1\n", argv[1]);
# endif
#else
printf ("%s-pc-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
EOF EOF
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c $dummy rm -f $dummy.c
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;; ;;
i*86:DYNIX/ptx:4*:*) i*86:DYNIX/ptx:4*:*)
+14 -1
View File
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc. # Free Software Foundation, Inc.
timestamp='2001-12-03' timestamp='2001-12-10'
# This file is (in principle) common to ALL GNU software. # This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software # The presence of a machine in this file suggests that SOME GNU software
@@ -419,6 +419,14 @@ case $basic_machine in
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec basic_machine=mips-dec
;; ;;
decsystem10* | dec10*)
basic_machine=pdp10-dec
os=-tops10
;;
decsystem20* | dec20*)
basic_machine=pdp10-dec
os=-tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \ delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola) | 3300-motorola | delta-motorola)
basic_machine=m68k-motorola basic_machine=m68k-motorola
@@ -882,6 +890,10 @@ case $basic_machine in
tx39el) tx39el)
basic_machine=mipstx39el-unknown basic_machine=mipstx39el-unknown
;; ;;
toad1)
basic_machine=pdp10-xkl
os=-tops20
;;
tower | tower-32) tower | tower-32)
basic_machine=m68k-ncr basic_machine=m68k-ncr
;; ;;
@@ -1210,6 +1222,7 @@ case $basic_machine in
arm*-semi) arm*-semi)
os=-aout os=-aout
;; ;;
# This must come before the *-dec entry.
pdp10-*) pdp10-*)
os=-tops20 os=-tops20
;; ;;
+1 -1
View File
@@ -1 +1 @@
1.30d 1.30f
Vendored
+10 -10
View File
@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.52g for GNU Bison 1.30f. # Generated by GNU Autoconf 2.52g for GNU Bison 1.30g.
# #
# Report bugs to <[email protected]>. # Report bugs to <[email protected]>.
# #
@@ -332,8 +332,8 @@ mandir='${prefix}/man'
# Identity of this package. # Identity of this package.
PACKAGE_NAME='GNU Bison' PACKAGE_NAME='GNU Bison'
PACKAGE_TARNAME='bison' PACKAGE_TARNAME='bison'
PACKAGE_VERSION='1.30f' PACKAGE_VERSION='1.30g'
PACKAGE_STRING='GNU Bison 1.30f' PACKAGE_STRING='GNU Bison 1.30g'
PACKAGE_BUGREPORT='[email protected]' PACKAGE_BUGREPORT='[email protected]'
ac_prev= ac_prev=
@@ -760,7 +760,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures GNU Bison 1.30f to adapt to many kinds of systems. \`configure' configures GNU Bison 1.30g to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -826,7 +826,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of GNU Bison 1.30f:";; short | recursive ) echo "Configuration of GNU Bison 1.30g:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@@ -921,7 +921,7 @@ fi
test -n "$ac_init_help" && exit 0 test -n "$ac_init_help" && exit 0
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
GNU Bison configure 1.30f GNU Bison configure 1.30g
generated by GNU Autoconf 2.52g generated by GNU Autoconf 2.52g
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
@@ -936,7 +936,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by GNU Bison $as_me 1.30f, which was It was created by GNU Bison $as_me 1.30g, which was
generated by GNU Autoconf 2.52g. Invocation command line was generated by GNU Autoconf 2.52g. Invocation command line was
$ $0 $@ $ $0 $@
@@ -1470,7 +1470,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE=bison PACKAGE=bison
VERSION=1.30f VERSION=1.30g
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
#define PACKAGE "$PACKAGE" #define PACKAGE "$PACKAGE"
@@ -9149,7 +9149,7 @@ _ASBOX
} >&5 } >&5
cat >&5 <<_CSEOF cat >&5 <<_CSEOF
This file was extended by GNU Bison $as_me 1.30f, which was This file was extended by GNU Bison $as_me 1.30g, which was
generated by GNU Autoconf 2.52g. Invocation command line was generated by GNU Autoconf 2.52g. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@@ -9211,7 +9211,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\ ac_cs_version="\\
GNU Bison config.status 1.30f GNU Bison config.status 1.30g
configured by $0, generated by GNU Autoconf 2.52g, configured by $0, generated by GNU Autoconf 2.52g,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+2 -2
View File
@@ -20,10 +20,10 @@
# We need a recent Autoconf to run a recent Autotest. # We need a recent Autoconf to run a recent Autotest.
AC_PREREQ(2.52g) AC_PREREQ(2.52g)
AC_INIT([GNU Bison], [1.30f], [[email protected]]) AC_INIT([GNU Bison], [1.30g], [[email protected]])
AC_CONFIG_AUX_DIR(config) AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE([bison], [1.30f]) AM_INIT_AUTOMAKE([bison], [1.30g])
AM_CONFIG_HEADER(config.h:config.hin) AM_CONFIG_HEADER(config.h:config.hin)
# Initialize the test suite. # Initialize the test suite.
+12 -5
View File
@@ -706,8 +706,9 @@ In some cases the Bison parser file includes system headers, and in
those cases your code should respect the identifiers reserved by those those cases your code should respect the identifiers reserved by those
headers. On some non-@sc{gnu} hosts, @code{<alloca.h>}, headers. On some non-@sc{gnu} hosts, @code{<alloca.h>},
@code{<stddef.h>}, and @code{<stdlib.h>} are included as needed to @code{<stddef.h>}, and @code{<stdlib.h>} are included as needed to
declare memory allocators and related types. On all hosts, declare memory allocators and related types. In the same situation,
@code{<stdio.h>} is included if you define @code{YYDEBUG} C++ parsers may include @code{<cstddef>} and @code{<cstdlib>} instead.
Other system headers may be included if you define @code{YYDEBUG}
(@pxref{Debugging, ,Debugging Your Parser}). (@pxref{Debugging, ,Debugging Your Parser}).
@node Stages @node Stages
@@ -4931,8 +4932,14 @@ YYDEBUG 1} in the C declarations section of the grammar file
you run Bison (@pxref{Invocation, ,Invoking Bison}). We always define @code{YYDEBUG} so that you run Bison (@pxref{Invocation, ,Invoking Bison}). We always define @code{YYDEBUG} so that
debugging is always possible. debugging is always possible.
The trace facility uses @code{stderr}, so you must add @w{@code{#include The trace facility outputs messages with macro calls of the form
<stdio.h>}} to the C declarations section unless it is already there. @code{YYFPRINTF (YYSTDERR, @var{format}, @var{args})} where
@var{format} and @var{args} are the usual @code{printf} format and
arguments. If you define @code{YYDEBUG} but do not define
@code{YYFPRINTF}, @code{<stdio.h>} is automatically included and the
macros are defined to @code{fprintf} and @code{stderr}. In the same
situation, C++ parsers include @code{<cstdio.h>} instead, and use
@code{std::fprintf} and @code{std::stderr}.
Once you have compiled the program with trace facilities, the way to Once you have compiled the program with trace facilities, the way to
request a trace is to store a nonzero value in the variable @code{yydebug}. request a trace is to store a nonzero value in the variable @code{yydebug}.
@@ -5011,7 +5018,7 @@ Here @var{infile} is the grammar file name, which usually ends in
@samp{.y}. The parser file's name is made by replacing the @samp{.y} @samp{.y}. The parser file's name is made by replacing the @samp{.y}
with @samp{.tab.c}. Thus, the @samp{bison foo.y} filename yields with @samp{.tab.c}. Thus, the @samp{bison foo.y} filename yields
@file{foo.tab.c}, and the @samp{bison hack/foo.y} filename yields @file{foo.tab.c}, and the @samp{bison hack/foo.y} filename yields
@file{hack/foo.tab.c}. It's is also possible, in case you are writting @file{hack/foo.tab.c}. It's is also possible, in case you are writing
C++ code instead of C in your grammar file, to name it @file{foo.ypp} C++ code instead of C in your grammar file, to name it @file{foo.ypp}
or @file{foo.y++}. Then, the output files will take an extention like or @file{foo.y++}. Then, the output files will take an extention like
the given one as input (repectively @file{foo.tab.cpp} and @file{foo.tab.c++}). the given one as input (repectively @file{foo.tab.cpp} and @file{foo.tab.c++}).
+4 -4
View File
@@ -1,4 +1,4 @@
@set UPDATED 30 November 2001 @set UPDATED 13 December 2001
@set UPDATED-MONTH November 2001 @set UPDATED-MONTH December 2001
@set EDITION 1.30f @set EDITION 1.30g
@set VERSION 1.30f @set VERSION 1.30g
+4 -4
View File
@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.25\n" "Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 1996-10-10 17:54 MET DST\n" "PO-Revision-Date: 1996-10-10 17:54 MET DST\n"
"Last-Translator: Ulrich Drepper <[email protected]>\n" "Last-Translator: Ulrich Drepper <[email protected]>\n"
"Language-Team: German <[email protected]>\n" "Language-Team: German <[email protected]>\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "" msgstr ""
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "" msgstr ""
@@ -220,7 +220,7 @@ msgstr "%s: keine Grammatik-Datei angegeben\n"
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n" msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "" msgstr ""
@@ -280,7 +280,7 @@ msgstr ""
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "%s: die Option »%s« erfordert ein Argument\n" msgstr "%s: die Option »%s« erfordert ein Argument\n"
#: src/output.c:949 #: src/output.c:951
#, fuzzy, c-format #, fuzzy, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "maximale Tabellengröße (%s) überschritten" msgstr "maximale Tabellengröße (%s) überschritten"
+4 -4
View File
@@ -30,7 +30,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU bison 1.25\n" "Project-Id-Version: GNU bison 1.25\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 1998-09-21 10:19+0200\n" "PO-Revision-Date: 1998-09-21 10:19+0200\n"
"Last-Translator: Nicolás García-Pedrajas <[email protected]>\n" "Last-Translator: Nicolás García-Pedrajas <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n" "Language-Team: Spanish <[email protected]>\n"
@@ -43,7 +43,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "" msgstr ""
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "" msgstr ""
@@ -281,7 +281,7 @@ msgstr "%s: no se ha especificado ning
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: los argumentos extra después de '%s' no se tendrán en cuenta\n" msgstr "%s: los argumentos extra después de '%s' no se tendrán en cuenta\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "" msgstr ""
@@ -348,7 +348,7 @@ msgstr "%s: la opci
# en inglés era así, pero quizás en español sea mejor como dices # en inglés era así, pero quizás en español sea mejor como dices
# ngp # ngp
# #
#: src/output.c:949 #: src/output.c:951
#, fuzzy, c-format #, fuzzy, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "excedido el tamaño máximo de la tabla (%s)" msgstr "excedido el tamaño máximo de la tabla (%s)"
+15 -45
View File
@@ -4,9 +4,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.30e\n" "Project-Id-Version: bison 1.30f\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-11-26 22:45+0200\n" "PO-Revision-Date: 2001-12-05 20:35+0200\n"
"Last-Translator: Toomas Soome <[email protected]>\n" "Last-Translator: Toomas Soome <[email protected]>\n"
"Language-Team: Estonian <[email protected]>\n" "Language-Team: Estonian <[email protected]>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "liiga palju olekuid (maks %d)" msgstr "liiga palju olekuid (maks %d)"
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "Tundmatu süsteemi viga" msgstr "Tundmatu süsteemi viga"
@@ -245,7 +245,7 @@ msgstr "%s: puudub grammatikafail\n"
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ignoreerin lisaargumente peale `%s'\n" msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "liiga palju gotosid (maks %d)" msgstr "liiga palju gotosid (maks %d)"
@@ -303,7 +303,7 @@ msgstr "`%s' ei toeta argumente: %s"
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "võti `%s' nõuab argumenti" msgstr "võti `%s' nõuab argumenti"
#: src/output.c:949 #: src/output.c:951
#, c-format #, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "ületati maksimaalset tabelisuurust (%d)" msgstr "ületati maksimaalset tabelisuurust (%d)"
@@ -642,26 +642,29 @@ msgid "Useless rules:"
msgstr "Kasutamata reeglid:" msgstr "Kasutamata reeglid:"
#: src/reduce.c:503 #: src/reduce.c:503
#, fuzzy, c-format #, c-format
msgid "%d rule never reduced\n" msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n" msgid_plural "%d rules never reduced\n"
msgstr[0] "%d reeglit ei redutseeritud\n" msgstr[0] "%d reegel ei redutseeru\n"
msgstr[1] "%d reeglit ei redutseeru\n"
#: src/reduce.c:511 #: src/reduce.c:511
#, fuzzy, c-format #, c-format
msgid "%d useless nonterminal" msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals" msgid_plural "%d useless nonterminals"
msgstr[0] "%d kasutamata mitteterminali%s" msgstr[0] "%d kasutamata mitteterminal"
msgstr[1] "%d kasutamata mitteterminali"
#: src/reduce.c:517 #: src/reduce.c:517
msgid " and " msgid " and "
msgstr " ja " msgstr " ja "
#: src/reduce.c:520 #: src/reduce.c:520
#, fuzzy, c-format #, c-format
msgid "%d useless rule" msgid "%d useless rule"
msgid_plural "%d useless rules" msgid_plural "%d useless rules"
msgstr[0] "%d kasutamata reeglit%s" msgstr[0] "%d kasutamata reegel"
msgstr[1] "%d kasutamata reeglit"
#: src/reduce.c:551 #: src/reduce.c:551
#, c-format #, c-format
@@ -754,36 +757,3 @@ msgstr "`"
#: lib/quotearg.c:275 #: lib/quotearg.c:275
msgid "'" msgid "'"
msgstr "'" msgstr "'"
#~ msgid "%s: internal error: %s\n"
#~ msgstr "%s: sisemine viga: %s\n"
#~ msgid ""
#~ "Variables\n"
#~ "---------\n"
#~ "\n"
#~ msgstr ""
#~ "Muutujad\n"
#~ "--------\n"
#~ "\n"
#~ msgid "Value Sprec Sassoc Tag\n"
#~ msgstr "Value Sprec Sassoc Tag\n"
#~ msgid ""
#~ "Rules\n"
#~ "-----\n"
#~ "\n"
#~ msgstr ""
#~ "Reeglid\n"
#~ "-------\n"
#~ "\n"
#~ msgid ""
#~ "Rules interpreted\n"
#~ "-----------------\n"
#~ "\n"
#~ msgstr ""
#~ "Interpreteeritud reeglid\n"
#~ "------------------------\n"
#~ "\n"
+15 -12
View File
@@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU bison 1.30e\n" "Project-Id-Version: GNU bison 1.30f\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-11-27 08:00-0500\n" "PO-Revision-Date: 2001-12-05 13:00-0500\n"
"Last-Translator: Michel Robitaille <[email protected]>\n" "Last-Translator: Michel Robitaille <[email protected]>\n"
"Language-Team: French <[email protected]>\n" "Language-Team: French <[email protected]>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -19,7 +19,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "nombre trop grand d'états (max %d)" msgstr "nombre trop grand d'états (max %d)"
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "Erreur système inconnue" msgstr "Erreur système inconnue"
@@ -248,7 +248,7 @@ msgstr "%s: grammaire manquante\n"
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: arguments supplémentaires ignorés après `%s'\n" msgstr "%s: arguments supplémentaires ignorés après `%s'\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "nombre trop grand de \"goto\" (Max %d)" msgstr "nombre trop grand de \"goto\" (Max %d)"
@@ -306,7 +306,7 @@ msgstr "`%s' ne supporte aucun argument: %s"
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "`%s': requiert un argument" msgstr "`%s': requiert un argument"
#: src/output.c:949 #: src/output.c:951
#, c-format #, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "taille maximale de la table (%d) dépassée" msgstr "taille maximale de la table (%d) dépassée"
@@ -646,26 +646,29 @@ msgid "Useless rules:"
msgstr "Règles inutiles:" msgstr "Règles inutiles:"
#: src/reduce.c:503 #: src/reduce.c:503
#, fuzzy, c-format #, c-format
msgid "%d rule never reduced\n" msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n" msgid_plural "%d rules never reduced\n"
msgstr[0] "%d règles jamais réduites\n" msgstr[0] "%d règle qui n'a jamais été réduite\n"
msgstr[1] "%d règles qui n'ont jamais été réduites\n"
#: src/reduce.c:511 #: src/reduce.c:511
#, fuzzy, c-format #, c-format
msgid "%d useless nonterminal" msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals" msgid_plural "%d useless nonterminals"
msgstr[0] "%d catégories non productives%s" msgstr[0] "%d nonterminal inutilisable"
msgstr[1] "%d nonterminals inutilisables"
#: src/reduce.c:517 #: src/reduce.c:517
msgid " and " msgid " and "
msgstr " et " msgstr " et "
#: src/reduce.c:520 #: src/reduce.c:520
#, fuzzy, c-format #, c-format
msgid "%d useless rule" msgid "%d useless rule"
msgid_plural "%d useless rules" msgid_plural "%d useless rules"
msgstr[0] "%d règle(s) non productive(s)%s" msgstr[0] "%d règle inutilisable"
msgstr[1] "%d règles inutilisables"
#: src/reduce.c:551 #: src/reduce.c:551
#, c-format #, c-format
+121 -127
View File
@@ -1,12 +1,12 @@
# Japanese message for GNU bison 1.28 # Japanese message for GNU bison 1.30f
# Copyright (C) 1999 Free Software Foundation, Inc. # Copyright (C) 2001 Free Software Foundation, Inc.
# Daisuke Yamashita <[email protected]>, 1999. # Daisuke Yamashita <[email protected]>, 2001.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: GNU bison 1.28\n" "Project-Id-Version: GNU bison 1.30f\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 1999-09-28 21:10+0900\n" "PO-Revision-Date: 2001-12-10 15:59+0900\n"
"Last-Translator: Daisuke Yamashita <[email protected]>\n" "Last-Translator: Daisuke Yamashita <[email protected]>\n"
"Language-Team: Japanese <[email protected]>\n" "Language-Team: Japanese <[email protected]>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -14,22 +14,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: src/LR0.c:189 #: src/LR0.c:189
#, fuzzy, c-format #, c-format
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "%s の数が多すぎます (最大 %d)" msgstr "状態が多すぎます (最大 %d)"
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "" msgstr "不明なシステムエラー"
#: src/complain.c:150 #: src/complain.c:150
msgid "warning: " msgid "warning: "
msgstr "" msgstr "警告: "
#: src/complain.c:238 #: src/complain.c:238
#, fuzzy
msgid "fatal error: " msgid "fatal error: "
msgstr "%s: 致命的エラー: " msgstr "致命的エラー: "
#: src/conflicts.c:44 #: src/conflicts.c:44
#, c-format #, c-format
@@ -49,26 +48,25 @@ msgid "an error"
msgstr "エラー" msgstr "エラー"
#: src/conflicts.c:302 #: src/conflicts.c:302
#, fuzzy, c-format #, c-format
msgid "%d shift/reduce conflict" msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts" msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d シフト/還元衝突" msgstr[0] "%d シフト/還元衝突"
#: src/conflicts.c:309 #: src/conflicts.c:309
#, fuzzy
msgid "and" msgid "and"
msgstr " および" msgstr "および"
#: src/conflicts.c:315 #: src/conflicts.c:315
#, fuzzy, c-format #, c-format
msgid "%d reduce/reduce conflict" msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts" msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d 還元/還元衝突" msgstr[0] "%d 還元/還元衝突"
#: src/conflicts.c:340 #: src/conflicts.c:340
#, fuzzy, c-format #, c-format
msgid "State %d contains " msgid "State %d contains "
msgstr "状態 %d が含むのは" msgstr "状態 %d が含むのは "
#. If invoked with `--yacc', use the output format specified by #. If invoked with `--yacc', use the output format specified by
#. POSIX. #. POSIX.
@@ -89,13 +87,13 @@ msgstr " %d
#: src/conflicts.c:398 src/reduce.c:508 #: src/conflicts.c:398 src/reduce.c:508
#, c-format #, c-format
msgid "%s contains " msgid "%s contains "
msgstr "%s は" msgstr "%s の中身は"
#: src/conflicts.c:405 #: src/conflicts.c:405
#, fuzzy, c-format #, c-format
msgid "expected %d shift/reduce conflict\n" msgid "expected %d shift/reduce conflict\n"
msgid_plural "expected %d shift/reduce conflicts\n" msgid_plural "expected %d shift/reduce conflicts\n"
msgstr[0] " %d シフト/還元衝突" msgstr[0] "本来 %d 個のシフト/還元衝突であるはずです\n"
#: src/conflicts.c:457 src/conflicts.c:534 #: src/conflicts.c:457 src/conflicts.c:534
#, c-format #, c-format
@@ -124,28 +122,30 @@ msgstr " $default\t
#: src/files.c:144 #: src/files.c:144
#, c-format #, c-format
msgid "cannot open file `%s'" msgid "cannot open file `%s'"
msgstr "" msgstr "ファイル `%s' を開けません"
#: src/files.c:163 #: src/files.c:163
msgid "cannot close file" msgid "cannot close file"
msgstr "" msgstr "ファイルを閉じることができません"
#. Some efforts were made to ease the translators' task, please #. Some efforts were made to ease the translators' task, please
#. continue. #. continue.
#: src/getargs.c:84 #: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n" msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "" msgstr "GNU bison は LALR(1) 文法の構文解析器を生成します。\n"
#: src/getargs.c:88 #: src/getargs.c:88
#, c-format #, c-format
msgid "Usage: %s [OPTION]... FILE\n" msgid "Usage: %s [OPTION]... FILE\n"
msgstr "" msgstr "使い方: %s [オプション]... ファイル\n"
#: src/getargs.c:92 #: src/getargs.c:92
msgid "" msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n" "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" "for the equivalent short option also. Similarly for optional arguments.\n"
msgstr "" msgstr ""
"ロングオプションで必須の引数が示されていれば、同じ意味のショートオプション\n"
"でも同様に必須の引数となります。必須でない選択的引数でも同様です。\n"
#: src/getargs.c:98 #: src/getargs.c:98
msgid "" msgid ""
@@ -154,6 +154,10 @@ msgid ""
" -V, --version output version information and exit\n" " -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n" " -y, --yacc emulate POSIX yacc\n"
msgstr "" msgstr ""
"操作モード:\n"
" -h, --help この使い方を表示して終了する\n"
" -V, --version バージョン情報を表示して終了する\n"
" -y, --yacc POSIX yacc をエミュレイトする\n"
#: src/getargs.c:105 #: src/getargs.c:105
msgid "" msgid ""
@@ -166,6 +170,14 @@ msgid ""
" -n, --no-parser generate the tables only\n" " -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n" " -k, --token-table include a table of token names\n"
msgstr "" msgstr ""
"構文解析器:\n"
" -S, --skeleton=FILE 利用するスケルトンを指定する\n"
" -t, --debug 構文解析のデバッグ用の手段\n"
" --locations 計算結果位置を有効にする\n"
" -p, --name-prefix=PREFIX PREFIX を外部シンボルとして先頭に挿入する\n"
" -l, --no-lines `#line' ディレクティブを生成しない\n"
" -n, --no-parser テーブルのみを生成する\n"
" -k, --token-table トークン名のテーブルを含める\n"
#: src/getargs.c:117 #: src/getargs.c:117
msgid "" msgid ""
@@ -177,38 +189,50 @@ msgid ""
" -g, --graph also produce a VCG description of the " " -g, --graph also produce a VCG description of the "
"automaton\n" "automaton\n"
msgstr "" msgstr ""
"出力:\n"
" -d, --defines ヘッダファイルも作成する\n"
" -v, --verbose オートマトンの解説も作成する\n"
" -b, --file-prefix=PREFIX 出力ファイルの PREFIX(接頭辞) を指定する\n"
" -o, --output=FILE 出力先を FILE とする\n"
" -g, --graph オートマトンの VCG 記述子も作成する\n"
#: src/getargs.c:127 #: src/getargs.c:127
msgid "Report bugs to <[email protected]>.\n" msgid "Report bugs to <[email protected]>.\n"
msgstr "" msgstr "バグレポートは <[email protected]> まで。\n"
#. Some efforts were made to ease the translators' task, please #. Some efforts were made to ease the translators' task, please
#. continue. #. continue.
#: src/getargs.c:141 #: src/getargs.c:141
#, c-format #, c-format
msgid "bison (GNU Bison) %s" msgid "bison (GNU Bison) %s"
msgstr "" msgstr "bison (GNU Bison) %s"
#: src/getargs.c:146 #: src/getargs.c:146
msgid "" msgid ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n" "Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
msgstr "" msgstr ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
#: src/getargs.c:150 #: src/getargs.c:150
msgid "" msgid ""
"This is free software; see the source for copying conditions. There is NO\n" "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" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""
"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"
"[参考訳 -- 法的効力は英文が適用されます]\n"
"これはフリーソフトウェアです -- 複製についての条件はソースを見ましょう。\n"
"一切の保証はありません -- 商業性や目的適合性についての保証すらありません。\n"
#: src/getargs.c:215 src/lex.c:694 #: src/getargs.c:215 src/lex.c:694
#, c-format #, c-format
msgid "`%s' is no longer supported" msgid "`%s' is no longer supported"
msgstr "" msgstr "`%s' は最早サポートされません"
#: src/getargs.c:239 #: src/getargs.c:239
#, c-format #, c-format
msgid "Try `%s --help' for more information.\n" msgid "Try `%s --help' for more information.\n"
msgstr "" msgstr "`%s --help' で詳細情報を参照してください\n"
#: src/getargs.c:246 #: src/getargs.c:246
#, c-format #, c-format
@@ -216,14 +240,14 @@ msgid "%s: no grammar file given\n"
msgstr "%s: 文法ファイルが指定されていません\n" msgstr "%s: 文法ファイルが指定されていません\n"
#: src/getargs.c:250 #: src/getargs.c:250
#, fuzzy, c-format #, c-format
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' より後ろの余分な引数は無視されました\n" msgstr "%s: `%s' 後ろの余分な引数は無視されました\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, fuzzy, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "%s の数が多すぎます (最大 %d)" msgstr "goto の数が多すぎます (最大 %d)"
#: src/lex.c:76 #: src/lex.c:76
msgid "unexpected `/' found and ignored" msgid "unexpected `/' found and ignored"
@@ -234,7 +258,6 @@ msgid "unterminated comment"
msgstr "閉じていないコメントです" msgstr "閉じていないコメントです"
#: src/lex.c:137 #: src/lex.c:137
#, fuzzy
msgid "unexpected end of file" msgid "unexpected end of file"
msgstr "予期しないファイルの終端です" msgstr "予期しないファイルの終端です"
@@ -272,17 +295,17 @@ msgstr "ʣ
#: src/lex.c:667 #: src/lex.c:667
#, c-format #, c-format
msgid "`%s' supports no argument: %s" msgid "`%s' supports no argument: %s"
msgstr "" msgstr "`%s' は引数を受け付けません: %s"
#: src/lex.c:683 #: src/lex.c:683
#, fuzzy, c-format #, c-format
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "%s: オプション `%s' は引数を要求します\n" msgstr "`%s' オプションは引数を要求します"
#: src/output.c:949 #: src/output.c:951
#, fuzzy, c-format #, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "最大テーブルサイズ (%s) を超えました" msgstr "最大テーブルサイズ (%d) を超えました"
#: src/print.c:39 #: src/print.c:39
#, c-format #, c-format
@@ -323,51 +346,36 @@ msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\t状態 %d へ\n" msgstr " %-4s\t状態 %d へ\n"
#: src/print.c:180 #: src/print.c:180
#, fuzzy, c-format #, c-format
msgid "state %d" msgid "state %d"
msgstr "" msgstr "状態 %d"
"\n"
"\n"
"状態 %d\n"
"\n"
#. rule # : LHS -> RHS #. rule # : LHS -> RHS
#: src/print.c:211 #: src/print.c:211
#, fuzzy
msgid "Grammar" msgid "Grammar"
msgstr "" msgstr "文法"
"\n"
"文法\n"
#: src/print.c:212 #: src/print.c:212
msgid "Number, Line, Rule" msgid "Number, Line, Rule"
msgstr "" msgstr "番号, 行, 規則"
#: src/print.c:217 #: src/print.c:217
#, fuzzy, c-format #, c-format
msgid " %3d %3d %s ->" msgid " %3d %3d %s ->"
msgstr "規則 %-4d %s ->" msgstr " %3d %3d %s ->"
#: src/print.c:224 #: src/print.c:224
msgid "empty" msgid "empty"
msgstr "" msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS #. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:231 #: src/print.c:231
#, fuzzy
msgid "Terminals, with rules where they appear" msgid "Terminals, with rules where they appear"
msgstr "" msgstr "出現位置の規則による終端"
"\n"
"終端トークン、およびそこに現れた規則\n"
"\n"
#: src/print.c:256 #: src/print.c:256
#, fuzzy
msgid "Nonterminals, with rules where they appear" msgid "Nonterminals, with rules where they appear"
msgstr "" msgstr "出現位置の規則による非終端"
"\n"
"非終端トークン、およびそこに現れた規則\n"
"\n"
#: src/print.c:282 #: src/print.c:282
msgid " on left:" msgid " on left:"
@@ -383,18 +391,18 @@ msgstr "
#. obstack_sgrow (node_obstack, "\n"); #. obstack_sgrow (node_obstack, "\n");
#. #.
#: src/print_graph.c:146 #: src/print_graph.c:146
#, fuzzy, c-format #, c-format
msgid "%-4s\terror (nonassociative)" msgid "%-4s\terror (nonassociative)"
msgstr " %-4s\tエラー (非結合)\n" msgstr "%-4s\tエラー (非結合)"
#. #.
#. if (obstack_object_size (node_obstack) > node_output_size) #. if (obstack_object_size (node_obstack) > node_output_size)
#. obstack_sgrow (node_obstack, "\n"); #. obstack_sgrow (node_obstack, "\n");
#. #.
#: src/print_graph.c:161 #: src/print_graph.c:161
#, fuzzy, c-format #, c-format
msgid "$default\treduce using rule %d (%s)" msgid "$default\treduce using rule %d (%s)"
msgstr " $default\t規則 %d を利用して還元 (%s)\n" msgstr "$default\t規則 %d を利用して還元 (%s)"
#: src/reader.c:89 #: src/reader.c:89
msgid " Skipping to next \\n" msgid " Skipping to next \\n"
@@ -407,7 +415,7 @@ msgstr "
#: src/reader.c:142 src/reader.c:154 #: src/reader.c:142 src/reader.c:154
msgid "invalid $ value" msgid "invalid $ value"
msgstr "無効な $ の値" msgstr "不適切な $ の値"
#: src/reader.c:180 src/reader.c:195 #: src/reader.c:180 src/reader.c:195
msgid "unterminated string at end of file" msgid "unterminated string at end of file"
@@ -418,9 +426,9 @@ msgid "unterminated string"
msgstr "閉じられていない文字列" msgstr "閉じられていない文字列"
#: src/reader.c:336 src/reader.c:400 #: src/reader.c:336 src/reader.c:400
#, fuzzy, c-format #, c-format
msgid "%s is invalid" msgid "%s is invalid"
msgstr "@%s は無効です" msgstr "%s は不適切です"
#: src/reader.c:376 #: src/reader.c:376
#, c-format #, c-format
@@ -428,9 +436,9 @@ msgid "$$ of `%s' has no declared type"
msgstr "`%s' の $$ に宣言のない型があります" msgstr "`%s' の $$ に宣言のない型があります"
#: src/reader.c:393 #: src/reader.c:393
#, fuzzy, c-format #, c-format
msgid "$%d of `%s' has no declared type" msgid "$%d of `%s' has no declared type"
msgstr "`%s' $%s に宣言のない型があります" msgstr "$%d 個`%s' が宣言された型を持っていません"
#: src/reader.c:447 #: src/reader.c:447
msgid "unterminated `%{' definition" msgid "unterminated `%{' definition"
@@ -439,17 +447,17 @@ msgstr "`%{'
#: src/reader.c:492 src/reader.c:607 src/reader.c:657 #: src/reader.c:492 src/reader.c:607 src/reader.c:657
#, c-format #, c-format
msgid "Premature EOF after %s" msgid "Premature EOF after %s"
msgstr "" msgstr "%s の後ろに早くも EOF があります"
#: src/reader.c:509 #: src/reader.c:509
#, c-format #, c-format
msgid "symbol `%s' used more than once as a literal string" msgid "symbol `%s' used more than once as a literal string"
msgstr "" msgstr "シンボル `%s' はリテラル文字列として複数回使われました"
#: src/reader.c:512 #: src/reader.c:512
#, c-format #, c-format
msgid "symbol `%s' given more than one literal string" msgid "symbol `%s' given more than one literal string"
msgstr "" msgstr "シンボル `%s' は複数のリテラル文字列が与えられました"
#: src/reader.c:533 src/reader.c:676 #: src/reader.c:533 src/reader.c:676
#, c-format #, c-format
@@ -464,26 +472,26 @@ msgstr "%s
#: src/reader.c:552 #: src/reader.c:552
#, c-format #, c-format
msgid "`%s' is invalid in %s" msgid "`%s' is invalid in %s"
msgstr "%2$s 内の `%1$s' は無効です" msgstr "`%s' は %s 内では不適切です"
#: src/reader.c:570 src/reader.c:735 #: src/reader.c:570 src/reader.c:735
#, fuzzy, c-format #, c-format
msgid "multiple %s declarations" msgid "multiple %s declarations"
msgstr "複数の %start が宣言されました" msgstr "%s が複数個宣言されました"
#: src/reader.c:572 src/reader.c:914 src/reader.c:939 src/reader.c:1270 #: src/reader.c:572 src/reader.c:914 src/reader.c:939 src/reader.c:1270
#, fuzzy, c-format #, c-format
msgid "invalid %s declaration" msgid "invalid %s declaration"
msgstr "無効な %start が宣言されました" msgstr "%s の宣言が不適切です"
#: src/reader.c:592 #: src/reader.c:592
msgid "%type declaration has no <typename>" msgid "%type declaration has no <typename>"
msgstr "%type 宣言に <タイプ名> がありません" msgstr "%type 宣言に <タイプ名> がありません"
#: src/reader.c:627 #: src/reader.c:627
#, fuzzy, c-format #, c-format
msgid "invalid %%type declaration due to item: %s" msgid "invalid %%type declaration due to item: %s"
msgstr "アイテムに与えられるべき %%type 宣言が無効です: `%s'" msgstr "アイテムの為の %%type 宣言が不適切です: %s"
#: src/reader.c:672 #: src/reader.c:672
#, c-format #, c-format
@@ -493,7 +501,7 @@ msgstr "%s
#: src/reader.c:695 #: src/reader.c:695
#, c-format #, c-format
msgid "invalid text (%s) - number should be after identifier" msgid "invalid text (%s) - number should be after identifier"
msgstr "無効なテキスト (%s) - 数値は識別子の後ろにあるべきです" msgstr "不適切なテキスト (%s) - 数値は識別子の後ろにあるべきです"
#: src/reader.c:705 #: src/reader.c:705
#, c-format #, c-format
@@ -501,14 +509,14 @@ msgid "unexpected item: %s"
msgstr "予期せぬアイテム: %s" msgstr "予期せぬアイテム: %s"
#: src/reader.c:778 src/reader.c:1110 src/reader.c:1181 #: src/reader.c:778 src/reader.c:1110 src/reader.c:1181
#, fuzzy, c-format #, c-format
msgid "unmatched %s" msgid "unmatched %s"
msgstr "対応のない `{' です" msgstr "対応のない %s です"
#: src/reader.c:810 #: src/reader.c:810
#, fuzzy, c-format #, c-format
msgid "argument of %%expect is not an integer" msgid "argument of %%expect is not an integer"
msgstr "%expect の引数が整数値ではありません" msgstr "%%expect の引数が整数値ではありません"
#: src/reader.c:856 #: src/reader.c:856
#, c-format #, c-format
@@ -535,9 +543,9 @@ msgid "unknown character: %s"
msgstr "未知の文字: %s" msgstr "未知の文字: %s"
#: src/reader.c:1204 #: src/reader.c:1204
#, fuzzy, c-format #, c-format
msgid "unterminated %guard clause" msgid "unterminated %guard clause"
msgstr "閉じられていない %%guard 節です" msgstr "%guard 節が閉じられていません"
#: src/reader.c:1357 #: src/reader.c:1357
msgid "ill-formed rule: initial symbol not followed by colon" msgid "ill-formed rule: initial symbol not followed by colon"
@@ -577,12 +585,12 @@ msgstr "
#: src/reader.c:1573 #: src/reader.c:1573
#, c-format #, c-format
msgid "invalid input: %s" msgid "invalid input: %s"
msgstr "無効な入力: %s" msgstr "不適切な入力: %s"
#: src/reader.c:1581 #: src/reader.c:1581
#, fuzzy, c-format #, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d" msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "シンボルが多すぎます (トークン非終端アイテム) -- 最大 %s" msgstr "シンボルが多すぎます (トークン + 非終端アイテム) -- 最大 %d"
#: src/reader.c:1584 #: src/reader.c:1584
msgid "no rules in the input grammar" msgid "no rules in the input grammar"
@@ -596,9 +604,9 @@ msgstr ""
"せん" "せん"
#: src/reader.c:1743 #: src/reader.c:1743
#, fuzzy, c-format #, c-format
msgid "tokens %s and %s both assigned number %d" msgid "tokens %s and %s both assigned number %d"
msgstr "トークン %s と %s の双方が番号 %s に割り当てられました" msgstr "トークン %s と %s の双方が番号 %d に割り当てられました"
#: src/reader.c:1796 #: src/reader.c:1796
#, c-format #, c-format
@@ -621,51 +629,38 @@ msgid "the start symbol %s is a token"
msgstr "開始シンボル %s はトークンです" msgstr "開始シンボル %s はトークンです"
#: src/reduce.c:409 #: src/reduce.c:409
#, fuzzy
msgid "Useless nonterminals:" msgid "Useless nonterminals:"
msgstr "" msgstr "無意味な非終端子:"
"不使用非終端子:\n"
"\n"
#: src/reduce.c:422 #: src/reduce.c:422
#, fuzzy
msgid "Terminals which are not used:" msgid "Terminals which are not used:"
msgstr "" msgstr "利用されない終端子:"
"\n"
"\n"
"利用されない終端子:\n"
"\n"
#: src/reduce.c:433 #: src/reduce.c:433
#, fuzzy
msgid "Useless rules:" msgid "Useless rules:"
msgstr "" msgstr "無意味な規則:"
"\n"
"\n"
"不使用規則:\n"
"\n"
#: src/reduce.c:503 #: src/reduce.c:503
#, fuzzy, c-format #, c-format
msgid "%d rule never reduced\n" msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n" msgid_plural "%d rules never reduced\n"
msgstr[0] "%d 個の規則は決して還元されません\n" msgstr[0] "%d 個の規則は決して還元されません\n"
#: src/reduce.c:511 #: src/reduce.c:511
#, fuzzy, c-format #, c-format
msgid "%d useless nonterminal" msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals" msgid_plural "%d useless nonterminals"
msgstr[0] "%d 個の不使用非終端子%.0s" msgstr[0] "%d 個の無意味な非終端子"
#: src/reduce.c:517 #: src/reduce.c:517
msgid " and " msgid " and "
msgstr "および" msgstr "および"
#: src/reduce.c:520 #: src/reduce.c:520
#, fuzzy, c-format #, c-format
msgid "%d useless rule" msgid "%d useless rule"
msgid_plural "%d useless rules" msgid_plural "%d useless rules"
msgstr[0] "%d 個の不使用規則%.0s" msgstr[0] "%d 個の無意味な規則"
#: src/reduce.c:551 #: src/reduce.c:551
#, c-format #, c-format
@@ -713,7 +708,7 @@ msgstr "%s:
#: lib/getopt.c:804 #: lib/getopt.c:804
#, c-format #, c-format
msgid "%s: invalid option -- %c\n" msgid "%s: invalid option -- %c\n"
msgstr "%s: 無効なオプション -- %c\n" msgstr "%s: 不適切なオプション -- %c\n"
#. 1003.2 specifies the format of this message. #. 1003.2 specifies the format of this message.
#: lib/getopt.c:834 lib/getopt.c:964 #: lib/getopt.c:834 lib/getopt.c:964
@@ -734,9 +729,8 @@ msgstr "%s:
#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message #. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
#. before exiting when memory is exhausted. Goes through gettext. #. before exiting when memory is exhausted. Goes through gettext.
#: lib/obstack.c:494 lib/obstack.c:497 lib/xmalloc.c:66 #: lib/obstack.c:494 lib/obstack.c:497 lib/xmalloc.c:66
#, fuzzy
msgid "memory exhausted" msgid "memory exhausted"
msgstr "%s: メモリを使い果たしました\n" msgstr "メモリを使い果たしました"
#. Get translations for open and closing quotation marks. #. Get translations for open and closing quotation marks.
#. #.
@@ -754,11 +748,11 @@ msgstr "%s:
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:274 #: lib/quotearg.c:274
msgid "`" msgid "`"
msgstr "" msgstr "`"
#: lib/quotearg.c:275 #: lib/quotearg.c:275
msgid "'" msgid "'"
msgstr "" msgstr "'"
#~ msgid "" #~ msgid ""
#~ "\n" #~ "\n"
@@ -887,10 +881,10 @@ msgstr ""
#~ msgstr "対応のない右ブレース (`}') です" #~ msgstr "対応のない右ブレース (`}') です"
#~ msgid "$%s is invalid" #~ msgid "$%s is invalid"
#~ msgstr "$%s は無効です" #~ msgstr "$%s は不適切です"
#~ msgid "invalid @-construct" #~ msgid "invalid @-construct"
#~ msgstr "無効な @-コンストラクトです" #~ msgstr "不適切な @-コンストラクトです"
#~ msgid "ill-formed %type declaration" #~ msgid "ill-formed %type declaration"
#~ msgstr "邪悪な %type 宣言です" #~ msgstr "邪悪な %type 宣言です"
+4 -4
View File
@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.25\n" "Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 1996-08-27 15:34 MET DST\n" "PO-Revision-Date: 1996-08-27 15:34 MET DST\n"
"Last-Translator: Erick Branderhorst <[email protected]>\n" "Last-Translator: Erick Branderhorst <[email protected]>\n"
"Language-Team: Dutch <[email protected]>\n" "Language-Team: Dutch <[email protected]>\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "" msgstr ""
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "" msgstr ""
@@ -220,7 +220,7 @@ msgstr "%s: geen grammatica bestand gegeven\n"
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argumenten genegeerd na '%s'\n" msgstr "%s: extra argumenten genegeerd na '%s'\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "" msgstr ""
@@ -279,7 +279,7 @@ msgstr ""
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "%s: optie `%s' vereist een argument\n" msgstr "%s: optie `%s' vereist een argument\n"
#: src/output.c:949 #: src/output.c:951
#, fuzzy, c-format #, fuzzy, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "maximale tabel grootte (%s) overschreden" msgstr "maximale tabel grootte (%s) overschreden"
+4 -4
View File
@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.29\n" "Project-Id-Version: bison 1.29\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-09-09 13:49+04:00\n" "PO-Revision-Date: 2001-09-09 13:49+04:00\n"
"Last-Translator: Dmitry S. Sivachenko <[email protected]>\n" "Last-Translator: Dmitry S. Sivachenko <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n" "Language-Team: Russian <[email protected]>\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÏÓÔÏÑÎÉÊ (ÍÁËÓÉÍÁÌØÎÏ %d)" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÏÓÔÏÑÎÉÊ (ÍÁËÓÉÍÁÌØÎÏ %d)"
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ" msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ"
@@ -249,7 +249,7 @@ msgstr "%s:
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n" msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)"
@@ -307,7 +307,7 @@ msgstr ""
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n" msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n"
#: src/output.c:949 #: src/output.c:951
#, c-format #, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)" msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
+15 -48
View File
@@ -5,9 +5,9 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.30e\n" "Project-Id-Version: bison 1.30f\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-11-27 11:16+0100\n" "PO-Revision-Date: 2001-12-06 22:33+0100\n"
"Last-Translator: Göran Uddeborg <[email protected]>\n" "Last-Translator: Göran Uddeborg <[email protected]>\n"
"Language-Team: Swedish <[email protected]>\n" "Language-Team: Swedish <[email protected]>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "för många tillstånd (max %d)" msgstr "för många tillstånd (max %d)"
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "Okänt systemfel" msgstr "Okänt systemfel"
@@ -251,7 +251,7 @@ msgstr "%s: ingen grammatikfil angiven\n"
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argument ignorerade efter \"%s\"\n" msgstr "%s: extra argument ignorerade efter \"%s\"\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "för många goto (max %d)" msgstr "för många goto (max %d)"
@@ -309,7 +309,7 @@ msgstr "\"%s\" st
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "\"%s\" behöver ett argument" msgstr "\"%s\" behöver ett argument"
#: src/output.c:949 #: src/output.c:951
#, c-format #, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "maximal tabellstorlek (%d) överskriden" msgstr "maximal tabellstorlek (%d) överskriden"
@@ -648,29 +648,29 @@ msgid "Useless rules:"
msgstr "Oanvändbara regler:" msgstr "Oanvändbara regler:"
#: src/reduce.c:503 #: src/reduce.c:503
#, fuzzy, c-format #, c-format
msgid "%d rule never reduced\n" msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n" msgid_plural "%d rules never reduced\n"
msgstr[0] "%d regler reduceras aldrig\n" msgstr[0] "%d regel reduceras aldrig\n"
msgstr[1] "%d regler reduceras aldrig\n"
# Jag har anmält att det är fel att anta att "s" är en universell pluraländelse.
# Jag föreslog också att de använder ngettext istället.
# "Vad göras skall är redan gjort."
#: src/reduce.c:511 #: src/reduce.c:511
#, fuzzy, c-format #, c-format
msgid "%d useless nonterminal" msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals" msgid_plural "%d useless nonterminals"
msgstr[0] "%d oanvändbara icketerminaler%.0s" msgstr[0] "%d oanvändbar icketerminal"
msgstr[1] "%d oanvändbara icketerminaler"
#: src/reduce.c:517 #: src/reduce.c:517
msgid " and " msgid " and "
msgstr " och " msgstr " och "
#: src/reduce.c:520 #: src/reduce.c:520
#, fuzzy, c-format #, c-format
msgid "%d useless rule" msgid "%d useless rule"
msgid_plural "%d useless rules" msgid_plural "%d useless rules"
msgstr[0] "%d oanvändbara regler%.0s" msgstr[0] "%d oanvändbar regel"
msgstr[1] "%d oanvändbara regler"
#: src/reduce.c:551 #: src/reduce.c:551
#, c-format #, c-format
@@ -766,36 +766,3 @@ msgstr "\""
#: lib/quotearg.c:275 #: lib/quotearg.c:275
msgid "'" msgid "'"
msgstr "\"" msgstr "\""
#~ msgid "%s: internal error: %s\n"
#~ msgstr "%s: internt fel: %s\n"
#~ msgid ""
#~ "Variables\n"
#~ "---------\n"
#~ "\n"
#~ msgstr ""
#~ "Variabler\n"
#~ "---------\n"
#~ "\n"
#~ msgid "Value Sprec Sassoc Tag\n"
#~ msgstr "Värde Sprec Sassoc Tagg\n"
#~ msgid ""
#~ "Rules\n"
#~ "-----\n"
#~ "\n"
#~ msgstr ""
#~ "Regler\n"
#~ "------\n"
#~ "\n"
#~ msgid ""
#~ "Rules interpreted\n"
#~ "-----------------\n"
#~ "\n"
#~ msgstr ""
#~ "Tolkade regler\n"
#~ "--------------\n"
#~ "\n"
+18 -48
View File
@@ -4,10 +4,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bison 1.30e\n" "Project-Id-Version: bison 1.30f\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n" "POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-11-27 11:37GMT+2\n" "PO-Revision-Date: 2001-12-06 12:09+300\n"
"Last-Translator: Altuð Bayram <[email protected]>\n" "Last-Translator: Altug Bayram <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n" "Language-Team: Turkish <[email protected]>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-9\n" "Content-Type: text/plain; charset=ISO-8859-9\n"
@@ -19,7 +19,7 @@ msgstr ""
msgid "too many states (max %d)" msgid "too many states (max %d)"
msgstr "çok fazla durum (en fazla %d)" msgstr "çok fazla durum (en fazla %d)"
#: lib/error.c:128 lib/error.c:156 src/complain.c:96 #: lib/error.c:128 lib/error.c:156 src/complain.c:99
msgid "Unknown system error" msgid "Unknown system error"
msgstr "Bilinmeyen sistem hatasý" msgstr "Bilinmeyen sistem hatasý"
@@ -82,7 +82,7 @@ msgstr "
#: src/conflicts.c:389 #: src/conflicts.c:389
#, c-format #, c-format
msgid " %d shift/reduce" msgid " %d shift/reduce"
msgstr " %d öteleme/indirgeme" msgstr " %d shift/reduce"
#: src/conflicts.c:393 #: src/conflicts.c:393
#, c-format #, c-format
@@ -197,7 +197,7 @@ msgid ""
" -g, --graph also produce a VCG description of the " " -g, --graph also produce a VCG description of the "
"automaton\n" "automaton\n"
msgstr "" msgstr ""
"Output:\n" "Çýktý:\n"
" -d, --defines bir baþlýk dosyasý da üretir\n" " -d, --defines bir baþlýk dosyasý da üretir\n"
" -v, --verbose otomatýn bir açýklamasýný da üretir\n" " -v, --verbose otomatýn bir açýklamasýný da üretir\n"
" -b, --file-prefix=PREFIX çýktý dosyalarý için bir ÖNEK belirtir\n" " -b, --file-prefix=PREFIX çýktý dosyalarý için bir ÖNEK belirtir\n"
@@ -253,7 +253,7 @@ msgstr "%s: gramer dosyas
msgid "%s: extra arguments ignored after `%s'\n" msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n" msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n"
#: src/lalr.c:255 #: src/lalr.c:256
#, c-format #, c-format
msgid "too many gotos (max %d)" msgid "too many gotos (max %d)"
msgstr "gotos çok fazla (en fazla %d)" msgstr "gotos çok fazla (en fazla %d)"
@@ -311,7 +311,7 @@ msgstr "`%s' arg
msgid "`%s' requires an argument" msgid "`%s' requires an argument"
msgstr "`%s' bir argüman gerektirir" msgstr "`%s' bir argüman gerektirir"
#: src/output.c:949 #: src/output.c:951
#, c-format #, c-format
msgid "maximum table size (%d) exceeded" msgid "maximum table size (%d) exceeded"
msgstr "en büyük tablo uzunluðu (%d) aþýldý" msgstr "en büyük tablo uzunluðu (%d) aþýldý"
@@ -447,7 +447,7 @@ msgstr "`%s''in $$'
#: src/reader.c:393 #: src/reader.c:393
#, c-format #, c-format
msgid "$%d of `%s' has no declared type" msgid "$%d of `%s' has no declared type"
msgstr "`%d''in $%s'i bildirilmiþ tip deðil" msgstr "`%2$s''in %1$d'i bildirilmiþ tip deðil"
#: src/reader.c:447 #: src/reader.c:447
msgid "unterminated `%{' definition" msgid "unterminated `%{' definition"
@@ -650,26 +650,29 @@ msgid "Useless rules:"
msgstr "Yararsýz kurallar:" msgstr "Yararsýz kurallar:"
#: src/reduce.c:503 #: src/reduce.c:503
#, fuzzy, c-format #, c-format
msgid "%d rule never reduced\n" msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n" msgid_plural "%d rules never reduced\n"
msgstr[0] "%d kural asla indirgenmedi\n" msgstr[0] "%d kural asla indirgenmedi\n"
msgstr[1] "%d kural asla indirgenmedi\n"
#: src/reduce.c:511 #: src/reduce.c:511
#, fuzzy, c-format #, c-format
msgid "%d useless nonterminal" msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals" msgid_plural "%d useless nonterminals"
msgstr[0] "%d yararsýz deðiþken simge%s" msgstr[0] "%d yararsýz deðiþken simge"
msgstr[1] "%d yararsýz deðiþken simge%s"
#: src/reduce.c:517 #: src/reduce.c:517
msgid " and " msgid " and "
msgstr " ve " msgstr " ve "
#: src/reduce.c:520 #: src/reduce.c:520
#, fuzzy, c-format #, c-format
msgid "%d useless rule" msgid "%d useless rule"
msgid_plural "%d useless rules" msgid_plural "%d useless rules"
msgstr[0] "%d yararsýz kural%s" msgstr[0] "%d yararsýz kural"
msgstr[1] "%d yararsýz kural%s"
#: src/reduce.c:551 #: src/reduce.c:551
#, c-format #, c-format
@@ -762,36 +765,3 @@ msgstr "`"
#: lib/quotearg.c:275 #: lib/quotearg.c:275
msgid "'" msgid "'"
msgstr "'" msgstr "'"
#~ msgid "%s: internal error: %s\n"
#~ msgstr "%s: iç hata: %s\n"
#~ msgid ""
#~ "Variables\n"
#~ "---------\n"
#~ "\n"
#~ msgstr ""
#~ "Deðiþkenler\n"
#~ "-----------\n"
#~ "\n"
#~ msgid "Value Sprec Sassoc Tag\n"
#~ msgstr "Deðer Söncel Sbirleþ Etiket\n"
#~ msgid ""
#~ "Rules\n"
#~ "-----\n"
#~ "\n"
#~ msgstr ""
#~ "Kurallar\n"
#~ "--------\n"
#~ "\n"
#~ msgid ""
#~ "Rules interpreted\n"
#~ "-----------------\n"
#~ "\n"
#~ msgstr ""
#~ "Kurallar yorumlandý\n"
#~ "-------------------\n"
#~ "\n"
+2 -2
View File
@@ -28,8 +28,8 @@ CFLAGS = @CFLAGS@ $(WARNING_CFLAGS)
# config.h in build/. # config.h in build/.
INCLUDES = -I$(top_builddir)/intl \ INCLUDES = -I$(top_builddir)/intl \
-I$(top_builddir) \ -I$(top_builddir) \
-I$(top_srcdir)/lib \ -I$(top_srcdir)/intl \
-I$(top_srcdir) -I$(top_srcdir)/lib
LDADD = $(INTLLIBS) ../lib/libbison.a LDADD = $(INTLLIBS) ../lib/libbison.a
+2 -2
View File
@@ -115,8 +115,8 @@ CFLAGS = @CFLAGS@ $(WARNING_CFLAGS)
# config.h in build/. # config.h in build/.
INCLUDES = -I$(top_builddir)/intl \ INCLUDES = -I$(top_builddir)/intl \
-I$(top_builddir) \ -I$(top_builddir) \
-I$(top_srcdir)/lib \ -I$(top_srcdir)/intl \
-I$(top_srcdir) -I$(top_srcdir)/lib
LDADD = $(INTLLIBS) ../lib/libbison.a LDADD = $(INTLLIBS) ../lib/libbison.a
+60 -32
View File
@@ -32,7 +32,7 @@
infringing on user name space. This should be done even for local infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros. variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to There are some unavoidable exceptions within include files to
define necessary C library symbols; they are noted "INFRINGES ON define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */ USER NAME SPACE" below. */
#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
@@ -69,11 +69,18 @@
/* Pacify GCC's `empty if-body' warning. */ /* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else # else
# define YYSTACK_ALLOC malloc # ifdef __cplusplus
# define YYSTACK_FREE(Ptr) free (Ptr) # include <cstdlib> /* INFRINGES ON USER NAME SPACE */
# if defined (__STDC__) || defined (__cplusplus) # define YYSIZE_T std::size_t
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # define YYSTACK_ALLOC std::malloc
# define YYSIZE_T size_t # define YYSTACK_FREE std::free
# else
# ifdef __STDC__
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# define YYSTACK_ALLOC malloc
# define YYSTACK_FREE free
# endif # endif
# endif # endif
@@ -128,9 +135,16 @@ union yyalloc
#if ! defined (YYSIZE_T) && defined (size_t) #if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t # define YYSIZE_T size_t
#endif #endif
#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus)) #if ! defined (YYSIZE_T)
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # ifdef __cplusplus
# define YYSIZE_T size_t # include <cstddef> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T std::size_t
# else
# ifdef __STDC__
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# endif
#endif #endif
#if ! defined (YYSIZE_T) #if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int # define YYSIZE_T unsigned int
@@ -206,11 +220,23 @@ while (0)
/* Enable debugging if requested. */ /* Enable debugging if requested. */
#if YYDEBUG #if YYDEBUG
# include <stdio.h>
# ifndef YYFPRINTF
# ifdef __cplusplus
# include <cstdio.h> /* INFRINGES ON USER NAME SPACE */
# define YYFPRINTF std::fprintf
# define YYSTDERR std::stderr
# else
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
# define YYFPRINTF fprintf
# define YYSTDERR stderr
# endif
# endif
# define YYDPRINTF(Args) \ # define YYDPRINTF(Args) \
do { \ do { \
if (yydebug) \ if (yydebug) \
fprintf Args; \ YYFPRINTF Args; \
} while (0) } while (0)
/* Nonzero means print parse trace. [The following comment makes no /* Nonzero means print parse trace. [The following comment makes no
sense to me. Could someone clarify it? --akim] Since this is sense to me. Could someone clarify it? --akim] Since this is
@@ -443,7 +469,7 @@ yyparse (YYPARSE_PARAM_ARG)
rule. */ rule. */
int yylen; int yylen;
YYDPRINTF ((stderr, "Starting parse\n")); YYDPRINTF ((YYSTDERR, "Starting parse\n"));
yystate = 0; yystate = 0;
yyerrstatus = 0; yyerrstatus = 0;
@@ -539,14 +565,14 @@ yyparse (YYPARSE_PARAM_ARG)
yylsp = yyls + yysize - 1; yylsp = yyls + yysize - 1;
#endif #endif
YYDPRINTF ((stderr, "Stack size increased to %lu\n", YYDPRINTF ((YYSTDERR, "Stack size increased to %lu\n",
(unsigned long int) yystacksize)); (unsigned long int) yystacksize));
if (yyssp >= yyss + yystacksize - 1) if (yyssp >= yyss + yystacksize - 1)
YYABORT; YYABORT;
} }
YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YYDPRINTF ((YYSTDERR, "Entering state %d\n", yystate));
goto yybackup; goto yybackup;
@@ -573,7 +599,7 @@ yybackup:
if (yychar == YYEMPTY) if (yychar == YYEMPTY)
{ {
YYDPRINTF ((stderr, "Reading a token: ")); YYDPRINTF ((YYSTDERR, "Reading a token: "));
yychar = YYLEX; yychar = YYLEX;
} }
@@ -584,7 +610,7 @@ yybackup:
yychar1 = 0; yychar1 = 0;
yychar = YYEOF; /* Don't call YYLEX any more */ yychar = YYEOF; /* Don't call YYLEX any more */
YYDPRINTF ((stderr, "Now at end of input.\n")); YYDPRINTF ((YYSTDERR, "Now at end of input.\n"));
} }
else else
{ {
@@ -595,13 +621,14 @@ yybackup:
which are defined only if `YYDEBUG' is set. */ which are defined only if `YYDEBUG' is set. */
if (yydebug) if (yydebug)
{ {
fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); YYFPRINTF (YYSTDERR, "Next token is %d (%s",
yychar, yytname[yychar1]);
/* Give the individual parser a way to print the precise /* Give the individual parser a way to print the precise
meaning of a token, for further debugging info. */ meaning of a token, for further debugging info. */
# ifdef YYPRINT # ifdef YYPRINT
YYPRINT (stderr, yychar, yylval); YYPRINT (YYSTDERR, yychar, yylval);
# endif # endif
fprintf (stderr, ")\n"); YYFPRINTF (YYSTDERR, ")\n");
} }
#endif #endif
} }
@@ -633,7 +660,8 @@ yybackup:
YYACCEPT; YYACCEPT;
/* Shift the lookahead token. */ /* Shift the lookahead token. */
YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1])); YYDPRINTF ((YYSTDERR, "Shifting token %d (%s), ",
yychar, yytname[yychar1]));
/* Discard the token being shifted unless it is eof. */ /* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF) if (yychar != YYEOF)
@@ -694,13 +722,13 @@ yyreduce:
{ {
int yyi; int yyi;
fprintf (stderr, "Reducing via rule %d (line %d), ", YYFPRINTF (YYSTDERR, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]); yyn, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */ /* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
fprintf (stderr, "%s ", yytname[yyrhs[yyi]]); YYFPRINTF (YYSTDERR, "%s ", yytname[yyrhs[yyi]]);
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); YYFPRINTF (YYSTDERR, " -> %s\n", yytname[yyr1[yyn]]);
} }
#endif #endif
%% actions /* The action file replaces this line. */ %% actions /* The action file replaces this line. */
@@ -716,10 +744,10 @@ yyreduce:
if (yydebug) if (yydebug)
{ {
short *yyssp1 = yyss - 1; short *yyssp1 = yyss - 1;
fprintf (stderr, "state stack now"); YYFPRINTF (YYSTDERR, "state stack now");
while (yyssp1 != yyssp) while (yyssp1 != yyssp)
fprintf (stderr, " %d", *++yyssp1); YYFPRINTF (YYSTDERR, " %d", *++yyssp1);
fprintf (stderr, "\n"); YYFPRINTF (YYSTDERR, "\n");
} }
#endif #endif
@@ -815,7 +843,7 @@ yyerrlab1:
/* return failure if at end of input */ /* return failure if at end of input */
if (yychar == YYEOF) if (yychar == YYEOF)
YYABORT; YYABORT;
YYDPRINTF ((stderr, "Discarding token %d (%s).\n", YYDPRINTF ((YYSTDERR, "Discarding token %d (%s).\n",
yychar, yytname[yychar1])); yychar, yytname[yychar1]));
yychar = YYEMPTY; yychar = YYEMPTY;
} }
@@ -861,10 +889,10 @@ yyerrpop:
if (yydebug) if (yydebug)
{ {
short *yyssp1 = yyss - 1; short *yyssp1 = yyss - 1;
fprintf (stderr, "Error: state stack now"); YYFPRINTF (YYSTDERR, "Error: state stack now");
while (yyssp1 != yyssp) while (yyssp1 != yyssp)
fprintf (stderr, " %d", *++yyssp1); YYFPRINTF (YYSTDERR, " %d", *++yyssp1);
fprintf (stderr, "\n"); YYFPRINTF (YYSTDERR, "\n");
} }
#endif #endif
@@ -894,7 +922,7 @@ yyerrhandle:
if (yyn == YYFINAL) if (yyn == YYFINAL)
YYACCEPT; YYACCEPT;
YYDPRINTF ((stderr, "Shifting error token, ")); YYDPRINTF ((YYSTDERR, "Shifting error token, "));
*++yyvsp = yylval; *++yyvsp = yylval;
#if YYLSP_NEEDED #if YYLSP_NEEDED
+3 -3
View File
@@ -41,6 +41,9 @@
void exit (); void exit ();
#endif #endif
/* To get error_one_per_line. */
#include "error.h"
#include "complain.h" #include "complain.h"
#ifndef HAVE_DECL_STRERROR_R #ifndef HAVE_DECL_STRERROR_R
@@ -106,9 +109,6 @@ unsigned int warn_message_count;
/* This variable is incremented each time `complain' is called. */ /* This variable is incremented each time `complain' is called. */
unsigned int complain_message_count; unsigned int complain_message_count;
/* Sometimes we want to have at most one error per line. This
variable controls whether this mode is selected or not. */
int error_one_per_line;
/*--------------------------------. /*--------------------------------.
| Report a warning, and proceed. | | Report a warning, and proceed. |
-4
View File
@@ -56,10 +56,6 @@ extern unsigned int warn_message_count;
/* This variable is incremented each time `complain' is called. */ /* This variable is incremented each time `complain' is called. */
extern unsigned int complain_message_count; extern unsigned int complain_message_count;
/* Sometimes we want to have at most one error per line. This
variable controls whether this mode is selected or not. */
extern int error_one_per_line;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
+18 -16
View File
@@ -247,16 +247,17 @@ set_goto_map (void)
ngotos = 0; ngotos = 0;
for (sp = first_shift; sp; sp = sp->next) for (sp = first_shift; sp; sp = sp->next)
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i) if (sp->nshifts)
{ for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
symbol = state_table[sp->shifts[i]].accessing_symbol; {
symbol = state_table[sp->shifts[i]].accessing_symbol;
if (ngotos == MAXSHORT) if (ngotos == MAXSHORT)
fatal (_("too many gotos (max %d)"), MAXSHORT); fatal (_("too many gotos (max %d)"), MAXSHORT);
ngotos++; ngotos++;
goto_map[symbol]++; goto_map[symbol]++;
} }
k = 0; k = 0;
for (i = ntokens; i < nsyms; i++) for (i = ntokens; i < nsyms; i++)
@@ -277,15 +278,16 @@ set_goto_map (void)
for (sp = first_shift; sp; sp = sp->next) for (sp = first_shift; sp; sp = sp->next)
{ {
state1 = sp->number; state1 = sp->number;
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i) if (sp->nshifts)
{ for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
state2 = sp->shifts[i]; {
symbol = state_table[state2].accessing_symbol; state2 = sp->shifts[i];
symbol = state_table[state2].accessing_symbol;
k = temp_map[symbol]++; k = temp_map[symbol]++;
from_state[k] = state1; from_state[k] = state1;
to_state[k] = state2; to_state[k] = state2;
} }
} }
XFREE (temp_map + ntokens); XFREE (temp_map + ntokens);
+39 -44
View File
@@ -46,70 +46,65 @@ nullable_print (FILE *out)
void void
set_nullable (void) set_nullable (void)
{ {
short *r; int ruleno;
short *s1; short *s1;
short *s2; short *s2;
shorts *p; shorts *p;
short *squeue; short *squeue = XCALLOC (short, nvars);
short *rcount; short *rcount = XCALLOC (short, nrules + 1);
shorts **rsets; /* RITEM contains all the rules, including useless productions.
shorts *relts; Hence we must allocate room for useless nonterminals too. */
shorts **rsets = XCALLOC (shorts *, nvars) - ntokens;
/* This is said to be more elements than we actually use.
Supposedly nitems - nrules is enough. But why take the risk? */
shorts *relts = XCALLOC (shorts, nitems + nvars + 1);
if (trace_flag) if (trace_flag)
fprintf (stderr, "Entering set_nullable\n"); fprintf (stderr, "Entering set_nullable\n");
nullable = XCALLOC (char, nvars) - ntokens; nullable = XCALLOC (char, nvars) - ntokens;
squeue = XCALLOC (short, nvars);
s1 = s2 = squeue; s1 = s2 = squeue;
rcount = XCALLOC (short, nrules + 1);
/* RITEM contains all the rules, including useless productions.
Hence we must allocate room for useless nonterminals too. */
rsets = XCALLOC (shorts *, nvars + nuseless_nonterminals) - ntokens;
/* This is said to be more elements than we actually use.
Supposedly nitems - nrules is enough.
But why take the risk? */
relts = XCALLOC (shorts, nitems + nvars + nuseless_nonterminals + 1);
p = relts; p = relts;
for (r = ritem; *r; ++r) for (ruleno = 1; ruleno < nrules + 1; ++ruleno)
{ if (ritem[rule_table[ruleno].rhs] > 0)
/* Walk RITEM to find (i), if there are any tokens in the {
RHS, and (ii), to find RULENO. */ /* This rule has a non empty RHS. */
int ruleno; short *r;
int any_tokens = 0; int any_tokens = 0;
short *r1; for (r = ritem + rule_table[ruleno].rhs; *r > 0; ++r)
for (r1 = r; *r1 > 0; ++r1) if (ISTOKEN (*r))
if (ISTOKEN (*r1)) any_tokens = 1;
any_tokens = 1;
ruleno = -*r1;
/* Examine the RHS of the rule. */ /* This rule has only nonterminals: schedule it for the second
if (!any_tokens) pass. */
for (/* Nothing. */; *r > 0; ++r) if (!any_tokens)
for (r = ritem + rule_table[ruleno].rhs; *r > 0; ++r)
{
rcount[ruleno]++;
p->next = rsets[*r];
p->value = ruleno;
rsets[*r] = p;
p++;
}
}
else
{
/* This rule has an empty RHS. */
assert (ritem[rule_table[ruleno].rhs] == -ruleno);
if (rule_table[ruleno].useful && !nullable[rule_table[ruleno].lhs])
{ {
rcount[ruleno]++; nullable[rule_table[ruleno].lhs] = 1;
p->next = rsets[*r]; *s2++ = rule_table[ruleno].lhs;
p->value = ruleno;
rsets[*r] = p;
p++;
} }
}
/* Examine its LHS. */
if (rule_table[ruleno].useful && !nullable[rule_table[ruleno].lhs])
{
nullable[rule_table[ruleno].lhs] = 1;
*s2++ = rule_table[ruleno].lhs;
}
}
while (s1 < s2) while (s1 < s2)
for (p = rsets[*s1++]; p; p = p->next) for (p = rsets[*s1++]; p; p = p->next)
{ {
int ruleno = p->value; ruleno = p->value;
if (--rcount[ruleno] == 0) if (--rcount[ruleno] == 0)
if (rule_table[ruleno].useful && !nullable[rule_table[ruleno].lhs]) if (rule_table[ruleno].useful && !nullable[rule_table[ruleno].lhs])
{ {
+3 -4
View File
@@ -1,5 +1,7 @@
/* Output the generated parsing program for bison, /* Output the generated parsing program for bison,
Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001 Free Software
Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -1277,9 +1279,6 @@ output (void)
obstack_fgrow1 (&table_obstack, "#include %s\n", obstack_fgrow1 (&table_obstack, "#include %s\n",
quotearg_style (c_quoting_style, attrsfile)); quotearg_style (c_quoting_style, attrsfile));
if (!no_parser_flag)
obstack_sgrow (&table_obstack, "#include <stdio.h>\n\n");
LIST_FREE (core, first_state); LIST_FREE (core, first_state);
output_defines (); output_defines ();
output_token_translations (); output_token_translations ();
+1 -1
View File
@@ -149,7 +149,7 @@ size_t strnlen PARAMS ((const char *s, size_t maxlen));
# define setlocale(Category, Locale) # define setlocale(Category, Locale)
#endif #endif
#include "intl/libgettext.h" #include "libgettext.h"
#define _(Msgid) gettext (Msgid) #define _(Msgid) gettext (Msgid)
#define N_(Msgid) (Msgid) #define N_(Msgid) (Msgid)
+57 -2
View File
@@ -20,6 +20,7 @@
#include "system.h" #include "system.h"
#include "getargs.h"
#include "warshall.h" #include "warshall.h"
/*-------------------------------------------------------------. /*-------------------------------------------------------------.
@@ -27,6 +28,51 @@
| transive closure of what was given. | | transive closure of what was given. |
`-------------------------------------------------------------*/ `-------------------------------------------------------------*/
static void
bitmatrix_print (const char *title, unsigned *matrix, size_t size)
{
size_t i, j;
size_t rowsize = WORDSIZE (size) * sizeof (unsigned);
#define ROW(Num) ((unsigned *) ((char *) matrix + ((Num) * rowsize)))
/* Title. */
fprintf (stderr, "%s BEGIN\n", title);
/* Column numbers. */
fputs (" ", stderr);
for (i = 0; i < size; ++i)
putc (i / 10 ? '0' + i / 10 : ' ', stderr);
putc ('\n', stderr);
fputs (" ", stderr);
for (i = 0; i < size; ++i)
fprintf (stderr, "%d", i % 10);
putc ('\n', stderr);
/* Bar. */
fputs (" .", stderr);
for (i = 0; i < size; ++i)
putc ('-', stderr);
fputs (".\n", stderr);
/* Contents. */
for (i = 0; i < size; ++i)
{
fprintf (stderr, "%2d|", i);
for (j = 0; j < size; ++j)
fputs (BITISSET (ROW (i), j) ? "1" : " ", stderr);
fputs ("|\n", stderr);
}
/* Bar. */
fputs (" `", stderr);
for (i = 0; i < size; ++i)
putc ('-', stderr);
fputs ("'\n", stderr);
/* End title. */
fprintf (stderr, "%s END\n\n", title);
}
#define R(Num) (unsigned *) ((char *) R + ((Num) * rowsize)) #define R(Num) (unsigned *) ((char *) R + ((Num) * rowsize))
static void static void
@@ -35,12 +81,21 @@ TC (unsigned *R, int n)
int rowsize = WORDSIZE (n) * sizeof (unsigned); int rowsize = WORDSIZE (n) * sizeof (unsigned);
int i, j, k; int i, j, k;
if (trace_flag)
bitmatrix_print ("TC: Input", R, n);
/* R (J, I) && R (I, K) => R (J, K).
I *must* be the outter loop. */
for (i = 0; i < n; ++i) for (i = 0; i < n; ++i)
for (j = 0; j < n; ++j) for (j = 0; j < n; ++j)
if (BITISSET (R (i), j)) if (BITISSET (R (j), i))
for (k = 0; k < rowsize; ++k) for (k = 0; k < n; ++k)
if (BITISSET (R (i), k)) if (BITISSET (R (i), k))
SETBIT (R (j), k); SETBIT (R (j), k);
if (trace_flag)
bitmatrix_print ("TC: Output", R, n);
} }
+1 -1
View File
@@ -25,7 +25,7 @@ MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
TESTSUITE_AT = \ TESTSUITE_AT = \
testsuite.at \ testsuite.at \
output.at reduce.at calc.at torture.at regression.at output.at sets.at reduce.at calc.at torture.at regression.at
TESTSUITE = $(srcdir)/testsuite TESTSUITE = $(srcdir)/testsuite
AUTOTEST = $(AUTOM4TE) --language=autotest AUTOTEST = $(AUTOM4TE) --language=autotest
+1 -1
View File
@@ -108,7 +108,7 @@ MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
TESTSUITE_AT = \ TESTSUITE_AT = \
testsuite.at \ testsuite.at \
output.at reduce.at calc.at torture.at regression.at output.at sets.at reduce.at calc.at torture.at regression.at
TESTSUITE = $(srcdir)/testsuite TESTSUITE = $(srcdir)/testsuite
+193
View File
@@ -0,0 +1,193 @@
# Exercising Bison Grammar Sets. -*- 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([[Grammar Sets (Firsts etc.).]])
## ---------- ##
## Nullable. ##
## ---------- ##
AT_SETUP([Nullable])
# At some point, nullable had been smoking grass, and managed to say:
#
# Entering set_nullable
# NULLABLE
# 'e': yes
# (null): no
# ...
AT_DATA([[input.y]],
[[%%
e: 'e' | /* Nothing */;
]])
AT_CHECK([[bison --trace input.y]], [], [],
[[RITEM
'e' (rule 1)
(rule 2)
DERIVES
e derives
1: 'e' (rule 1)
2: (rule 2)
Entering set_nullable
NULLABLE
e: yes
TC: Input BEGIN
@&t@
0
.-.
0| |
`-'
TC: Input END
TC: Output BEGIN
@&t@
0
.-.
0| |
`-'
TC: Output END
FIRSTS
e firsts
4 (e)
FDERIVES
e derives
1: 'e'
2:
Processing state 0 (reached by $)
Closure: input
Closure: output
0: . 'e' (rule 1)
2: . (rule 2)
Entering new_itemsets, state = 0
Entering append_states, state = 0
Entering get_state, state = 0, symbol = 3 ('e')
Entering new_state, state = 0, symbol = 3 ('e')
Exiting get_state => 1
Processing state 1 (reached by 'e')
Closure: input
1: . (rule 1)
Closure: output
1: . (rule 1)
Entering new_itemsets, state = 1
Entering append_states, state = 1
transpose: input
0: @&t@
transpose: output
0: @&t@
]])
AT_CLEANUP
## ---------------- ##
## Broken Closure. ##
## ---------------- ##
# TC was once broken during a massive `simplification' of the code.
# It resulted in bison dumping core on the following grammar (the
# computation of FIRSTS uses TC). It managed to produce a pretty
# exotic closure:
#
# TC: Input
#
# 01234567
# +--------+
# 0| 1 |
# 1| 1 |
# 2| 1 |
# 3| 1 |
# 4| 1 |
# 5| 1 |
# 6| 1|
# 7| |
# +--------+
#
# TC: Output
#
# 01234567
# +--------+
# 0| 1 |
# 1| 111 |
# 2| 111 |
# 3| 1111 |
# 4| 111 1 |
# 5| 111 1 |
# 6| 111 1|
# 7| 111 |
# +--------+
#
# instead of that below.
AT_SETUP([Broken Closure])
AT_DATA([input.y],
[[%%
a: b
b: c
c: d
d: e
e: f
f: g
g: h
h: 'h'
]])
AT_CHECK([bison --trace input.y 2>&1 |
sed -n '/^TC: Output BEGIN/,/^TC: Output END/p'],
[0],
[[TC: Output BEGIN
@&t@
01234567
.--------.
0| 1111111|
1| 111111|
2| 11111|
3| 1111|
4| 111|
5| 11|
6| 1|
7| |
`--------'
TC: Output END
]])
AT_CLEANUP
+1
View File
@@ -26,6 +26,7 @@ AT_INIT
AT_TESTED([bison]) AT_TESTED([bison])
m4_include([output.at]) m4_include([output.at])
m4_include([sets.at])
m4_include([reduce.at]) m4_include([reduce.at])
m4_include([calc.at]) m4_include([calc.at])
m4_include([torture.at]) m4_include([torture.at])
+340
View File
@@ -114,3 +114,343 @@ AT_CHECK([input 900], 0, [], [ignore])
AT_CHECK([input 10000], 1, [], [ignore]) AT_CHECK([input 10000], 1, [], [ignore])
AT_CLEANUP AT_CLEANUP
## ----------------- ##
## GNU AWK Grammar. ##
## ----------------- ##
AT_SETUP([GNU AWK Grammar])
# We have been careful to strip all the actions excepts the
# mid-rule actions. We rely on %expect to check that there are
# indeed 65 SR conflicts.
#
# Bison was once wrong, due to an incorrect computation of nullable.
# It reported 485 SR conflicts!
AT_DATA([[input.y]],
[[%expect 65
%token FUNC_CALL NAME REGEXP
%token ERROR
%token YNUMBER YSTRING
%token RELOP APPEND_OP
%token ASSIGNOP MATCHOP NEWLINE CONCAT_OP
%token LEX_BEGIN LEX_END LEX_IF LEX_ELSE LEX_RETURN LEX_DELETE
%token LEX_WHILE LEX_DO LEX_FOR LEX_BREAK LEX_CONTINUE
%token LEX_PRINT LEX_PRINTF LEX_NEXT LEX_EXIT LEX_FUNCTION
%token LEX_GETLINE LEX_NEXTFILE
%token LEX_IN
%token LEX_AND LEX_OR INCREMENT DECREMENT
%token LEX_BUILTIN LEX_LENGTH
/* Lowest to highest */
%right ASSIGNOP
%right '?' ':'
%left LEX_OR
%left LEX_AND
%left LEX_GETLINE
%nonassoc LEX_IN
%left FUNC_CALL LEX_BUILTIN LEX_LENGTH
%nonassoc ','
%nonassoc MATCHOP
%nonassoc RELOP '<' '>' '|' APPEND_OP TWOWAYIO
%left CONCAT_OP
%left YSTRING YNUMBER
%left '+' '-'
%left '*' '/' '%'
%right '!' UNARY
%right '^'
%left INCREMENT DECREMENT
%left '$'
%left '(' ')'
%%
start
: opt_nls program opt_nls
;
program
: rule
| program rule
| error
| program error
| /* empty */
;
rule
: LEX_BEGIN {} action
| LEX_END {} action
| LEX_BEGIN statement_term
| LEX_END statement_term
| pattern action
| action
| pattern statement_term
| function_prologue function_body
;
func_name
: NAME
| FUNC_CALL
| lex_builtin
;
lex_builtin
: LEX_BUILTIN
| LEX_LENGTH
;
function_prologue
: LEX_FUNCTION {} func_name '(' opt_param_list r_paren opt_nls
;
function_body
: l_brace statements r_brace opt_semi opt_nls
| l_brace r_brace opt_semi opt_nls
;
pattern
: exp
| exp ',' exp
;
regexp
/*
* In this rule, want_regexp tells yylex that the next thing
* is a regexp so it should read up to the closing slash.
*/
: '/' {} REGEXP '/'
;
action
: l_brace statements r_brace opt_semi opt_nls
| l_brace r_brace opt_semi opt_nls
;
statements
: statement
| statements statement
| error
| statements error
;
statement_term
: nls
| semi opt_nls
;
statement
: semi opt_nls
| l_brace r_brace
| l_brace statements r_brace
| if_statement
| LEX_WHILE '(' exp r_paren opt_nls statement
| LEX_DO opt_nls statement LEX_WHILE '(' exp r_paren opt_nls
| LEX_FOR '(' NAME LEX_IN NAME r_paren opt_nls statement
| LEX_FOR '(' opt_exp semi opt_nls exp semi opt_nls opt_exp r_paren opt_nls statement
| LEX_FOR '(' opt_exp semi opt_nls semi opt_nls opt_exp r_paren opt_nls statement
| LEX_BREAK statement_term
| LEX_CONTINUE statement_term
| print '(' expression_list r_paren output_redir statement_term
| print opt_rexpression_list output_redir statement_term
| LEX_NEXT statement_term
| LEX_NEXTFILE statement_term
| LEX_EXIT opt_exp statement_term
| LEX_RETURN {} opt_exp statement_term
| LEX_DELETE NAME '[' expression_list ']' statement_term
| LEX_DELETE NAME statement_term
| exp statement_term
;
print
: LEX_PRINT
| LEX_PRINTF
;
if_statement
: LEX_IF '(' exp r_paren opt_nls statement
| LEX_IF '(' exp r_paren opt_nls statement
LEX_ELSE opt_nls statement
;
nls
: NEWLINE
| nls NEWLINE
;
opt_nls
: /* empty */
| nls
;
input_redir
: /* empty */
| '<' simp_exp
;
output_redir
: /* empty */
| '>' exp
| APPEND_OP exp
| '|' exp
| TWOWAYIO exp
;
opt_param_list
: /* empty */
| param_list
;
param_list
: NAME
| param_list comma NAME
| error
| param_list error
| param_list comma error
;
/* optional expression, as in for loop */
opt_exp
: /* empty */
| exp
;
opt_rexpression_list
: /* empty */
| rexpression_list
;
rexpression_list
: rexp
| rexpression_list comma rexp
| error
| rexpression_list error
| rexpression_list error rexp
| rexpression_list comma error
;
opt_expression_list
: /* empty */
| expression_list
;
expression_list
: exp
| expression_list comma exp
| error
| expression_list error
| expression_list error exp
| expression_list comma error
;
/* Expressions, not including the comma operator. */
exp : variable ASSIGNOP {} exp
| '(' expression_list r_paren LEX_IN NAME
| exp '|' LEX_GETLINE opt_variable
| exp TWOWAYIO LEX_GETLINE opt_variable
| LEX_GETLINE opt_variable input_redir
| exp LEX_AND exp
| exp LEX_OR exp
| exp MATCHOP exp
| regexp
| '!' regexp %prec UNARY
| exp LEX_IN NAME
| exp RELOP exp
| exp '<' exp
| exp '>' exp
| exp '?' exp ':' exp
| simp_exp
| exp simp_exp %prec CONCAT_OP
;
rexp
: variable ASSIGNOP {} rexp
| rexp LEX_AND rexp
| rexp LEX_OR rexp
| LEX_GETLINE opt_variable input_redir
| regexp
| '!' regexp %prec UNARY
| rexp MATCHOP rexp
| rexp LEX_IN NAME
| rexp RELOP rexp
| rexp '?' rexp ':' rexp
| simp_exp
| rexp simp_exp %prec CONCAT_OP
;
simp_exp
: non_post_simp_exp
/* Binary operators in order of decreasing precedence. */
| simp_exp '^' simp_exp
| simp_exp '*' simp_exp
| simp_exp '/' simp_exp
| simp_exp '%' simp_exp
| simp_exp '+' simp_exp
| simp_exp '-' simp_exp
| variable INCREMENT
| variable DECREMENT
;
non_post_simp_exp
: '!' simp_exp %prec UNARY
| '(' exp r_paren
| LEX_BUILTIN
'(' opt_expression_list r_paren
| LEX_LENGTH '(' opt_expression_list r_paren
| LEX_LENGTH
| FUNC_CALL '(' opt_expression_list r_paren
| variable
| INCREMENT variable
| DECREMENT variable
| YNUMBER
| YSTRING
| '-' simp_exp %prec UNARY
| '+' simp_exp %prec UNARY
;
opt_variable
: /* empty */
| variable
;
variable
: NAME
| NAME '[' expression_list ']'
| '$' non_post_simp_exp
;
l_brace
: '{' opt_nls
;
r_brace
: '}' opt_nls
;
r_paren
: ')'
;
opt_semi
: /* empty */
| semi
;
semi
: ';'
;
comma : ',' opt_nls
;
%%
]])
# Pass plenty of options, to exercise plenty of code, even if we
# don't actually check the output. But SEGV is watching us, and
# so might do dmalloc.
AT_CHECK([[bison --verbose --defines input.y]])
AT_CLEANUP