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]>
Version 1.30f.
+7
View File
@@ -1,6 +1,13 @@
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:
* Reduced Grammars
+46 -44
View File
@@ -3,7 +3,7 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# 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
# 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
# compatibility and a consistent mechanism for selecting the
# object file format.
# Determine the machine/vendor (is the vendor relevant).
case "${UNAME_MACHINE}" in
amiga) machine=m68k-unknown ;;
arm32) machine=arm-unknown ;;
atari*) machine=m68k-atari ;;
sun3*) machine=m68k-sun ;;
mac68k) machine=m68k-apple ;;
macppc) machine=powerpc-apple ;;
hp3[0-9][05]) machine=m68k-hp ;;
ibmrt|romp-ibm) machine=romp-ibm ;;
sparc*) machine=`uname -p`-unknown ;;
*) machine=${UNAME_MACHINE}-unknown ;;
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
UNAME_MACHINE_ARCH=`(uname -p) 2>/dev/null` || \
UNAME_MACHINE_ARCH=unknown
case "${UNAME_MACHINE_ARCH}" in
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE}" in
i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep __ELF__ >/dev/null
@@ -767,10 +765,21 @@ EOF
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
mips:Linux:*:*)
case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
big) echo mips-unknown-linux-gnu && exit 0 ;;
little) echo mipsel-unknown-linux-gnu && exit 0 ;;
esac
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
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:*:*)
echo powerpc-unknown-linux-gnu
@@ -843,32 +852,25 @@ EOF
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
cat >$dummy.c <<EOF
#include <features.h>
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
printf ("%s-pc-linux-gnu\n", argv[1]);
# else
printf ("%s-pc-linux-gnulibc1\n", argv[1]);
# endif
# else
printf ("%s-pc-linux-gnulibc1\n", argv[1]);
# endif
#else
printf ("%s-pc-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
sed 's/^ //' << EOF >$dummy.c
#include <features.h>
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
LIBC=gnu
# else
LIBC=gnulibc1
# endif
# else
LIBC=gnulibc1
# endif
#else
LIBC=gnuaout
#endif
EOF
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
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
# Free Software Foundation, Inc.
timestamp='2001-12-03'
timestamp='2001-12-10'
# This file is (in principle) common to ALL 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)
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 \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
@@ -882,6 +890,10 @@ case $basic_machine in
tx39el)
basic_machine=mipstx39el-unknown
;;
toad1)
basic_machine=pdp10-xkl
os=-tops20
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
@@ -1210,6 +1222,7 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
;;
+1 -1
View File
@@ -1 +1 @@
1.30d
1.30f
Vendored
+10 -10
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# 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]>.
#
@@ -332,8 +332,8 @@ mandir='${prefix}/man'
# Identity of this package.
PACKAGE_NAME='GNU Bison'
PACKAGE_TARNAME='bison'
PACKAGE_VERSION='1.30f'
PACKAGE_STRING='GNU Bison 1.30f'
PACKAGE_VERSION='1.30g'
PACKAGE_STRING='GNU Bison 1.30g'
PACKAGE_BUGREPORT='[email protected]'
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.
# This message is too long to be a string in the A/UX 3.1 sh.
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]...
@@ -826,7 +826,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of GNU Bison 1.30f:";;
short | recursive ) echo "Configuration of GNU Bison 1.30g:";;
esac
cat <<\_ACEOF
@@ -921,7 +921,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
GNU Bison configure 1.30f
GNU Bison configure 1.30g
generated by GNU Autoconf 2.52g
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
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
$ $0 $@
@@ -1470,7 +1470,7 @@ fi
# Define the identity of the package.
PACKAGE=bison
VERSION=1.30f
VERSION=1.30g
cat >>confdefs.h <<_ACEOF
#define PACKAGE "$PACKAGE"
@@ -9149,7 +9149,7 @@ _ASBOX
} >&5
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
CONFIG_FILES = $CONFIG_FILES
@@ -9211,7 +9211,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
GNU Bison config.status 1.30f
GNU Bison config.status 1.30g
configured by $0, generated by GNU Autoconf 2.52g,
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.
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)
AM_INIT_AUTOMAKE([bison], [1.30f])
AM_INIT_AUTOMAKE([bison], [1.30g])
AM_CONFIG_HEADER(config.h:config.hin)
# 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
headers. On some non-@sc{gnu} hosts, @code{<alloca.h>},
@code{<stddef.h>}, and @code{<stdlib.h>} are included as needed to
declare memory allocators and related types. On all hosts,
@code{<stdio.h>} is included if you define @code{YYDEBUG}
declare memory allocators and related types. In the same situation,
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}).
@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
debugging is always possible.
The trace facility uses @code{stderr}, so you must add @w{@code{#include
<stdio.h>}} to the C declarations section unless it is already there.
The trace facility outputs messages with macro calls of the form
@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
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}
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{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}
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++}).
+4 -4
View File
@@ -1,4 +1,4 @@
@set UPDATED 30 November 2001
@set UPDATED-MONTH November 2001
@set EDITION 1.30f
@set VERSION 1.30f
@set UPDATED 13 December 2001
@set UPDATED-MONTH December 2001
@set EDITION 1.30g
@set VERSION 1.30g
+4 -4
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Ulrich Drepper <[email protected]>\n"
"Language-Team: German <[email protected]>\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %d)"
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"
msgstr ""
@@ -220,7 +220,7 @@ msgstr "%s: keine Grammatik-Datei angegeben\n"
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr ""
@@ -280,7 +280,7 @@ msgstr ""
msgid "`%s' requires an argument"
msgstr "%s: die Option »%s« erfordert ein Argument\n"
#: src/output.c:949
#: src/output.c:951
#, fuzzy, c-format
msgid "maximum table size (%d) exceeded"
msgstr "maximale Tabellengröße (%s) überschritten"
+4 -4
View File
@@ -30,7 +30,7 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Nicolás García-Pedrajas <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
@@ -43,7 +43,7 @@ msgstr ""
msgid "too many states (max %d)"
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"
msgstr ""
@@ -281,7 +281,7 @@ msgstr "%s: no se ha especificado ning
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: los argumentos extra después de '%s' no se tendrán en cuenta\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr ""
@@ -348,7 +348,7 @@ msgstr "%s: la opci
# en inglés era así, pero quizás en español sea mejor como dices
# ngp
#
#: src/output.c:949
#: src/output.c:951
#, fuzzy, c-format
msgid "maximum table size (%d) exceeded"
msgstr "excedido el tamaño máximo de la tabla (%s)"
+15 -45
View File
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.30e\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n"
"PO-Revision-Date: 2001-11-26 22:45+0200\n"
"Project-Id-Version: bison 1.30f\n"
"POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-12-05 20:35+0200\n"
"Last-Translator: Toomas Soome <[email protected]>\n"
"Language-Team: Estonian <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %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"
msgstr "Tundmatu süsteemi viga"
@@ -245,7 +245,7 @@ msgstr "%s: puudub grammatikafail\n"
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr "liiga palju gotosid (maks %d)"
@@ -303,7 +303,7 @@ msgstr "`%s' ei toeta argumente: %s"
msgid "`%s' requires an argument"
msgstr "võti `%s' nõuab argumenti"
#: src/output.c:949
#: src/output.c:951
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "ületati maksimaalset tabelisuurust (%d)"
@@ -642,26 +642,29 @@ msgid "Useless rules:"
msgstr "Kasutamata reeglid:"
#: src/reduce.c:503
#, fuzzy, c-format
#, c-format
msgid "%d rule 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
#, fuzzy, c-format
#, c-format
msgid "%d useless nonterminal"
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
msgid " and "
msgstr " ja "
#: src/reduce.c:520
#, fuzzy, c-format
#, c-format
msgid "%d useless rule"
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
#, c-format
@@ -754,36 +757,3 @@ msgstr "`"
#: lib/quotearg.c:275
msgid "'"
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 ""
msgstr ""
"Project-Id-Version: GNU bison 1.30e\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n"
"PO-Revision-Date: 2001-11-27 08:00-0500\n"
"Project-Id-Version: GNU bison 1.30f\n"
"POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-12-05 13:00-0500\n"
"Last-Translator: Michel Robitaille <[email protected]>\n"
"Language-Team: French <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -19,7 +19,7 @@ msgstr ""
msgid "too many states (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"
msgstr "Erreur système inconnue"
@@ -248,7 +248,7 @@ msgstr "%s: grammaire manquante\n"
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: arguments supplémentaires ignorés après `%s'\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (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"
msgstr "`%s': requiert un argument"
#: src/output.c:949
#: src/output.c:951
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "taille maximale de la table (%d) dépassée"
@@ -646,26 +646,29 @@ msgid "Useless rules:"
msgstr "Règles inutiles:"
#: src/reduce.c:503
#, fuzzy, c-format
#, c-format
msgid "%d rule 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
#, fuzzy, c-format
#, c-format
msgid "%d useless nonterminal"
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
msgid " and "
msgstr " et "
#: src/reduce.c:520
#, fuzzy, c-format
#, c-format
msgid "%d useless rule"
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
#, c-format
+121 -127
View File
@@ -1,12 +1,12 @@
# Japanese message for GNU bison 1.28
# Copyright (C) 1999 Free Software Foundation, Inc.
# Daisuke Yamashita <[email protected]>, 1999.
# Japanese message for GNU bison 1.30f
# Copyright (C) 2001 Free Software Foundation, Inc.
# Daisuke Yamashita <[email protected]>, 2001.
#
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.28\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n"
"PO-Revision-Date: 1999-09-28 21:10+0900\n"
"Project-Id-Version: GNU bison 1.30f\n"
"POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-12-10 15:59+0900\n"
"Last-Translator: Daisuke Yamashita <[email protected]>\n"
"Language-Team: Japanese <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -14,22 +14,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: src/LR0.c:189
#, fuzzy, c-format
#, c-format
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"
msgstr ""
msgstr "不明なシステムエラー"
#: src/complain.c:150
msgid "warning: "
msgstr ""
msgstr "警告: "
#: src/complain.c:238
#, fuzzy
msgid "fatal error: "
msgstr "%s: 致命的エラー: "
msgstr "致命的エラー: "
#: src/conflicts.c:44
#, c-format
@@ -49,26 +48,25 @@ msgid "an error"
msgstr "エラー"
#: src/conflicts.c:302
#, fuzzy, c-format
#, c-format
msgid "%d shift/reduce conflict"
msgid_plural "%d shift/reduce conflicts"
msgstr[0] " %d シフト/還元衝突"
msgstr[0] "%d シフト/還元衝突"
#: src/conflicts.c:309
#, fuzzy
msgid "and"
msgstr " および"
msgstr "および"
#: src/conflicts.c:315
#, fuzzy, c-format
#, c-format
msgid "%d reduce/reduce conflict"
msgid_plural "%d reduce/reduce conflicts"
msgstr[0] " %d 還元/還元衝突"
msgstr[0] "%d 還元/還元衝突"
#: src/conflicts.c:340
#, fuzzy, c-format
#, c-format
msgid "State %d contains "
msgstr "状態 %d が含むのは"
msgstr "状態 %d が含むのは "
#. If invoked with `--yacc', use the output format specified by
#. POSIX.
@@ -89,13 +87,13 @@ msgstr " %d
#: src/conflicts.c:398 src/reduce.c:508
#, c-format
msgid "%s contains "
msgstr "%s は"
msgstr "%s の中身は"
#: src/conflicts.c:405
#, fuzzy, c-format
#, c-format
msgid "expected %d shift/reduce conflict\n"
msgid_plural "expected %d shift/reduce conflicts\n"
msgstr[0] " %d シフト/還元衝突"
msgstr[0] "本来 %d 個のシフト/還元衝突であるはずです\n"
#: src/conflicts.c:457 src/conflicts.c:534
#, c-format
@@ -124,28 +122,30 @@ msgstr " $default\t
#: src/files.c:144
#, c-format
msgid "cannot open file `%s'"
msgstr ""
msgstr "ファイル `%s' を開けません"
#: src/files.c:163
msgid "cannot close file"
msgstr ""
msgstr "ファイルを閉じることができません"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:84
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr ""
msgstr "GNU bison は LALR(1) 文法の構文解析器を生成します。\n"
#: src/getargs.c:88
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr ""
msgstr "使い方: %s [オプション]... ファイル\n"
#: 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 ""
"ロングオプションで必須の引数が示されていれば、同じ意味のショートオプション\n"
"でも同様に必須の引数となります。必須でない選択的引数でも同様です。\n"
#: src/getargs.c:98
msgid ""
@@ -154,6 +154,10 @@ msgid ""
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"操作モード:\n"
" -h, --help この使い方を表示して終了する\n"
" -V, --version バージョン情報を表示して終了する\n"
" -y, --yacc POSIX yacc をエミュレイトする\n"
#: src/getargs.c:105
msgid ""
@@ -166,6 +170,14 @@ msgid ""
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
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
msgid ""
@@ -177,38 +189,50 @@ msgid ""
" -g, --graph also produce a VCG description of the "
"automaton\n"
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
msgid "Report bugs to <[email protected]>.\n"
msgstr ""
msgstr "バグレポートは <[email protected]> まで。\n"
#. Some efforts were made to ease the translators' task, please
#. continue.
#: src/getargs.c:141
#, c-format
msgid "bison (GNU Bison) %s"
msgstr ""
msgstr "bison (GNU Bison) %s"
#: 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: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 ""
"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
#, c-format
msgid "`%s' is no longer supported"
msgstr ""
msgstr "`%s' は最早サポートされません"
#: src/getargs.c:239
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
msgstr "`%s --help' で詳細情報を参照してください\n"
#: src/getargs.c:246
#, c-format
@@ -216,14 +240,14 @@ msgid "%s: no grammar file given\n"
msgstr "%s: 文法ファイルが指定されていません\n"
#: src/getargs.c:250
#, fuzzy, c-format
#, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: '%s' より後ろの余分な引数は無視されました\n"
msgstr "%s: `%s' 後ろの余分な引数は無視されました\n"
#: src/lalr.c:255
#, fuzzy, c-format
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr "%s の数が多すぎます (最大 %d)"
msgstr "goto の数が多すぎます (最大 %d)"
#: src/lex.c:76
msgid "unexpected `/' found and ignored"
@@ -234,7 +258,6 @@ msgid "unterminated comment"
msgstr "閉じていないコメントです"
#: src/lex.c:137
#, fuzzy
msgid "unexpected end of file"
msgstr "予期しないファイルの終端です"
@@ -272,17 +295,17 @@ msgstr "ʣ
#: src/lex.c:667
#, c-format
msgid "`%s' supports no argument: %s"
msgstr ""
msgstr "`%s' は引数を受け付けません: %s"
#: src/lex.c:683
#, fuzzy, c-format
#, c-format
msgid "`%s' requires an argument"
msgstr "%s: オプション `%s' は引数を要求します\n"
msgstr "`%s' オプションは引数を要求します"
#: src/output.c:949
#, fuzzy, c-format
#: src/output.c:951
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "最大テーブルサイズ (%s) を超えました"
msgstr "最大テーブルサイズ (%d) を超えました"
#: src/print.c:39
#, c-format
@@ -323,51 +346,36 @@ msgid " %-4s\tgo to state %d\n"
msgstr " %-4s\t状態 %d へ\n"
#: src/print.c:180
#, fuzzy, c-format
#, c-format
msgid "state %d"
msgstr ""
"\n"
"\n"
"状態 %d\n"
"\n"
msgstr "状態 %d"
#. rule # : LHS -> RHS
#: src/print.c:211
#, fuzzy
msgid "Grammar"
msgstr ""
"\n"
"文法\n"
msgstr "文法"
#: src/print.c:212
msgid "Number, Line, Rule"
msgstr ""
msgstr "番号, 行, 規則"
#: src/print.c:217
#, fuzzy, c-format
#, c-format
msgid " %3d %3d %s ->"
msgstr "規則 %-4d %s ->"
msgstr " %3d %3d %s ->"
#: src/print.c:224
msgid "empty"
msgstr ""
msgstr ""
#. TERMINAL (type #) : rule #s terminal is on RHS
#: src/print.c:231
#, fuzzy
msgid "Terminals, with rules where they appear"
msgstr ""
"\n"
"終端トークン、およびそこに現れた規則\n"
"\n"
msgstr "出現位置の規則による終端"
#: src/print.c:256
#, fuzzy
msgid "Nonterminals, with rules where they appear"
msgstr ""
"\n"
"非終端トークン、およびそこに現れた規則\n"
"\n"
msgstr "出現位置の規則による非終端"
#: src/print.c:282
msgid " on left:"
@@ -383,18 +391,18 @@ msgstr "
#. obstack_sgrow (node_obstack, "\n");
#.
#: src/print_graph.c:146
#, fuzzy, c-format
#, c-format
msgid "%-4s\terror (nonassociative)"
msgstr " %-4s\tエラー (非結合)\n"
msgstr "%-4s\tエラー (非結合)"
#.
#. if (obstack_object_size (node_obstack) > node_output_size)
#. obstack_sgrow (node_obstack, "\n");
#.
#: src/print_graph.c:161
#, fuzzy, c-format
#, c-format
msgid "$default\treduce using rule %d (%s)"
msgstr " $default\t規則 %d を利用して還元 (%s)\n"
msgstr "$default\t規則 %d を利用して還元 (%s)"
#: src/reader.c:89
msgid " Skipping to next \\n"
@@ -407,7 +415,7 @@ msgstr "
#: src/reader.c:142 src/reader.c:154
msgid "invalid $ value"
msgstr "無効な $ の値"
msgstr "不適切な $ の値"
#: src/reader.c:180 src/reader.c:195
msgid "unterminated string at end of file"
@@ -418,9 +426,9 @@ msgid "unterminated string"
msgstr "閉じられていない文字列"
#: src/reader.c:336 src/reader.c:400
#, fuzzy, c-format
#, c-format
msgid "%s is invalid"
msgstr "@%s は無効です"
msgstr "%s は不適切です"
#: src/reader.c:376
#, c-format
@@ -428,9 +436,9 @@ msgid "$$ of `%s' has no declared type"
msgstr "`%s' の $$ に宣言のない型があります"
#: src/reader.c:393
#, fuzzy, c-format
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "`%s' $%s に宣言のない型があります"
msgstr "$%d 個`%s' が宣言された型を持っていません"
#: src/reader.c:447
msgid "unterminated `%{' definition"
@@ -439,17 +447,17 @@ msgstr "`%{'
#: src/reader.c:492 src/reader.c:607 src/reader.c:657
#, c-format
msgid "Premature EOF after %s"
msgstr ""
msgstr "%s の後ろに早くも EOF があります"
#: src/reader.c:509
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
msgstr "シンボル `%s' はリテラル文字列として複数回使われました"
#: src/reader.c:512
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
msgstr "シンボル `%s' は複数のリテラル文字列が与えられました"
#: src/reader.c:533 src/reader.c:676
#, c-format
@@ -464,26 +472,26 @@ msgstr "%s
#: src/reader.c:552
#, c-format
msgid "`%s' is invalid in %s"
msgstr "%2$s 内の `%1$s' は無効です"
msgstr "`%s' は %s 内では不適切です"
#: src/reader.c:570 src/reader.c:735
#, fuzzy, c-format
#, c-format
msgid "multiple %s declarations"
msgstr "複数の %start が宣言されました"
msgstr "%s が複数個宣言されました"
#: 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"
msgstr "無効な %start が宣言されました"
msgstr "%s の宣言が不適切です"
#: src/reader.c:592
msgid "%type declaration has no <typename>"
msgstr "%type 宣言に <タイプ名> がありません"
#: src/reader.c:627
#, fuzzy, c-format
#, c-format
msgid "invalid %%type declaration due to item: %s"
msgstr "アイテムに与えられるべき %%type 宣言が無効です: `%s'"
msgstr "アイテムの為の %%type 宣言が不適切です: %s"
#: src/reader.c:672
#, c-format
@@ -493,7 +501,7 @@ msgstr "%s
#: src/reader.c:695
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "無効なテキスト (%s) - 数値は識別子の後ろにあるべきです"
msgstr "不適切なテキスト (%s) - 数値は識別子の後ろにあるべきです"
#: src/reader.c:705
#, c-format
@@ -501,14 +509,14 @@ msgid "unexpected item: %s"
msgstr "予期せぬアイテム: %s"
#: src/reader.c:778 src/reader.c:1110 src/reader.c:1181
#, fuzzy, c-format
#, c-format
msgid "unmatched %s"
msgstr "対応のない `{' です"
msgstr "対応のない %s です"
#: src/reader.c:810
#, fuzzy, c-format
#, c-format
msgid "argument of %%expect is not an integer"
msgstr "%expect の引数が整数値ではありません"
msgstr "%%expect の引数が整数値ではありません"
#: src/reader.c:856
#, c-format
@@ -535,9 +543,9 @@ msgid "unknown character: %s"
msgstr "未知の文字: %s"
#: src/reader.c:1204
#, fuzzy, c-format
#, c-format
msgid "unterminated %guard clause"
msgstr "閉じられていない %%guard 節です"
msgstr "%guard 節が閉じられていません"
#: src/reader.c:1357
msgid "ill-formed rule: initial symbol not followed by colon"
@@ -577,12 +585,12 @@ msgstr "
#: src/reader.c:1573
#, c-format
msgid "invalid input: %s"
msgstr "無効な入力: %s"
msgstr "不適切な入力: %s"
#: src/reader.c:1581
#, fuzzy, c-format
#, c-format
msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "シンボルが多すぎます (トークン非終端アイテム) -- 最大 %s"
msgstr "シンボルが多すぎます (トークン + 非終端アイテム) -- 最大 %d"
#: src/reader.c:1584
msgid "no rules in the input grammar"
@@ -596,9 +604,9 @@ msgstr ""
"せん"
#: src/reader.c:1743
#, fuzzy, c-format
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "トークン %s と %s の双方が番号 %s に割り当てられました"
msgstr "トークン %s と %s の双方が番号 %d に割り当てられました"
#: src/reader.c:1796
#, c-format
@@ -621,51 +629,38 @@ msgid "the start symbol %s is a token"
msgstr "開始シンボル %s はトークンです"
#: src/reduce.c:409
#, fuzzy
msgid "Useless nonterminals:"
msgstr ""
"不使用非終端子:\n"
"\n"
msgstr "無意味な非終端子:"
#: src/reduce.c:422
#, fuzzy
msgid "Terminals which are not used:"
msgstr ""
"\n"
"\n"
"利用されない終端子:\n"
"\n"
msgstr "利用されない終端子:"
#: src/reduce.c:433
#, fuzzy
msgid "Useless rules:"
msgstr ""
"\n"
"\n"
"不使用規則:\n"
"\n"
msgstr "無意味な規則:"
#: src/reduce.c:503
#, fuzzy, c-format
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d 個の規則は決して還元されません\n"
#: src/reduce.c:511
#, fuzzy, c-format
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d 個の不使用非終端子%.0s"
msgstr[0] "%d 個の無意味な非終端子"
#: src/reduce.c:517
msgid " and "
msgstr "および"
#: src/reduce.c:520
#, fuzzy, c-format
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d 個の不使用規則%.0s"
msgstr[0] "%d 個の無意味な規則"
#: src/reduce.c:551
#, c-format
@@ -713,7 +708,7 @@ msgstr "%s:
#: lib/getopt.c:804
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: 無効なオプション -- %c\n"
msgstr "%s: 不適切なオプション -- %c\n"
#. 1003.2 specifies the format of this message.
#: 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
#. before exiting when memory is exhausted. Goes through gettext.
#: lib/obstack.c:494 lib/obstack.c:497 lib/xmalloc.c:66
#, fuzzy
msgid "memory exhausted"
msgstr "%s: メモリを使い果たしました\n"
msgstr "メモリを使い果たしました"
#. Get translations for open and closing quotation marks.
#.
@@ -754,11 +748,11 @@ msgstr "%s:
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
#: lib/quotearg.c:274
msgid "`"
msgstr ""
msgstr "`"
#: lib/quotearg.c:275
msgid "'"
msgstr ""
msgstr "'"
#~ msgid ""
#~ "\n"
@@ -887,10 +881,10 @@ msgstr ""
#~ msgstr "対応のない右ブレース (`}') です"
#~ msgid "$%s is invalid"
#~ msgstr "$%s は無効です"
#~ msgstr "$%s は不適切です"
#~ msgid "invalid @-construct"
#~ msgstr "無効な @-コンストラクトです"
#~ msgstr "不適切な @-コンストラクトです"
#~ msgid "ill-formed %type declaration"
#~ msgstr "邪悪な %type 宣言です"
+4 -4
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Erick Branderhorst <[email protected]>\n"
"Language-Team: Dutch <[email protected]>\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %d)"
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"
msgstr ""
@@ -220,7 +220,7 @@ msgstr "%s: geen grammatica bestand gegeven\n"
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argumenten genegeerd na '%s'\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr ""
@@ -279,7 +279,7 @@ msgstr ""
msgid "`%s' requires an argument"
msgstr "%s: optie `%s' vereist een argument\n"
#: src/output.c:949
#: src/output.c:951
#, fuzzy, c-format
msgid "maximum table size (%d) exceeded"
msgstr "maximale tabel grootte (%s) overschreden"
+4 -4
View File
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Dmitry S. Sivachenko <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
@@ -18,7 +18,7 @@ msgstr ""
msgid "too many states (max %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"
msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ"
@@ -249,7 +249,7 @@ msgstr "%s:
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)"
@@ -307,7 +307,7 @@ msgstr ""
msgid "`%s' requires an argument"
msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n"
#: src/output.c:949
#: src/output.c:951
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
+15 -48
View File
@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.30e\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n"
"PO-Revision-Date: 2001-11-27 11:16+0100\n"
"Project-Id-Version: bison 1.30f\n"
"POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-12-06 22:33+0100\n"
"Last-Translator: Göran Uddeborg <[email protected]>\n"
"Language-Team: Swedish <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
msgid "too many states (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"
msgstr "Okänt systemfel"
@@ -251,7 +251,7 @@ msgstr "%s: ingen grammatikfil angiven\n"
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argument ignorerade efter \"%s\"\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr "för många goto (max %d)"
@@ -309,7 +309,7 @@ msgstr "\"%s\" st
msgid "`%s' requires an argument"
msgstr "\"%s\" behöver ett argument"
#: src/output.c:949
#: src/output.c:951
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "maximal tabellstorlek (%d) överskriden"
@@ -648,29 +648,29 @@ msgid "Useless rules:"
msgstr "Oanvändbara regler:"
#: src/reduce.c:503
#, fuzzy, c-format
#, c-format
msgid "%d rule 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
#, fuzzy, c-format
#, c-format
msgid "%d useless nonterminal"
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
msgid " and "
msgstr " och "
#: src/reduce.c:520
#, fuzzy, c-format
#, c-format
msgid "%d useless rule"
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
#, c-format
@@ -766,36 +766,3 @@ msgstr "\""
#: lib/quotearg.c:275
msgid "'"
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 ""
msgstr ""
"Project-Id-Version: bison 1.30e\n"
"POT-Creation-Date: 2001-12-05 12:47+0100\n"
"PO-Revision-Date: 2001-11-27 11:37GMT+2\n"
"Last-Translator: Altuð Bayram <[email protected]>\n"
"Project-Id-Version: bison 1.30f\n"
"POT-Creation-Date: 2001-12-13 11:59+0100\n"
"PO-Revision-Date: 2001-12-06 12:09+300\n"
"Last-Translator: Altug Bayram <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-9\n"
@@ -19,7 +19,7 @@ msgstr ""
msgid "too many states (max %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"
msgstr "Bilinmeyen sistem hatasý"
@@ -82,7 +82,7 @@ msgstr "
#: src/conflicts.c:389
#, c-format
msgid " %d shift/reduce"
msgstr " %d öteleme/indirgeme"
msgstr " %d shift/reduce"
#: src/conflicts.c:393
#, c-format
@@ -197,7 +197,7 @@ msgid ""
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Output:\n"
"Çýktý:\n"
" -d, --defines bir baþlýk dosyasý da üretir\n"
" -v, --verbose otomatýn bir açýklamasýný da üretir\n"
" -b, --file-prefix=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"
msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n"
#: src/lalr.c:255
#: src/lalr.c:256
#, c-format
msgid "too many gotos (max %d)"
msgstr "gotos çok fazla (en fazla %d)"
@@ -311,7 +311,7 @@ msgstr "`%s' arg
msgid "`%s' requires an argument"
msgstr "`%s' bir argüman gerektirir"
#: src/output.c:949
#: src/output.c:951
#, c-format
msgid "maximum table size (%d) exceeded"
msgstr "en büyük tablo uzunluðu (%d) aþýldý"
@@ -447,7 +447,7 @@ msgstr "`%s''in $$'
#: src/reader.c:393
#, c-format
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
msgid "unterminated `%{' definition"
@@ -650,26 +650,29 @@ msgid "Useless rules:"
msgstr "Yararsýz kurallar:"
#: src/reduce.c:503
#, fuzzy, c-format
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d kural asla indirgenmedi\n"
msgstr[1] "%d kural asla indirgenmedi\n"
#: src/reduce.c:511
#, fuzzy, c-format
#, c-format
msgid "%d useless nonterminal"
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
msgid " and "
msgstr " ve "
#: src/reduce.c:520
#, fuzzy, c-format
#, c-format
msgid "%d useless rule"
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
#, c-format
@@ -762,36 +765,3 @@ msgstr "`"
#: lib/quotearg.c:275
msgid "'"
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/.
INCLUDES = -I$(top_builddir)/intl \
-I$(top_builddir) \
-I$(top_srcdir)/lib \
-I$(top_srcdir)
-I$(top_srcdir)/intl \
-I$(top_srcdir)/lib
LDADD = $(INTLLIBS) ../lib/libbison.a
+2 -2
View File
@@ -115,8 +115,8 @@ CFLAGS = @CFLAGS@ $(WARNING_CFLAGS)
# config.h in build/.
INCLUDES = -I$(top_builddir)/intl \
-I$(top_builddir) \
-I$(top_srcdir)/lib \
-I$(top_srcdir)
-I$(top_srcdir)/intl \
-I$(top_srcdir)/lib
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
variables, as they might otherwise be expanded by user macros.
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. */
#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
@@ -69,11 +69,18 @@
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
# define YYSTACK_ALLOC malloc
# define YYSTACK_FREE(Ptr) free (Ptr)
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# ifdef __cplusplus
# include <cstdlib> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T std::size_t
# define YYSTACK_ALLOC std::malloc
# 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
@@ -128,9 +135,16 @@ union yyalloc
#if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
#if ! defined (YYSIZE_T)
# ifdef __cplusplus
# 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
#if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
@@ -206,11 +220,23 @@ while (0)
/* Enable debugging if requested. */
#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) \
do { \
if (yydebug) \
fprintf Args; \
YYFPRINTF Args; \
} while (0)
/* Nonzero means print parse trace. [The following comment makes no
sense to me. Could someone clarify it? --akim] Since this is
@@ -443,7 +469,7 @@ yyparse (YYPARSE_PARAM_ARG)
rule. */
int yylen;
YYDPRINTF ((stderr, "Starting parse\n"));
YYDPRINTF ((YYSTDERR, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
@@ -539,14 +565,14 @@ yyparse (YYPARSE_PARAM_ARG)
yylsp = yyls + yysize - 1;
#endif
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
YYDPRINTF ((YYSTDERR, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
YYDPRINTF ((YYSTDERR, "Entering state %d\n", yystate));
goto yybackup;
@@ -573,7 +599,7 @@ yybackup:
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
YYDPRINTF ((YYSTDERR, "Reading a token: "));
yychar = YYLEX;
}
@@ -584,7 +610,7 @@ yybackup:
yychar1 = 0;
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
{
@@ -595,13 +621,14 @@ yybackup:
which are defined only if `YYDEBUG' is set. */
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
meaning of a token, for further debugging info. */
# ifdef YYPRINT
YYPRINT (stderr, yychar, yylval);
YYPRINT (YYSTDERR, yychar, yylval);
# endif
fprintf (stderr, ")\n");
YYFPRINTF (YYSTDERR, ")\n");
}
#endif
}
@@ -633,7 +660,8 @@ yybackup:
YYACCEPT;
/* 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. */
if (yychar != YYEOF)
@@ -694,13 +722,13 @@ yyreduce:
{
int yyi;
fprintf (stderr, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]);
YYFPRINTF (YYSTDERR, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
fprintf (stderr, "%s ", yytname[yyrhs[yyi]]);
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
YYFPRINTF (YYSTDERR, "%s ", yytname[yyrhs[yyi]]);
YYFPRINTF (YYSTDERR, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
%% actions /* The action file replaces this line. */
@@ -716,10 +744,10 @@ yyreduce:
if (yydebug)
{
short *yyssp1 = yyss - 1;
fprintf (stderr, "state stack now");
YYFPRINTF (YYSTDERR, "state stack now");
while (yyssp1 != yyssp)
fprintf (stderr, " %d", *++yyssp1);
fprintf (stderr, "\n");
YYFPRINTF (YYSTDERR, " %d", *++yyssp1);
YYFPRINTF (YYSTDERR, "\n");
}
#endif
@@ -815,7 +843,7 @@ yyerrlab1:
/* return failure if at end of input */
if (yychar == YYEOF)
YYABORT;
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
YYDPRINTF ((YYSTDERR, "Discarding token %d (%s).\n",
yychar, yytname[yychar1]));
yychar = YYEMPTY;
}
@@ -861,10 +889,10 @@ yyerrpop:
if (yydebug)
{
short *yyssp1 = yyss - 1;
fprintf (stderr, "Error: state stack now");
YYFPRINTF (YYSTDERR, "Error: state stack now");
while (yyssp1 != yyssp)
fprintf (stderr, " %d", *++yyssp1);
fprintf (stderr, "\n");
YYFPRINTF (YYSTDERR, " %d", *++yyssp1);
YYFPRINTF (YYSTDERR, "\n");
}
#endif
@@ -894,7 +922,7 @@ yyerrhandle:
if (yyn == YYFINAL)
YYACCEPT;
YYDPRINTF ((stderr, "Shifting error token, "));
YYDPRINTF ((YYSTDERR, "Shifting error token, "));
*++yyvsp = yylval;
#if YYLSP_NEEDED
+3 -3
View File
@@ -41,6 +41,9 @@
void exit ();
#endif
/* To get error_one_per_line. */
#include "error.h"
#include "complain.h"
#ifndef HAVE_DECL_STRERROR_R
@@ -106,9 +109,6 @@ unsigned int warn_message_count;
/* This variable is incremented each time `complain' is called. */
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. |
-4
View File
@@ -56,10 +56,6 @@ extern unsigned int warn_message_count;
/* This variable is incremented each time `complain' is called. */
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
}
#endif
+18 -16
View File
@@ -247,16 +247,17 @@ set_goto_map (void)
ngotos = 0;
for (sp = first_shift; sp; sp = sp->next)
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
{
symbol = state_table[sp->shifts[i]].accessing_symbol;
if (sp->nshifts)
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
{
symbol = state_table[sp->shifts[i]].accessing_symbol;
if (ngotos == MAXSHORT)
fatal (_("too many gotos (max %d)"), MAXSHORT);
if (ngotos == MAXSHORT)
fatal (_("too many gotos (max %d)"), MAXSHORT);
ngotos++;
goto_map[symbol]++;
}
ngotos++;
goto_map[symbol]++;
}
k = 0;
for (i = ntokens; i < nsyms; i++)
@@ -277,15 +278,16 @@ set_goto_map (void)
for (sp = first_shift; sp; sp = sp->next)
{
state1 = sp->number;
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
{
state2 = sp->shifts[i];
symbol = state_table[state2].accessing_symbol;
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;
k = temp_map[symbol]++;
from_state[k] = state1;
to_state[k] = state2;
}
k = temp_map[symbol]++;
from_state[k] = state1;
to_state[k] = state2;
}
}
XFREE (temp_map + ntokens);
+39 -44
View File
@@ -46,70 +46,65 @@ nullable_print (FILE *out)
void
set_nullable (void)
{
short *r;
int ruleno;
short *s1;
short *s2;
shorts *p;
short *squeue;
short *rcount;
shorts **rsets;
shorts *relts;
short *squeue = XCALLOC (short, nvars);
short *rcount = XCALLOC (short, nrules + 1);
/* RITEM contains all the rules, including useless productions.
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)
fprintf (stderr, "Entering set_nullable\n");
nullable = XCALLOC (char, nvars) - ntokens;
squeue = XCALLOC (short, nvars);
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;
for (r = ritem; *r; ++r)
{
/* Walk RITEM to find (i), if there are any tokens in the
RHS, and (ii), to find RULENO. */
int ruleno;
int any_tokens = 0;
short *r1;
for (r1 = r; *r1 > 0; ++r1)
if (ISTOKEN (*r1))
any_tokens = 1;
ruleno = -*r1;
for (ruleno = 1; ruleno < nrules + 1; ++ruleno)
if (ritem[rule_table[ruleno].rhs] > 0)
{
/* This rule has a non empty RHS. */
short *r;
int any_tokens = 0;
for (r = ritem + rule_table[ruleno].rhs; *r > 0; ++r)
if (ISTOKEN (*r))
any_tokens = 1;
/* Examine the RHS of the rule. */
if (!any_tokens)
for (/* Nothing. */; *r > 0; ++r)
/* This rule has only nonterminals: schedule it for the second
pass. */
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]++;
p->next = rsets[*r];
p->value = ruleno;
rsets[*r] = p;
p++;
nullable[rule_table[ruleno].lhs] = 1;
*s2++ = rule_table[ruleno].lhs;
}
/* 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)
for (p = rsets[*s1++]; p; p = p->next)
{
int ruleno = p->value;
ruleno = p->value;
if (--rcount[ruleno] == 0)
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,
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.
@@ -1277,9 +1279,6 @@ output (void)
obstack_fgrow1 (&table_obstack, "#include %s\n",
quotearg_style (c_quoting_style, attrsfile));
if (!no_parser_flag)
obstack_sgrow (&table_obstack, "#include <stdio.h>\n\n");
LIST_FREE (core, first_state);
output_defines ();
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)
#endif
#include "intl/libgettext.h"
#include "libgettext.h"
#define _(Msgid) gettext (Msgid)
#define N_(Msgid) (Msgid)
+57 -2
View File
@@ -20,6 +20,7 @@
#include "system.h"
#include "getargs.h"
#include "warshall.h"
/*-------------------------------------------------------------.
@@ -27,6 +28,51 @@
| 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))
static void
@@ -35,12 +81,21 @@ TC (unsigned *R, int n)
int rowsize = WORDSIZE (n) * sizeof (unsigned);
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 (j = 0; j < n; ++j)
if (BITISSET (R (i), j))
for (k = 0; k < rowsize; ++k)
if (BITISSET (R (j), i))
for (k = 0; k < n; ++k)
if (BITISSET (R (i), 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 \
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
AUTOTEST = $(AUTOM4TE) --language=autotest
+1 -1
View File
@@ -108,7 +108,7 @@ MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
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
+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])
m4_include([output.at])
m4_include([sets.at])
m4_include([reduce.at])
m4_include([calc.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_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