Get files from the gnulib and po repositories, instead of relying

on them being in our CVS.  Upgrade to latest versions of gnulib and Automake.
This commit is contained in:
Paul Eggert
2004-04-28 20:00:56 +00:00
parent f97de3247f
commit 1f65350a16
103 changed files with 492 additions and 24580 deletions

146
ChangeLog
View File

@@ -1,3 +1,148 @@
2004-04-28 Paul Eggert <eggert@twinsun.com>
Get files from the gnulib and po repositories, instead of relying
on them being in our CVS. Upgrade to latest versions of gnulib
and Automake.
* Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
* bootstrap: Bootstrap from gnulib and po repositories.
Much of this code was stolen from GNU diff and GNU tar's bootstrap.
* README-cvs: Document these changes. Remove version numbers from
mentions of build tools, since they change so often. Mention Flex.
* configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
(gl_USE_SYSTEM_EXTENSIONS): Add.
(AC_GNU_SOURCE): Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
does this for us.
(AC_ISC_POSIX, AC_MINIX): Remove; we no longer support these
ancient OSes, as they get in the way of latest Autoconf & gnulib.
(AC_HEADER_STDC): Remove: we now assume C89 or better.
(AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
Do not check for C89 headers, except for locale.h which is used
by the Yacc library and must port to K&R hosts.
(AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
Do not check for C89 functions, except for setlocale which is
used by the Yacc library.
(AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
(gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
AM_GNU_GETTEXT): Remove; now done by:
(GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
(AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
for us.
* lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
(BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
Define to empty, as gnulib.mk will do the rest for us.
($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
for us.
(libbison_a_SOURCES): Define to $(lib_SOURCES) now.
(lib_SOURCES): New symbol, containing only the non-gnulib libs.
* src/files.c: Include gnulib's xstrndup.h.
* src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
(REALLOC): Use xnrealloc, for likewise.
(xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
(strnlen, memrchr): Remove decls; functions no longer used.
Include <stpcpy.h>.
* config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
Remove, as these files are now generated automatically
by bootstrap or automake.
* po/ChangeLog: Remove: all but one entry was a duplicate
of this file, and I moved that 2000-11-02 entry here.
* config/.cvsignore: Add Makefile, depcomp, install-sh.
* lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
xstrndup.h.
* m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
* po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
* src/.cvsignore: Remove *_.c.
* Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
support it. (The latest stable gzip doesn't.)
2004-04-27 Paul Eggert <eggert@twinsun.com>
* data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
case, as stos_ is now used by destructors due to the 2004-02-09
change.
Remove more K&R C support.
* lib/libiberty.y (PARAMS): Remove. All uses removed.
* lib/subpipe.c (errno): Remove decl.
Include <stdlib.h> unconditionally.
(EXIT_FAILURE): Remove macro.
* src/complain.c (vfprintf, strerror): Remove.
* src/system.h: Include limits.h, stdlib.h, string.h, locale.h
unconditionally.
(EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
Use latest Autoconf recommendations for including inttypes.h, stdint.h.
(strchr, strspn, memchr): Remove decls.
* tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
unconditionally. Do not declare perror.
* tests/conflicts.at (%nonassoc and eof): Include stdlib.h
unconditionally.
* src/complain.c (_): Remove useless defn, as system.h defines this.
* lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
with latest obstack.h.
* lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
to procedure types, as obstack.h now does that for us.
* lib/lbitset.c (lbitset_elt_alloc): Likewise.
* lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
so that this include file can stand alone.
* lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
does this now. Include subpipe.h first after config.h, to
test whether it can stand alone.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
unused declaration.
* tests/synclines.at (%union synch line): Put a dummy member in
the union, because empty unions aren't allowed in C. Caught
by GCC 3.4.0.
2004-04-13 Jim Meyering <jim@meyering.net>
* src/conflicts.c (conflicts_print): Correct format string typo:
@@ -10179,6 +10324,7 @@
obstacks.
(output_token_defines, reader_output_yylsp): Use obstacks.
* src/system.h (obstack_fgrow3): New.
* po/POTFILES.in: Adjust.
2000-11-01 Akim Demaille <akim@epita.fr>

View File

@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
## Copyright (C) 2001, 2002, 2003, 2004 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
@@ -18,7 +18,7 @@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = config po lib data src doc m4 tests
SUBDIRS = config po lib data src doc tests
EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile Makefile.cfg

View File

@@ -6,15 +6,13 @@ Bison.
* Requirements
Only the sources are installed in the CVS repository (to ease the
maintenance, merges etc.), therefore you will have to the maintainer
tools we depend upon:
- Automake 1.7
- Autoconf 2.57
- Gettext 0.12.1
maintenance, merges etc.), therefore you will have to get the latest
stable versions of the maintainer tools we depend upon, including:
- Automake
- Autoconf
- Flex
- Gettext
- CVS Bison itself
Only building the initial full source tree will be a bit painful,
@@ -55,19 +53,19 @@ If you experience problems, I suggest the following:
1. Do a regular CVS checkout
2. Fetch a recent tarball in:
http://www.lrde.epita.fr/~akim/download/
ftp://alpha.gnu.org/gnu/bison/
3. Extract it
4. Override the content of your checkout with the content of this
tarball, i.e.:
cp -r bison-1.49b/* bison-cvs
cp -r bison-1.875c/* bison-cvs
5. Proceed on ./configure && make etc.
-----
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Bison.

223
bootstrap
View File

@@ -1,6 +1,223 @@
#! /bin/sh
echo "Bootstrapping CVS Bison..."
# Bootstrap this package from CVS.
echo "running: autoreconf --verbose --install --force"
autoreconf --verbose --install --force
# Copyright (C) 2003, 2004 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.
# Written by Paul Eggert.
package=bison
# Parse options.
for option
do
case $option in
--help)
echo "$0: usage: $0 [--gnulib-srcdir=DIR] [--cvs-user=USERNAME] [--skip-po]"
exit;;
--gnulib-srcdir=*)
GNULIB_SRCDIR=`expr "$1" : '--gnulib-srcdir=\(.*\)'`;;
--cvs-user=*)
CVS_USER=`expr "$1" : '--cvs-user=\(.*\)'`;;
--skip-po)
SKIP_PO=t;;
*)
echo >&2 "$0: $option: unknown option"
exit 1;;
esac
done
echo "$0: Bootstrapping CVS $package..."
build_cvs_prefix() {
CVS_PREFIX=:${1}:
if [ "${2}" != - ]; then
CVS_PREFIX=${CVS_PREFIX}${2}@
fi
}
# Get gnulib files.
case ${GNULIB_SRCDIR--} in
-)
if [ ! -d gnulib ]; then
echo "$0: getting gnulib files..."
trap exit 1 2 13 15
trap 'rm -fr gnulib; exit 1' 0
case ${CVS_AUTH-anoncvs} in
anoncvs)
CVS_PREFIX='anoncvs@';;
ssh)
CVS_PREFIX="$CVS_USER${CVS_USER+@}";;
*)
echo "$0: $CVS_AUTH: Unknown CVS access method" >&2
exit 1;;
esac
case $CVS_RSH in
'') export CVS_RSH=ssh;;
esac
cvs -z3 -q -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/gnulib co gnulib || exit
trap 0
fi
GNULIB_SRCDIR=gnulib
esac
<$GNULIB_SRCDIR/gnulib-tool || exit
gnulib_modules='
alloca
argmatch
dirname
error
getopt
hard-locale
hash
malloc
mbswidth
obstack
quote
quotearg
stdbool
stpcpy
xalloc
xstrndup
'
previous_gnulib_modules=
while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do
previous_gnulib_modules=$gnulib_modules
gnulib_modules=`
(echo "$gnulib_modules"
for gnulib_module in $gnulib_modules; do
$GNULIB_SRCDIR/gnulib-tool --extract-dependencies $gnulib_module
done) | sort -u
`
done
gnulib_files=`
(for gnulib_module in $gnulib_modules; do
$GNULIB_SRCDIR/gnulib-tool --extract-filelist $gnulib_module
done) | sort -u
`
gnulib_dirs=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u`
mkdir -p $gnulib_dirs || exit
for gnulib_file in $gnulib_files; do
dest=$gnulib_file
case $gnulib_file in
m4/onceonly_2_57.m4) dest=m4/onceonly.m4;;
esac
rm -f $dest &&
echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" &&
cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit
done
# Get translations.
case $SKIP_PO in
'')
echo "$0: getting translations into po..."
(cd po &&
rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'` &&
wget -nv -nd -r -l 1 -A .po -C off \
http://www2.iro.umontreal.ca/~gnutra/po/maint/$package/ &&
ls *.po | sed 's/\.po$//' >LINGUAS
) || exit;;
esac
# Generate autoconf and automake snippets.
(echo '# This file is generated automatically by "bootstrap".' &&
echo 'AC_DEFUN([GNULIB_AUTOCONF_SNIPPET],[' &&
$GNULIB_SRCDIR/gnulib-tool --extract-autoconf-snippet $gnulib_modules &&
echo '])'
) >m4/gnulib.m4 || exit
(echo '# This file is generated automatically by "bootstrap".' &&
$GNULIB_SRCDIR/gnulib-tool --extract-automake-snippet $gnulib_modules
) >lib/gnulib.mk || exit
# Reconfigure, getting other files.
echo "$0: autoreconf --verbose --install --force ..."
autoreconf --verbose --install --force || exit
# We don't need intl, so remove it.
echo "$0: rm -fr intl ..."
rm -fr intl || exit
# Patch what appears to be a bug in gettext 0.14.1;
# remove this once the bug is fixed.
grep @top_builddir@ po/Makefile.in.in >/dev/null || {
echo "$0: prepending 'top_builddir=@top_builddir@' to po/Makefile.in.in ... "
old_contents=$(cat po/Makefile.in.in) || exit
cat >po/Makefile.in.in <<EOF
top_builddir=@top_builddir@
$old_contents
EOF
}
# Put bug-reporting address into po/Makevars.
echo "$0: sed '/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-bison@gnu.org/' po/Makevars.template >po/Makevars ..."
sed '/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-bison@gnu.org/' po/Makevars.template >po/Makevars
# if src/parse-gram.[ch] are out of date, rebuild them.
parse_gram_y=$(find src/parse-gram.y \
'(' -newer src/parse-gram.c -o -newer src/parse-gram.h ')' \
-print) || exit
case $parse_gram_y in
?*)
echo "$0: warning: bootstrapping with old src/parse-gram.[ch] files."
echo "$0: touch -c src/parse-gram.[ch] ... "
touch -c src/parse-gram.[ch] || exit
echo "$0: ./configure --disable-nls ..."
./configure --disable-nls || exit
echo "$0: (cd lib && make) ..."
(cd lib && make) || exit
echo "$0: (cd src && make) ..."
(cd src && make) || exit
echo "$0: rm -f src/parse-gram.c src/parse-gram.h ..."
rm -f src/parse-gram.c src/parse-gram.h || exit
echo "$0: (cd src && make parse-gram.c parse-gram.h) ..."
(cd src && make parse-gram.c parse-gram.h) || exit
echo "$0: make distclean ..."
make distclean || exit;;
esac
echo "$0: done. Now you can run './configure'."

View File

@@ -1,11 +1,13 @@
Makefile
*.t
Makefile
Makefile.in
mkinstalldirs
missing
config.sub
config.guess
mdate-sh
texinfo.tex
config.rpath
config.sub
depcomp
install-sh
mdate-sh
missing
mkinstalldirs
texinfo.tex
ylwrap

View File

@@ -1,520 +0,0 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2003-11-08.23
# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit 0
;;
-v | --v*)
echo "depcomp $scriptversion"
exit 0
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# `libtool' can also be set to `yes' or `no'.
if test -z "$depfile"; then
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
dir=`echo "$object" | sed 's,/.*$,/,'`
if test "$dir" = "$object"; then
dir=
fi
# FIXME: should be _deps on DOS.
depfile="$dir.deps/$base"
fi
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test -f "$tmpdepfile"; then :
else
stripped=`echo "$stripped" | sed 's,^.*/,,'`
tmpdepfile="$stripped.u"
fi
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1="$dir.libs/$base.lo.d"
tmpdepfile2="$dir.libs/$base.d"
"$@" -Wc,-MD
else
tmpdepfile1="$dir$base.o.d"
tmpdepfile2="$dir$base.d"
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
if test -f "$tmpdepfile1"; then
tmpdepfile="$tmpdepfile1"
else
tmpdepfile="$tmpdepfile2"
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@@ -1,316 +0,0 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2004-02-15.20
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=
transform_arg=
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 -d DIRECTORIES...
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
In the second, create the directory path DIR.
Options:
-b=TRANSFORMBASENAME
-c copy source (using $cpprog) instead of moving (using $mvprog).
-d create directories instead of installing files.
-g GROUP $chgrp installed files to GROUP.
-m MODE $chmod installed files to MODE.
-o USER $chown installed files to USER.
-s strip installed files (using $stripprog).
-t=TRANSFORM
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
-c) instcmd=$cpprog
shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit 0;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
--version) echo "$0 $scriptversion"; exit 0;;
*) # When -d is used, all remaining arguments are directories to create.
test -n "$dir_arg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
src=
if test -d "$dst"; then
instcmd=:
chmodcmd=
else
instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
dst=$dst/`basename "$src"`
fi
fi
# This sed command emulates the dirname command.
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case.
if test ! -d "$dstdir"; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=
while test $# -ne 0 ; do
pathcomp=$pathcomp$1
shift
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp" || lasterr=$?
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
fi
pathcomp=$pathcomp/
done
fi
if test -n "$dir_arg"; then
$doit $instcmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else
# If we're going to rename the final executable, determine the name now.
if test -z "$transformarg"; then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename \
| sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename.
test -z "$dstfile" && dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now remove or move aside any old file at destination location. We
# try this two ways since rm can't unlink itself on some systems and
# the destination file might be busy for other reasons. In this case,
# the final cleanup might fail but the new file should still install
# successfully.
{
if test -f "$dstdir/$dstfile"; then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi || { (exit 1); exit; }
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@@ -1,6 +1,6 @@
# Configure template for GNU Bison. -*-Autoconf-*-
#
# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2003, 2004 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
@@ -21,17 +21,16 @@
AC_PREREQ(2.57)
AC_INIT([GNU Bison], [1.875c], [bug-bison@gnu.org])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([1.7 check-news readme-alpha dist-bzip2])
AC_CONFIG_HEADERS([config.h:config.hin])
gl_USE_SYSTEM_EXTENSIONS
# Checks for the compiler.
AC_PROG_CC
# Remove with Automake 1.8.
AC_ISC_POSIX
AC_GNU_SOURCE
AC_MINIX
AM_PROG_CC_STDC
AC_ARG_ENABLE(gcc-warnings,
[ --enable-gcc-warnings turn on lots of GCC warnings (not recommended)],
@@ -87,8 +86,7 @@ fi
AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.])
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([ctype.h locale.h memory.h stdlib.h string.h unistd.h])
AC_CHECK_HEADERS_ONCE([locale.h])
AM_STDBOOL_H
# Checks for compiler characteristics.
@@ -98,36 +96,14 @@ AC_C_INLINE
AC_CHECK_TYPES([uintptr_t])
# Checks for library functions.
AC_CHECK_FUNCS(setlocale)
AC_CHECK_DECLS([free, getenv, getopt,
stpcpy, strchr, strspn, strnlen,
malloc, memchr, memrchr])
AC_REPLACE_FUNCS(strchr strrchr strspn)
AC_CHECK_FUNCS_ONCE([setlocale])
AM_WITH_DMALLOC
BISON_PREREQ_SUBPIPE
BISON_PREREQ_TIMEVAR
gl_DIRNAME
gl_ERROR
gl_FUNC_ALLOCA
gl_FUNC_MEMCHR
gl_FUNC_MEMRCHR
gl_FUNC_STPCPY
gl_FUNC_STRNLEN
gl_FUNC_STRTOL
gl_GETOPT
gl_HASH
gl_MBSWIDTH
gl_OBSTACK
gl_QUOTE
gl_QUOTEARG
gl_XALLOC
jm_FUNC_GLIBC_UNLOCKED_IO
jm_FUNC_MALLOC
jm_FUNC_REALLOC
# Gettext.
AM_GNU_GETTEXT([external], [need-ngettext])
AM_GNU_GETTEXT_VERSION(0.12.1)
# gnulib and gettext.
GNULIB_AUTOCONF_SNIPPET
AM_GNU_GETTEXT_VERSION([0.14.1])
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests)
@@ -145,6 +121,5 @@ AC_CONFIG_FILES([Makefile
config/Makefile
po/Makefile.in
data/Makefile
lib/Makefile src/Makefile doc/Makefile
m4/Makefile])
lib/Makefile src/Makefile doc/Makefile])
AC_OUTPUT

View File

@@ -2,4 +2,59 @@
.deps
Makefile
Makefile.in
alloca.c
alloca.h
alloca_.h
argmatch.c
argmatch.h
basename.c
dirname.c
dirname.h
error.c
error.h
exit.h
exitfail.c
exitfail.h
getopt.c
getopt.h
getopt1.c
getopt_int.h
gettext.h
gnulib.mk
hard-locale.c
hard-locale.h
hash.c
hash.h
malloc.c
mbswidth.c
mbswidth.h
memchr.c
memcmp.c
memrchr.c
obstack.c
obstack.h
quote.c
quote.h
quotearg.c
quotearg.h
realloc.c
stdbool.h
stdbool_.h
stpcpy.c
stpcpy.h
strcasecmp.c
strchr.c
stripslash.c
strncasecmp.c
strndup.c
strnlen.c
strrchr.c
strspn.c
strtol.c
strtoul.c
unlocked-io.h
xalloc.h
xmalloc.c
xstrdup.c
xstrndup.c
xstrndup.h

View File

@@ -17,36 +17,20 @@
AM_CFLAGS = $(WARNING_CFLAGS)
BUILT_SOURCES =
EXTRA_DIST =
MOSTLYCLEANFILES =
lib_LIBRARIES = $(YACC_LIBRARY)
EXTRA_LIBRARIES = liby.a
noinst_LIBRARIES = libbison.a
liby_a_SOURCES = main.c yyerror.c
# Heck, we are still using an old version of Automake which does not
# understand inner AC_LIBOBJ (i.e., from Autoconf itself, not from
# configure.in).
EXTRA_DIST = malloc.c realloc.c stdbool_.h strnlen.c
MOSTLYCLEANFILES = stdbool.h stdbool.h-t
# We need the following in order to create an <stdbool.h> when the system
# doesn't have one that works.
$(libbison_a_OBJECTS): $(STDBOOL_H)
stdbool.h: stdbool_.h
sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' <$(srcdir)/stdbool_.h >$@-t
mv $@-t $@
libbison_a_SOURCES = \
gettext.h \
argmatch.c argmatch.h \
basename.c dirname.h dirname.c \
libbison_a_SOURCES = $(lib_SOURCES)
lib_SOURCES = \
get-errno.h get-errno.c \
getopt.h getopt.c getopt1.c \
hash.h hash.c \
mbswidth.h mbswidth.c \
quote.h quote.c quotearg.h quotearg.c \
subpipe.h subpipe.c unlocked-io.h \
xalloc.h xmalloc.c xstrdup.c xstrndup.c \
subpipe.h subpipe.c \
$(bitsets_sources) $(additional_bitsets_sources) $(timevars_sources)
# Implementation of bitsets
@@ -65,3 +49,5 @@ timevars_sources = \
libbison_a_LIBADD = $(LIBOBJS) $(ALLOCA)
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
include gnulib.mk

View File

@@ -1,508 +0,0 @@
/* alloca.c -- allocate automatically reclaimed memory
(Mostly) portable public-domain implementation -- D A Gwyn
This implementation of the PWB library alloca function,
which is used to allocate space off the run-time stack so
that it is automatically reclaimed upon procedure exit,
was inspired by discussions with J. Q. Johnson of Cornell.
J.Otto Tennant <jot@cray.com> contributed the Cray support.
There are some preprocessor constants that can
be defined when compiling for your specific system, for
improved efficiency; however, the defaults should be okay.
The general concept of this implementation is to keep
track of all alloca-allocated blocks, and reclaim any
that are found to be deeper in the stack than the current
invocation. This heuristic does not reclaim storage as
soon as it becomes invalid, but it will do so eventually.
As a special case, alloca(0) reclaims storage without
allocating any. It is a good idea to use alloca(0) in
your main control loop, etc. to force garbage collection. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef emacs
# include "lisp.h"
# include "blockinput.h"
# define xalloc_die() memory_full ()
# ifdef EMACS_FREE
# undef free
# define free EMACS_FREE
# endif
#else
# include <xalloc.h>
#endif
/* If compiling with GCC 2, this file's not needed. */
#if !defined (__GNUC__) || __GNUC__ < 2
/* If someone has defined alloca as a macro,
there must be some other way alloca is supposed to work. */
# ifndef alloca
# ifdef emacs
# ifdef static
/* actually, only want this if static is defined as ""
-- this is for usg, in which emacs must undefine static
in order to make unexec workable
*/
# ifndef STACK_DIRECTION
you
lose
-- must know STACK_DIRECTION at compile-time
/* Using #error here is not wise since this file should work for
old and obscure compilers. */
# endif /* STACK_DIRECTION undefined */
# endif /* static */
# endif /* emacs */
/* If your stack is a linked list of frames, you have to
provide an "address metric" ADDRESS_FUNCTION macro. */
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
long i00afunc ();
# define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
# else
# define ADDRESS_FUNCTION(arg) &(arg)
# endif
# ifndef POINTER_TYPE
# ifdef __STDC__
# define POINTER_TYPE void
# else
# define POINTER_TYPE char
# endif
# endif
typedef POINTER_TYPE *pointer;
# ifndef NULL
# define NULL 0
# endif
/* Define STACK_DIRECTION if you know the direction of stack
growth for your system; otherwise it will be automatically
deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
# ifndef STACK_DIRECTION
# define STACK_DIRECTION 0 /* Direction unknown. */
# endif
# if STACK_DIRECTION != 0
# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
# else /* STACK_DIRECTION == 0; need run-time code. */
static int stack_dir; /* 1 or -1 once known. */
# define STACK_DIR stack_dir
static void
find_stack_direction ()
{
static char *addr = NULL; /* Address of first `dummy', once known. */
auto char dummy; /* To get stack address. */
if (addr == NULL)
{ /* Initial entry. */
addr = ADDRESS_FUNCTION (dummy);
find_stack_direction (); /* Recurse once. */
}
else
{
/* Second entry. */
if (ADDRESS_FUNCTION (dummy) > addr)
stack_dir = 1; /* Stack grew upward. */
else
stack_dir = -1; /* Stack grew downward. */
}
}
# endif /* STACK_DIRECTION == 0 */
/* An "alloca header" is used to:
(a) chain together all alloca'ed blocks;
(b) keep track of stack depth.
It is very important that sizeof(header) agree with malloc
alignment chunk size. The following default should work okay. */
# ifndef ALIGN_SIZE
# define ALIGN_SIZE sizeof(double)
# endif
typedef union hdr
{
char align[ALIGN_SIZE]; /* To force sizeof(header). */
struct
{
union hdr *next; /* For chaining headers. */
char *deep; /* For stack depth measure. */
} h;
} header;
static header *last_alloca_header = NULL; /* -> last alloca header. */
/* Return a pointer to at least SIZE bytes of storage,
which will be automatically reclaimed upon exit from
the procedure that called alloca. Originally, this space
was supposed to be taken from the current stack frame of the
caller, but that method cannot be made to work for some
implementations of C, for example under Gould's UTX/32. */
pointer
alloca (size)
size_t size;
{
auto char probe; /* Probes stack depth: */
register char *depth = ADDRESS_FUNCTION (probe);
# if STACK_DIRECTION == 0
if (STACK_DIR == 0) /* Unknown growth direction. */
find_stack_direction ();
# endif
/* Reclaim garbage, defined as all alloca'd storage that
was allocated from deeper in the stack than currently. */
{
register header *hp; /* Traverses linked list. */
# ifdef emacs
BLOCK_INPUT;
# endif
for (hp = last_alloca_header; hp != NULL;)
if ((STACK_DIR > 0 && hp->h.deep > depth)
|| (STACK_DIR < 0 && hp->h.deep < depth))
{
register header *np = hp->h.next;
free ((pointer) hp); /* Collect garbage. */
hp = np; /* -> next header. */
}
else
break; /* Rest are not deeper. */
last_alloca_header = hp; /* -> last valid storage. */
# ifdef emacs
UNBLOCK_INPUT;
# endif
}
if (size == 0)
return NULL; /* No allocation required. */
/* Allocate combined header + user data storage. */
{
/* Address of header. */
register pointer new;
size_t combined_size = sizeof (header) + size;
if (combined_size < sizeof (header))
xalloc_die ();
new = xmalloc (combined_size);
if (new == 0)
abort();
((header *) new)->h.next = last_alloca_header;
((header *) new)->h.deep = depth;
last_alloca_header = (header *) new;
/* User storage begins just after header. */
return (pointer) ((char *) new + sizeof (header));
}
}
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
# ifdef DEBUG_I00AFUNC
# include <stdio.h>
# endif
# ifndef CRAY_STACK
# define CRAY_STACK
# ifndef CRAY2
/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
struct stack_control_header
{
long shgrow:32; /* Number of times stack has grown. */
long shaseg:32; /* Size of increments to stack. */
long shhwm:32; /* High water mark of stack. */
long shsize:32; /* Current size of stack (all segments). */
};
/* The stack segment linkage control information occurs at
the high-address end of a stack segment. (The stack
grows from low addresses to high addresses.) The initial
part of the stack segment linkage control information is
0200 (octal) words. This provides for register storage
for the routine which overflows the stack. */
struct stack_segment_linkage
{
long ss[0200]; /* 0200 overflow words. */
long sssize:32; /* Number of words in this segment. */
long ssbase:32; /* Offset to stack base. */
long:32;
long sspseg:32; /* Offset to linkage control of previous
segment of stack. */
long:32;
long sstcpt:32; /* Pointer to task common address block. */
long sscsnm; /* Private control structure number for
microtasking. */
long ssusr1; /* Reserved for user. */
long ssusr2; /* Reserved for user. */
long sstpid; /* Process ID for pid based multi-tasking. */
long ssgvup; /* Pointer to multitasking thread giveup. */
long sscray[7]; /* Reserved for Cray Research. */
long ssa0;
long ssa1;
long ssa2;
long ssa3;
long ssa4;
long ssa5;
long ssa6;
long ssa7;
long sss0;
long sss1;
long sss2;
long sss3;
long sss4;
long sss5;
long sss6;
long sss7;
};
# else /* CRAY2 */
/* The following structure defines the vector of words
returned by the STKSTAT library routine. */
struct stk_stat
{
long now; /* Current total stack size. */
long maxc; /* Amount of contiguous space which would
be required to satisfy the maximum
stack demand to date. */
long high_water; /* Stack high-water mark. */
long overflows; /* Number of stack overflow ($STKOFEN) calls. */
long hits; /* Number of internal buffer hits. */
long extends; /* Number of block extensions. */
long stko_mallocs; /* Block allocations by $STKOFEN. */
long underflows; /* Number of stack underflow calls ($STKRETN). */
long stko_free; /* Number of deallocations by $STKRETN. */
long stkm_free; /* Number of deallocations by $STKMRET. */
long segments; /* Current number of stack segments. */
long maxs; /* Maximum number of stack segments so far. */
long pad_size; /* Stack pad size. */
long current_address; /* Current stack segment address. */
long current_size; /* Current stack segment size. This
number is actually corrupted by STKSTAT to
include the fifteen word trailer area. */
long initial_address; /* Address of initial segment. */
long initial_size; /* Size of initial segment. */
};
/* The following structure describes the data structure which trails
any stack segment. I think that the description in 'asdef' is
out of date. I only describe the parts that I am sure about. */
struct stk_trailer
{
long this_address; /* Address of this block. */
long this_size; /* Size of this block (does not include
this trailer). */
long unknown2;
long unknown3;
long link; /* Address of trailer block of previous
segment. */
long unknown5;
long unknown6;
long unknown7;
long unknown8;
long unknown9;
long unknown10;
long unknown11;
long unknown12;
long unknown13;
long unknown14;
};
# endif /* CRAY2 */
# endif /* not CRAY_STACK */
# ifdef CRAY2
/* Determine a "stack measure" for an arbitrary ADDRESS.
I doubt that "lint" will like this much. */
static long
i00afunc (long *address)
{
struct stk_stat status;
struct stk_trailer *trailer;
long *block, size;
long result = 0;
/* We want to iterate through all of the segments. The first
step is to get the stack status structure. We could do this
more quickly and more directly, perhaps, by referencing the
$LM00 common block, but I know that this works. */
STKSTAT (&status);
/* Set up the iteration. */
trailer = (struct stk_trailer *) (status.current_address
+ status.current_size
- 15);
/* There must be at least one stack segment. Therefore it is
a fatal error if "trailer" is null. */
if (trailer == 0)
abort ();
/* Discard segments that do not contain our argument address. */
while (trailer != 0)
{
block = (long *) trailer->this_address;
size = trailer->this_size;
if (block == 0 || size == 0)
abort ();
trailer = (struct stk_trailer *) trailer->link;
if ((block <= address) && (address < (block + size)))
break;
}
/* Set the result to the offset in this segment and add the sizes
of all predecessor segments. */
result = address - block;
if (trailer == 0)
{
return result;
}
do
{
if (trailer->this_size <= 0)
abort ();
result += trailer->this_size;
trailer = (struct stk_trailer *) trailer->link;
}
while (trailer != 0);
/* We are done. Note that if you present a bogus address (one
not in any segment), you will get a different number back, formed
from subtracting the address of the first block. This is probably
not what you want. */
return (result);
}
# else /* not CRAY2 */
/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
Determine the number of the cell within the stack,
given the address of the cell. The purpose of this
routine is to linearize, in some sense, stack addresses
for alloca. */
static long
i00afunc (long address)
{
long stkl = 0;
long size, pseg, this_segment, stack;
long result = 0;
struct stack_segment_linkage *ssptr;
/* Register B67 contains the address of the end of the
current stack segment. If you (as a subprogram) store
your registers on the stack and find that you are past
the contents of B67, you have overflowed the segment.
B67 also points to the stack segment linkage control
area, which is what we are really interested in. */
stkl = CRAY_STACKSEG_END ();
ssptr = (struct stack_segment_linkage *) stkl;
/* If one subtracts 'size' from the end of the segment,
one has the address of the first word of the segment.
If this is not the first segment, 'pseg' will be
nonzero. */
pseg = ssptr->sspseg;
size = ssptr->sssize;
this_segment = stkl - size;
/* It is possible that calling this routine itself caused
a stack overflow. Discard stack segments which do not
contain the target address. */
while (!(this_segment <= address && address <= stkl))
{
# ifdef DEBUG_I00AFUNC
fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
# endif
if (pseg == 0)
break;
stkl = stkl - pseg;
ssptr = (struct stack_segment_linkage *) stkl;
size = ssptr->sssize;
pseg = ssptr->sspseg;
this_segment = stkl - size;
}
result = address - this_segment;
/* If you subtract pseg from the current end of the stack,
you get the address of the previous stack segment's end.
This seems a little convoluted to me, but I'll bet you save
a cycle somewhere. */
while (pseg != 0)
{
# ifdef DEBUG_I00AFUNC
fprintf (stderr, "%011o %011o\n", pseg, size);
# endif
stkl = stkl - pseg;
ssptr = (struct stack_segment_linkage *) stkl;
size = ssptr->sssize;
pseg = ssptr->sspseg;
result += size;
}
return (result);
}
# endif /* not CRAY2 */
# endif /* CRAY */
# endif /* no alloca */
#endif /* not GCC version 2 */

View File

@@ -1,280 +0,0 @@
/* argmatch.c -- find a match for a string in an array
Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003 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. */
/* Written by David MacKenzie <djm@ai.mit.edu>
Modified by Akim Demaille <demaille@inf.enst.fr> */
#if HAVE_CONFIG_H
# include <config.h>
#endif
/* Specification. */
#include "argmatch.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "error.h"
#include "quotearg.h"
#include "quote.h"
#include "unlocked-io.h"
/* When reporting an invalid argument, show nonprinting characters
by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use
literal_quoting_style. */
#ifndef ARGMATCH_QUOTING_STYLE
# define ARGMATCH_QUOTING_STYLE locale_quoting_style
#endif
#ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
/* Non failing version of argmatch call this function after failing. */
#ifndef ARGMATCH_DIE
# define ARGMATCH_DIE exit (EXIT_FAILURE)
#endif
#ifdef ARGMATCH_DIE_DECL
ARGMATCH_DIE_DECL;
#endif
static void
__argmatch_die (void)
{
ARGMATCH_DIE;
}
/* Used by XARGMATCH and XARGCASEMATCH. See description in argmatch.h.
Default to __argmatch_die, but allow caller to change this at run-time. */
argmatch_exit_fn argmatch_die = __argmatch_die;
/* If ARG is an unambiguous match for an element of the
null-terminated array ARGLIST, return the index in ARGLIST
of the matched element, else -1 if it does not match any element
or -2 if it is ambiguous (is a prefix of more than one element).
If VALLIST is none null, use it to resolve ambiguities limited to
synonyms, i.e., for
"yes", "yop" -> 0
"no", "nope" -> 1
"y" is a valid argument, for `0', and "n" for `1'. */
int
argmatch (const char *arg, const char *const *arglist,
const char *vallist, size_t valsize)
{
int i; /* Temporary index in ARGLIST. */
size_t arglen; /* Length of ARG. */
int matchind = -1; /* Index of first nonexact match. */
int ambiguous = 0; /* If nonzero, multiple nonexact match(es). */
arglen = strlen (arg);
/* Test all elements for either exact match or abbreviated matches. */
for (i = 0; arglist[i]; i++)
{
if (!strncmp (arglist[i], arg, arglen))
{
if (strlen (arglist[i]) == arglen)
/* Exact match found. */
return i;
else if (matchind == -1)
/* First nonexact match found. */
matchind = i;
else
{
/* Second nonexact match found. */
if (vallist == NULL
|| memcmp (vallist + valsize * matchind,
vallist + valsize * i, valsize))
{
/* There is a real ambiguity, or we could not
disambiguate. */
ambiguous = 1;
}
}
}
}
if (ambiguous)
return -2;
else
return matchind;
}
/* Error reporting for argmatch.
CONTEXT is a description of the type of entity that was being matched.
VALUE is the invalid value that was given.
PROBLEM is the return value from argmatch. */
void
argmatch_invalid (const char *context, const char *value, int problem)
{
char const *format = (problem == -1
? _("invalid argument %s for %s")
: _("ambiguous argument %s for %s"));
error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value),
quote_n (1, context));
}
/* List the valid arguments for argmatch.
ARGLIST is the same as in argmatch.
VALLIST is a pointer to an array of values.
VALSIZE is the size of the elements of VALLIST */
void
argmatch_valid (const char *const *arglist,
const char *vallist, size_t valsize)
{
int i;
const char *last_val = NULL;
/* We try to put synonyms on the same line. The assumption is that
synonyms follow each other */
fprintf (stderr, _("Valid arguments are:"));
for (i = 0; arglist[i]; i++)
if ((i == 0)
|| memcmp (last_val, vallist + valsize * i, valsize))
{
fprintf (stderr, "\n - `%s'", arglist[i]);
last_val = vallist + valsize * i;
}
else
{
fprintf (stderr, ", `%s'", arglist[i]);
}
putc ('\n', stderr);
}
/* Never failing versions of the previous functions.
CONTEXT is the context for which argmatch is called (e.g.,
"--version-control", or "$VERSION_CONTROL" etc.). Upon failure,
calls the (supposed never to return) function EXIT_FN. */
int
__xargmatch_internal (const char *context,
const char *arg, const char *const *arglist,
const char *vallist, size_t valsize,
argmatch_exit_fn exit_fn)
{
int res = argmatch (arg, arglist, vallist, valsize);
if (res >= 0)
/* Success. */
return res;
/* We failed. Explain why. */
argmatch_invalid (context, arg, res);
argmatch_valid (arglist, vallist, valsize);
(*exit_fn) ();
return -1; /* To please the compilers. */
}
/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and
return the first corresponding argument in ARGLIST */
const char *
argmatch_to_argument (const char *value,
const char *const *arglist,
const char *vallist, size_t valsize)
{
int i;
for (i = 0; arglist[i]; i++)
if (!memcmp (value, vallist + valsize * i, valsize))
return arglist[i];
return NULL;
}
#ifdef TEST
/*
* Based on "getversion.c" by David MacKenzie <djm@gnu.ai.mit.edu>
*/
char *program_name;
extern const char *getenv ();
/* When to make backup files. */
enum backup_type
{
/* Never make backups. */
none,
/* Make simple backups of every file. */
simple,
/* Make numbered backups of files that already have numbered backups,
and simple backups of the others. */
numbered_existing,
/* Make numbered backups of every file. */
numbered
};
/* Two tables describing arguments (keys) and their corresponding
values */
static const char *const backup_args[] =
{
"no", "none", "off",
"simple", "never",
"existing", "nil",
"numbered", "t",
0
};
static const enum backup_type backup_vals[] =
{
none, none, none,
simple, simple,
numbered_existing, numbered_existing,
numbered, numbered
};
int
main (int argc, const char *const *argv)
{
const char *cp;
enum backup_type backup_type = none;
program_name = (char *) argv[0];
if (argc > 2)
{
fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name);
exit (1);
}
if ((cp = getenv ("VERSION_CONTROL")))
backup_type = XARGMATCH ("$VERSION_CONTROL", cp,
backup_args, backup_vals);
if (argc == 2)
backup_type = XARGMATCH (program_name, argv[1],
backup_args, backup_vals);
printf ("The version control is `%s'\n",
ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
return 0;
}
#endif

View File

@@ -1,109 +0,0 @@
/* argmatch.h -- definitions and prototypes for argmatch.c
Copyright (C) 1990, 1998, 1999, 2001, 2002 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. */
/* Written by David MacKenzie <djm@ai.mit.edu>
Modified by Akim Demaille <demaille@inf.enst.fr> */
#ifndef ARGMATCH_H_
# define ARGMATCH_H_ 1
# include <stddef.h>
# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
# define ARGMATCH_CONSTRAINT(Arglist, Vallist) \
(ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
/* Assert there are as many real arguments as there are values
(argument list ends with a NULL guard). ARGMATCH_VERIFY is
preferred, since it is guaranteed to be checked at compile-time.
ARGMATCH_ASSERT is for backward compatibility only. */
# define ARGMATCH_VERIFY(Arglist, Vallist) \
struct argmatch_verify \
{ \
char argmatch_verify[ARGMATCH_CONSTRAINT(Arglist, Vallist) ? 1 : -1]; \
}
# define ARGMATCH_ASSERT(Arglist, Vallist) \
assert (ARGMATCH_CONSTRAINT (Arglist, Vallist))
/* Return the index of the element of ARGLIST (NULL terminated) that
matches with ARG. If VALLIST is not NULL, then use it to resolve
false ambiguities (i.e., different matches of ARG but corresponding
to the same values in VALLIST). */
int argmatch (char const *arg, char const *const *arglist,
char const *vallist, size_t valsize);
# define ARGMATCH(Arg, Arglist, Vallist) \
argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
/* xargmatch calls this function when it fails. This function should not
return. By default, this is a function that calls ARGMATCH_DIE which
in turn defaults to `exit (EXIT_FAILURE)'. */
typedef void (*argmatch_exit_fn) (void);
extern argmatch_exit_fn argmatch_die;
/* Report on stderr why argmatch failed. Report correct values. */
void argmatch_invalid (char const *context, char const *value, int problem);
/* Left for compatibility with the old name invalid_arg */
# define invalid_arg(Context, Value, Problem) \
argmatch_invalid (Context, Value, Problem)
/* Report on stderr the list of possible arguments. */
void argmatch_valid (char const *const *arglist,
char const *vallist, size_t valsize);
# define ARGMATCH_VALID(Arglist, Vallist) \
argmatch_valid (Arglist, (char const *) (Vallist), sizeof *(Vallist))
/* Same as argmatch, but upon failure, reports a explanation on the
failure, and exits using the function EXIT_FN. */
int __xargmatch_internal (char const *context,
char const *arg, char const *const *arglist,
char const *vallist, size_t valsize,
argmatch_exit_fn exit_fn);
/* Programmer friendly interface to __xargmatch_internal. */
# define XARGMATCH(Context, Arg, Arglist, Vallist) \
((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \
(char const *) (Vallist), \
sizeof *(Vallist), \
argmatch_die)])
/* Convert a value into a corresponding argument. */
char const *argmatch_to_argument (char const *value,
char const *const *arglist,
char const *vallist, size_t valsize);
# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
argmatch_to_argument (Value, Arglist, \
(char const *) (Vallist), sizeof *(Vallist))
#endif /* ARGMATCH_H_ */

View File

@@ -1,79 +0,0 @@
/* basename.c -- return the last element in a path
Copyright (C) 1990, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if STDC_HEADERS || HAVE_STRING_H
# include <string.h>
#endif
#include "dirname.h"
/* In general, we can't use the builtin `basename' function if available,
since it has different meanings in different environments.
In some environments the builtin `basename' modifies its argument.
Return the address of the last file name component of NAME. If
NAME has no file name components because it is all slashes, return
NAME if it is empty, the address of its last slash otherwise. */
char *
base_name (char const *name)
{
char const *base = name + FILESYSTEM_PREFIX_LEN (name);
char const *p;
for (p = base; *p; p++)
{
if (ISSLASH (*p))
{
/* Treat multiple adjacent slashes like a single slash. */
do p++;
while (ISSLASH (*p));
/* If the file name ends in slash, use the trailing slash as
the basename if no non-slashes have been found. */
if (! *p)
{
if (ISSLASH (*base))
base = p - 1;
break;
}
/* *P is a non-slash preceded by a slash. */
base = p;
}
}
return (char *) base;
}
/* Return the length of of the basename NAME. Typically NAME is the
value returned by base_name. Act like strlen (NAME), except omit
redundant trailing slashes. */
size_t
base_len (char const *name)
{
size_t len;
for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--)
continue;
return len;
}

View File

@@ -1,121 +0,0 @@
/* dirname.c -- return all but the last element in a path
Copyright 1990, 1998, 2000, 2001, 2003 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. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if STDC_HEADERS || HAVE_STRING_H
# include <string.h>
#endif
#include "dirname.h"
#include "xalloc.h"
/* Return the length of `dirname (PATH)', or zero if PATH is
in the working directory. Works properly even if
there are trailing slashes (by effectively ignoring them). */
size_t
dir_len (char const *path)
{
size_t prefix_length = FILESYSTEM_PREFIX_LEN (path);
size_t length;
/* Strip the basename and any redundant slashes before it. */
for (length = base_name (path) - path; prefix_length < length; length--)
if (! ISSLASH (path[length - 1]))
return length;
/* But don't strip the only slash from "/". */
return prefix_length + ISSLASH (path[prefix_length]);
}
/* Return the leading directories part of PATH,
allocated with xmalloc.
Works properly even if there are trailing slashes
(by effectively ignoring them). */
char *
dir_name (char const *path)
{
size_t length = dir_len (path);
int append_dot = (length == FILESYSTEM_PREFIX_LEN (path));
char *newpath = xmalloc (length + append_dot + 1);
memcpy (newpath, path, length);
if (append_dot)
newpath[length++] = '.';
newpath[length] = 0;
return newpath;
}
#ifdef TEST_DIRNAME
/*
Run the test like this (expect no output):
gcc -DHAVE_CONFIG_H -DTEST_DIRNAME -I.. -O -Wall \
basename.c dirname.c xmalloc.c error.c
sed -n '/^BEGIN-DATA$/,/^END-DATA$/p' dirname.c|grep -v DATA|./a.out
If it's been built on a DOS or Windows platforms, run another test like
this (again, expect no output):
sed -n '/^BEGIN-DOS-DATA$/,/^END-DOS-DATA$/p' dirname.c|grep -v DATA|./a.out
BEGIN-DATA
foo//// .
bar/foo//// bar
foo/ .
/ /
. .
a .
END-DATA
BEGIN-DOS-DATA
c:///// c:/
c:/ c:/
c:/. c:/
c:foo c:.
c:foo/bar c:foo
END-DOS-DATA
*/
# define MAX_BUFF_LEN 1024
# include <stdio.h>
char *program_name;
int
main (int argc, char *argv[])
{
char buff[MAX_BUFF_LEN + 1];
program_name = argv[0];
buff[MAX_BUFF_LEN] = 0;
while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0])
{
char path[MAX_BUFF_LEN];
char expected_result[MAX_BUFF_LEN];
char const *result;
sscanf (buff, "%s %s", path, expected_result);
result = dir_name (path);
if (strcmp (result, expected_result))
printf ("%s: got %s, expected %s\n", path, result, expected_result);
}
return 0;
}
#endif

View File

@@ -1,49 +0,0 @@
/* Copyright (C) 1998, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef DIRNAME_H_
# define DIRNAME_H_ 1
# include <stddef.h>
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
# ifndef DIRECTORY_SEPARATOR
# define DIRECTORY_SEPARATOR '/'
# endif
# ifndef ISSLASH
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
# endif
# ifndef FILESYSTEM_PREFIX_LEN
# define FILESYSTEM_PREFIX_LEN(Filename) 0
# endif
char *base_name PARAMS ((char const *path));
char *dir_name PARAMS ((char const *path));
size_t base_len PARAMS ((char const *path));
size_t dir_len PARAMS ((char const *path));
int strip_trailing_slashes PARAMS ((char *path));
#endif /* not DIRNAME_H_ */

View File

@@ -1,407 +0,0 @@
/* Error handler for noninteractive utilities
Copyright (C) 1990-1998, 2000, 2001, 2002 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. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#ifdef _LIBC
# include <libintl.h>
#else
# include "gettext.h"
#endif
#ifdef _LIBC
# include <wchar.h>
# define mbsrtowcs __mbsrtowcs
#endif
#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
# if __STDC__
# include <stdarg.h>
# define VA_START(args, lastarg) va_start(args, lastarg)
# else
# include <varargs.h>
# define VA_START(args, lastarg) va_start(args)
# endif
#else
# define va_alist a1, a2, a3, a4, a5, a6, a7, a8
# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
#endif
#if STDC_HEADERS || _LIBC
# include <stdlib.h>
# include <string.h>
#else
void exit ();
#endif
#include "error.h"
#if !_LIBC
# include "unlocked-io.h"
#endif
#ifndef _
# define _(String) String
#endif
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
void (*error_print_progname) (
#if __STDC__ - 0
void
#endif
);
/* This variable is incremented each time `error' is called. */
unsigned int error_message_count;
#ifdef _LIBC
/* In the GNU C library, there is a predefined variable for this. */
# define program_name program_invocation_name
# include <errno.h>
# include <libio/libioP.h>
/* In GNU libc we want do not want to use the common name `error' directly.
Instead make it a weak alias. */
extern void __error (int status, int errnum, const char *message, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern void __error_at_line (int status, int errnum, const char *file_name,
unsigned int line_number, const char *message,
...)
__attribute__ ((__format__ (__printf__, 5, 6)));;
# define error __error
# define error_at_line __error_at_line
# ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define fflush(s) INTUSE(_IO_fflush) (s)
# undef putc
# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
# endif
#else /* not _LIBC */
# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
# ifndef HAVE_DECL_STRERROR_R
"this configure-time declaration test was not run"
# endif
char *strerror_r ();
# endif
/* The calling program should define program_name and set it to the
name of the executing program. */
extern char *program_name;
# if HAVE_STRERROR_R || defined strerror_r
# define __strerror_r strerror_r
# else
# if HAVE_STRERROR
# ifndef HAVE_DECL_STRERROR
"this configure-time declaration test was not run"
# endif
# if !HAVE_DECL_STRERROR
char *strerror ();
# endif
# else
static char *
private_strerror (int errnum)
{
extern char *sys_errlist[];
extern int sys_nerr;
if (errnum > 0 && errnum <= sys_nerr)
return _(sys_errlist[errnum]);
return _("Unknown system error");
}
# define strerror private_strerror
# endif /* HAVE_STRERROR */
# endif /* HAVE_STRERROR_R || defined strerror_r */
#endif /* not _LIBC */
static void
print_errno_message (int errnum)
{
char const *s;
#if defined HAVE_STRERROR_R || _LIBC
char errbuf[1024];
# if STRERROR_R_CHAR_P || _LIBC
s = __strerror_r (errnum, errbuf, sizeof errbuf);
# else
if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
s = errbuf;
else
s = 0;
# endif
#else
s = strerror (errnum);
#endif
#if !_LIBC
if (! s)
s = _("Unknown system error");
#endif
#if _LIBC && USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
{
__fwprintf (stderr, L": %s", s);
return;
}
#endif
fprintf (stderr, ": %s", s);
}
#ifdef VA_START
static void
error_tail (int status, int errnum, const char *message, va_list args)
{
# if HAVE_VPRINTF || _LIBC
# if _LIBC && USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
{
# define ALLOCA_LIMIT 2000
size_t len = strlen (message) + 1;
wchar_t *wmessage = NULL;
mbstate_t st;
size_t res;
const char *tmp;
do
{
if (len < ALLOCA_LIMIT)
wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
else
{
if (wmessage != NULL && len / 2 < ALLOCA_LIMIT)
wmessage = NULL;
wmessage = (wchar_t *) realloc (wmessage,
len * sizeof (wchar_t));
if (wmessage == NULL)
{
fputws_unlocked (L"out of memory\n", stderr);
return;
}
}
memset (&st, '\0', sizeof (st));
tmp =message;
}
while ((res = mbsrtowcs (wmessage, &tmp, len, &st)) == len);
if (res == (size_t) -1)
/* The string cannot be converted. */
wmessage = (wchar_t *) L"???";
__vfwprintf (stderr, wmessage, args);
}
else
# endif
vfprintf (stderr, message, args);
# else
_doprnt (message, args, stderr);
# endif
va_end (args);
++error_message_count;
if (errnum)
print_errno_message (errnum);
# if _LIBC && USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
putwc (L'\n', stderr);
else
# endif
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
}
#endif
/* Print the program name and error message MESSAGE, which is a printf-style
format string with optional args.
If ERRNUM is nonzero, print its corresponding system error message.
Exit with status STATUS if it is nonzero. */
/* VARARGS */
void
#if defined VA_START && __STDC__
error (int status, int errnum, const char *message, ...)
#else
error (status, errnum, message, va_alist)
int status;
int errnum;
char *message;
va_dcl
#endif
{
#ifdef VA_START
va_list args;
#endif
fflush (stdout);
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_flockfile (stderr);
# else
__flockfile (stderr);
# endif
#endif
if (error_print_progname)
(*error_print_progname) ();
else
{
#if _LIBC && USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s: ", program_name);
else
#endif
fprintf (stderr, "%s: ", program_name);
}
#ifdef VA_START
VA_START (args, message);
error_tail (status, errnum, message, args);
#else
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
++error_message_count;
if (errnum)
print_errno_message (errnum);
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
#endif
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_funlockfile (stderr);
# else
__funlockfile (stderr);
# endif
#endif
}
/* 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;
void
#if defined VA_START && __STDC__
error_at_line (int status, int errnum, const char *file_name,
unsigned int line_number, const char *message, ...)
#else
error_at_line (status, errnum, file_name, line_number, message, va_alist)
int status;
int errnum;
const char *file_name;
unsigned int line_number;
char *message;
va_dcl
#endif
{
#ifdef VA_START
va_list args;
#endif
if (error_one_per_line)
{
static const char *old_file_name;
static unsigned int old_line_number;
if (old_line_number == line_number
&& (file_name == old_file_name
|| strcmp (old_file_name, file_name) == 0))
/* Simply return and print nothing. */
return;
old_file_name = file_name;
old_line_number = line_number;
}
fflush (stdout);
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_flockfile (stderr);
# else
__flockfile (stderr);
# endif
#endif
if (error_print_progname)
(*error_print_progname) ();
else
{
#if _LIBC && USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s: ", program_name);
else
#endif
fprintf (stderr, "%s:", program_name);
}
if (file_name != NULL)
{
#if _LIBC && USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s:%d: ", file_name, line_number);
else
#endif
fprintf (stderr, "%s:%d: ", file_name, line_number);
}
#ifdef VA_START
VA_START (args, message);
error_tail (status, errnum, message, args);
#else
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
++error_message_count;
if (errnum)
print_errno_message (errnum);
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
#endif
#ifdef _LIBC
# ifdef USE_IN_LIBIO
_IO_funlockfile (stderr);
# else
__funlockfile (stderr);
# endif
#endif
}
#ifdef _LIBC
/* Make the weak alias. */
# undef error
# undef error_at_line
weak_alias (__error, error)
weak_alias (__error_at_line, error_at_line)
#endif

View File

@@ -1,78 +0,0 @@
/* Declaration for error-reporting function
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _ERROR_H
#define _ERROR_H 1
#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
# define __attribute__(Spec) /* empty */
# endif
/* The __-protected variants of `format' and `printf' attributes
are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
# define __format__ format
# define __printf__ printf
# endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if defined (__STDC__) && __STDC__
/* Print a message with `fprintf (stderr, FORMAT, ...)';
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
extern void error (int status, int errnum, const char *format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern void error_at_line (int status, int errnum, const char *fname,
unsigned int lineno, const char *format, ...)
__attribute__ ((__format__ (__printf__, 5, 6)));
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
extern void (*error_print_progname) (void);
#else
void error ();
void error_at_line ();
extern void (*error_print_progname) ();
#endif
/* This variable is incremented each time `error' is called. */
extern unsigned int error_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
#endif /* error.h */

File diff suppressed because it is too large Load Diff

View File

@@ -1,180 +0,0 @@
/* Declarations for getopt.
Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _GETOPT_H
#ifndef __need_getopt
# define _GETOPT_H 1
#endif
/* If __GNU_LIBRARY__ is not already defined, either we are being used
standalone, or this is the first header included in the source file.
If we are being used with glibc, we need to include <features.h>, but
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
not defined, include <ctype.h>, which will pull in <features.h> for us
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
doesn't flood the namespace with stuff the way some other headers do.) */
#if !defined __GNU_LIBRARY__
# include <ctype.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* For communication from `getopt' to the caller.
When `getopt' finds an option that takes an argument,
the argument value is returned here.
Also, when `ordering' is RETURN_IN_ORDER,
each non-option ARGV-element is returned here. */
extern char *optarg;
/* Index in ARGV of the next element to be scanned.
This is used for communication to and from the caller
and for communication between successive calls to `getopt'.
On entry to `getopt', zero means this is the first call; initialize.
When `getopt' returns -1, this is the index of the first of the
non-option elements that the caller should itself scan.
Otherwise, `optind' communicates from one call to the next
how much of ARGV has been scanned so far. */
extern int optind;
/* Callers store zero here to inhibit the error message `getopt' prints
for unrecognized options. */
extern int opterr;
/* Set to an option character which was unrecognized. */
extern int optopt;
#ifndef __need_getopt
/* Describe the long-named options requested by the application.
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
of `struct option' terminated by an element containing a name which is
zero.
The field `has_arg' is:
no_argument (or 0) if the option does not take an argument,
required_argument (or 1) if the option requires an argument,
optional_argument (or 2) if the option takes an optional argument.
If the field `flag' is not NULL, it points to a variable that is set
to the value given in the field `val' when the option is found, but
left unchanged if the option is not found.
To have a long-named option do something other than set an `int' to
a compiled-in constant, such as set a value from `optarg', set the
option's `flag' field to zero and its `val' field to a nonzero
value (the equivalent single-letter option character, if there is
one). For long options that have a zero `flag' field, `getopt'
returns the contents of the `val' field. */
struct option
{
# if (defined __STDC__ && __STDC__) || defined __cplusplus
const char *name;
# else
char *name;
# endif
/* has_arg can't be an enum because some compilers complain about
type mismatches in all the code that assumes it is an int. */
int has_arg;
int *flag;
int val;
};
/* Names for the values of the `has_arg' field of `struct option'. */
# define no_argument 0
# define required_argument 1
# define optional_argument 2
#endif /* need getopt */
/* Get definitions and prototypes for functions to process the
arguments in ARGV (ARGC of them, minus the program name) for
options given in OPTS.
Return the option character from OPTS just read. Return -1 when
there are no more options. For unrecognized options, or options
missing arguments, `optopt' is set to the option letter, and '?' is
returned.
The OPTS string is a list of characters which are recognized option
letters, optionally followed by colons, specifying that that letter
takes an argument, to be placed in `optarg'.
If a letter in OPTS is followed by two colons, its argument is
optional. This behavior is specific to the GNU `getopt'.
The argument `--' causes premature termination of argument
scanning, explicitly telling `getopt' that there are no more
options.
If OPTS begins with `--', then non-option arguments are treated as
arguments to the option '\0'. This behavior is specific to the GNU
`getopt'. */
#if (defined __STDC__ && __STDC__) || defined __cplusplus
# ifdef __GNU_LIBRARY__
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
# else /* not __GNU_LIBRARY__ */
extern int getopt ();
# endif /* __GNU_LIBRARY__ */
# ifndef __need_getopt
extern int getopt_long (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
extern int getopt_long_only (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind);
/* Internal only. Users should not call this directly. */
extern int _getopt_internal (int ___argc, char *const *___argv,
const char *__shortopts,
const struct option *__longopts, int *__longind,
int __long_only);
# endif
#else /* not __STDC__ */
extern int getopt ();
# ifndef __need_getopt
extern int getopt_long ();
extern int getopt_long_only ();
extern int _getopt_internal ();
# endif
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
/* Make sure we later can get all the definitions and declarations. */
#undef __need_getopt
#endif /* getopt.h */

View File

@@ -1,195 +0,0 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifdef _LIBC
# include <getopt.h>
#else
# include "getopt.h"
#endif
#if !defined __STDC__ || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#ifndef const
#define const
#endif
#endif
#include <stdio.h>
/* Comment out all this code if we are using the GNU C Library, and are not
actually compiling the library itself. This code is part of the GNU C
Library, but also included in many other GNU distributions. Compiling
and linking in this code is a waste when using the GNU C library
(especially if it is a shared library). Rather than having every GNU
program understand `configure --with-gnu-libc' and omit the object files,
it is simpler to just do this in the source for each such file. */
#define GETOPT_INTERFACE_VERSION 2
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
#include <gnu-versions.h>
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
#define ELIDE_CODE
#endif
#endif
#ifndef ELIDE_CODE
/* This needs to come after some library #include
to get __GNU_LIBRARY__ defined. */
#ifdef __GNU_LIBRARY__
#include <stdlib.h>
#endif
#ifndef NULL
#define NULL 0
#endif
int
getopt_long (argc, argv, options, long_options, opt_index)
int argc;
char *const *argv;
const char *options;
const struct option *long_options;
int *opt_index;
{
return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
}
/* Like getopt_long, but '-' as well as '--' can indicate a long option.
If an option that starts with '-' (not '--') doesn't match a long option,
but does match a short option, it is parsed as a short option
instead. */
int
getopt_long_only (argc, argv, options, long_options, opt_index)
int argc;
char *const *argv;
const char *options;
const struct option *long_options;
int *opt_index;
{
return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
}
# ifdef _LIBC
libc_hidden_def (getopt_long)
libc_hidden_def (getopt_long_only)
# endif
#endif /* Not ELIDE_CODE. */
#ifdef TEST
#include <stdio.h>
int
main (argc, argv)
int argc;
char **argv;
{
int c;
int digit_optind = 0;
while (1)
{
int this_option_optind = optind ? optind : 1;
int option_index = 0;
static struct option long_options[] =
{
{"add", 1, 0, 0},
{"append", 0, 0, 0},
{"delete", 1, 0, 0},
{"verbose", 0, 0, 0},
{"create", 0, 0, 0},
{"file", 1, 0, 0},
{0, 0, 0, 0}
};
c = getopt_long (argc, argv, "abc:d:0123456789",
long_options, &option_index);
if (c == -1)
break;
switch (c)
{
case 0:
printf ("option %s", long_options[option_index].name);
if (optarg)
printf (" with arg %s", optarg);
printf ("\n");
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
if (digit_optind != 0 && digit_optind != this_option_optind)
printf ("digits occur in two different argv-elements.\n");
digit_optind = this_option_optind;
printf ("option %c\n", c);
break;
case 'a':
printf ("option a\n");
break;
case 'b':
printf ("option b\n");
break;
case 'c':
printf ("option c with value `%s'\n", optarg);
break;
case 'd':
printf ("option d with value `%s'\n", optarg);
break;
case '?':
break;
default:
printf ("?? getopt returned character code 0%o ??\n", c);
}
}
if (optind < argc)
{
printf ("non-option ARGV-elements: ");
while (optind < argc)
printf ("%s ", argv[optind++]);
printf ("\n");
}
exit (0);
}
#endif /* TEST */

View File

@@ -1,69 +0,0 @@
/* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
#if ENABLE_NLS
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
#else
/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
chokes if dcgettext is defined as a macro. So include it now, to make
later inclusions of <locale.h> a NOP. We don't include <libintl.h>
as well because people using "gettext.h" will not include <libintl.h>,
and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
is OK. */
#if defined(__sun)
# include <locale.h>
#endif
/* Disabled NLS.
The casts to 'const char *' serve the purpose of producing warnings
for invalid uses of the value returned from these functions.
On pre-ANSI systems without 'const', the config.h file is supposed to
contain "#define const". */
# define gettext(Msgid) ((const char *) (Msgid))
# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define dngettext(Domainname, Msgid1, Msgid2, N) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
# define textdomain(Domainname) ((const char *) (Domainname))
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
#endif
/* A pseudo function call that serves as a marker for the automated
extraction of messages, but does not call gettext(). The run-time
translation is done at a different place in the code.
The argument, String, should be a literal string. Concatenated strings
and other string expressions won't work.
The macro's expansion is not parenthesized, so that it is suitable as
initializer for static 'char[]' or 'const char[]' variables. */
#define gettext_noop(String) String
#endif /* _LIBGETTEXT_H */

1051
lib/hash.c

File diff suppressed because it is too large Load Diff

View File

@@ -1,95 +0,0 @@
/* hash - hashing table processing.
Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
Written by Jim Meyering <meyering@ascend.com>, 1998.
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. */
/* A generic hash table package. */
/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
obstacks instead of malloc, and recompile `hash.c' with same setting. */
#ifndef HASH_H_
# define HASH_H_
# include <stdio.h>
# ifndef PARAMS
# if PROTOTYPES || __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
typedef unsigned (*Hash_hasher) PARAMS ((const void *, unsigned));
typedef bool (*Hash_comparator) PARAMS ((const void *, const void *));
typedef void (*Hash_data_freer) PARAMS ((void *));
typedef bool (*Hash_processor) PARAMS ((void *, void *));
struct hash_entry
{
void *data;
struct hash_entry *next;
};
struct hash_tuning
{
/* This structure is mainly used for `hash_initialize', see the block
documentation of `hash_reset_tuning' for more complete comments. */
float shrink_threshold; /* ratio of used buckets to trigger a shrink */
float shrink_factor; /* ratio of new smaller size to original size */
float growth_threshold; /* ratio of used buckets to trigger a growth */
float growth_factor; /* ratio of new bigger size to original size */
bool is_n_buckets; /* if CANDIDATE really means table size */
};
typedef struct hash_tuning Hash_tuning;
struct hash_table;
typedef struct hash_table Hash_table;
/* Information and lookup. */
unsigned hash_get_n_buckets PARAMS ((const Hash_table *));
unsigned hash_get_n_buckets_used PARAMS ((const Hash_table *));
unsigned hash_get_n_entries PARAMS ((const Hash_table *));
unsigned hash_get_max_bucket_length PARAMS ((const Hash_table *));
bool hash_table_ok PARAMS ((const Hash_table *));
void hash_print_statistics PARAMS ((const Hash_table *, FILE *));
void *hash_lookup PARAMS ((const Hash_table *, const void *));
/* Walking. */
void *hash_get_first PARAMS ((const Hash_table *));
void *hash_get_next PARAMS ((const Hash_table *, const void *));
unsigned hash_get_entries PARAMS ((const Hash_table *, void **, unsigned));
unsigned hash_do_for_each PARAMS ((const Hash_table *, Hash_processor, void *));
/* Allocation and clean-up. */
unsigned hash_string PARAMS ((const char *, unsigned));
void hash_reset_tuning PARAMS ((Hash_tuning *));
Hash_table *hash_initialize PARAMS ((unsigned, const Hash_tuning *,
Hash_hasher, Hash_comparator,
Hash_data_freer));
void hash_clear PARAMS ((Hash_table *));
void hash_free PARAMS ((Hash_table *));
/* Insertion and deletion. */
bool hash_rehash PARAMS ((Hash_table *, unsigned));
void *hash_insert PARAMS ((Hash_table *, const void *));
void *hash_delete PARAMS ((Hash_table *, const void *));
#endif

View File

@@ -1,38 +0,0 @@
/* Work around bug on some systems where malloc (0) fails.
Copyright (C) 1997, 1998 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. */
/* written by Jim Meyering */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#undef malloc
#include <stddef.h>
char *malloc ();
/* Allocate an N-byte block of memory from the heap.
If N is zero, allocate a 1-byte block. */
char *
rpl_malloc (size_t n)
{
if (n == 0)
n = 1;
return malloc (n);
}

View File

@@ -1,213 +0,0 @@
/* Determine the number of screen columns needed for a string.
Copyright (C) 2000-2002 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. */
/* Written by Bruno Haible <haible@clisp.cons.org>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/* Specification. */
#include "mbswidth.h"
/* Get MB_CUR_MAX. */
#include <stdlib.h>
#include <string.h>
/* Get isprint(). */
#include <ctype.h>
/* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth(). */
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
/* Get iswprint(), iswcntrl(). */
#if HAVE_WCTYPE_H
# include <wctype.h>
#endif
#if !defined iswprint && !HAVE_ISWPRINT
# define iswprint(wc) 1
#endif
#if !defined iswcntrl && !HAVE_ISWCNTRL
# define iswcntrl(wc) 0
#endif
#ifndef mbsinit
# if !HAVE_MBSINIT
# define mbsinit(ps) 1
# endif
#endif
#ifndef HAVE_DECL_WCWIDTH
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_WCWIDTH
int wcwidth ();
#endif
#ifndef wcwidth
# if !HAVE_WCWIDTH
/* wcwidth doesn't exist, so assume all printable characters have
width 1. */
# define wcwidth(wc) ((wc) == 0 ? 0 : iswprint (wc) ? 1 : -1)
# endif
#endif
/* Get ISPRINT. */
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
#undef ISPRINT
#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
#undef ISCNTRL
#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c))
/* Returns the number of columns needed to represent the multibyte
character string pointed to by STRING. If a non-printable character
occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned.
With flags = MBSW_REJECT_INVALID | MBSW_REJECT_UNPRINTABLE, this is
the multibyte analogon of the wcswidth function. */
int
mbswidth (const char *string, int flags)
{
return mbsnwidth (string, strlen (string), flags);
}
/* Returns the number of columns needed to represent the multibyte
character string pointed to by STRING of length NBYTES. If a
non-printable character occurs, and MBSW_REJECT_UNPRINTABLE is
specified, -1 is returned. */
int
mbsnwidth (const char *string, size_t nbytes, int flags)
{
const char *p = string;
const char *plimit = p + nbytes;
int width;
width = 0;
#if HAVE_MBRTOWC
if (MB_CUR_MAX > 1)
{
while (p < plimit)
switch (*p)
{
case ' ': case '!': case '"': case '#': case '%':
case '&': case '\'': case '(': case ')': case '*':
case '+': case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>':
case '?':
case 'A': case 'B': case 'C': case 'D': case 'E':
case 'F': case 'G': case 'H': case 'I': case 'J':
case 'K': case 'L': case 'M': case 'N': case 'O':
case 'P': case 'Q': case 'R': case 'S': case 'T':
case 'U': case 'V': case 'W': case 'X': case 'Y':
case 'Z':
case '[': case '\\': case ']': case '^': case '_':
case 'a': case 'b': case 'c': case 'd': case 'e':
case 'f': case 'g': case 'h': case 'i': case 'j':
case 'k': case 'l': case 'm': case 'n': case 'o':
case 'p': case 'q': case 'r': case 's': case 't':
case 'u': case 'v': case 'w': case 'x': case 'y':
case 'z': case '{': case '|': case '}': case '~':
/* These characters are printable ASCII characters. */
p++;
width++;
break;
default:
/* If we have a multibyte sequence, scan it up to its end. */
{
mbstate_t mbstate;
memset (&mbstate, 0, sizeof mbstate);
do
{
wchar_t wc;
size_t bytes;
int w;
bytes = mbrtowc (&wc, p, plimit - p, &mbstate);
if (bytes == (size_t) -1)
/* An invalid multibyte sequence was encountered. */
{
if (!(flags & MBSW_REJECT_INVALID))
{
p++;
width++;
break;
}
else
return -1;
}
if (bytes == (size_t) -2)
/* An incomplete multibyte character at the end. */
{
if (!(flags & MBSW_REJECT_INVALID))
{
p = plimit;
width++;
break;
}
else
return -1;
}
if (bytes == 0)
/* A null wide character was encountered. */
bytes = 1;
w = wcwidth (wc);
if (w >= 0)
/* A printable multibyte character. */
width += w;
else
/* An unprintable multibyte character. */
if (!(flags & MBSW_REJECT_UNPRINTABLE))
width += (iswcntrl (wc) ? 0 : 1);
else
return -1;
p += bytes;
}
while (! mbsinit (&mbstate));
}
break;
}
return width;
}
#endif
while (p < plimit)
{
unsigned char c = (unsigned char) *p++;
if (ISPRINT (c))
width++;
else if (!(flags & MBSW_REJECT_UNPRINTABLE))
width += (ISCNTRL (c) ? 0 : 1);
else
return -1;
}
return width;
}

View File

@@ -1,46 +0,0 @@
/* Determine the number of screen columns needed for a string.
Copyright (C) 2000-2003 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. */
#include <stddef.h>
/* Avoid a clash of our mbswidth() with a function of the same name defined
in UnixWare 7.1.1 <wchar.h>. We need this #include before the #define
below. */
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
/* Optional flags to influence mbswidth/mbsnwidth behavior. */
/* If this bit is set, return -1 upon finding an invalid or incomplete
character. Otherwise, assume invalid characters have width 1. */
#define MBSW_REJECT_INVALID 1
/* If this bit is set, return -1 upon finding a non-printable character.
Otherwise, assume unprintable characters have width 0 if they are
control characters and 1 otherwise. */
#define MBSW_REJECT_UNPRINTABLE 2
/* Returns the number of screen columns needed for STRING. */
#define mbswidth gnu_mbswidth /* avoid clash with UnixWare 7.1.1 function */
extern int mbswidth (const char *string, int flags);
/* Returns the number of screen columns needed for the NBYTES bytes
starting at BUF. */
extern int mbsnwidth (const char *buf, size_t nbytes, int flags);

View File

@@ -1,216 +0,0 @@
/* Copyright (C) 1991,93,96,97,99,2000 Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
commentary by Jim Blandy (jimb@ai.mit.edu);
adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
and implemented by Roland McGrath (roland@ai.mit.edu).
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#undef __ptr_t
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
# define __ptr_t void *
#else /* Not C++ or ANSI C. */
# define __ptr_t char *
#endif /* C++ or ANSI C. */
#if defined _LIBC
# include <string.h>
# include <memcopy.h>
#else
# define reg_char char
#endif
#if HAVE_STDLIB_H || defined _LIBC
# include <stdlib.h>
#endif
#if HAVE_LIMITS_H || defined _LIBC
# include <limits.h>
#endif
#define LONG_MAX_32_BITS 2147483647
#ifndef LONG_MAX
# define LONG_MAX LONG_MAX_32_BITS
#endif
#include <sys/types.h>
#if HAVE_BP_SYM_H || defined _LIBC
# include <bp-sym.h>
#else
# define BP_SYM(sym) sym
#endif
#undef memchr
#undef __memchr
/* Search no more than N bytes of S for C. */
__ptr_t
__memchr (s, c_in, n)
const __ptr_t s;
int c_in;
size_t n;
{
const unsigned char *char_ptr;
const unsigned long int *longword_ptr;
unsigned long int longword, magic_bits, charmask;
unsigned reg_char c;
c = (unsigned char) c_in;
/* Handle the first few characters by reading one character at a time.
Do this until CHAR_PTR is aligned on a longword boundary. */
for (char_ptr = (const unsigned char *) s;
n > 0 && ((unsigned long int) char_ptr
& (sizeof (longword) - 1)) != 0;
--n, ++char_ptr)
if (*char_ptr == c)
return (__ptr_t) char_ptr;
/* All these elucidatory comments refer to 4-byte longwords,
but the theory applies equally well to 8-byte longwords. */
longword_ptr = (unsigned long int *) char_ptr;
/* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
the "holes." Note that there is a hole just to the left of
each byte, with an extra at the end:
bits: 01111110 11111110 11111110 11111111
bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
The 1-bits make sure that carries propagate to the next 0-bit.
The 0-bits provide holes for carries to fall into. */
if (sizeof (longword) != 4 && sizeof (longword) != 8)
abort ();
#if LONG_MAX <= LONG_MAX_32_BITS
magic_bits = 0x7efefeff;
#else
magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
#endif
/* Set up a longword, each of whose bytes is C. */
charmask = c | (c << 8);
charmask |= charmask << 16;
#if LONG_MAX > LONG_MAX_32_BITS
charmask |= charmask << 32;
#endif
/* Instead of the traditional loop which tests each character,
we will test a longword at a time. The tricky part is testing
if *any of the four* bytes in the longword in question are zero. */
while (n >= sizeof (longword))
{
/* We tentatively exit the loop if adding MAGIC_BITS to
LONGWORD fails to change any of the hole bits of LONGWORD.
1) Is this safe? Will it catch all the zero bytes?
Suppose there is a byte with all zeros. Any carry bits
propagating from its left will fall into the hole at its
least significant bit and stop. Since there will be no
carry from its most significant bit, the LSB of the
byte to the left will be unchanged, and the zero will be
detected.
2) Is this worthwhile? Will it ignore everything except
zero bytes? Suppose every byte of LONGWORD has a bit set
somewhere. There will be a carry into bit 8. If bit 8
is set, this will carry into bit 16. If bit 8 is clear,
one of bits 9-15 must be set, so there will be a carry
into bit 16. Similarly, there will be a carry into bit
24. If one of bits 24-30 is set, there will be a carry
into bit 31, so all of the hole bits will be changed.
The one misfire occurs when bits 24-30 are clear and bit
31 is set; in this case, the hole at bit 31 is not
changed. If we had access to the processor carry flag,
we could close this loophole by putting the fourth hole
at bit 32!
So it ignores everything except 128's, when they're aligned
properly.
3) But wait! Aren't we looking for C, not zero?
Good point. So what we do is XOR LONGWORD with a longword,
each of whose bytes is C. This turns each byte that is C
into a zero. */
longword = *longword_ptr++ ^ charmask;
/* Add MAGIC_BITS to LONGWORD. */
if ((((longword + magic_bits)
/* Set those bits that were unchanged by the addition. */
^ ~longword)
/* Look at only the hole bits. If any of the hole bits
are unchanged, most likely one of the bytes was a
zero. */
& ~magic_bits) != 0)
{
/* Which of the bytes was C? If none of them were, it was
a misfire; continue the search. */
const unsigned char *cp = (const unsigned char *) (longword_ptr - 1);
if (cp[0] == c)
return (__ptr_t) cp;
if (cp[1] == c)
return (__ptr_t) &cp[1];
if (cp[2] == c)
return (__ptr_t) &cp[2];
if (cp[3] == c)
return (__ptr_t) &cp[3];
#if LONG_MAX > 2147483647
if (cp[4] == c)
return (__ptr_t) &cp[4];
if (cp[5] == c)
return (__ptr_t) &cp[5];
if (cp[6] == c)
return (__ptr_t) &cp[6];
if (cp[7] == c)
return (__ptr_t) &cp[7];
#endif
}
n -= sizeof (longword);
}
char_ptr = (const unsigned char *) longword_ptr;
while (n-- > 0)
{
if (*char_ptr == c)
return (__ptr_t) char_ptr;
else
++char_ptr;
}
return 0;
}
#ifdef weak_alias
weak_alias (__memchr, BP_SYM (memchr))
#endif

View File

@@ -1,386 +0,0 @@
/* Copyright (C) 1991, 1993, 1995, 1997, 1998 Free Software Foundation, Inc.
Contributed by Torbjorn Granlund (tege@sics.se).
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#undef __ptr_t
#if defined __cplusplus || (defined __STDC__ && __STDC__)
# define __ptr_t void *
#else /* Not C++ or ANSI C. */
# undef const
# define const
# define __ptr_t char *
#endif /* C++ or ANSI C. */
#ifndef __P
# if defined __GNUC__ || (defined __STDC__ && __STDC__)
# define __P(args) args
# else
# define __P(args) ()
# endif /* GCC. */
#endif /* Not __P. */
#if defined HAVE_STRING_H || defined _LIBC
# include <string.h>
#endif
#undef memcmp
#ifdef _LIBC
# include <memcopy.h>
# include <endian.h>
# if __BYTE_ORDER == __BIG_ENDIAN
# define WORDS_BIGENDIAN
# endif
#else /* Not in the GNU C library. */
# include <sys/types.h>
/* Type to use for aligned memory operations.
This should normally be the biggest type supported by a single load
and store. Must be an unsigned type. */
# define op_t unsigned long int
# define OPSIZ (sizeof(op_t))
/* Threshold value for when to enter the unrolled loops. */
# define OP_T_THRES 16
/* Type to use for unaligned operations. */
typedef unsigned char byte;
# ifndef WORDS_BIGENDIAN
# define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
# else
# define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
# endif
#endif /* In the GNU C library. */
#ifdef WORDS_BIGENDIAN
# define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
#else
# define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b))
#endif
/* BE VERY CAREFUL IF YOU CHANGE THIS CODE! */
/* The strategy of this memcmp is:
1. Compare bytes until one of the block pointers is aligned.
2. Compare using memcmp_common_alignment or
memcmp_not_common_alignment, regarding the alignment of the other
block after the initial byte operations. The maximum number of
full words (of type op_t) are compared in this way.
3. Compare the few remaining bytes. */
#ifndef WORDS_BIGENDIAN
/* memcmp_bytes -- Compare A and B bytewise in the byte order of the machine.
A and B are known to be different.
This is needed only on little-endian machines. */
static int memcmp_bytes __P((op_t, op_t));
# ifdef __GNUC__
__inline
# endif
static int
memcmp_bytes (long unsigned int a, long unsigned int b)
{
long int srcp1 = (long int) &a;
long int srcp2 = (long int) &b;
op_t a0, b0;
do
{
a0 = ((byte *) srcp1)[0];
b0 = ((byte *) srcp2)[0];
srcp1 += 1;
srcp2 += 1;
}
while (a0 == b0);
return a0 - b0;
}
#endif
static int memcmp_common_alignment __P((long, long, size_t));
/* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
objects (not LEN bytes!). Both SRCP1 and SRCP2 should be aligned for
memory operations on `op_t's. */
#ifdef __GNUC__
__inline
#endif
static int
memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
{
op_t a0, a1;
op_t b0, b1;
switch (len % 4)
{
default: /* Avoid warning about uninitialized local variables. */
case 2:
a0 = ((op_t *) srcp1)[0];
b0 = ((op_t *) srcp2)[0];
srcp1 -= 2 * OPSIZ;
srcp2 -= 2 * OPSIZ;
len += 2;
goto do1;
case 3:
a1 = ((op_t *) srcp1)[0];
b1 = ((op_t *) srcp2)[0];
srcp1 -= OPSIZ;
srcp2 -= OPSIZ;
len += 1;
goto do2;
case 0:
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
return 0;
a0 = ((op_t *) srcp1)[0];
b0 = ((op_t *) srcp2)[0];
goto do3;
case 1:
a1 = ((op_t *) srcp1)[0];
b1 = ((op_t *) srcp2)[0];
srcp1 += OPSIZ;
srcp2 += OPSIZ;
len -= 1;
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
goto do0;
/* Fall through. */
}
do
{
a0 = ((op_t *) srcp1)[0];
b0 = ((op_t *) srcp2)[0];
if (a1 != b1)
return CMP_LT_OR_GT (a1, b1);
do3:
a1 = ((op_t *) srcp1)[1];
b1 = ((op_t *) srcp2)[1];
if (a0 != b0)
return CMP_LT_OR_GT (a0, b0);
do2:
a0 = ((op_t *) srcp1)[2];
b0 = ((op_t *) srcp2)[2];
if (a1 != b1)
return CMP_LT_OR_GT (a1, b1);
do1:
a1 = ((op_t *) srcp1)[3];
b1 = ((op_t *) srcp2)[3];
if (a0 != b0)
return CMP_LT_OR_GT (a0, b0);
srcp1 += 4 * OPSIZ;
srcp2 += 4 * OPSIZ;
len -= 4;
}
while (len != 0);
/* This is the right position for do0. Please don't move
it into the loop. */
do0:
if (a1 != b1)
return CMP_LT_OR_GT (a1, b1);
return 0;
}
static int memcmp_not_common_alignment __P((long, long, size_t));
/* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
`op_t' objects (not LEN bytes!). SRCP2 should be aligned for memory
operations on `op_t', but SRCP1 *should be unaligned*. */
#ifdef __GNUC__
__inline
#endif
static int
memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
{
op_t a0, a1, a2, a3;
op_t b0, b1, b2, b3;
op_t x;
int shl, shr;
/* Calculate how to shift a word read at the memory operation
aligned srcp1 to make it aligned for comparison. */
shl = 8 * (srcp1 % OPSIZ);
shr = 8 * OPSIZ - shl;
/* Make SRCP1 aligned by rounding it down to the beginning of the `op_t'
it points in the middle of. */
srcp1 &= -OPSIZ;
switch (len % 4)
{
default: /* Avoid warning about uninitialized local variables. */
case 2:
a1 = ((op_t *) srcp1)[0];
a2 = ((op_t *) srcp1)[1];
b2 = ((op_t *) srcp2)[0];
srcp1 -= 1 * OPSIZ;
srcp2 -= 2 * OPSIZ;
len += 2;
goto do1;
case 3:
a0 = ((op_t *) srcp1)[0];
a1 = ((op_t *) srcp1)[1];
b1 = ((op_t *) srcp2)[0];
srcp2 -= 1 * OPSIZ;
len += 1;
goto do2;
case 0:
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
return 0;
a3 = ((op_t *) srcp1)[0];
a0 = ((op_t *) srcp1)[1];
b0 = ((op_t *) srcp2)[0];
srcp1 += 1 * OPSIZ;
goto do3;
case 1:
a2 = ((op_t *) srcp1)[0];
a3 = ((op_t *) srcp1)[1];
b3 = ((op_t *) srcp2)[0];
srcp1 += 2 * OPSIZ;
srcp2 += 1 * OPSIZ;
len -= 1;
if (OP_T_THRES <= 3 * OPSIZ && len == 0)
goto do0;
/* Fall through. */
}
do
{
a0 = ((op_t *) srcp1)[0];
b0 = ((op_t *) srcp2)[0];
x = MERGE(a2, shl, a3, shr);
if (x != b3)
return CMP_LT_OR_GT (x, b3);
do3:
a1 = ((op_t *) srcp1)[1];
b1 = ((op_t *) srcp2)[1];
x = MERGE(a3, shl, a0, shr);
if (x != b0)
return CMP_LT_OR_GT (x, b0);
do2:
a2 = ((op_t *) srcp1)[2];
b2 = ((op_t *) srcp2)[2];
x = MERGE(a0, shl, a1, shr);
if (x != b1)
return CMP_LT_OR_GT (x, b1);
do1:
a3 = ((op_t *) srcp1)[3];
b3 = ((op_t *) srcp2)[3];
x = MERGE(a1, shl, a2, shr);
if (x != b2)
return CMP_LT_OR_GT (x, b2);
srcp1 += 4 * OPSIZ;
srcp2 += 4 * OPSIZ;
len -= 4;
}
while (len != 0);
/* This is the right position for do0. Please don't move
it into the loop. */
do0:
x = MERGE(a2, shl, a3, shr);
if (x != b3)
return CMP_LT_OR_GT (x, b3);
return 0;
}
int
rpl_memcmp (const void *s1, const void *s2, size_t len)
{
op_t a0;
op_t b0;
long int srcp1 = (long int) s1;
long int srcp2 = (long int) s2;
op_t res;
if (len >= OP_T_THRES)
{
/* There are at least some bytes to compare. No need to test
for LEN == 0 in this alignment loop. */
while (srcp2 % OPSIZ != 0)
{
a0 = ((byte *) srcp1)[0];
b0 = ((byte *) srcp2)[0];
srcp1 += 1;
srcp2 += 1;
res = a0 - b0;
if (res != 0)
return res;
len -= 1;
}
/* SRCP2 is now aligned for memory operations on `op_t'.
SRCP1 alignment determines if we can do a simple,
aligned compare or need to shuffle bits. */
if (srcp1 % OPSIZ == 0)
res = memcmp_common_alignment (srcp1, srcp2, len / OPSIZ);
else
res = memcmp_not_common_alignment (srcp1, srcp2, len / OPSIZ);
if (res != 0)
return res;
/* Number of bytes remaining in the interval [0..OPSIZ-1]. */
srcp1 += len & -OPSIZ;
srcp2 += len & -OPSIZ;
len %= OPSIZ;
}
/* There are just a few bytes to compare. Use byte memory operations. */
while (len != 0)
{
a0 = ((byte *) srcp1)[0];
b0 = ((byte *) srcp2)[0];
srcp1 += 1;
srcp2 += 1;
res = a0 - b0;
if (res != 0)
return res;
len -= 1;
}
return 0;
}
#ifdef weak_alias
# undef bcmp
weak_alias (memcmp, bcmp)
#endif

View File

@@ -1,209 +0,0 @@
/* memrchr -- find the last occurrence of a byte in a memory block
Copyright (C) 1991, 93, 96, 97, 99, 2000 Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
commentary by Jim Blandy (jimb@ai.mit.edu);
adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
and implemented by Roland McGrath (roland@ai.mit.edu).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h>
#undef __ptr_t
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
# define __ptr_t void *
#else /* Not C++ or ANSI C. */
# define __ptr_t char *
#endif /* C++ or ANSI C. */
#if defined (_LIBC)
# include <string.h>
# include <memcopy.h>
#else
# define reg_char char
#endif
#if defined (HAVE_LIMITS_H) || defined (_LIBC)
# include <limits.h>
#endif
#define LONG_MAX_32_BITS 2147483647
#ifndef LONG_MAX
# define LONG_MAX LONG_MAX_32_BITS
#endif
#include <sys/types.h>
#undef __memrchr
#undef memrchr
#ifndef weak_alias
# define __memrchr memrchr
#endif
/* Search no more than N bytes of S for C. */
__ptr_t
__memrchr (s, c_in, n)
const __ptr_t s;
int c_in;
size_t n;
{
const unsigned char *char_ptr;
const unsigned long int *longword_ptr;
unsigned long int longword, magic_bits, charmask;
unsigned reg_char c;
c = (unsigned char) c_in;
/* Handle the last few characters by reading one character at a time.
Do this until CHAR_PTR is aligned on a longword boundary. */
for (char_ptr = (const unsigned char *) s + n;
n > 0 && ((unsigned long int) char_ptr
& (sizeof (longword) - 1)) != 0;
--n)
if (*--char_ptr == c)
return (__ptr_t) char_ptr;
/* All these elucidatory comments refer to 4-byte longwords,
but the theory applies equally well to 8-byte longwords. */
longword_ptr = (unsigned long int *) char_ptr;
/* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
the "holes." Note that there is a hole just to the left of
each byte, with an extra at the end:
bits: 01111110 11111110 11111110 11111111
bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
The 1-bits make sure that carries propagate to the next 0-bit.
The 0-bits provide holes for carries to fall into. */
if (sizeof (longword) != 4 && sizeof (longword) != 8)
abort ();
#if LONG_MAX <= LONG_MAX_32_BITS
magic_bits = 0x7efefeff;
#else
magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
#endif
/* Set up a longword, each of whose bytes is C. */
charmask = c | (c << 8);
charmask |= charmask << 16;
#if LONG_MAX > LONG_MAX_32_BITS
charmask |= charmask << 32;
#endif
/* Instead of the traditional loop which tests each character,
we will test a longword at a time. The tricky part is testing
if *any of the four* bytes in the longword in question are zero. */
while (n >= sizeof (longword))
{
/* We tentatively exit the loop if adding MAGIC_BITS to
LONGWORD fails to change any of the hole bits of LONGWORD.
1) Is this safe? Will it catch all the zero bytes?
Suppose there is a byte with all zeros. Any carry bits
propagating from its left will fall into the hole at its
least significant bit and stop. Since there will be no
carry from its most significant bit, the LSB of the
byte to the left will be unchanged, and the zero will be
detected.
2) Is this worthwhile? Will it ignore everything except
zero bytes? Suppose every byte of LONGWORD has a bit set
somewhere. There will be a carry into bit 8. If bit 8
is set, this will carry into bit 16. If bit 8 is clear,
one of bits 9-15 must be set, so there will be a carry
into bit 16. Similarly, there will be a carry into bit
24. If one of bits 24-30 is set, there will be a carry
into bit 31, so all of the hole bits will be changed.
The one misfire occurs when bits 24-30 are clear and bit
31 is set; in this case, the hole at bit 31 is not
changed. If we had access to the processor carry flag,
we could close this loophole by putting the fourth hole
at bit 32!
So it ignores everything except 128's, when they're aligned
properly.
3) But wait! Aren't we looking for C, not zero?
Good point. So what we do is XOR LONGWORD with a longword,
each of whose bytes is C. This turns each byte that is C
into a zero. */
longword = *--longword_ptr ^ charmask;
/* Add MAGIC_BITS to LONGWORD. */
if ((((longword + magic_bits)
/* Set those bits that were unchanged by the addition. */
^ ~longword)
/* Look at only the hole bits. If any of the hole bits
are unchanged, most likely one of the bytes was a
zero. */
& ~magic_bits) != 0)
{
/* Which of the bytes was C? If none of them were, it was
a misfire; continue the search. */
const unsigned char *cp = (const unsigned char *) longword_ptr;
#if LONG_MAX > 2147483647
if (cp[7] == c)
return (__ptr_t) &cp[7];
if (cp[6] == c)
return (__ptr_t) &cp[6];
if (cp[5] == c)
return (__ptr_t) &cp[5];
if (cp[4] == c)
return (__ptr_t) &cp[4];
#endif
if (cp[3] == c)
return (__ptr_t) &cp[3];
if (cp[2] == c)
return (__ptr_t) &cp[2];
if (cp[1] == c)
return (__ptr_t) &cp[1];
if (cp[0] == c)
return (__ptr_t) cp;
}
n -= sizeof (longword);
}
char_ptr = (const unsigned char *) longword_ptr;
while (n-- > 0)
{
if (*--char_ptr == c)
return (__ptr_t) char_ptr;
}
return 0;
}
#ifdef weak_alias
weak_alias (__memrchr, memrchr)
#endif

View File

@@ -1,616 +0,0 @@
/* obstack.c - subroutines used implicitly by object stack macros
Copyright (C) 1988-1994, 1996-1999, 2000-2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "obstack.h"
/* NOTE BEFORE MODIFYING THIS FILE: This version number must be
incremented whenever callers compiled using an old obstack.h can no
longer properly call the functions in this obstack.c. */
#define OBSTACK_INTERFACE_VERSION 1
/* Comment out all this code if we are using the GNU C Library, and are not
actually compiling the library itself, and the installed library
supports the same library interface we do. This code is part of the GNU
C Library, but also included in many other GNU distributions. Compiling
and linking in this code is a waste when using the GNU C library
(especially if it is a shared library). Rather than having every GNU
program understand `configure --with-gnu-libc' and omit the object
files, it is simpler to just do this in the source for each such file. */
#include <stdio.h> /* Random thing to get __GNU_LIBRARY__. */
#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
# include <gnu-versions.h>
# if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
# define ELIDE_CODE
# endif
#endif
#if defined _LIBC && defined USE_IN_LIBIO
# include <wchar.h>
#endif
#ifndef ELIDE_CODE
# if defined __STDC__ && __STDC__
# define POINTER void *
# else
# define POINTER char *
# endif
/* Determine default alignment. */
struct fooalign {char x; double d;};
# define DEFAULT_ALIGNMENT \
((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0))
/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
But in fact it might be less smart and round addresses to as much as
DEFAULT_ROUNDING. So we prepare for it to do that. */
union fooround {long x; double d;};
# define DEFAULT_ROUNDING (sizeof (union fooround))
/* When we copy a long block of data, this is the unit to do it with.
On some machines, copying successive ints does not work;
in such a case, redefine COPYING_UNIT to `long' (if that works)
or `char' as a last resort. */
# ifndef COPYING_UNIT
# define COPYING_UNIT int
# endif
/* The functions allocating more room by calling `obstack_chunk_alloc'
jump to the handler pointed to by `obstack_alloc_failed_handler'.
This can be set to a user defined function which should either
abort gracefully or use longjump - but shouldn't return. This
variable by default points to the internal function
`print_and_abort'. */
# if defined __STDC__ && __STDC__
static void print_and_abort (void);
void (*obstack_alloc_failed_handler) (void) = print_and_abort;
# else
static void print_and_abort ();
void (*obstack_alloc_failed_handler) () = print_and_abort;
# endif
/* Exit value used when `print_and_abort' is used. */
# if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
# include <stdlib.h>
# endif
# ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
# endif
int obstack_exit_failure = EXIT_FAILURE;
/* The non-GNU-C macros copy the obstack into this global variable
to avoid multiple evaluation. */
struct obstack *_obstack;
/* Define a macro that either calls functions with the traditional malloc/free
calling interface, or calls functions with the mmalloc/mfree interface
(that adds an extra first argument), based on the state of use_extra_arg.
For free, do not use ?:, since some compilers, like the MIPS compilers,
do not allow (expr) ? void : void. */
# if defined __STDC__ && __STDC__
# define CALL_CHUNKFUN(h, size) \
(((h) -> use_extra_arg) \
? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
: (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
# define CALL_FREEFUN(h, old_chunk) \
do { \
if ((h) -> use_extra_arg) \
(*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
else \
(*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
} while (0)
# else
# define CALL_CHUNKFUN(h, size) \
(((h) -> use_extra_arg) \
? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
: (*(struct _obstack_chunk *(*) ()) (h)->chunkfun) ((size)))
# define CALL_FREEFUN(h, old_chunk) \
do { \
if ((h) -> use_extra_arg) \
(*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
else \
(*(void (*) ()) (h)->freefun) ((old_chunk)); \
} while (0)
# endif
/* Initialize an obstack H for use. Specify chunk size SIZE (0 means default).
Objects start on multiples of ALIGNMENT (0 means use default).
CHUNKFUN is the function to use to allocate chunks,
and FREEFUN the function to free them.
Return nonzero if successful, calls obstack_alloc_failed_handler if
allocation fails. */
int
_obstack_begin (h, size, alignment, chunkfun, freefun)
struct obstack *h;
int size;
int alignment;
# if defined __STDC__ && __STDC__
POINTER (*chunkfun) (long);
void (*freefun) (void *);
# else
POINTER (*chunkfun) ();
void (*freefun) ();
# endif
{
register struct _obstack_chunk *chunk; /* points to new chunk */
if (alignment == 0)
alignment = (int) DEFAULT_ALIGNMENT;
if (size == 0)
/* Default size is what GNU malloc can fit in a 4096-byte block. */
{
/* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc.
Use the values for range checking, because if range checking is off,
the extra bytes won't be missed terribly, but if range checking is on
and we used a larger request, a whole extra 4096 bytes would be
allocated.
These number are irrelevant to the new GNU malloc. I suspect it is
less sensitive to the size of the request. */
int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1))
+ 4 + DEFAULT_ROUNDING - 1)
& ~(DEFAULT_ROUNDING - 1));
size = 4096 - extra;
}
# if defined __STDC__ && __STDC__
h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
# else
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
h->freefun = freefun;
# endif
h->chunk_size = size;
h->alignment_mask = alignment - 1;
h->use_extra_arg = 0;
chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
if (!chunk)
(*obstack_alloc_failed_handler) ();
h->next_free = h->object_base = chunk->contents;
h->chunk_limit = chunk->limit
= (char *) chunk + h->chunk_size;
chunk->prev = 0;
/* The initial chunk now contains no empty object. */
h->maybe_empty_object = 0;
h->alloc_failed = 0;
return 1;
}
int
_obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
struct obstack *h;
int size;
int alignment;
# if defined __STDC__ && __STDC__
POINTER (*chunkfun) (POINTER, long);
void (*freefun) (POINTER, POINTER);
# else
POINTER (*chunkfun) ();
void (*freefun) ();
# endif
POINTER arg;
{
register struct _obstack_chunk *chunk; /* points to new chunk */
if (alignment == 0)
alignment = (int) DEFAULT_ALIGNMENT;
if (size == 0)
/* Default size is what GNU malloc can fit in a 4096-byte block. */
{
/* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc.
Use the values for range checking, because if range checking is off,
the extra bytes won't be missed terribly, but if range checking is on
and we used a larger request, a whole extra 4096 bytes would be
allocated.
These number are irrelevant to the new GNU malloc. I suspect it is
less sensitive to the size of the request. */
int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1))
+ 4 + DEFAULT_ROUNDING - 1)
& ~(DEFAULT_ROUNDING - 1));
size = 4096 - extra;
}
# if defined __STDC__ && __STDC__
h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
# else
h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
h->freefun = freefun;
# endif
h->chunk_size = size;
h->alignment_mask = alignment - 1;
h->extra_arg = arg;
h->use_extra_arg = 1;
chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
if (!chunk)
(*obstack_alloc_failed_handler) ();
h->next_free = h->object_base = chunk->contents;
h->chunk_limit = chunk->limit
= (char *) chunk + h->chunk_size;
chunk->prev = 0;
/* The initial chunk now contains no empty object. */
h->maybe_empty_object = 0;
h->alloc_failed = 0;
return 1;
}
/* Allocate a new current chunk for the obstack *H
on the assumption that LENGTH bytes need to be added
to the current object, or a new object of length LENGTH allocated.
Copies any partial object from the end of the old chunk
to the beginning of the new one. */
void
_obstack_newchunk (h, length)
struct obstack *h;
int length;
{
register struct _obstack_chunk *old_chunk = h->chunk;
register struct _obstack_chunk *new_chunk;
register long new_size;
register long obj_size = h->next_free - h->object_base;
register long i;
long already;
char *object_base;
/* Compute size for new chunk. */
new_size = (obj_size + length) + (obj_size >> 3) + h->alignment_mask + 100;
if (new_size < h->chunk_size)
new_size = h->chunk_size;
/* Allocate and initialize the new chunk. */
new_chunk = CALL_CHUNKFUN (h, new_size);
if (!new_chunk)
(*obstack_alloc_failed_handler) ();
h->chunk = new_chunk;
new_chunk->prev = old_chunk;
new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
/* Compute an aligned object_base in the new chunk */
object_base =
__INT_TO_PTR ((__PTR_TO_INT (new_chunk->contents) + h->alignment_mask)
& ~ (h->alignment_mask));
/* Move the existing object to the new chunk.
Word at a time is fast and is safe if the object
is sufficiently aligned. */
if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT)
{
for (i = obj_size / sizeof (COPYING_UNIT) - 1;
i >= 0; i--)
((COPYING_UNIT *)object_base)[i]
= ((COPYING_UNIT *)h->object_base)[i];
/* We used to copy the odd few remaining bytes as one extra COPYING_UNIT,
but that can cross a page boundary on a machine
which does not do strict alignment for COPYING_UNITS. */
already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT);
}
else
already = 0;
/* Copy remaining bytes one by one. */
for (i = already; i < obj_size; i++)
object_base[i] = h->object_base[i];
/* If the object just copied was the only data in OLD_CHUNK,
free that chunk and remove it from the chain.
But not if that chunk might contain an empty object. */
if (h->object_base == old_chunk->contents && ! h->maybe_empty_object)
{
new_chunk->prev = old_chunk->prev;
CALL_FREEFUN (h, old_chunk);
}
h->object_base = object_base;
h->next_free = h->object_base + obj_size;
/* The new chunk certainly contains no empty object yet. */
h->maybe_empty_object = 0;
}
/* Return nonzero if object OBJ has been allocated from obstack H.
This is here for debugging.
If you use it in a program, you are probably losing. */
# if defined __STDC__ && __STDC__
/* Suppress -Wmissing-prototypes warning. We don't want to declare this in
obstack.h because it is just for debugging. */
int _obstack_allocated_p (struct obstack *h, POINTER obj);
# endif
int
_obstack_allocated_p (h, obj)
struct obstack *h;
POINTER obj;
{
register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
register struct _obstack_chunk *plp; /* point to previous chunk if any */
lp = (h)->chunk;
/* We use >= rather than > since the object cannot be exactly at
the beginning of the chunk but might be an empty object exactly
at the end of an adjacent chunk. */
while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
{
plp = lp->prev;
lp = plp;
}
return lp != 0;
}
/* Free objects in obstack H, including OBJ and everything allocate
more recently than OBJ. If OBJ is zero, free everything in H. */
# undef obstack_free
/* This function has two names with identical definitions.
This is the first one, called from non-ANSI code. */
void
_obstack_free (h, obj)
struct obstack *h;
POINTER obj;
{
register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
register struct _obstack_chunk *plp; /* point to previous chunk if any */
lp = h->chunk;
/* We use >= because there cannot be an object at the beginning of a chunk.
But there can be an empty object at that address
at the end of another chunk. */
while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
{
plp = lp->prev;
CALL_FREEFUN (h, lp);
lp = plp;
/* If we switch chunks, we can't tell whether the new current
chunk contains an empty object, so assume that it may. */
h->maybe_empty_object = 1;
}
if (lp)
{
h->object_base = h->next_free = (char *) (obj);
h->chunk_limit = lp->limit;
h->chunk = lp;
}
else if (obj != 0)
/* obj is not in any of the chunks! */
abort ();
}
/* This function is used from ANSI code. */
void
obstack_free (h, obj)
struct obstack *h;
POINTER obj;
{
register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
register struct _obstack_chunk *plp; /* point to previous chunk if any */
lp = h->chunk;
/* We use >= because there cannot be an object at the beginning of a chunk.
But there can be an empty object at that address
at the end of another chunk. */
while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
{
plp = lp->prev;
CALL_FREEFUN (h, lp);
lp = plp;
/* If we switch chunks, we can't tell whether the new current
chunk contains an empty object, so assume that it may. */
h->maybe_empty_object = 1;
}
if (lp)
{
h->object_base = h->next_free = (char *) (obj);
h->chunk_limit = lp->limit;
h->chunk = lp;
}
else if (obj != 0)
/* obj is not in any of the chunks! */
abort ();
}
int
_obstack_memory_used (h)
struct obstack *h;
{
register struct _obstack_chunk* lp;
register int nbytes = 0;
for (lp = h->chunk; lp != 0; lp = lp->prev)
{
nbytes += lp->limit - (char *) lp;
}
return nbytes;
}
/* Define the error handler. */
# ifdef _LIBC
# include <libintl.h>
# else
# include "gettext.h"
# endif
# define _(msgid) gettext (msgid)
# if defined _LIBC && defined USE_IN_LIBIO
# include <libio/iolibio.h>
# define fputs(s, f) _IO_fputs (s, f)
# endif
# ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
# define __attribute__(Spec) /* empty */
# endif
# endif
static void
__attribute__ ((noreturn))
print_and_abort ()
{
/* Don't change any of these strings. Yes, it would be possible to add
the newline to the string and use fputs or so. But this must not
happen because the "memory exhausted" message appears in other places
like this and the translation should be reused instead of creating
a very similar string which requires a separate translation. */
# if defined _LIBC && defined USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s\n", _("memory exhausted"));
else
# endif
fprintf (stderr, "%s\n", _("memory exhausted"));
exit (obstack_exit_failure);
}
# if 0
/* These are now turned off because the applications do not use it
and it uses bcopy via obstack_grow, which causes trouble on sysV. */
/* Now define the functional versions of the obstack macros.
Define them to simply use the corresponding macros to do the job. */
# if defined __STDC__ && __STDC__
/* These function definitions do not work with non-ANSI preprocessors;
they won't pass through the macro names in parentheses. */
/* The function names appear in parentheses in order to prevent
the macro-definitions of the names from being expanded there. */
POINTER (obstack_base) (obstack)
struct obstack *obstack;
{
return obstack_base (obstack);
}
POINTER (obstack_next_free) (obstack)
struct obstack *obstack;
{
return obstack_next_free (obstack);
}
int (obstack_object_size) (obstack)
struct obstack *obstack;
{
return obstack_object_size (obstack);
}
int (obstack_room) (obstack)
struct obstack *obstack;
{
return obstack_room (obstack);
}
int (obstack_make_room) (obstack, length)
struct obstack *obstack;
int length;
{
return obstack_make_room (obstack, length);
}
void (obstack_grow) (obstack, data, length)
struct obstack *obstack;
const POINTER data;
int length;
{
obstack_grow (obstack, data, length);
}
void (obstack_grow0) (obstack, data, length)
struct obstack *obstack;
const POINTER data;
int length;
{
obstack_grow0 (obstack, data, length);
}
void (obstack_1grow) (obstack, character)
struct obstack *obstack;
int character;
{
obstack_1grow (obstack, character);
}
void (obstack_blank) (obstack, length)
struct obstack *obstack;
int length;
{
obstack_blank (obstack, length);
}
void (obstack_1grow_fast) (obstack, character)
struct obstack *obstack;
int character;
{
obstack_1grow_fast (obstack, character);
}
void (obstack_blank_fast) (obstack, length)
struct obstack *obstack;
int length;
{
obstack_blank_fast (obstack, length);
}
POINTER (obstack_finish) (obstack)
struct obstack *obstack;
{
return obstack_finish (obstack);
}
POINTER (obstack_alloc) (obstack, length)
struct obstack *obstack;
int length;
{
return obstack_alloc (obstack, length);
}
POINTER (obstack_copy) (obstack, address, length)
struct obstack *obstack;
const POINTER address;
int length;
{
return obstack_copy (obstack, address, length);
}
POINTER (obstack_copy0) (obstack, address, length)
struct obstack *obstack;
const POINTER address;
int length;
{
return obstack_copy0 (obstack, address, length);
}
# endif /* __STDC__ */
# endif /* 0 */
#endif /* !ELIDE_CODE */

View File

@@ -1,613 +0,0 @@
/* obstack.h - object stack macros
Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Summary:
All the apparent functions defined here are macros. The idea
is that you would use these pre-tested macros to solve a
very specific set of problems, and they would run fast.
Caution: no side-effects in arguments please!! They may be
evaluated MANY times!!
These macros operate a stack of objects. Each object starts life
small, and may grow to maturity. (Consider building a word syllable
by syllable.) An object can move while it is growing. Once it has
been "finished" it never changes address again. So the "top of the
stack" is typically an immature growing object, while the rest of the
stack is of mature, fixed size and fixed address objects.
These routines grab large chunks of memory, using a function you
supply, called `obstack_chunk_alloc'. On occasion, they free chunks,
by calling `obstack_chunk_free'. You must define them and declare
them before using any obstack macros.
Each independent stack is represented by a `struct obstack'.
Each of the obstack macros expects a pointer to such a structure
as the first argument.
One motivation for this package is the problem of growing char strings
in symbol tables. Unless you are "fascist pig with a read-only mind"
--Gosper's immortal quote from HAKMEM item 154, out of context--you
would not like to put any arbitrary upper limit on the length of your
symbols.
In practice this often means you will build many short symbols and a
few long symbols. At the time you are reading a symbol you don't know
how long it is. One traditional method is to read a symbol into a
buffer, realloc()ating the buffer every time you try to read a symbol
that is longer than the buffer. This is beaut, but you still will
want to copy the symbol from the buffer to a more permanent
symbol-table entry say about half the time.
With obstacks, you can work differently. Use one obstack for all symbol
names. As you read a symbol, grow the name in the obstack gradually.
When the name is complete, finalize it. Then, if the symbol exists already,
free the newly read name.
The way we do this is to take a large chunk, allocating memory from
low addresses. When you want to build a symbol in the chunk you just
add chars above the current "high water mark" in the chunk. When you
have finished adding chars, because you got to the end of the symbol,
you know how long the chars are, and you can create a new object.
Mostly the chars will not burst over the highest address of the chunk,
because you would typically expect a chunk to be (say) 100 times as
long as an average object.
In case that isn't clear, when we have enough chars to make up
the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed)
so we just point to it where it lies. No moving of chars is
needed and this is the second win: potentially long strings need
never be explicitly shuffled. Once an object is formed, it does not
change its address during its lifetime.
When the chars burst over a chunk boundary, we allocate a larger
chunk, and then copy the partly formed object from the end of the old
chunk to the beginning of the new larger chunk. We then carry on
accreting characters to the end of the object as we normally would.
A special macro is provided to add a single char at a time to a
growing object. This allows the use of register variables, which
break the ordinary 'growth' macro.
Summary:
We allocate large chunks.
We carve out one object at a time from the current chunk.
Once carved, an object never moves.
We are free to append data of any size to the currently
growing object.
Exactly one object is growing in an obstack at any one time.
You can run one obstack per control block.
You may have as many control blocks as you dare.
Because of the way we do it, you can `unwind' an obstack
back to a previous state. (You may remove objects much
as you would with a stack.)
*/
/* Don't do the contents of this file more than once. */
#ifndef _OBSTACK_H
#define _OBSTACK_H 1
#ifdef __cplusplus
extern "C" {
#endif
/* We use subtraction of (char *) 0 instead of casting to int
because on word-addressable machines a simple cast to int
may ignore the byte-within-word field of the pointer. */
#ifndef __PTR_TO_INT
# define __PTR_TO_INT(P) ((P) - (char *) 0)
#endif
#ifndef __INT_TO_PTR
#if defined __STDC__ && __STDC__
# define __INT_TO_PTR(P) ((void *) ((P) + (char *) 0))
#else
# define __INT_TO_PTR(P) ((P) + (char *) 0)
#endif
#endif
/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
defined, as with GNU C, use that; that way we don't pollute the
namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
available, include it and use ptrdiff_t. In traditional C, long is
the best that we can do. */
#ifdef __PTRDIFF_TYPE__
# define PTR_INT_TYPE __PTRDIFF_TYPE__
#else
# ifdef HAVE_STDDEF_H
# include <stddef.h>
# define PTR_INT_TYPE ptrdiff_t
# else
# define PTR_INT_TYPE long
# endif
#endif
#if defined _LIBC || defined HAVE_STRING_H
# include <string.h>
# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
#else
# ifdef memcpy
# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
# else
# define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
# endif
#endif
struct _obstack_chunk /* Lives at front of each chunk. */
{
char *limit; /* 1 past end of this chunk */
struct _obstack_chunk *prev; /* address of prior chunk or NULL */
char contents[4]; /* objects begin here */
};
struct obstack /* control current object in current chunk */
{
long chunk_size; /* preferred size to allocate chunks in */
struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */
char *object_base; /* address of object we are building */
char *next_free; /* where to add next char to current object */
char *chunk_limit; /* address of char after current chunk */
PTR_INT_TYPE temp; /* Temporary for some macros. */
int alignment_mask; /* Mask of alignment for each object. */
#if defined __STDC__ && __STDC__
/* These prototypes vary based on `use_extra_arg', and we use
casts to the prototypeless function type in all assignments,
but having prototypes here quiets -Wstrict-prototypes. */
struct _obstack_chunk *(*chunkfun) (void *, long);
void (*freefun) (void *, struct _obstack_chunk *);
void *extra_arg; /* first arg for chunk alloc/dealloc funcs */
#else
struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */
void (*freefun) (); /* User's function to free a chunk. */
char *extra_arg; /* first arg for chunk alloc/dealloc funcs */
#endif
unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */
unsigned maybe_empty_object:1;/* There is a possibility that the current
chunk contains a zero-length object. This
prevents freeing the chunk if we allocate
a bigger chunk to replace it. */
unsigned alloc_failed:1; /* No longer used, as we now call the failed
handler on error, but retained for binary
compatibility. */
};
/* Declare the external functions we use; they are in obstack.c. */
#if defined __STDC__ && __STDC__
extern void _obstack_newchunk (struct obstack *, int);
extern void _obstack_free (struct obstack *, void *);
extern int _obstack_begin (struct obstack *, int, int,
void *(*) (long), void (*) (void *));
extern int _obstack_begin_1 (struct obstack *, int, int,
void *(*) (void *, long),
void (*) (void *, void *), void *);
extern int _obstack_memory_used (struct obstack *);
#else
extern void _obstack_newchunk ();
extern void _obstack_free ();
extern int _obstack_begin ();
extern int _obstack_begin_1 ();
extern int _obstack_memory_used ();
#endif
#if defined __STDC__ && __STDC__
/* Do the function-declarations after the structs
but before defining the macros. */
void obstack_init (struct obstack *obstack);
void * obstack_alloc (struct obstack *obstack, int size);
void * obstack_copy (struct obstack *obstack, const void *address, int size);
void * obstack_copy0 (struct obstack *obstack, const void *address, int size);
void obstack_free (struct obstack *obstack, void *block);
void obstack_blank (struct obstack *obstack, int size);
void obstack_grow (struct obstack *obstack, const void *data, int size);
void obstack_grow0 (struct obstack *obstack, const void *data, int size);
void obstack_1grow (struct obstack *obstack, int data_char);
void obstack_ptr_grow (struct obstack *obstack, const void *data);
void obstack_int_grow (struct obstack *obstack, int data);
void * obstack_finish (struct obstack *obstack);
int obstack_object_size (struct obstack *obstack);
int obstack_room (struct obstack *obstack);
void obstack_make_room (struct obstack *obstack, int size);
void obstack_1grow_fast (struct obstack *obstack, int data_char);
void obstack_ptr_grow_fast (struct obstack *obstack, const void *data);
void obstack_int_grow_fast (struct obstack *obstack, int data);
void obstack_blank_fast (struct obstack *obstack, int size);
void * obstack_base (struct obstack *obstack);
void * obstack_next_free (struct obstack *obstack);
int obstack_alignment_mask (struct obstack *obstack);
int obstack_chunk_size (struct obstack *obstack);
int obstack_memory_used (struct obstack *obstack);
#endif /* __STDC__ */
/* Non-ANSI C cannot really support alternative functions for these macros,
so we do not declare them. */
/* Error handler called when `obstack_chunk_alloc' failed to allocate
more memory. This can be set to a user defined function which
should either abort gracefully or use longjump - but shouldn't
return. The default action is to print a message and abort. */
#if defined __STDC__ && __STDC__
extern void (*obstack_alloc_failed_handler) (void);
#else
extern void (*obstack_alloc_failed_handler) ();
#endif
/* Exit value used when `print_and_abort' is used. */
extern int obstack_exit_failure;
/* Pointer to beginning of object being allocated or to be allocated next.
Note that this might not be the final address of the object
because a new chunk might be needed to hold the final size. */
#define obstack_base(h) ((h)->object_base)
/* Size for allocating ordinary chunks. */
#define obstack_chunk_size(h) ((h)->chunk_size)
/* Pointer to next byte not yet allocated in current chunk. */
#define obstack_next_free(h) ((h)->next_free)
/* Mask specifying low bits that should be clear in address of an object. */
#define obstack_alignment_mask(h) ((h)->alignment_mask)
/* To prevent prototype warnings provide complete argument list in
standard C version. */
#if defined __STDC__ && __STDC__
# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) (long)) obstack_chunk_alloc, \
(void (*) (void *)) obstack_chunk_free)
# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) (long)) obstack_chunk_alloc, \
(void (*) (void *)) obstack_chunk_free)
# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) (long)) (chunkfun), \
(void (*) (void *)) (freefun))
# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) (void *, long)) (chunkfun), \
(void (*) (void *, void *)) (freefun), (arg))
# define obstack_chunkfun(h, newchunkfun) \
((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
# define obstack_freefun(h, newfreefun) \
((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
#else
# define obstack_init(h) \
_obstack_begin ((h), 0, 0, \
(void *(*) ()) obstack_chunk_alloc, \
(void (*) ()) obstack_chunk_free)
# define obstack_begin(h, size) \
_obstack_begin ((h), (size), 0, \
(void *(*) ()) obstack_chunk_alloc, \
(void (*) ()) obstack_chunk_free)
# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
_obstack_begin ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), \
(void (*) ()) (freefun))
# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
(void *(*) ()) (chunkfun), \
(void (*) ()) (freefun), (arg))
# define obstack_chunkfun(h, newchunkfun) \
((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun))
# define obstack_freefun(h, newfreefun) \
((h) -> freefun = (void (*)()) (newfreefun))
#endif
#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
#define obstack_blank_fast(h,n) ((h)->next_free += (n))
#define obstack_memory_used(h) _obstack_memory_used (h)
#if defined __GNUC__ && defined __STDC__ && __STDC__
/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
does not implement __extension__. But that compiler doesn't define
__GNUC_MINOR__. */
# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
# define __extension__
# endif
/* For GNU C, if not -traditional,
we can define these macros to compute all args only once
without using a global variable.
Also, we can avoid using the `temp' slot, to make faster code. */
# define obstack_object_size(OBSTACK) \
__extension__ \
({ struct obstack const *__o = (OBSTACK); \
(unsigned) (__o->next_free - __o->object_base); })
# define obstack_room(OBSTACK) \
__extension__ \
({ struct obstack const *__o = (OBSTACK); \
(unsigned) (__o->chunk_limit - __o->next_free); })
# define obstack_make_room(OBSTACK,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->chunk_limit - __o->next_free < __len) \
_obstack_newchunk (__o, __len); \
(void) 0; })
# define obstack_empty_p(OBSTACK) \
__extension__ \
({ struct obstack const *__o = (OBSTACK); \
(__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
# define obstack_grow(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->next_free + __len > __o->chunk_limit) \
_obstack_newchunk (__o, __len); \
_obstack_memcpy (__o->next_free, (where), __len); \
__o->next_free += __len; \
(void) 0; })
# define obstack_grow0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->next_free + __len + 1 > __o->chunk_limit) \
_obstack_newchunk (__o, __len + 1); \
_obstack_memcpy (__o->next_free, (where), __len); \
__o->next_free += __len; \
*(__o->next_free)++ = 0; \
(void) 0; })
# define obstack_1grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + 1 > __o->chunk_limit) \
_obstack_newchunk (__o, 1); \
*(__o->next_free)++ = (datum); \
(void) 0; })
/* These assume that the obstack alignment is good enough for pointers
or ints, and that the data added so far to the current object
shares that much alignment. */
# define obstack_ptr_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (void *)); \
*((void **)__o->next_free)++ = (datum); \
(void) 0; })
# define obstack_int_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (int)); \
*((int *)__o->next_free)++ = (datum); \
(void) 0; })
# define obstack_ptr_grow_fast(h,aptr) \
(*((void **) (h)->next_free)++ = (aptr))
# define obstack_int_grow_fast(h,aint) \
(*((int *) (h)->next_free)++ = (aint))
# define obstack_blank(OBSTACK,length) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
int __len = (length); \
if (__o->chunk_limit - __o->next_free < __len) \
_obstack_newchunk (__o, __len); \
__o->next_free += __len; \
(void) 0; })
# define obstack_alloc(OBSTACK,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_blank (__h, (length)); \
obstack_finish (__h); })
# define obstack_copy(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow (__h, (where), (length)); \
obstack_finish (__h); })
# define obstack_copy0(OBSTACK,where,length) \
__extension__ \
({ struct obstack *__h = (OBSTACK); \
obstack_grow0 (__h, (where), (length)); \
obstack_finish (__h); })
/* The local variable is named __o1 to avoid a name conflict
when obstack_blank is called. */
# define obstack_finish(OBSTACK) \
__extension__ \
({ struct obstack *__o1 = (OBSTACK); \
void *value; \
value = (void *) __o1->object_base; \
if (__o1->next_free == value) \
__o1->maybe_empty_object = 1; \
__o1->next_free \
= __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
& ~ (__o1->alignment_mask)); \
if (__o1->next_free - (char *)__o1->chunk \
> __o1->chunk_limit - (char *)__o1->chunk) \
__o1->next_free = __o1->chunk_limit; \
__o1->object_base = __o1->next_free; \
value; })
# define obstack_free(OBSTACK, OBJ) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
void *__obj = (OBJ); \
if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
__o->next_free = __o->object_base = (char *)__obj; \
else (obstack_free) (__o, __obj); })
#else /* not __GNUC__ or not __STDC__ */
# define obstack_object_size(h) \
(unsigned) ((h)->next_free - (h)->object_base)
# define obstack_room(h) \
(unsigned) ((h)->chunk_limit - (h)->next_free)
# define obstack_empty_p(h) \
((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
so that we can avoid having void expressions
in the arms of the conditional expression.
Casting the third operand to void was tried before,
but some compilers won't accept it. */
# define obstack_make_room(h,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
# define obstack_grow(h,where,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \
(h)->next_free += (h)->temp)
# define obstack_grow0(h,where,length) \
( (h)->temp = (length), \
(((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \
(h)->next_free += (h)->temp, \
*((h)->next_free)++ = 0)
# define obstack_1grow(h,datum) \
( (((h)->next_free + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), 1), 0) : 0), \
(*((h)->next_free)++ = (datum)))
# define obstack_ptr_grow(h,datum) \
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
(*((const char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = (datum)))
# define obstack_int_grow(h,datum) \
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
(*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = (datum)))
# define obstack_ptr_grow_fast(h,aptr) \
(*((const char **) (h)->next_free)++ = (aptr))
# define obstack_int_grow_fast(h,aint) \
(*((int *) (h)->next_free)++ = (aint))
# define obstack_blank(h,length) \
( (h)->temp = (length), \
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
((h)->next_free += (h)->temp))
# define obstack_alloc(h,length) \
(obstack_blank ((h), (length)), obstack_finish ((h)))
# define obstack_copy(h,where,length) \
(obstack_grow ((h), (where), (length)), obstack_finish ((h)))
# define obstack_copy0(h,where,length) \
(obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
# define obstack_finish(h) \
( ((h)->next_free == (h)->object_base \
? (((h)->maybe_empty_object = 1), 0) \
: 0), \
(h)->temp = __PTR_TO_INT ((h)->object_base), \
(h)->next_free \
= __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \
& ~ ((h)->alignment_mask)), \
(((h)->next_free - (char *) (h)->chunk \
> (h)->chunk_limit - (char *) (h)->chunk) \
? ((h)->next_free = (h)->chunk_limit) : 0), \
(h)->object_base = (h)->next_free, \
__INT_TO_PTR ((h)->temp))
# if defined __STDC__ && __STDC__
# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
# else
# define obstack_free(h,obj) \
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
? (int) ((h)->next_free = (h)->object_base \
= (h)->temp + (char *) (h)->chunk) \
: (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))
# endif
#endif /* not __GNUC__ or not __STDC__ */
#ifdef __cplusplus
} /* C++ */
#endif
#endif /* obstack.h */

View File

@@ -1,41 +0,0 @@
/* quote.c - quote arguments for output
Copyright (C) 1998, 1999, 2000, 2001, 2003 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. */
/* Written by Paul Eggert <eggert@twinsun.com> */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "quotearg.h"
#include "quote.h"
/* Return an unambiguous printable representation of NAME,
allocated in slot N, suitable for diagnostics. */
char const *
quote_n (int n, char const *name)
{
return quotearg_n_style (n, locale_quoting_style, name);
}
/* Return an unambiguous printable representation of NAME,
suitable for diagnostics. */
char const *
quote (char const *name)
{
return quote_n (0, name);
}

View File

@@ -1,28 +0,0 @@
/* quote.h - prototypes for quote.c
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
char const *quote_n PARAMS ((int n, char const *name));
char const *quote PARAMS ((char const *name));

View File

@@ -1,630 +0,0 @@
/* quotearg.c - quote arguments for output
Copyright (C) 1998, 1999, 2000, 2001, 2002 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. */
/* Written by Paul Eggert <eggert@twinsun.com> */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "quotearg.h"
#include "xalloc.h"
#include <ctype.h>
#include <errno.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
#define N_(msgid) msgid
#if HAVE_WCHAR_H
/* BSD/OS 4.1 wchar.h requires FILE and struct tm to be declared. */
# include <stdio.h>
# include <time.h>
# include <wchar.h>
#endif
#if !HAVE_MBRTOWC
/* Disable multibyte processing entirely. Since MB_CUR_MAX is 1, the
other macros are defined only for documentation and to satisfy C
syntax. */
# undef MB_CUR_MAX
# define MB_CUR_MAX 1
# define mbrtowc(pwc, s, n, ps) ((*(pwc) = *(s)) != 0)
# define iswprint(wc) isprint ((unsigned char) (wc))
# undef HAVE_MBSINIT
#endif
#if !defined mbsinit && !HAVE_MBSINIT
# define mbsinit(ps) 1
#endif
#ifndef iswprint
# if HAVE_WCTYPE_H
# include <wctype.h>
# endif
# if !defined iswprint && !HAVE_ISWPRINT
# define iswprint(wc) 1
# endif
#endif
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t) -1)
#endif
#define INT_BITS (sizeof (int) * CHAR_BIT)
struct quoting_options
{
/* Basic quoting style. */
enum quoting_style style;
/* Quote the characters indicated by this bit vector even if the
quoting style would not normally require them to be quoted. */
int quote_these_too[(UCHAR_MAX / INT_BITS) + 1];
};
/* Names of quoting styles. */
char const *const quoting_style_args[] =
{
"literal",
"shell",
"shell-always",
"c",
"escape",
"locale",
"clocale",
0
};
/* Correspondences to quoting style names. */
enum quoting_style const quoting_style_vals[] =
{
literal_quoting_style,
shell_quoting_style,
shell_always_quoting_style,
c_quoting_style,
escape_quoting_style,
locale_quoting_style,
clocale_quoting_style
};
/* The default quoting options. */
static struct quoting_options default_quoting_options;
/* Allocate a new set of quoting options, with contents initially identical
to O if O is not null, or to the default if O is null.
It is the caller's responsibility to free the result. */
struct quoting_options *
clone_quoting_options (struct quoting_options *o)
{
int e = errno;
struct quoting_options *p = xmalloc (sizeof *p);
*p = *(o ? o : &default_quoting_options);
errno = e;
return p;
}
/* Get the value of O's quoting style. If O is null, use the default. */
enum quoting_style
get_quoting_style (struct quoting_options *o)
{
return (o ? o : &default_quoting_options)->style;
}
/* In O (or in the default if O is null),
set the value of the quoting style to S. */
void
set_quoting_style (struct quoting_options *o, enum quoting_style s)
{
(o ? o : &default_quoting_options)->style = s;
}
/* In O (or in the default if O is null),
set the value of the quoting options for character C to I.
Return the old value. Currently, the only values defined for I are
0 (the default) and 1 (which means to quote the character even if
it would not otherwise be quoted). */
int
set_char_quoting (struct quoting_options *o, char c, int i)
{
unsigned char uc = c;
int *p = (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS;
int shift = uc % INT_BITS;
int r = (*p >> shift) & 1;
*p ^= ((i & 1) ^ r) << shift;
return r;
}
/* MSGID approximates a quotation mark. Return its translation if it
has one; otherwise, return either it or "\"", depending on S. */
static char const *
gettext_quote (char const *msgid, enum quoting_style s)
{
char const *translation = _(msgid);
if (translation == msgid && s == clocale_quoting_style)
translation = "\"";
return translation;
}
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
argument ARG (of size ARGSIZE), using QUOTING_STYLE and the
non-quoting-style part of O to control quoting.
Terminate the output with a null character, and return the written
size of the output, not counting the terminating null.
If BUFFERSIZE is too small to store the output string, return the
value that would have been returned had BUFFERSIZE been large enough.
If ARGSIZE is -1, use the string length of the argument for ARGSIZE.
This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG,
ARGSIZE, O), except it uses QUOTING_STYLE instead of the quoting
style specified by O, and O may not be null. */
static size_t
quotearg_buffer_restyled (char *buffer, size_t buffersize,
char const *arg, size_t argsize,
enum quoting_style quoting_style,
struct quoting_options const *o)
{
size_t i;
size_t len = 0;
char const *quote_string = 0;
size_t quote_string_len = 0;
int backslash_escapes = 0;
int unibyte_locale = MB_CUR_MAX == 1;
#define STORE(c) \
do \
{ \
if (len < buffersize) \
buffer[len] = (c); \
len++; \
} \
while (0)
switch (quoting_style)
{
case c_quoting_style:
STORE ('"');
backslash_escapes = 1;
quote_string = "\"";
quote_string_len = 1;
break;
case escape_quoting_style:
backslash_escapes = 1;
break;
case locale_quoting_style:
case clocale_quoting_style:
{
/* Get translations for open and closing quotation marks.
The message catalog should translate "`" to a left
quotation mark suitable for the locale, and similarly for
"'". If the catalog has no translation,
locale_quoting_style quotes `like this', and
clocale_quoting_style quotes "like this".
For example, an American English Unicode locale should
translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
MARK). A British English Unicode locale should instead
translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. */
char const *left = gettext_quote (N_("`"), quoting_style);
char const *right = gettext_quote (N_("'"), quoting_style);
for (quote_string = left; *quote_string; quote_string++)
STORE (*quote_string);
backslash_escapes = 1;
quote_string = right;
quote_string_len = strlen (quote_string);
}
break;
case shell_always_quoting_style:
STORE ('\'');
quote_string = "'";
quote_string_len = 1;
break;
default:
break;
}
for (i = 0; ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize); i++)
{
unsigned char c;
unsigned char esc;
if (backslash_escapes
&& quote_string_len
&& i + quote_string_len <= argsize
&& memcmp (arg + i, quote_string, quote_string_len) == 0)
STORE ('\\');
c = arg[i];
switch (c)
{
case '\0':
if (backslash_escapes)
{
STORE ('\\');
STORE ('0');
STORE ('0');
c = '0';
}
break;
case '?':
switch (quoting_style)
{
case shell_quoting_style:
goto use_shell_always_quoting_style;
case c_quoting_style:
if (i + 2 < argsize && arg[i + 1] == '?')
switch (arg[i + 2])
{
case '!': case '\'':
case '(': case ')': case '-': case '/':
case '<': case '=': case '>':
/* Escape the second '?' in what would otherwise be
a trigraph. */
c = arg[i + 2];
i += 2;
STORE ('?');
STORE ('\\');
STORE ('?');
break;
}
break;
default:
break;
}
break;
case '\a': esc = 'a'; goto c_escape;
case '\b': esc = 'b'; goto c_escape;
case '\f': esc = 'f'; goto c_escape;
case '\n': esc = 'n'; goto c_and_shell_escape;
case '\r': esc = 'r'; goto c_and_shell_escape;
case '\t': esc = 't'; goto c_and_shell_escape;
case '\v': esc = 'v'; goto c_escape;
case '\\': esc = c; goto c_and_shell_escape;
c_and_shell_escape:
if (quoting_style == shell_quoting_style)
goto use_shell_always_quoting_style;
c_escape:
if (backslash_escapes)
{
c = esc;
goto store_escape;
}
break;
case '#': case '~':
if (i != 0)
break;
/* Fall through. */
case ' ':
case '!': /* special in bash */
case '"': case '$': case '&':
case '(': case ')': case '*': case ';':
case '<': case '>': case '[':
case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */
case '`': case '|':
/* A shell special character. In theory, '$' and '`' could
be the first bytes of multibyte characters, which means
we should check them with mbrtowc, but in practice this
doesn't happen so it's not worth worrying about. */
if (quoting_style == shell_quoting_style)
goto use_shell_always_quoting_style;
break;
case '\'':
switch (quoting_style)
{
case shell_quoting_style:
goto use_shell_always_quoting_style;
case shell_always_quoting_style:
STORE ('\'');
STORE ('\\');
STORE ('\'');
break;
default:
break;
}
break;
case '%': case '+': case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9': case ':': case '=':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z': case ']': case '_': case 'a': case 'b':
case 'c': case 'd': case 'e': case 'f': case 'g': case 'h':
case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
case 'o': case 'p': case 'q': case 'r': case 's': case 't':
case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
case '{': case '}':
/* These characters don't cause problems, no matter what the
quoting style is. They cannot start multibyte sequences. */
break;
default:
/* If we have a multibyte sequence, copy it until we reach
its end, find an error, or come back to the initial shift
state. For C-like styles, if the sequence has
unprintable characters, escape the whole sequence, since
we can't easily escape single characters within it. */
{
/* Length of multibyte sequence found so far. */
size_t m;
int printable;
if (unibyte_locale)
{
m = 1;
printable = isprint (c);
}
else
{
mbstate_t mbstate;
memset (&mbstate, 0, sizeof mbstate);
m = 0;
printable = 1;
if (argsize == SIZE_MAX)
argsize = strlen (arg);
do
{
wchar_t w;
size_t bytes = mbrtowc (&w, &arg[i + m],
argsize - (i + m), &mbstate);
if (bytes == 0)
break;
else if (bytes == (size_t) -1)
{
printable = 0;
break;
}
else if (bytes == (size_t) -2)
{
printable = 0;
while (i + m < argsize && arg[i + m])
m++;
break;
}
else
{
if (! iswprint (w))
printable = 0;
m += bytes;
}
}
while (! mbsinit (&mbstate));
}
if (1 < m || (backslash_escapes && ! printable))
{
/* Output a multibyte sequence, or an escaped
unprintable unibyte character. */
size_t ilim = i + m;
for (;;)
{
if (backslash_escapes && ! printable)
{
STORE ('\\');
STORE ('0' + (c >> 6));
STORE ('0' + ((c >> 3) & 7));
c = '0' + (c & 7);
}
if (ilim <= i + 1)
break;
STORE (c);
c = arg[++i];
}
goto store_c;
}
}
}
if (! (backslash_escapes
&& o->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))))
goto store_c;
store_escape:
STORE ('\\');
store_c:
STORE (c);
}
if (quote_string)
for (; *quote_string; quote_string++)
STORE (*quote_string);
if (len < buffersize)
buffer[len] = '\0';
return len;
use_shell_always_quoting_style:
return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
shell_always_quoting_style, o);
}
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
argument ARG (of size ARGSIZE), using O to control quoting.
If O is null, use the default.
Terminate the output with a null character, and return the written
size of the output, not counting the terminating null.
If BUFFERSIZE is too small to store the output string, return the
value that would have been returned had BUFFERSIZE been large enough.
If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */
size_t
quotearg_buffer (char *buffer, size_t buffersize,
char const *arg, size_t argsize,
struct quoting_options const *o)
{
struct quoting_options const *p = o ? o : &default_quoting_options;
int e = errno;
size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
p->style, p);
errno = e;
return r;
}
/* Use storage slot N to return a quoted version of argument ARG.
ARG is of size ARGSIZE, but if that is -1, ARG is a null-terminated string.
OPTIONS specifies the quoting options.
The returned value points to static storage that can be
reused by the next call to this function with the same value of N.
N must be nonnegative. N is deliberately declared with type "int"
to allow for future extensions (using negative values). */
static char *
quotearg_n_options (int n, char const *arg, size_t argsize,
struct quoting_options const *options)
{
int e = errno;
/* Preallocate a slot 0 buffer, so that the caller can always quote
one small component of a "memory exhausted" message in slot 0. */
static char slot0[256];
static unsigned int nslots = 1;
unsigned int n0 = n;
struct slotvec
{
size_t size;
char *val;
};
static struct slotvec slotvec0 = {sizeof slot0, slot0};
static struct slotvec *slotvec = &slotvec0;
if (n < 0)
abort ();
if (nslots <= n0)
{
unsigned int n1 = n0 + 1;
size_t s = n1 * sizeof *slotvec;
if (SIZE_MAX / UINT_MAX <= sizeof *slotvec
&& n1 != s / sizeof *slotvec)
xalloc_die ();
if (slotvec == &slotvec0)
{
slotvec = xmalloc (sizeof *slotvec);
*slotvec = slotvec0;
}
slotvec = xrealloc (slotvec, s);
memset (slotvec + nslots, 0, (n1 - nslots) * sizeof *slotvec);
nslots = n1;
}
{
size_t size = slotvec[n].size;
char *val = slotvec[n].val;
size_t qsize = quotearg_buffer (val, size, arg, argsize, options);
if (size <= qsize)
{
slotvec[n].size = size = qsize + 1;
slotvec[n].val = val = xrealloc (val == slot0 ? 0 : val, size);
quotearg_buffer (val, size, arg, argsize, options);
}
errno = e;
return val;
}
}
char *
quotearg_n (int n, char const *arg)
{
return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options);
}
char *
quotearg (char const *arg)
{
return quotearg_n (0, arg);
}
/* Return quoting options for STYLE, with no extra quoting. */
static struct quoting_options
quoting_options_from_style (enum quoting_style style)
{
struct quoting_options o;
o.style = style;
memset (o.quote_these_too, 0, sizeof o.quote_these_too);
return o;
}
char *
quotearg_n_style (int n, enum quoting_style s, char const *arg)
{
struct quoting_options const o = quoting_options_from_style (s);
return quotearg_n_options (n, arg, SIZE_MAX, &o);
}
char *
quotearg_n_style_mem (int n, enum quoting_style s,
char const *arg, size_t argsize)
{
struct quoting_options const o = quoting_options_from_style (s);
return quotearg_n_options (n, arg, argsize, &o);
}
char *
quotearg_style (enum quoting_style s, char const *arg)
{
return quotearg_n_style (0, s, arg);
}
char *
quotearg_char (char const *arg, char ch)
{
struct quoting_options options;
options = default_quoting_options;
set_char_quoting (&options, ch, 1);
return quotearg_n_options (0, arg, SIZE_MAX, &options);
}
char *
quotearg_colon (char const *arg)
{
return quotearg_char (arg, ':');
}

View File

@@ -1,114 +0,0 @@
/* quotearg.h - quote arguments for output
Copyright (C) 1998, 1999, 2000, 2001, 2002 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. */
/* Written by Paul Eggert <eggert@twinsun.com> */
#ifndef QUOTEARG_H_
# define QUOTEARG_H_ 1
# include <stddef.h>
/* Basic quoting styles. */
enum quoting_style
{
literal_quoting_style, /* --quoting-style=literal */
shell_quoting_style, /* --quoting-style=shell */
shell_always_quoting_style, /* --quoting-style=shell-always */
c_quoting_style, /* --quoting-style=c */
escape_quoting_style, /* --quoting-style=escape */
locale_quoting_style, /* --quoting-style=locale */
clocale_quoting_style /* --quoting-style=clocale */
};
/* For now, --quoting-style=literal is the default, but this may change. */
# ifndef DEFAULT_QUOTING_STYLE
# define DEFAULT_QUOTING_STYLE literal_quoting_style
# endif
/* Names of quoting styles and their corresponding values. */
extern char const *const quoting_style_args[];
extern enum quoting_style const quoting_style_vals[];
struct quoting_options;
/* The functions listed below set and use a hidden variable
that contains the default quoting style options. */
/* Allocate a new set of quoting options, with contents initially identical
to O if O is not null, or to the default if O is null.
It is the caller's responsibility to free the result. */
struct quoting_options *clone_quoting_options (struct quoting_options *o);
/* Get the value of O's quoting style. If O is null, use the default. */
enum quoting_style get_quoting_style (struct quoting_options *o);
/* In O (or in the default if O is null),
set the value of the quoting style to S. */
void set_quoting_style (struct quoting_options *o, enum quoting_style s);
/* In O (or in the default if O is null),
set the value of the quoting options for character C to I.
Return the old value. Currently, the only values defined for I are
0 (the default) and 1 (which means to quote the character even if
it would not otherwise be quoted). */
int set_char_quoting (struct quoting_options *o, char c, int i);
/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of
argument ARG (of size ARGSIZE), using O to control quoting.
If O is null, use the default.
Terminate the output with a null character, and return the written
size of the output, not counting the terminating null.
If BUFFERSIZE is too small to store the output string, return the
value that would have been returned had BUFFERSIZE been large enough.
If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */
size_t quotearg_buffer (char *buffer, size_t buffersize,
char const *arg, size_t argsize,
struct quoting_options const *o);
/* Use storage slot N to return a quoted version of the string ARG.
Use the default quoting options.
The returned value points to static storage that can be
reused by the next call to this function with the same value of N.
N must be nonnegative. */
char *quotearg_n (int n, char const *arg);
/* Equivalent to quotearg_n (0, ARG). */
char *quotearg (char const *arg);
/* Use style S and storage slot N to return a quoted version of the string ARG.
This is like quotearg_n (N, ARG), except that it uses S with no other
options to specify the quoting method. */
char *quotearg_n_style (int n, enum quoting_style s, char const *arg);
/* Use style S and storage slot N to return a quoted version of the
argument ARG of size ARGSIZE. This is like quotearg_n_style
(N, S, ARG), except it can quote null bytes. */
char *quotearg_n_style_mem (int n, enum quoting_style s,
char const *arg, size_t argsize);
/* Equivalent to quotearg_n_style (0, S, ARG). */
char *quotearg_style (enum quoting_style s, char const *arg);
/* Like quotearg (ARG), except also quote any instances of CH. */
char *quotearg_char (char const *arg, char ch);
/* Equivalent to quotearg_char (ARG, ':'). */
char *quotearg_colon (char const *arg);
#endif /* !QUOTEARG_H_ */

View File

@@ -1,44 +0,0 @@
/* Work around bug on some systems where realloc (NULL, 0) fails.
Copyright (C) 1997 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. */
/* written by Jim Meyering */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#undef realloc
#include <stddef.h>
char *malloc ();
char *realloc ();
/* Change the size of an allocated block of memory P to N bytes,
with error checking. If N is zero, change it to 1. If P is NULL,
use malloc. */
char *
rpl_realloc (p, n)
char *p;
size_t n;
{
if (n == 0)
n = 1;
if (p == 0)
return malloc (n);
return realloc (p, n);
}

View File

@@ -1,47 +0,0 @@
/* Copyright (C) 2001-2002 Free Software Foundation, Inc.
Written by Bruno Haible <haible@clisp.cons.org>, 2001.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef _STDBOOL_H
#define _STDBOOL_H
/* ISO C 99 <stdbool.h> for platforms that lack it. */
/* 7.16. Boolean type and values */
/* BeOS <sys/socket.h> already #defines false 0, true 1. We use the same
definitions below, but temporarily we have to #undef them. */
#ifdef __BEOS__
# undef false
# undef true
#endif
/* For the sake of symbolic names in gdb, define _Bool as an enum type. */
#ifndef __cplusplus
# if !@HAVE__BOOL@
typedef enum { false = 0, true = 1 } _Bool;
# endif
#else
typedef bool _Bool;
#endif
#define bool _Bool
/* The other macros must be usable in preprocessor directives. */
#define false 0
#define true 1
#define __bool_true_false_are_defined 1
#endif /* _STDBOOL_H */

View File

@@ -1,50 +0,0 @@
/* stpcpy.c -- copy a string and return pointer to end of new string
Copyright (C) 1992, 1995, 1997, 1998 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <string.h>
#undef __stpcpy
#undef stpcpy
#ifndef weak_alias
# define __stpcpy stpcpy
#endif
/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
char *
__stpcpy (char *dest, const char *src)
{
register char *d = dest;
register const char *s = src;
do
*d++ = *s;
while (*s++ != '\0');
return d - 1;
}
#ifdef weak_alias
weak_alias (__stpcpy, stpcpy)
#endif

View File

@@ -1,66 +0,0 @@
/* strcasecmp.c -- case insensitive string comparator
Copyright (C) 1998, 1999 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. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef LENGTH_LIMIT
# define STRXCASECMP_FUNCTION strncasecmp
# define STRXCASECMP_DECLARE_N , size_t n
# define LENGTH_LIMIT_EXPR(Expr) Expr
#else
# define STRXCASECMP_FUNCTION strcasecmp
# define STRXCASECMP_DECLARE_N /* empty */
# define LENGTH_LIMIT_EXPR(Expr) 0
#endif
#include <stddef.h>
#include <ctype.h>
#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
/* Compare {{no more than N characters of }}strings S1 and S2,
ignoring case, returning less than, equal to or
greater than zero if S1 is lexicographically less
than, equal to or greater than S2. */
int
STRXCASECMP_FUNCTION (const char *s1, const char *s2 STRXCASECMP_DECLARE_N)
{
register const unsigned char *p1 = (const unsigned char *) s1;
register const unsigned char *p2 = (const unsigned char *) s2;
unsigned char c1, c2;
if (p1 == p2 || LENGTH_LIMIT_EXPR (n == 0))
return 0;
do
{
c1 = TOLOWER (*p1);
c2 = TOLOWER (*p2);
if (LENGTH_LIMIT_EXPR (--n == 0) || c1 == '\0')
break;
++p1;
++p2;
}
while (c1 == c2);
return c1 - c2;
}

View File

@@ -1,31 +0,0 @@
/* Copyright (C) 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. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
char *
strchr (const char *s, int c)
{
return index (s, c);
}

View File

@@ -1,2 +0,0 @@
#define LENGTH_LIMIT
#include "strcasecmp.c"

View File

@@ -1,63 +0,0 @@
/* Find the length of STRING, but scan at most MAXLEN characters.
Copyright (C) 1996, 1997, 1998, 2000-2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#undef strnlen
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#else
# include <strings.h>
#endif
#ifndef HAVE_DECL_MEMCHR
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_MEMCHR
char *memchr ();
#endif
#undef __strnlen
#undef strnlen
#ifndef _LIBC
# define strnlen rpl_strnlen
#endif
#ifndef weak_alias
# define __strnlen strnlen
#endif
/* Find the length of STRING, but scan at most MAXLEN characters.
If no '\0' terminator is found in that many characters, return MAXLEN. */
size_t
__strnlen (const char *string, size_t maxlen)
{
const char *end = memchr (string, '\0', maxlen);
return end ? (size_t) (end - string) : maxlen;
}
#ifdef weak_alias
weak_alias (__strnlen, strnlen)
#endif

View File

@@ -1,30 +0,0 @@
/* Portable version of strrchr().
This function is in the public domain. */
/*
@deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c})
Returns a pointer to the last occurrence of the character @var{c} in
the string @var{s}, or @code{NULL} if not found. If @var{c} is itself the
null character, the results are undefined.
@end deftypefn
*/
#include <ansidecl.h>
char *
strrchr (s, c)
register const char *s;
int c;
{
char *rtnval = 0;
do {
if (*s == c)
rtnval = (char*) s;
} while (*s++);
return (rtnval);
}

View File

@@ -1,58 +0,0 @@
/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU
C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if defined _LIBC || HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
# ifndef strchr
# define strchr index
# endif
#endif
#undef strspn
/* Return the length of the maximum initial segment
of S which contains only characters in ACCEPT. */
size_t
strspn (s, accept)
const char *s;
const char *accept;
{
const char *p;
const char *a;
size_t count = 0;
for (p = s; *p != '\0'; ++p)
{
for (a = accept; *a != '\0'; ++a)
if (*p == *a)
break;
if (*a == '\0')
return count;
else
++count;
}
return count;
}

View File

@@ -1,472 +0,0 @@
/* Convert string representation of a number into an integer value.
Copyright (C) 1991, 92, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
Library. Bugs can be reported to bug-glibc@gnu.org.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef _LIBC
# define USE_NUMBER_GROUPING
# define STDC_HEADERS
# define HAVE_LIMITS_H
#endif
#include <ctype.h>
#include <errno.h>
#ifndef errno
extern int errno;
#endif
#ifndef __set_errno
# define __set_errno(Val) errno = (Val)
#endif
#ifdef HAVE_LIMITS_H
# include <limits.h>
#endif
#ifdef STDC_HEADERS
# include <stddef.h>
# include <stdlib.h>
# include <string.h>
#else
# ifndef NULL
# define NULL 0
# endif
#endif
#ifdef USE_NUMBER_GROUPING
# include "../locale/localeinfo.h"
#endif
/* Nonzero if we are defining `strtoul' or `strtoull', operating on
unsigned integers. */
#ifndef UNSIGNED
# define UNSIGNED 0
# define INT LONG int
#else
# define INT unsigned LONG int
#endif
/* Determine the name. */
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
# if UNSIGNED
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol __wcstoull_l
# else
# define strtol __wcstoul_l
# endif
# else
# ifdef QUAD
# define strtol __strtoull_l
# else
# define strtol __strtoul_l
# endif
# endif
# else
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol __wcstoll_l
# else
# define strtol __wcstol_l
# endif
# else
# ifdef QUAD
# define strtol __strtoll_l
# else
# define strtol __strtol_l
# endif
# endif
# endif
#else
# if UNSIGNED
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol wcstoull
# else
# define strtol wcstoul
# endif
# else
# ifdef QUAD
# define strtol strtoull
# else
# define strtol strtoul
# endif
# endif
# else
# ifdef USE_WIDE_CHAR
# ifdef QUAD
# define strtol wcstoll
# else
# define strtol wcstol
# endif
# else
# ifdef QUAD
# define strtol strtoll
# endif
# endif
# endif
#endif
/* If QUAD is defined, we are defining `strtoll' or `strtoull',
operating on `long long int's. */
#ifdef QUAD
# define LONG long long
# define STRTOL_LONG_MIN LONG_LONG_MIN
# define STRTOL_LONG_MAX LONG_LONG_MAX
# define STRTOL_ULONG_MAX ULONG_LONG_MAX
/* The extra casts work around common compiler bugs,
e.g. Cray C 5.0.3.0 when t == time_t. */
# ifndef TYPE_SIGNED
# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
# endif
# ifndef TYPE_MINIMUM
# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \
? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \
: (t) 0))
# endif
# ifndef TYPE_MAXIMUM
# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t)))
# endif
# ifndef ULONG_LONG_MAX
# define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long)
# endif
# ifndef LONG_LONG_MAX
# define LONG_LONG_MAX TYPE_MAXIMUM (long long int)
# endif
# ifndef LONG_LONG_MIN
# define LONG_LONG_MIN TYPE_MINIMUM (long long int)
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
/* Work around gcc bug with using this constant. */
static const unsigned long long int maxquad = ULONG_LONG_MAX;
# undef STRTOL_ULONG_MAX
# define STRTOL_ULONG_MAX maxquad
# endif
#else
# define LONG long
# ifndef ULONG_MAX
# define ULONG_MAX ((unsigned long) ~(unsigned long) 0)
# endif
# ifndef LONG_MAX
# define LONG_MAX ((long int) (ULONG_MAX >> 1))
# endif
# define STRTOL_LONG_MIN LONG_MIN
# define STRTOL_LONG_MAX LONG_MAX
# define STRTOL_ULONG_MAX ULONG_MAX
#endif
/* We use this code also for the extended locale handling where the
function gets as an additional argument the locale which has to be
used. To access the values we have to redefine the _NL_CURRENT
macro. */
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
# undef _NL_CURRENT
# define _NL_CURRENT(category, item) \
(current->values[_NL_ITEM_INDEX (item)].string)
# define LOCALE_PARAM , loc
# define LOCALE_PARAM_DECL __locale_t loc;
#else
# define LOCALE_PARAM
# define LOCALE_PARAM_DECL
#endif
#if defined _LIBC || defined HAVE_WCHAR_H
# include <wchar.h>
#endif
#ifdef USE_WIDE_CHAR
# include <wctype.h>
# define L_(Ch) L##Ch
# define UCHAR_TYPE wint_t
# define STRING_TYPE wchar_t
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define ISSPACE(Ch) __iswspace_l ((Ch), loc)
# define ISALPHA(Ch) __iswalpha_l ((Ch), loc)
# define TOUPPER(Ch) __towupper_l ((Ch), loc)
# else
# define ISSPACE(Ch) iswspace (Ch)
# define ISALPHA(Ch) iswalpha (Ch)
# define TOUPPER(Ch) towupper (Ch)
# endif
#else
# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
# define IN_CTYPE_DOMAIN(c) 1
# else
# define IN_CTYPE_DOMAIN(c) isascii(c)
# endif
# define L_(Ch) Ch
# define UCHAR_TYPE unsigned char
# define STRING_TYPE char
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define ISSPACE(Ch) __isspace_l ((Ch), loc)
# define ISALPHA(Ch) __isalpha_l ((Ch), loc)
# define TOUPPER(Ch) __toupper_l ((Ch), loc)
# else
# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch))
# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch))
# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch))
# endif
#endif
/* For compilers which are ansi but don't define __STDC__, like SGI
Irix-4.0.5 cc, also check whether PROTOTYPES is defined. */
#if defined (__STDC__) || defined (PROTOTYPES)
# define INTERNAL(X) INTERNAL1(X)
# define INTERNAL1(X) __##X##_internal
# define WEAKNAME(X) WEAKNAME1(X)
#else
# define INTERNAL(X) __/**/X/**/_internal
#endif
#ifdef USE_NUMBER_GROUPING
/* This file defines a function to check for correct grouping. */
# include "grouping.h"
#endif
/* Convert NPTR to an `unsigned long int' or `long int' in base BASE.
If BASE is 0 the base is determined by the presence of a leading
zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal.
If BASE is < 2 or > 36, it is reset to 10.
If ENDPTR is not NULL, a pointer to the character after the last
one converted is stored in *ENDPTR. */
INT
INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int base;
int group;
LOCALE_PARAM_DECL
{
int negative;
register unsigned LONG int cutoff;
register unsigned int cutlim;
register unsigned LONG int i;
register const STRING_TYPE *s;
register UCHAR_TYPE c;
const STRING_TYPE *save, *end;
int overflow;
#ifdef USE_NUMBER_GROUPING
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
struct locale_data *current = loc->__locales[LC_NUMERIC];
# endif
/* The thousands character of the current locale. */
wchar_t thousands = L'\0';
/* The numeric grouping specification of the current locale,
in the format described in <locale.h>. */
const char *grouping;
if (group)
{
grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
if (*grouping <= 0 || *grouping == CHAR_MAX)
grouping = NULL;
else
{
/* Figure out the thousands separator character. */
# if defined _LIBC || defined _HAVE_BTOWC
thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP));
if (thousands == WEOF)
thousands = L'\0';
# endif
if (thousands == L'\0')
grouping = NULL;
}
}
else
grouping = NULL;
#endif
if (base < 0 || base == 1 || base > 36)
{
__set_errno (EINVAL);
return 0;
}
save = s = nptr;
/* Skip white space. */
while (ISSPACE (*s))
++s;
if (*s == L_('\0'))
goto noconv;
/* Check for a sign. */
if (*s == L_('-'))
{
negative = 1;
++s;
}
else if (*s == L_('+'))
{
negative = 0;
++s;
}
else
negative = 0;
/* Recognize number prefix and if BASE is zero, figure it out ourselves. */
if (*s == L_('0'))
{
if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X'))
{
s += 2;
base = 16;
}
else if (base == 0)
base = 8;
}
else if (base == 0)
base = 10;
/* Save the pointer so we can check later if anything happened. */
save = s;
#ifdef USE_NUMBER_GROUPING
if (group)
{
/* Find the end of the digit string and check its grouping. */
end = s;
for (c = *end; c != L_('\0'); c = *++end)
if ((wchar_t) c != thousands
&& ((wchar_t) c < L_('0') || (wchar_t) c > L_('9'))
&& (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base))
break;
if (*s == thousands)
end = s;
else
end = correctly_grouped_prefix (s, end, thousands, grouping);
}
else
#endif
end = NULL;
cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base;
cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base;
overflow = 0;
i = 0;
for (c = *s; c != L_('\0'); c = *++s)
{
if (s == end)
break;
if (c >= L_('0') && c <= L_('9'))
c -= L_('0');
else if (ISALPHA (c))
c = TOUPPER (c) - L_('A') + 10;
else
break;
if ((int) c >= base)
break;
/* Check for overflow. */
if (i > cutoff || (i == cutoff && c > cutlim))
overflow = 1;
else
{
i *= (unsigned LONG int) base;
i += c;
}
}
/* Check if anything actually happened. */
if (s == save)
goto noconv;
/* Store in ENDPTR the address of one character
past the last character we converted. */
if (endptr != NULL)
*endptr = (STRING_TYPE *) s;
#if !UNSIGNED
/* Check for a value that is within the range of
`unsigned LONG int', but outside the range of `LONG int'. */
if (overflow == 0
&& i > (negative
? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1
: (unsigned LONG int) STRTOL_LONG_MAX))
overflow = 1;
#endif
if (overflow)
{
__set_errno (ERANGE);
#if UNSIGNED
return STRTOL_ULONG_MAX;
#else
return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX;
#endif
}
/* Return the result of the appropriate sign. */
return negative ? -i : i;
noconv:
/* We must handle a special case here: the base is 0 or 16 and the
first two characters are '0' and 'x', but the rest are no
hexadecimal digits. This is no error case. We return 0 and
ENDPTR points to the `x`. */
if (endptr != NULL)
{
if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
&& save[-2] == L_('0'))
*endptr = (STRING_TYPE *) &save[-1];
else
/* There was no number to convert. */
*endptr = (STRING_TYPE *) nptr;
}
return 0L;
}
/* External user entry point. */
#if _LIBC - 0 == 0
# undef PARAMS
# if defined (__STDC__) && __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
/* Prototype. */
INT strtol PARAMS ((const STRING_TYPE *nptr, STRING_TYPE **endptr, int base));
#endif
INT
#ifdef weak_function
weak_function
#endif
strtol (nptr, endptr, base LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int base;
LOCALE_PARAM_DECL
{
return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM);
}

View File

@@ -1,22 +0,0 @@
/* Copyright (C) 1991, 1999, 2001 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
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. */
#define UNSIGNED 1
#include "strtol.c"

View File

@@ -1,90 +0,0 @@
/* Prefer faster, non-thread-safe stdio functions if available.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA. */
/* Written by Jim Meyering. */
#ifndef UNLOCKED_IO_H
# define UNLOCKED_IO_H 1
# ifndef USE_UNLOCKED_IO
# define USE_UNLOCKED_IO 1
# endif
# if USE_UNLOCKED_IO
/* These are wrappers for functions/macros from GNU libc.
The standard I/O functions are thread-safe. These *_unlocked ones are
more efficient but not thread-safe. That they're not thread-safe is
fine since all of the applications in this package are single threaded. */
# if HAVE_DECL_CLEARERR_UNLOCKED
# undef clearerr
# define clearerr(x) clearerr_unlocked (x)
# endif
# if HAVE_DECL_FEOF_UNLOCKED
# undef feof
# define feof(x) feof_unlocked (x)
# endif
# if HAVE_DECL_FERROR_UNLOCKED
# undef ferror
# define ferror(x) ferror_unlocked (x)
# endif
# if HAVE_DECL_FFLUSH_UNLOCKED
# undef fflush
# define fflush(x) fflush_unlocked (x)
# endif
# if HAVE_DECL_FGETS_UNLOCKED
# undef fgets
# define fgets(x,y,z) fgets_unlocked (x,y,z)
# endif
# if HAVE_DECL_FPUTC_UNLOCKED
# undef fputc
# define fputc(x,y) fputc_unlocked (x,y)
# endif
# if HAVE_DECL_FPUTS_UNLOCKED
# undef fputs
# define fputs(x,y) fputs_unlocked (x,y)
# endif
# if HAVE_DECL_FREAD_UNLOCKED
# undef fread
# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
# endif
# if HAVE_DECL_FWRITE_UNLOCKED
# undef fwrite
# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
# endif
# if HAVE_DECL_GETC_UNLOCKED
# undef getc
# define getc(x) getc_unlocked (x)
# endif
# if HAVE_DECL_GETCHAR_UNLOCKED
# undef getchar
# define getchar() getchar_unlocked ()
# endif
# if HAVE_DECL_PUTC_UNLOCKED
# undef putc
# define putc(x,y) putc_unlocked (x,y)
# endif
# if HAVE_DECL_PUTCHAR_UNLOCKED
# undef putchar
# define putchar(x) putchar_unlocked (x)
# endif
# endif /* USE_UNLOCKED_IO */
#endif /* UNLOCKED_IO_H */

View File

@@ -1,89 +0,0 @@
/* xalloc.h -- malloc with out-of-memory checking
Copyright (C) 1990-1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef XALLOC_H_
# define XALLOC_H_
# include <stddef.h>
# ifndef PARAMS
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
# endif
# ifndef __attribute__
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
# define __attribute__(x)
# endif
# endif
# ifndef ATTRIBUTE_NORETURN
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
# endif
/* Exit value when the requested amount of memory is not available.
It is initialized to EXIT_FAILURE, but the caller may set it to
some other value. */
extern int xalloc_exit_failure;
/* If this pointer is non-zero, run the specified function upon each
allocation failure. It is initialized to zero. */
extern void (*xalloc_fail_func) PARAMS ((void));
/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
message is output. It is translated via gettext.
Its value is "memory exhausted". */
extern char const xalloc_msg_memory_exhausted[];
/* This function is always triggered when memory is exhausted. It is
in charge of honoring the three previous items. This is the
function to call when one wants the program to die because of a
memory allocation failure. */
extern void xalloc_die PARAMS ((void)) ATTRIBUTE_NORETURN;
void *xmalloc PARAMS ((size_t n));
void *xcalloc PARAMS ((size_t n, size_t s));
void *xrealloc PARAMS ((void *p, size_t n));
char *xstrdup PARAMS ((const char *str));
# define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items)))
# define XCALLOC(Type, N_items) ((Type *) xcalloc (sizeof (Type), (N_items)))
# define XREALLOC(Ptr, Type, N_items) \
((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items)))
/* Declare and alloc memory for VAR of type TYPE. */
# define NEW(Type, Var) Type *(Var) = XMALLOC (Type, 1)
/* Free VAR only if non NULL. */
# define XFREE(Var) \
do { \
if (Var) \
free (Var); \
} while (0)
/* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */
# define CCLONE(Src, Num) \
(memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num)))
/* Return a malloc'ed copy of SRC. */
# define CLONE(Src) CCLONE (Src, 1)
#endif /* !XALLOC_H_ */

View File

@@ -1,113 +0,0 @@
/* xmalloc.c -- malloc with out of memory checking
Copyright (C) 1990-1999, 2000, 2002 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. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#if STDC_HEADERS
# include <stdlib.h>
#else
void *calloc ();
void *malloc ();
void *realloc ();
void free ();
#endif
#include "gettext.h"
#define _(msgid) gettext (msgid)
#define N_(msgid) msgid
#include "error.h"
#include "xalloc.h"
#ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
#endif
/* The following tests require AC_PREREQ(2.54). */
#ifndef HAVE_MALLOC
"you must run the autoconf test for a GNU libc compatible malloc"
#endif
#ifndef HAVE_REALLOC
"you must run the autoconf test for a GNU libc compatible realloc"
#endif
/* Exit value when the requested amount of memory is not available.
The caller may set it to some other value. */
int xalloc_exit_failure = EXIT_FAILURE;
/* If non NULL, call this function when memory is exhausted. */
void (*xalloc_fail_func) PARAMS ((void)) = 0;
/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message
before exiting when memory is exhausted. Goes through gettext. */
char const xalloc_msg_memory_exhausted[] = N_("memory exhausted");
void
xalloc_die (void)
{
if (xalloc_fail_func)
(*xalloc_fail_func) ();
error (xalloc_exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted));
/* The `noreturn' cannot be given to error, since it may return if
its first argument is 0. To help compilers understand the
xalloc_die does terminate, call exit. */
exit (EXIT_FAILURE);
}
/* Allocate N bytes of memory dynamically, with error checking. */
void *
xmalloc (size_t n)
{
void *p;
p = malloc (n);
if (p == 0)
xalloc_die ();
return p;
}
/* Change the size of an allocated block of memory P to N bytes,
with error checking. */
void *
xrealloc (void *p, size_t n)
{
p = realloc (p, n);
if (p == 0)
xalloc_die ();
return p;
}
/* Allocate memory for N elements of S bytes, with error checking. */
void *
xcalloc (size_t n, size_t s)
{
void *p;
p = calloc (n, s);
if (p == 0)
xalloc_die ();
return p;
}

View File

@@ -1,38 +0,0 @@
/* xstrdup.c -- copy a string with out of memory checking
Copyright (C) 1990, 1996, 1998, 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. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if STDC_HEADERS || HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#include <sys/types.h>
#include "xalloc.h"
/* Return a newly allocated copy of STRING. */
char *
xstrdup (const char *string)
{
return strcpy (xmalloc (strlen (string) + 1), string);
}

View File

@@ -1,51 +0,0 @@
/* Copyright (C) 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. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if STDC_HEADERS || HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#include <sys/types.h>
#include "xalloc.h"
#ifndef HAVE_DECL_STRNLEN
"this configure-time declaration test was not run"
#endif
#if !HAVE_DECL_STRNLEN
size_t strnlen ();
#endif
char *xstrndup (const char *s, size_t n);
char *
xstrndup (const char *s, size_t n)
{
size_t len = strnlen (s, n);
char *new = xmalloc (len + 1);
if (new == NULL)
return NULL;
new[len] = '\0';
return (char *) memcpy (new, s, len);
}

View File

@@ -1,8 +1,12 @@
Makefile
Makefile.in
alloca.m4
codeset.m4
dirname.m4
dos.m4
error.m4
getopt.m4
gettext.m4
glibc21.m4
hash.m4
iconv.m4
intdiv0.m4
inttypes-pri.m4
@@ -13,9 +17,20 @@ lcmessage.m4
lib-ld.m4
lib-link.m4
lib-prefix.m4
mbrtowc.m4
mbswidth.m4
nls.m4
obstack.m4
onceonly.m4
po.m4
progtest.m4
quote.m4
quotearg.m4
stdbool.m4
stdint_h.m4
stpcpy.m4
strnlen.m4
uintmax_t.m4
ulonglong.m4
unlocked-io.m4
xalloc.m4

View File

@@ -1,13 +0,0 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
EXTRA_DIST = \
alloca.m4 dirname.m4 dmalloc.m4 dos.m4 error.m4 getopt.m4 hash.m4 \
m4.m4 malloc.m4 \
mbrtowc.m4 mbswidth.m4 memchr.m4 memcmp.m4 memrchr.m4 \
obstack.m4 onceonly.m4 \
prereq.m4 quote.m4 quotearg.m4 \
realloc.m4 stdbool.m4 \
stpcpy.m4 strnlen.m4 strtol.m4 strtoul.m4 \
subpipe.m4 timevar.m4 unlocked-io.m4 warning.m4 xalloc.m4 \
gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 \
codeset.m4 glibc21.m4 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
isc-posix.m4 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4

View File

@@ -1,36 +0,0 @@
# alloca.m4 serial 2 (gettext-0.12)
dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_FUNC_ALLOCA],
[
dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
AC_REQUIRE([AC_PROG_CPP])
AC_REQUIRE([AC_PROG_EGREP])
AC_REQUIRE([AC_FUNC_ALLOCA])
if test $ac_cv_func_alloca_works = no; then
gl_PREREQ_ALLOCA
fi
# Define an additional variable used in the Makefile substitution.
AC_EGREP_CPP([Need own alloca], [
#if defined __GNUC__ || defined _MSC_VER || !HAVE_ALLOCA_H
Need own alloca
#endif
],
ALLOCA_H=alloca.h,
ALLOCA_H=)
AC_SUBST([ALLOCA_H])
])
# Prerequisites of lib/alloca.c.
# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
AC_DEFUN([gl_PREREQ_ALLOCA], [
AC_CHECK_HEADERS_ONCE(stdlib.h string.h)
])

View File

@@ -1,25 +0,0 @@
# dirname.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_DIRNAME],
[
dnl Prerequisites of lib/dirname.h.
AC_REQUIRE([jm_AC_DOS])
dnl Prerequisites of lib/dirname.c.
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS_ONCE(string.h)
dnl Prerequisites of lib/basename.c.
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS_ONCE(string.h)
dnl Prerequisites of lib/stripslash.c.
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS_ONCE(string.h)
])

View File

@@ -1,53 +0,0 @@
#serial 5
# Define some macros required for proper operation of code in lib/*.c
# on MSDOS/Windows systems.
# From Jim Meyering.
AC_DEFUN([jm_AC_DOS],
[
AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos],
[
AC_TRY_COMPILE([],
[#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__
neither MSDOS nor Windows
#endif],
[ac_cv_win_or_dos=yes],
[ac_cv_win_or_dos=no])
])
if test x"$ac_cv_win_or_dos" = xyes; then
ac_fs_accepts_drive_letter_prefix=1
ac_fs_backslash_is_file_name_separator=1
else
ac_fs_accepts_drive_letter_prefix=0
ac_fs_backslash_is_file_name_separator=0
fi
AH_VERBATIM(FILESYSTEM_PREFIX_LEN,
[#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
# define FILESYSTEM_PREFIX_LEN(Filename) \
((Filename)[0] && (Filename)[1] == ':' ? 2 : 0)
#else
# define FILESYSTEM_PREFIX_LEN(Filename) 0
#endif])
AC_DEFINE_UNQUOTED([FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX],
$ac_fs_accepts_drive_letter_prefix,
[Define on systems for which file names may have a so-called
`drive letter' prefix, define this to compute the length of that
prefix, including the colon.])
AH_VERBATIM(ISSLASH,
[#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
# define ISSLASH(C) ((C) == '/' || (C) == '\\')
#else
# define ISSLASH(C) ((C) == '/')
#endif])
AC_DEFINE_UNQUOTED([FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR],
$ac_fs_backslash_is_file_name_separator,
[Define if the backslash character may also serve as a file name
component separator.])
])

View File

@@ -1,18 +0,0 @@
#serial 7
AC_DEFUN([gl_ERROR],
[
AC_FUNC_ERROR_AT_LINE
dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]).
jm_PREREQ_ERROR
])
# Prerequisites of lib/error.c.
AC_DEFUN([jm_PREREQ_ERROR],
[
AC_REQUIRE([AC_HEADER_STDC])
AC_REQUIRE([AC_FUNC_VPRINTF])
AC_CHECK_FUNCS(strerror)
AC_CHECK_DECLS([strerror])
AC_FUNC_STRERROR_R
])

View File

@@ -1,13 +0,0 @@
# getopt.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_GETOPT],
[
dnl Prerequisites of lib/getopt.c.
AC_CHECK_HEADERS_ONCE(string.h)
])

View File

@@ -1,15 +0,0 @@
# hash.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_HASH],
[
dnl Prerequisites of lib/hash.c.
AC_CHECK_HEADERS_ONCE(stdlib.h)
AC_HEADER_STDBOOL
AC_CHECK_DECLS_ONCE(free malloc)
])

View File

@@ -1,25 +0,0 @@
# malloc.m4 serial 7
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Jim Meyering.
dnl Determine whether malloc accepts 0 as its argument.
dnl If it doesn't, arrange to use the replacement function.
AC_DEFUN([jm_FUNC_MALLOC],
[
AC_REQUIRE([AC_FUNC_MALLOC])
dnl autoconf < 2.57 used the symbol ac_cv_func_malloc_works.
if test X"$ac_cv_func_malloc_0_nonnull" = Xno || test X"$ac_cv_func_malloc_works" = Xno; then
gl_PREREQ_MALLOC
fi
])
# Prerequisites of lib/malloc.c.
AC_DEFUN([gl_PREREQ_MALLOC], [
:
])

View File

@@ -1,27 +0,0 @@
# mbrtowc.m4 serial 5
dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Paul Eggert
dnl This file can be removed, and jm_FUNC_MBRTOWC replaced with
dnl AC_FUNC_MBRTOWC, when autoconf 2.57 can be assumed everywhere.
AC_DEFUN([jm_FUNC_MBRTOWC],
[
AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
jm_cv_func_mbrtowc,
[AC_TRY_LINK(
[#include <wchar.h>],
[mbstate_t state; return ! (sizeof state && mbrtowc);],
jm_cv_func_mbrtowc=yes,
jm_cv_func_mbrtowc=no)])
if test $jm_cv_func_mbrtowc = yes; then
AC_DEFINE(HAVE_MBRTOWC, 1,
[Define to 1 if mbrtowc and mbstate_t are properly declared.])
fi
])

View File

@@ -1,36 +0,0 @@
#serial 9
dnl autoconf tests required for use of mbswidth.c
dnl From Bruno Haible.
AC_DEFUN([gl_MBSWIDTH],
[
AC_CHECK_HEADERS_ONCE(wchar.h wctype.h)
AC_CHECK_FUNCS_ONCE(isascii iswprint mbsinit)
AC_CHECK_FUNCS(iswcntrl wcwidth)
jm_FUNC_MBRTOWC
AC_CACHE_CHECK([whether wcwidth is declared], ac_cv_have_decl_wcwidth,
[AC_TRY_COMPILE([
/* AIX 3.2.5 declares wcwidth in <string.h>. */
#if HAVE_STRING_H
# include <string.h>
#endif
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
], [
#ifndef wcwidth
char *p = (char *) wcwidth;
#endif
], ac_cv_have_decl_wcwidth=yes, ac_cv_have_decl_wcwidth=no)])
if test $ac_cv_have_decl_wcwidth = yes; then
ac_val=1
else
ac_val=0
fi
AC_DEFINE_UNQUOTED(HAVE_DECL_WCWIDTH, $ac_val,
[Define to 1 if you have the declaration of wcwidth(), and to 0 otherwise.])
AC_TYPE_MBSTATE_T
])

View File

@@ -1,21 +0,0 @@
# memchr.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_FUNC_MEMCHR],
[
AC_REPLACE_FUNCS(memchr)
if test $ac_cv_func_memchr = no; then
jm_PREREQ_MEMCHR
fi
])
# Prerequisites of lib/memchr.c.
AC_DEFUN([jm_PREREQ_MEMCHR], [
AC_CHECK_HEADERS_ONCE(limits.h stdlib.h)
AC_CHECK_HEADERS(bp-sym.h)
])

View File

@@ -1,22 +0,0 @@
# memcmp.m4 serial 8
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([jm_FUNC_MEMCMP],
[
AC_REQUIRE([AC_FUNC_MEMCMP])
if test $ac_cv_func_memcmp_working = no; then
AC_DEFINE(memcmp, rpl_memcmp,
[Define to rpl_memcmp if the replacement function should be used.])
gl_PREREQ_MEMCMP
fi
])
# Prerequisites of lib/memcmp.c.
AC_DEFUN([gl_PREREQ_MEMCMP], [
AC_CHECK_HEADERS_ONCE(string.h)
])

View File

@@ -1,23 +0,0 @@
# memrchr.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_FUNC_MEMRCHR],
[
dnl Persuade glibc <string.h> to declare memrchr().
AC_REQUIRE([AC_GNU_SOURCE])
AC_REPLACE_FUNCS(memrchr)
if test $ac_cv_func_memrchr = no; then
gl_PREREQ_MEMRCHR
fi
])
# Prerequisites of lib/memrchr.c.
AC_DEFUN([gl_PREREQ_MEMRCHR], [
AC_CHECK_HEADERS_ONCE(limits.h)
])

View File

@@ -1,24 +0,0 @@
# obstack.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_OBSTACK],
[
dnl Prerequisites of lib/obstack.h.
AC_CHECK_HEADERS_ONCE(stddef.h string.h)
AC_FUNC_OBSTACK
dnl Note: AC_FUNC_OBSTACK does AC_LIBSOURCES([obstack.h, obstack.c]).
if test $ac_cv_func_obstack = no; then
gl_PREREQ_OBSTACK
fi
])
# Prerequisites of lib/obstack.c.
AC_DEFUN([gl_PREREQ_OBSTACK], [
AC_CHECK_HEADERS_ONCE(stdlib.h)
])

View File

@@ -1,63 +0,0 @@
# onceonly.m4 serial 3 (gettext-0.12)
dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl This file defines some "once only" variants of standard autoconf macros.
dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS
dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS
dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS
dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC
dnl The advantage is that the check for each of the headers/functions/decls
dnl will be put only once into the 'configure' file. It keeps the size of
dnl the 'configure' file down, and avoids redundant output when 'configure'
dnl is run.
dnl The drawback is that the checks cannot be conditionalized. If you write
dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
dnl empty, and the check will be inserted before the body of the AC_DEFUNed
dnl function.
dnl Autoconf version 2.57 or newer is recommended.
AC_PREREQ(2.54)
# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
:
AC_FOREACH([gl_HEADER_NAME], [$1], [
AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(m4_defn([gl_HEADER_NAME]),
[-./], [___])), [
AC_CHECK_HEADERS(gl_HEADER_NAME)
])
AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
[-./], [___])))
])
])
# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
:
AC_FOREACH([gl_FUNC_NAME], [$1], [
AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [
AC_CHECK_FUNCS(m4_defn([gl_FUNC_NAME]))
])
AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]))
])
])
# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
# AC_CHECK_DECLS(DECL1, DECL2, ...).
AC_DEFUN([AC_CHECK_DECLS_ONCE], [
:
AC_FOREACH([gl_DECL_NAME], [$1], [
AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [
AC_CHECK_DECLS(m4_defn([gl_DECL_NAME]))
])
AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]))
])
])

View File

@@ -1,63 +0,0 @@
#serial 27
dnl These are the prerequisite macros for files in the lib/
dnl directories of the fileutils, sh-utils, and textutils packages.
AC_DEFUN([jm_PREREQ],
[
gl_BACKUPFILE
jm_PREREQ_C_STACK
gl_CANON_HOST
gl_DIRNAME
jm_PREREQ_ERROR
gl_EXCLUDE
gl_GETPAGESIZE
gl_HARD_LOCALE
gl_HASH
gl_HUMAN
gl_MBSWIDTH
gl_FUNC_MEMCHR
gl_PHYSMEM
gl_POSIXVER
gl_QUOTEARG
gl_READUTMP
gl_REGEX
jm_PREREQ_STAT
gl_FUNC_STRNLEN
gl_XGETCWD
gl_XREADLINK
])
AC_DEFUN([jm_PREREQ_STAT],
[
AC_CHECK_HEADERS(sys/sysmacros.h sys/statvfs.h sys/vfs.h inttypes.h)
AC_CHECK_HEADERS(sys/param.h sys/mount.h)
AC_CHECK_FUNCS(statvfs)
jm_AC_TYPE_LONG_LONG
statxfs_includes="\
$ac_includes_default
#if HAVE_SYS_STATVFS_H
# include <sys/statvfs.h>
#endif
#if HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#if ( ! HAVE_SYS_STATVFS_H && ! HAVE_SYS_VFS_H && HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H )
/* NetBSD 1.5.2 needs these, for the declaration of struct statfs. */
# include <sys/param.h>
# include <sys/mount.h>
#endif
"
AC_CHECK_MEMBERS([struct statfs.f_basetype],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statvfs.f_basetype],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statfs.f_type],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statvfs.f_type],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statfs.f_fsid.__val],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statvfs.f_fsid.__val],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statfs.f_namemax],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statvfs.f_namemax],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statfs.f_namelen],,,[$statxfs_includes])
AC_CHECK_MEMBERS([struct statvfs.f_namelen],,,[$statxfs_includes])
])

View File

@@ -1,13 +0,0 @@
# quote.m4 serial 2
dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_QUOTE],
[
dnl Prerequisites of lib/quote.c.
dnl (none)
])

View File

@@ -1,16 +0,0 @@
# quotearg.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_QUOTEARG],
[
dnl Prerequisites of lib/quotearg.c.
AC_CHECK_HEADERS_ONCE(wchar.h wctype.h)
AC_CHECK_FUNCS_ONCE(iswprint mbsinit)
AC_TYPE_MBSTATE_T
jm_FUNC_MBRTOWC
])

View File

@@ -1,25 +0,0 @@
# realloc.m4 serial 7
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Jim Meyering.
dnl Determine whether realloc works when both arguments are 0.
dnl If it doesn't, arrange to use the replacement function.
AC_DEFUN([jm_FUNC_REALLOC],
[
AC_REQUIRE([AC_FUNC_REALLOC])
dnl autoconf < 2.57 used the symbol ac_cv_func_realloc_works.
if test X"$ac_cv_func_realloc_0_nonnull" = Xno || test X"$ac_cv_func_realloc_works" = Xno; then
gl_PREREQ_REALLOC
fi
])
# Prerequisites of lib/realloc.c.
AC_DEFUN([gl_PREREQ_REALLOC], [
:
])

View File

@@ -1,89 +0,0 @@
# Check for stdbool.h that conforms to C99.
# Copyright (C) 2002-2003 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.
# Prepare for substituting <stdbool.h> if it is not supported.
AC_DEFUN([AM_STDBOOL_H],
[
AC_REQUIRE([AC_HEADER_STDBOOL])
# Define two additional variables used in the Makefile substitution.
if test "$ac_cv_header_stdbool_h" = yes; then
STDBOOL_H=''
else
STDBOOL_H='stdbool.h'
fi
AC_SUBST([STDBOOL_H])
if test "$ac_cv_type__Bool" = yes; then
HAVE__BOOL=1
else
HAVE__BOOL=0
fi
AC_SUBST([HAVE__BOOL])
])
# This macro is only needed in autoconf <= 2.54. Newer versions of autoconf
# have this macro built-in.
AC_DEFUN([AC_HEADER_STDBOOL],
[AC_CACHE_CHECK([for stdbool.h that conforms to C99],
[ac_cv_header_stdbool_h],
[AC_TRY_COMPILE(
[
#include <stdbool.h>
#ifndef bool
"error: bool is not defined"
#endif
#ifndef false
"error: false is not defined"
#endif
#if false
"error: false is not 0"
#endif
#ifndef true
"error: false is not defined"
#endif
#if true != 1
"error: true is not 1"
#endif
#ifndef __bool_true_false_are_defined
"error: __bool_true_false_are_defined is not defined"
#endif
struct s { _Bool s: 1; _Bool t; } s;
char a[true == 1 ? 1 : -1];
char b[false == 0 ? 1 : -1];
char c[__bool_true_false_are_defined == 1 ? 1 : -1];
char d[(bool) -0.5 == true ? 1 : -1];
bool e = &s;
char f[(_Bool) -0.0 == false ? 1 : -1];
char g[true];
char h[sizeof (_Bool)];
char i[sizeof s.t];
],
[ return !a + !b + !c + !d + !e + !f + !g + !h + !i; ],
[ac_cv_header_stdbool_h=yes],
[ac_cv_header_stdbool_h=no])])
AC_CHECK_TYPES([_Bool])
if test $ac_cv_header_stdbool_h = yes; then
AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
fi])

View File

@@ -1,24 +0,0 @@
# stpcpy.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_FUNC_STPCPY],
[
dnl Persuade glibc <string.h> to declare stpcpy().
AC_REQUIRE([AC_GNU_SOURCE])
AC_REPLACE_FUNCS(stpcpy)
if test $ac_cv_func_stpcpy = no; then
gl_PREREQ_STPCPY
fi
])
# Prerequisites of lib/stpcpy.c.
AC_DEFUN([gl_PREREQ_STPCPY], [
:
])

View File

@@ -1,32 +0,0 @@
# strnlen.m4 serial 2
dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_FUNC_STRNLEN],
[
dnl Persuade glibc <string.h> to declare strnlen().
AC_REQUIRE([AC_GNU_SOURCE])
AC_FUNC_STRNLEN
if test $ac_cv_func_strnlen_working = no; then
# This is necessary because automake-1.6.1 doens't understand
# that the above use of AC_FUNC_STRNLEN means we may have to use
# lib/strnlen.c.
#AC_LIBOBJ(strnlen)
AC_DEFINE(strnlen, rpl_strnlen,
[Define to rpl_strnlen if the replacement function should be used.])
gl_PREREQ_STRNLEN
fi
])
# Prerequisites of lib/strnlen.c.
AC_DEFUN([gl_PREREQ_STRNLEN], [
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS_ONCE(memory.h string.h)
AC_CHECK_DECLS(memchr)
])

View File

@@ -1,22 +0,0 @@
# strtol.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_FUNC_STRTOL],
[
AC_REPLACE_FUNCS(strtol)
if test $ac_cv_func_strtol = no; then
gl_PREREQ_STRTOL
fi
])
# Prerequisites of lib/strtol.c.
AC_DEFUN([gl_PREREQ_STRTOL], [
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS_ONCE(limits.h)
AC_CHECK_FUNCS_ONCE(isascii)
])

View File

@@ -1,20 +0,0 @@
# strtoul.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_FUNC_STRTOUL],
[
AC_REPLACE_FUNCS(strtoul)
if test $ac_cv_func_strtoul = no; then
gl_PREREQ_STRTOUL
fi
])
# Prerequisites of lib/strtoul.c.
AC_DEFUN([gl_PREREQ_STRTOUL], [
gl_PREREQ_STRTOL
])

View File

@@ -1,22 +0,0 @@
#serial 7 -*- autoconf -*-
dnl From Jim Meyering.
dnl
dnl See if the glibc *_unlocked I/O macros or functions are available.
dnl Use only those *_unlocked macros or functions that are declared
dnl (because some of them were declared in Solaris 2.5.1 but were removed
dnl in Solaris 2.6, whereas we want binaries built on Solaris 2.5.1 to run
dnl on Solaris 2.6).
AC_DEFUN([jm_FUNC_GLIBC_UNLOCKED_IO],
[
dnl Persuade glibc <stdio.h> to declare fgets_unlocked(), fputs_unlocked()
dnl etc.
AC_REQUIRE([AC_GNU_SOURCE])
AC_CHECK_DECLS_ONCE(
[clearerr_unlocked feof_unlocked ferror_unlocked
fflush_unlocked fgets_unlocked fputc_unlocked fputs_unlocked
fread_unlocked fwrite_unlocked getc_unlocked
getchar_unlocked putc_unlocked putchar_unlocked])
])

View File

@@ -1,26 +0,0 @@
# xalloc.m4 serial 1
dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_XALLOC],
[
gl_PREREQ_XMALLOC
gl_PREREQ_XSTRDUP
])
# Prerequisites of lib/xmalloc.c.
AC_DEFUN([gl_PREREQ_XMALLOC], [
AC_REQUIRE([AC_HEADER_STDC])
AC_REQUIRE([jm_FUNC_MALLOC])
AC_REQUIRE([jm_FUNC_REALLOC])
])
# Prerequisites of lib/xstrdup.c.
AC_DEFUN([gl_PREREQ_XSTRDUP], [
AC_REQUIRE([AC_HEADER_STDC])
AC_CHECK_HEADERS_ONCE(string.h)
])

View File

@@ -1,13 +1,14 @@
ChangeLog
*.gmo
*.po
LINGUAS
Makefile
Makefile.in
Makefile.in.in
Makevars
Makevars.template
POTFILES
bison.pot
stamp-po
*.gmo
Makefile.in
Rules-quot
bison.pot
boldquot.sed
en@boldquot.header
en@quot.header
@@ -15,3 +16,4 @@ insert-header.sin
quot.sed
remove-potcdate.sed
remove-potcdate.sin
stamp-po

View File

@@ -1,70 +0,0 @@
2002-08-08 gettextize <bug-gnu-gettext@gnu.org>
* Rules-quot: New file, from gettext-0.11.5.
* boldquot.sed: New file, from gettext-0.11.5.
* en@boldquot.header: New file, from gettext-0.11.5.
* en@quot.header: New file, from gettext-0.11.5.
* insert-header.sin: New file, from gettext-0.11.5.
* quot.sed: New file, from gettext-0.11.5.
* remove-potcdate.sin: New file, from gettext-0.11.5.
2001-10-10 gettextize <bug-gnu-utils@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.10.40.
* cat-id-tbl.c: Remove file.
2001-10-08 gettextize <bug-gnu-utils@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.10.40.
2001-10-04 gettextize <bug-gnu-utils@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.10.40.
* cat-id-tbl.c: Remove file.
2001-09-27 gettextize <bug-gnu-utils@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.10.40.
* cat-id-tbl.c: Remove file.
2001-08-03 gettextize <bug-gnu-utils@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.10.39.
* cat-id-tbl.c: Remove file.
2001-07-14 gettextize <bug-gnu-utils@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.10.38.
* cat-id-tbl.c: Remove file.
* stamp-cat-id: Remove file.
2000-11-02 Akim Demaille <akim@epita.fr>
* POTFILES.in: Adjust.
1999-07-26 Jesse Thilo <jthilo@gnu.org>
* po/ru.po: Added Russian translation.
1999-06-14 Jesse Thilo <jthilo@gnu.org>
* po/POTFILES.in: Got rid of version.c.
1999-04-18 Jesse Thilo <jthilo@gnu.org>
* po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
Adjusted paths to reflect directory reorganization.
1999-03-23 Jesse Thilo <jthilo@gnu.org>
* po/.cvsignore: Added i18n support.
1999-03-15 Jesse Thilo <jthilo@gnu.org>
* po/es.po, po/fr.po, po/nl.po, po/de.po:
Added PO files from Translation Project.
1999-02-05 Jesse Thilo <jthilo@gnu.org>
* po/Makefile.in.in, po/POTFILES.in:
Add `po' directory skeleton.

View File

@@ -1,16 +0,0 @@
da
de
es
et
fr
hr
id
it
ja
ms
nl
pt_BR
ro
ru
sv
tr

View File

@@ -1,353 +0,0 @@
# Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
# License but which still want to provide support for the GNU gettext
# functionality.
# Please note that the actual code of GNU gettext is covered by the GNU
# General Public License and is *not* in the public domain.
PACKAGE = @PACKAGE@
VERSION = @VERSION@
SHELL = /bin/sh
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@
localedir = $(datadir)/locale
gettextsrcdir = $(datadir)/gettext/po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
GMSGFMT = @GMSGFMT@
MSGFMT = @MSGFMT@
XGETTEXT = @XGETTEXT@
MSGMERGE = msgmerge
MSGMERGE_UPDATE = @MSGMERGE@ --update
MSGINIT = msginit
MSGCONV = msgconv
MSGFILTER = msgfilter
POFILES = @POFILES@
GMOFILES = @GMOFILES@
UPDATEPOFILES = @UPDATEPOFILES@
DUMMYPOFILES = @DUMMYPOFILES@
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
$(POFILES) $(GMOFILES) \
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
POTFILES = \
CATALOGS = @CATALOGS@
# Makevars gets inserted here. (Don't remove this line!)
.SUFFIXES:
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
.po.mo:
@echo "$(MSGFMT) -c -o $@ $<"; \
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
.po.gmo:
@lang=`echo $* | sed -e 's,.*/,,'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
.sin.sed:
sed -e '/^#/d' $< > t-$@
mv t-$@ $@
all: all-@USE_NLS@
all-yes: stamp-po
all-no:
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
# been loosely updated. Its purpose is that when a developer or translator
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
# invocations of "make" will do nothing. This timestamp would not be necessary
# if updating the $(CATALOGS) would always touch them; however, the rule for
# $(POFILES) has been designed to not touch files that don't need to be
# changed.
stamp-po: $(srcdir)/$(DOMAIN).pot
test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
@echo "touch stamp-po"
@echo timestamp > stamp-poT
@mv stamp-poT stamp-po
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
# otherwise packages like GCC can not be built if only parts of the source
# have been downloaded.
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
test ! -f $(DOMAIN).po || { \
if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
else \
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
fi; \
else \
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
fi; \
}
# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
# every "make" invocation, only create it when it is missing.
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
$(srcdir)/$(DOMAIN).pot:
$(MAKE) $(DOMAIN).pot-update
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
# Note that a PO file is not touched if it doesn't need to be changed.
$(POFILES): $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
install: install-exec install-data
install-exec:
install-data: install-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
for file in $(DISTFILES.common) Makevars.template; do \
$(INSTALL_DATA) $(srcdir)/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
for file in Makevars; do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
fi
install-data-no: all
install-data-yes: all
$(mkinstalldirs) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
$(mkinstalldirs) $(DESTDIR)$$dir; \
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
if test -n "$$lc"; then \
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
for file in *; do \
if test -f $$file; then \
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
fi; \
done); \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
else \
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
:; \
else \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
fi; \
fi; \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
fi; \
done; \
done
install-strip: install
installdirs: installdirs-exec installdirs-data
installdirs-exec:
installdirs-data: installdirs-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
else \
: ; \
fi
installdirs-data-no:
installdirs-data-yes:
$(mkinstalldirs) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
$(mkinstalldirs) $(DESTDIR)$$dir; \
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
if test -n "$$lc"; then \
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
for file in *; do \
if test -f $$file; then \
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
fi; \
done); \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
else \
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
:; \
else \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
fi; \
fi; \
fi; \
done; \
done
# Define this as empty until I found a useful application.
installcheck:
uninstall: uninstall-exec uninstall-data
uninstall-exec:
uninstall-data: uninstall-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
for file in $(DISTFILES.common) Makevars.template; do \
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
fi
uninstall-data-no:
uninstall-data-yes:
catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
done; \
done
check: all
info dvi ps pdf html tags TAGS ctags CTAGS ID:
mostlyclean:
rm -f remove-potcdate.sed
rm -f stamp-poT
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
rm -fr *.o
clean: mostlyclean
distclean: clean
rm -f Makefile Makefile.in POTFILES *.mo
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f stamp-po $(GMOFILES)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir:
$(MAKE) update-po
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
dist2: $(DISTFILES)
dists="$(DISTFILES)"; \
if test "$(PACKAGE)" = "gettext-tools"; then \
dists="$$dists Makevars.template"; \
fi; \
if test -f $(srcdir)/ChangeLog; then \
dists="$$dists ChangeLog"; \
fi; \
for i in 0 1 2 3 4 5 6 7 8 9; do \
if test -f $(srcdir)/ChangeLog.$$i; then \
dists="$$dists ChangeLog.$$i"; \
fi; \
done; \
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
for file in $$dists; do \
if test -f $$file; then \
cp -p $$file $(distdir); \
else \
cp -p $(srcdir)/$$file $(distdir); \
fi; \
done
update-po: Makefile
$(MAKE) $(DOMAIN).pot-update
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
$(MAKE) update-gmo
# General rule for updating PO files.
.nop.po-update:
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
tmpdir=`pwd`; \
echo "$$lang:"; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
cd $(srcdir); \
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
:; \
else \
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
exit 1; \
fi; \
fi; \
else \
echo "msgmerge for $$lang.po failed!" 1>&2; \
rm -f $$tmpdir/$$lang.new.po; \
fi
$(DUMMYPOFILES):
update-gmo: Makefile $(GMOFILES)
@:
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
$(SHELL) ./config.status
force:
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -1,41 +0,0 @@
# Makefile variables for PO directory in any package using GNU gettext.
# Usually the message domain is the same as the package name.
DOMAIN = $(PACKAGE)
# These two variables depend on the location of this directory.
subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
# package. (Note that the msgstr strings, extracted from the package's
# sources, belong to the copyright holder of the package.) Translators are
# expected to transfer the copyright for their translations to this person
# or entity, or to disclaim their copyright. The empty string stands for
# the public domain; in this case the translators are expected to disclaim
# their copyright.
COPYRIGHT_HOLDER = Free Software Foundation, Inc.
# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
# in the GNU gettext documentation, section 'Preparing Strings'.
# - Strings which use unclear terms or require additional context to be
# understood.
# - Strings which make invalid assumptions about notation of date, time or
# money.
# - Pluralisation problems.
# - Incorrect English spelling.
# - Incorrect formatting.
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
MSGID_BUGS_ADDRESS = bug-bison@gnu.org
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
EXTRA_LOCALE_CATEGORIES =

710
po/da.po
View File

@@ -1,710 +0,0 @@
# Danish messages for bison.
# Copyright © 2001, 2002 Free Software Foundation, Inc.
# Keld Simonsen <keld@dkuug.dk>, 2002.
# Byrial Ole Jensen <byrial@image.dk>, 2002-2003.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875a\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-04-12 22:57+0200\n"
"Last-Translator: Byrial Ole Jensen <byrial@image.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Ukendt systemfejl"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "advarsel: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "fatal fejl: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Konflikt mellem regel %d og element %s løstes som skift"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " Konflikt mellem regel %d og element %s løstes som reducér"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " Konflikt mellem regel %d og element %s løstes som en fejl"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "konflikter: %d skift/reducér, %d reducér/reducér\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "konflikter: %d skift/reducér\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "konflikter: %d reducér/reducér\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "Tilstand %d "
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "forventede %d skift/reducér-konflikt"
msgstr[1] "forventede %d skift/reducér-konflikter"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "forventede 0 reducér/reducér-konflikter"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "kan ikke åbne filen \"%s\""
#: src/files.c:115
msgid "I/O error"
msgstr "Fejl ved ind- eller udlæsning"
#: src/files.c:118
msgid "cannot close file"
msgstr "kan ikke lukke fil"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "konfliktende uddata til filen %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Prøv med \"%s --help\" for mere information.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genererer fortolkere til LALR(1)-grammatiker.\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Brug: %s [FLAG]... FIL\n"
#: src/getargs.c:200
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 ""
"Hvis et lang flag viser et argument som obligatorisk, er det også\n"
"obligatorisk for det tilsvarende korte flag. Tilsvarende\n"
"for valgfrie argumenter.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Arbejdstilstande:\n"
" -h, --help vis denne hjælpetekst og afslut\n"
" -V, --version vis versionsinformation og afslut\n"
" -y, --yacc emulér POSIX-yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Fortolker:\n"
" -S, --skeleton=FIL angiv skeletfilen som skal bruges\n"
" -t, --debug instrumentér fortolkeren for fejlsøgning\n"
" --locations aktivér tilstandsberegning\n"
" -p, --name-prefix=PRÆFIKS tilføj PRÆFIKS for eksterne symboler\n"
" -l, --no-lines generér ikke \"#line\"-direktiver\n"
" -n, --no-parser generér kun tabellerne\n"
" -k, --token-table inkludér en tabel over elementnavne\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Uddata:\n"
" -d, --defines lav også en hovedfil\n"
" -r, --report=SAGER lav også detaljer om automaten\n"
" -v, --verbose samme som \"--report=state\"\n"
" -b, --file-prefix=PRÆFIKS angiv et PRÆFIKS for uddatafiler\n"
" -o, --output=FIL læg uddata i FIL\n"
" -g, --graph lav også en VCG-beskrivelse af automaten\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"TING er en liste med kommaseparerede ord som kan indeholde:\n"
" \"state\" beskriv tilstandene\n"
" \"itemset\" komplettér kerneobjektmængderne med deres afslutninger\n"
" \"lookahead\" kobl udtrykkeligt fremadkig til objekter\n"
" \"solved\" beskriv løsninger af skift/reducér-konflikter\n"
" \"all\" inkludér al ovenstående information\n"
" \"none\" deaktivér rapporten\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
"Rapportér fejl til <bug-bison@gnu.org>.\n"
"Rapportér synpunkter om oversættelsen til <dansk@klid.dk>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Skrevet af Robert Corbett og Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright © %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Dette er frit programmel, se kildekoden for kopieringsbetingelser. Der\n"
"gives INGEN garanti, endog ikke for SALGBARHED eller EGNETHED FOR NOGET\n"
"BESTEMT FORMÅL.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "manglende operand efter \"%s\""
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "overtallig operand \"%s\""
#: src/gram.c:139
msgid "empty"
msgstr "tom"
#: src/gram.c:233
msgid "Grammar"
msgstr "Grammatik"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "advarsel"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "regel aldrig reduceret på grund af konflikter"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX forbyder deklarationer i grammatikken"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "manglende identifikator i parameterdeklaration"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " type %d er %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "skift, og gå til tilstand %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "gå til tilstand %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "fejl (ikke-associativ)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "reducér med regel %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "acceptér"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$default"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "tilstand %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Terminaler, med regler hvor de forekommer"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Ikke-terminaler, med regler hvor de forekommer"
#: src/print.c:512
msgid " on left:"
msgstr " til venstre:"
#: src/print.c:527
msgid " on right:"
msgstr " til højre:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Aldrig reducerede regler"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "flere %s-deklarationer"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr "resultattypekonflikt ved sammenfletningsfunktion %s: <%s> != <%s>"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regel givet for %s som er et element"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "typekonflikt for standardhandling: <%s> != <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "tom regel for typet ikke-terminal, og ingen handling"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "kun en %s tilladt per regel"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s påvirker kun GLR-fortolkere"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s skal følges af et positivt tal"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "ingen regler i inddatagrammatikken"
#: src/reduce.c:242
msgid "useless rule"
msgstr "ubrugelig regel"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "ubrugelig ikke-terminal: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Ubrugelige ikke-terminaler"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Terminaler som ikke bruges"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Ubrugelige regler"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d regel reduceres aldrig\n"
msgstr[1] "%d regler reduceres aldrig\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d ubrugelig ikke-terminal"
msgstr[1] "%d ubrugelige ikke-terminaler"
#: src/reduce.c:403
msgid " and "
msgstr " og "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d ubrugelig regel"
msgstr[1] "%d ubrugelige regler"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "startsymbolet %s genererer ingen sætninger"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "Malplaceret \",\" behandlet som blanktegn"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "ugyldigt direktiv: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "heltal uden for gyldigshedsområdet: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "ugyldigt tegn: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "ugyldig undvigesekvens: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "ukendt undvigesekvens: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "manglende \"{\" i \"%s\""
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ for \"%s\" har ingen erklæret type"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d for \"%s\" har ingen erklæret type"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "fejlagtig værdi: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "manglende \"%s\" ved slutningen af filen"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "fejlagtig $-værdi"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "gentagen typeerklæring for %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "gentagen %s-erklæring for %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "redefinition af præcedens for %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "symbol %s redefineret"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "redefinition af elementnummer for %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"symbol %s bruges, men er ikke defineret som et element og har ingen regler"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "symbol \"%s\" bruges mere end en gang som en bogstavelig streng"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "symbol \"%s\" har fået mere end én bogstavelig streng"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "modstridige præcedenser mellem %s og %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "modstridige associativiteter for %s (%s) og %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "elementerne %s og %s har begge fået nummer %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "startsymbolet %s er udefineret"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "startsymbolet %s er et element"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "ugyldigt argument %s til %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "flertydigt argument %s til %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Gyldige argumenter er:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitmængdeallokeringer, %u frigjort (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitmængdeindstillinger, %u cachede (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitmængdenulstillinger, %u cachede (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitmængdetest, %u cachede (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitmængdelister\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "kaldsloghistogram\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "størrelsesloghistogram\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "densitetshistogram\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Bitmængdestatistik:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Akkumulerede kørsler = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Kunne ikke læse statistikfil."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Dårlig statistikfilstørrelse.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Kunne ikke skrive statistikfil."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Kunne ikke åbne statistikfil for skrivning."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: flaget \"%s\" er flertydigt\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: flaget \"--%s\" tager intet argument\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: flaget \"%c%s\" tager intet argument\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: flaget \"%s\" behøver et argument\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: ukendt flag \"--%s\"\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: ukendt flag \"%c%s\"\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ikke tilladt flag -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ugyldigt flag --%c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: flaget behøver et argument -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: flaget \"-W %s\" er flertydigt\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: flaget \"-W %s\" tager intet argument\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "hukommelsen opbrugt"
# Når vi går over til Unicode mere allmænt måske vi bør oversættta båda disse
# med U+201D (RIGHT DOUBLE QUOTATION MARK) på svenska. Eller?
#
#: lib/quotearg.c:236
msgid "`"
msgstr "\""
#: lib/quotearg.c:237
msgid "'"
msgstr "\""
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "hjælpeprogrammet \"%s\" kunne ikke startes"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "hjælpeprogrammet \"%s\" ikke fundet"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "hjælpeprogrammet \"%s\" fejlede"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "hjælpeprogrammet \"%s\" fejlede med afslutningskode %d"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Udførelsestider (sekunder)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " TOTALT :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "tid i %s: %ld.%06ld (%ld%%)\n"

1011
po/de.po

File diff suppressed because it is too large Load Diff

1018
po/es.po

File diff suppressed because it is too large Load Diff

704
po/et.po
View File

@@ -1,704 +0,0 @@
# Estonian translations for bison.
# Copyright (C) 2001 Free Software Foundation, Inc.
# Toomas Soome <tsoome@ut.ee>, 2002.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-01-02 11:59+0200\n"
"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
"Language-Team: Estonian <et@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Tundmatu süsteemi viga"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "hoiatus: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "fataalne viga: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Konflikt reegli %d ja märgi %s vahel lahendatud nihkega"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " Konflikt reegli %d ja märgi %s vahel lahendatud redutseerimisega"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " Konflikt reegli %d ja märgi %s vahel lahendatud veana"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr ""
"konfliktid: %d nihutamine/redutseerimine, %d redutseerimine/redutseerimine\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "konfliktid: %d nihutamine/redutseerimine\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "konfliktid: %d redutseerimine/redutseerimine\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "Olek %d "
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "eeldasime %d nihutamine/redutseerimine konflikti"
msgstr[1] "eeldasime %d nihutamine/redutseerimine konflikti"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "eeldasin 0 redutseerimine/redutseerimine konflikti"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "faili `%s' ei saa avada"
#: src/files.c:115
msgid "I/O error"
msgstr "S/V viga"
#: src/files.c:118
msgid "cannot close file"
msgstr "faili ei õnnestu sulgeda"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "konfliktsed väljundid faili %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Lisainfo saamiseks proovige `%s --help'.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genereerib parsereid LALR(1) grammatikatele.\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Kasuta: %s [VÕTI]...FAIL\n"
#: src/getargs.c:200
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 ""
"Kui pikk võti näitab, et argument on kohustuslik, siis on see kohustuslik \n"
"ka lühikese võtme korral. Sama ka vabalt valitavate võtmete korral.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Töömoodid:\n"
" -h, --help esita see abiinfo ja lõpeta töö\n"
" -V, --version esita versiooniinfo ja lõpeta töö\n"
" -y, --yacc emuleeri POSIX yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Parser:\n"
" -S, --skeleton=FAIL kasutatava skeleti kirjeldus\n"
" -t, --debug varusta parser silumisinfoga\n"
" --locations luba asukohtade arvestamine\n"
" -p, --name-prefix=PREFIKS lisa välissümbolite nimedele PREFIKS\n"
" -l, --no-lines ära genereeri `#line' direktiive\n"
" -n, --no-parser genereeri ainult tabelid\n"
" -k, --token-table lisa ka sümbolite nimede tabel\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Väljund:\n"
" -d, --defines loo ka päisfail\n"
" -r, --report=ASJAD väljasta automaadi kohta selgitusi\n"
" -v, --verbose sama, kui `--report=state'\n"
" -b, --file-prefix=PREFIKS kasuta väljundfailide nimedes PREFIKSit\n"
" -o, --output-file=FAIL jäta väljund FAILi\n"
" -g, --graph loo automaadi kirjeldus VCG graafina\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"ASJAD on loend komadega eraldatud järgnevaid sõnu:\n"
" `state' olekute kirjeldus\n"
" `itemset' täienda põhilisi elemente nende sulunditega\n"
" `lookahead' seo ettevaatamised elementidega\n"
" `solved' kirjelda nihuta/redutseeri konfliktide lahendamisi\n"
" `all' kogu ülaltoodud info\n"
" `none' blokeeri raport\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "Teatage palun vigadest aadressil <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Kirjutanud Robert Corbett ja Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Autoriõigus © %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"See on vaba tarkvara; kopeerimistingimused leiate lähtetekstidest. Garantii\n"
"PUUDUB; ka müügiks või mingil eesmärgil kasutamiseks.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "`%s' järel puudub operand"
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "Liigne operand `%s'"
#: src/gram.c:139
msgid "empty"
msgstr "tühi"
#: src/gram.c:233
msgid "Grammar"
msgstr "Grammatika"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "hoiatus"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "reeglit ei redutseerita konfliktide tõttu kunagi"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX keelab deklareerimised grammatikas"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "parameetri deklaratsioonis puudub identifikaator"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " tüüp %d on %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "nihuta ja liigu olekule %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "liigu olekule %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "viga (mitteassotsiatiivne)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "redutseerin kasutades reeglit %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "nõustun"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$default"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "olek %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Terminalid, koos reeglitega kus nad ilmuvad"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Mitteterminalid, koos reeglitega kus nad ilmuvad"
#: src/print.c:512
msgid " on left:"
msgstr " vasakul:"
#: src/print.c:527
msgid " on right:"
msgstr " paremal:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Mitteredutseeruvad reeglid"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "korduvad %s deklaratsioonid"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr "tulemuse tüübikonflikt mestimise funktsioonis %s: <%s> != <%s>"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "%s jaoks on antud reegel, aga see on märk"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "vaikimisi tegevuse tüübikonflikt: <%s> != <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "reeglis on lubatud ainult üks %s"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s puudutab ainult GLR parsereid"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s järel peab olema positiivne number"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "sisendgrammatikas pole reegleid"
#: src/reduce.c:242
msgid "useless rule"
msgstr "kasutamata reegel"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "kasutamata mitteterminal: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Kasutamata mitteterminalid"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Terminalid, mida ei kasutatud"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Kasutamata reeglid"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d reegel ei redutseeru\n"
msgstr[1] "%d reeglit ei redutseeru\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d kasutamata mitteterminal"
msgstr[1] "%d kasutamata mitteterminali"
#: src/reduce.c:403
msgid " and "
msgstr " ja "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d kasutamata reegel"
msgstr[1] "%d kasutamata reeglit"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "stardisümbolist %s ei tuletata ühtegi lauset"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "käsitlen juhuslikku `,' kui tühikut"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "vigane juhus: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "number piiridest väljas: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "vigased sümbolid: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "vigane paojada: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "tundmatu paojada: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "`%s' juures puudub `{'"
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "`%s' $$ ei oma deklareeritud tüüpi"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d `%s' ei oma deklareeritud tüüpi"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "vigane väärtus: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "faili lõpus puudub `%s'"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "vigane $ väärtus"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "%s tüübi uuesti deklareerimine"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "%s uuesti deklareerimine %s jaoks"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "%s prioriteedi uus definitsioon"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "sümbol %s on uuesti defineeritud"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "%s kasutaja märgi numbri uuesti defineerimine"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad "
"reeglid"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "sümbolit `%s' on kasutatud enam kui kord literaal sõnena"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "sümbolile `%s' on antud enam kui üks literaal sõne"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "%s ja %s omavad konfliktseid prioriteete"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "%s (%s) ja %s (%s) omavad konfliktseid assotsiatiivseid väärtuseid"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "märkidele %s ja %s on mõlemale omistatud number %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "stardisümbol %s ei ole defineeritud"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "stardisümbol %s on märk"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "vigane argument %s %s'le"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "segane argument %s %s'le"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Lubatud argumendid on:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitset_allocs, %u vabastatud (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitset_sets, %u puhverdatud (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitset_resets, %u puhverdatud (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitset_tests, %u puhverdatud (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitset_lists\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "loenduri logi histogramm\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "suuruste logi histogramm\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "tiheduse histogramm\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Bitset statistika:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Salvestatud läbimisi = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Statistika faili ei saa lugeda."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Vigane statistika faili suurus.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Statistika faili ei saa kirjutada."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Statistika faili ei saa kirjutamiseks avada."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: võti `%s' on segane\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: võti `--%s' ei luba argumenti\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: võti `%c%s' ei luba argumenti\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: võti `%s' nõuab argumenti\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: tundmatu võti `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: tundmatu võti `%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: lubamatu võti -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: vigane võti -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: võti nõuab argumenti -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: võti `-W %s' on segane\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: võti `-W %s' ei luba argumenti\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "mälu on otsas"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "abiprogrammi `%s' ei saa käivitada"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "ei leia abiprogrammi `%s'"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "abiprogramm `%s' ebaõnnestus"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "abiprogramm `%s' ebaõnnestus (lõpetamise kood %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Täitmise ajad (sekundites)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " KOKKU :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "aeg %s: %ld.%06ld (%ld%%)\n"

1183
po/fr.po

File diff suppressed because it is too large Load Diff

896
po/hr.po
View File

@@ -1,896 +0,0 @@
# Translation of bision to Croatian
# Copyright (C) 2002 Free Software Foundation, Inc.
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
# This file is distributed under the same license as the bison package.
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.34a\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2002-04-10 22:20+01\n"
"Last-Translator: Denis Lackovic <delacko@fly.srk.fer.hr>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n==1 ? 0 : 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Nepoznata sistemska gre¹ka"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "upozorenje:"
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "fatalna gre¹ka:"
#: src/conflicts.c:75
#, fuzzy, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr "Konflikt u stanju %d izmeðu pravila %d i znaka %s razrije¹en kao %s.\n"
#: src/conflicts.c:83
#, fuzzy, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr "Konflikt u stanju %d izmeðu pravila %d i znaka %s razrije¹en kao %s.\n"
#: src/conflicts.c:90
#, fuzzy, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr "Konflikt u stanju %d izmeðu pravila %d i znaka %s razrije¹en kao %s.\n"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr ""
#: src/conflicts.c:401
#, fuzzy, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr " %d pomakni/reduciraj"
#: src/conflicts.c:403
#, fuzzy, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr " %d reduviraj/reduciraj"
#: src/conflicts.c:421
#, fuzzy, c-format
msgid "State %d "
msgstr "stanje %d"
#: src/conflicts.c:498
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "oèekujem %d pomakni/reduciraj konflikt\n"
msgstr[1] "oèekujem %d pomakni/reduciraj konflikata\n"
#: src/conflicts.c:503
#, fuzzy
msgid "expected 0 reduce/reduce conflicts"
msgstr "%d reduciraj/reduciraj konflikt"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "ne mogu otvoriti datoteku `%s'"
#: src/files.c:115
#, fuzzy
msgid "I/O error"
msgstr "gre¹ka"
#: src/files.c:118
msgid "cannot close file"
msgstr "ne mogu zatvoriti datoteku"
#: src/files.c:336
#, fuzzy, c-format
msgid "conflicting outputs to file %s"
msgstr "konfliktne asocijativne vrijednosti za %s i %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Poku¹aj `%s --help' za vi¹e informacija.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison generira parsere za LALR(1) gramatike.\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Kori¹tenje: %s [OPCIJA]... DATOTEKA\n"
#: src/getargs.c:200
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 ""
"Ako duga opcija ka¾e da je argument obavezan, tada je on obavezan\n"
"i za ekvivalentnu kratku opciju. Slièno je i za opcionalne argumente.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Naèini rada:\n"
" -h, --help prika¾i ovu pomoæ i izaði\n"
" -V, --version prika¾i verziju i izaði\n"
" -y, --yacc emuliraj POSIX yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Parser:\n"
" -S, --skeleton=DATOTEKA specificiraj kostur za uporabu\n"
" -t, --debug pripremi parser za deugiranje\n"
" --locations omoguæi izraèunavanje lokacija\n"
" -p, --name-prefix=PREFIKS stavi PREFIX ispred vanjskih simbola\n"
" -l, --no-lines ne eneriraj `#line' direktive\n"
" -n, --no-parser generiraj samo tablice\n"
" -k, --token-table ukljuèi tablicu imena znakova\n"
#: src/getargs.c:225
#, fuzzy
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Izlaz:\n"
" -d, --defines takoðer proizvedi header datoteku\n"
" -v, --verbose takoðer proizvedi obja¹njenje automata\n"
" -b, --file-prefix=PREFIKS specificiraj PREFIKS za izlazne datoteke\n"
" -o, --output=DATOTEKA ispi¹i izlaz u DATOTEKU\n"
" -g, --graph takoðer proizvedi VCG opis automata\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "Izvjesti o bugovima na <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr ""
#: src/getargs.c:270
#, fuzzy, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr ""
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
"Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Ovo je slobodni softver; pogledajte kod kako biste doznali uvjete "
"kopiranja. NEMA\n"
"garancije; èak ni tvrdnje o ISPLATIVOSTI ili POGODNOSTI ZA NEKU SVRHU.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr ""
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr ""
#: src/gram.c:139
msgid "empty"
msgstr "prazno"
#: src/gram.c:233
msgid "Grammar"
msgstr "Gramatika"
#: src/gram.c:321 src/reduce.c:394
#, fuzzy
msgid "warning"
msgstr "upozorenje:"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr ""
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr ""
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr ""
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " tip %d je %s\n"
#: src/print.c:165
#, fuzzy, c-format
msgid "shift, and go to state %d\n"
msgstr " %-4s\tpomakni i idi u stanje %d\n"
#: src/print.c:167
#, fuzzy, c-format
msgid "go to state %d\n"
msgstr " $ \tidu u stanje %d\n"
#: src/print.c:204
#, fuzzy
msgid "error (nonassociative)\n"
msgstr "%-4s\tgre¹ka (nonassociative)"
#: src/print.c:292
#, fuzzy, c-format
msgid "reduce using rule %d (%s)"
msgstr "$default\treduciraj koristeæi pravilo %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr ""
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr ""
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "stanje %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Zavr¹ni znakovi, sa pravilima gdje se pojavljuju"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Nezavr¹ni znakovi, sa pravilima gdje se pojavljuju"
#: src/print.c:512
msgid " on left:"
msgstr "s lijeva:"
#: src/print.c:527
msgid " on right:"
msgstr "s desna:"
#: src/print.c:555
#, fuzzy
msgid "Rules never reduced"
msgstr "%d pravilo nije nikad reducirano\n"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "vi¹estruke %s deklaracije"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr ""
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "pravilo dato za %s, a to je znak"
#: src/reader.c:242
#, fuzzy, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "sudar tipova (`%s' `%s') na deaultnoj akciji"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "prazno pravilo za nezavr¹ni znak, i nema akcije"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr ""
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr ""
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr ""
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "nema pravila u ulaznoj gramatici"
#: src/reduce.c:242
#, fuzzy
msgid "useless rule"
msgstr "%d beskorisno pravilo"
#: src/reduce.c:303
#, fuzzy, c-format
msgid "useless nonterminal: %s"
msgstr "Beskorisni nezavr¹ni znakovi:"
#: src/reduce.c:351
#, fuzzy
msgid "Useless nonterminals"
msgstr "Beskorisni nezavr¹ni znakovi:"
#: src/reduce.c:364
#, fuzzy
msgid "Terminals which are not used"
msgstr "Zavr¹ni znakovi koji nisu kori¹teni:"
#: src/reduce.c:373
#, fuzzy
msgid "Useless rules"
msgstr "Beskorisna pravila:"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d pravilo nije nikad reducirano\n"
msgstr[1] "%d pravila nisu nikad reducirana\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d beskorisan nezavr¹ni znak"
msgstr[1] "%d beskorisnih nezavr¹nih znakova"
#: src/reduce.c:403
msgid " and "
msgstr " i"
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d beskorisno pravilo"
msgstr[1] "%d beskorisnih pravila"
#: src/reduce.c:436
#, fuzzy, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "Poèetni simbol %s ne daje niti jednu reèenicu"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr ""
#: src/scan-gram.l:221
#, fuzzy, c-format
msgid "invalid directive: %s"
msgstr "nedozvoljeni ulaz: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr ""
#: src/scan-gram.l:283
#, fuzzy, c-format
msgid "invalid character: %s"
msgstr "nepoznati znak: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, fuzzy, c-format
msgid "invalid escape sequence: %s"
msgstr "nedozvoljeni ulaz: %s"
#: src/scan-gram.l:446
#, fuzzy, c-format
msgid "unrecognized escape sequence: %s"
msgstr "neprepoznati: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr ""
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ od `%s' nema deklarirani tip"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d od `%s' nema deklarirani tip"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "nedozvoljena $ vrijednost"
#: src/scan-gram.l:996
#, fuzzy, c-format
msgid "missing `%s' at end of file"
msgstr "nezavr¹eni znakovni niz na kraju datoteke"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "nedozvoljena $ vrijednost"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "ponovna deklaracija za %s"
#: src/symtab.c:101 src/symtab.c:119
#, fuzzy, c-format
msgid "%s redeclaration for %s"
msgstr "ponovna deklaracija za %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "ponovno definiran prethodnik od %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "simbol %s ponovo definiran"
#: src/symtab.c:179
#, fuzzy, c-format
msgid "redefining user token number of %s"
msgstr "ponovno definiran prethodnik od %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "simbol %s je kori¹ten, ali nije definiran kao znak i nema pravila"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "simbol `%s' kori¹ten vi¹e puta kao znakovni niz"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "simbolz `%s' dat vi¹e od jednog znakovnog niza"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "konflikt u prethodnici za %s and %s"
#: src/symtab.c:282
#, fuzzy, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "konfliktne asocijativne vrijednosti za %s i %s"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "objema znakovima %s i %s je pridru¾en broj %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "poèetni simbol %s nije definiran"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "poèetni simbol %s je znak"
#: lib/argmatch.c:135
#, fuzzy, c-format
msgid "invalid argument %s for %s"
msgstr "nedozvoljeni ulaz: %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr ""
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr ""
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr ""
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr ""
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr ""
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr ""
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr ""
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr ""
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr ""
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr ""
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr ""
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr ""
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: opcija `%s' je nejednoznaèna\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: opcija `--%s' ne dopu¹ta argument\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: opcija `%c%s' ne dopu¹ta argument\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: opcija `%s' zahtijeva argument\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: neprepoznata opcija `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: neprepoznata opcija `%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: nedozvoljena opcija -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: nedozvoljena opcija -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: opcija zahtijeva argument -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: opcija `-W %s' je nejednoznaèna\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: opcija `-W %s' ne dopu¹ta argument\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "iscrpljeni memorijski resursi"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr ""
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr ""
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr ""
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr ""
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr ""
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr ""
#~ msgid "too many states (max %d)"
#~ msgstr "previ¹e stanja (maks %d)"
#~ msgid "reduce"
#~ msgstr "reduciraj"
#~ msgid "shift"
#~ msgstr "pomakni"
#~ msgid "%d shift/reduce conflict"
#~ msgid_plural "%d shift/reduce conflicts"
#~ msgstr[0] "%d pomakni/reduciraj konflikat"
#~ msgstr[1] "%d pomakni/reduciraj konflikata"
#~ msgid "and"
#~ msgstr "i"
#~ msgid "State %d contains "
#~ msgstr "Stanje %d sadr¾i"
#~ msgid "conflicts: "
#~ msgstr "konflikt:"
#~ msgid "%s contains "
#~ msgstr "%s sadr¾i"
#~ msgid " %-4s\t[reduce using rule %d (%s)]\n"
#~ msgstr " %-4s\t[reduciraj koristeæi pravilo %d (%s)]\n"
#~ msgid ""
#~ " $default\treduce using rule %d (%s)\n"
#~ "\n"
#~ msgstr ""
#~ " $default\treduciraj koristeæi pravilo %d (%s)\n"
#~ "\n"
#~ msgid " %-4s\treduce using rule %d (%s)\n"
#~ msgstr " %-4s\treduciraj koristeæi pravilo %d (%s)\n"
#~ msgid " $default\treduce using rule %d (%s)\n"
#~ msgstr " $default\treduciraj koristeæi pravilo %d (%s)\n"
#~ msgid "`%s' is no longer supported"
#~ msgstr "`%s' vi¹e nije podr¾ano"
#~ msgid "%s: no grammar file given\n"
#~ msgstr "%s: nije data datoteka sa gramatikom\n"
#~ msgid "%s: extra arguments ignored after `%s'\n"
#~ msgstr "%s: dodatni argumenti se ignoriraju nakon `%s'\n"
#~ msgid "too many gotos (max %d)"
#~ msgstr "previ¹e goto-a (maksimalno %d)"
#~ msgid "unexpected `/' found and ignored"
#~ msgstr "neoèekivan `/' naðen i zanemaren"
#~ msgid "unterminated comment"
#~ msgstr "nezavr¹eni komentar"
#~ msgid "unexpected end of file"
#~ msgstr "neoèekivan kraj datoteke"
#~ msgid "unescaped newline in constant"
#~ msgstr "neoèekivan znak za novu liniju u konstanti"
#~ msgid "octal value outside range 0...255: `\\%o'"
#~ msgstr "oktalna vrijednost izvan dosega 0...255: `\\%o'"
#~ msgid "hexadecimal value above 255: `\\x%x'"
#~ msgstr "heksadecimalna vrijednost vi¹a od 255: `\\x%x'"
#~ msgid "unknown escape sequence: `\\' followed by `%s'"
#~ msgstr "nepoznata escape sekvenca: `\\' koju slijedi `%s'"
#~ msgid "unterminated type name at end of file"
#~ msgstr "nezavr¹eno ime tipa pri kraju datoteke"
#~ msgid "unterminated type name"
#~ msgstr "nezavr¹eno ime tipa"
#~ msgid "use \"...\" for multi-character literal tokens"
#~ msgstr "koristi \"...\" za vi¹ebajtne znakove"
#~ msgid "`%s' supports no argument: %s"
#~ msgstr "`%s' ne podr¾ava argument: %s"
#~ msgid "`%s' requires an argument"
#~ msgstr "`%s' zahtijeva argument"
#~ msgid "maximum table size (%d) exceeded"
#~ msgstr "maksimalna velièina tablice (%d) prekoraèena"
#~ msgid " (rule %d)"
#~ msgstr " (pravilo %d)"
#~ msgid " $default\taccept\n"
#~ msgstr " $default\tprihvati\n"
#~ msgid " NO ACTIONS\n"
#~ msgstr " NEMA AKCIJA\n"
#~ msgid " %-4s\terror (nonassociative)\n"
#~ msgstr " %-4s\tgre¹ka (nonassociative)\n"
#~ msgid " %-4s\tgo to state %d\n"
#~ msgstr " %-4s\tidu u stanje %d\n"
#~ msgid "Number, Line, Rule"
#~ msgstr "Broj, Linija, Pravilo"
#~ msgid " %3d %3d %s ->"
#~ msgstr " %3d %3d %s ->"
#~ msgid " Skipping to next \\n"
#~ msgstr " Preskaèem na slijedeæe \\n"
#~ msgid " Skipping to next %c"
#~ msgstr " Preskaèem na slijedeæi %c"
#~ msgid "unterminated string"
#~ msgstr "nezavr¹eni znakovni niz"
#~ msgid "invalid @ value"
#~ msgstr "nedozvoljena @ vrijednost"
#~ msgid "%s is invalid"
#~ msgstr "%s je nedozvoljeno"
#~ msgid "unterminated `%{' definition"
#~ msgstr "nezavr¹ena `%{' definicija"
#~ msgid "Premature EOF after %s"
#~ msgstr "Preuranjeni EOF nakon %s"
#~ msgid "`%s' is invalid in %s"
#~ msgstr "`%s' je nedozvoljen u %s"
#~ msgid "invalid %s declaration"
#~ msgstr "nedozvoljena %s deklaracija"
#~ msgid "%type declaration has no <typename>"
#~ msgstr "%type deklaracija nema <typename>"
#~ msgid "invalid %%type declaration due to item: %s"
#~ msgstr "nedozvoljena %%type deklaracija zbog: %s"
#~ msgid "invalid text (%s) - number should be after identifier"
#~ msgstr "nedozvoljeno tekst (%s) - broj bi trebao biti nakon identifikatora"
#~ msgid "unexpected item: %s"
#~ msgstr "neoèekivani: %s"
#~ msgid "unmatched %s"
#~ msgstr "nije pronaðen %s"
#~ msgid "argument of %%expect is not an integer"
#~ msgstr "argument od %%expect nije cijeli broj"
#~ msgid "unrecognized item %s, expected an identifier"
#~ msgstr "neprepoznati %s, oèekivan nakon identifikatora"
#~ msgid "expected string constant instead of %s"
#~ msgstr "oèekivana znakovna konstana umjesto %s"
#~ msgid "no input grammar"
#~ msgstr "nema ulazne gramatike"
#~ msgid "unterminated %guard clause"
#~ msgstr "nezavr¹ena %guard klauzula"
#~ msgid "ill-formed rule: initial symbol not followed by colon"
#~ msgstr "lo¹e pravilo: zarez ne bi trebao slijediti poèetni simbol"
#~ msgid "grammar starts with vertical bar"
#~ msgstr "gramatika poèinje sa okomitom crtom"
#~ msgid "previous rule lacks an ending `;'"
#~ msgstr "prethodnom pravilu nedostaje zavr¹etak `;'"
#~ msgid "two @prec's in a row"
#~ msgstr "dva @prec's u retku"
#~ msgid "%%guard present but %%semantic_parser not specified"
#~ msgstr "%%guard prisutan ali %%semantic_parser nije specificiran"
#~ msgid "two actions at end of one rule"
#~ msgstr "dvije akcije pri kraju jednog pravila"
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
#~ msgstr "previ¹e simbola (znakovi plus nezavr¹ni znakovi); maksimalno %d"

721
po/id.po
View File

@@ -1,721 +0,0 @@
# bison 1.875 (Indonesian)
# Copyright (C) 2002 Free Software Foundation, Inc.
# This file is distributed under the same license as the bison 1.50 package.
# Tedi Heriyanto <tedi_h@gmx.net>, 2002, 2003
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-01-07 13:25GMT+0700\n"
"Last-Translator: Tedi Heriyanto <tedi_h@gmx.net>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: KBabel 0.9.6\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Kesalahan sistem tidak dikenal"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "peringatan: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "kesalahan fatal: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Konflik antara aturan %d dan token %s diselesaikan sebagai shift"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " Konflik antara aturan %d dan token %s diselesaikan sebagai reduce"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr ""
" Konflik antara aturan %d dan token %s diselesaikan sebagai kesalahan"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "konflik: %d geser/kurangi, %d kurangi/kurangi\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "konflik: %d geser/kurangi\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "konflik: %d kurangi/kurangi\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "State %d "
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "mengharapkan %d shift/reduce konflik"
msgstr[1] "mengharapkan %d shift/reduce konflik"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "diharapkan 0 kurangi/kurangi konflik"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "tidak dapat membuka file `%s'"
#: src/files.c:115
msgid "I/O error"
msgstr "Kesalahan I/O"
#: src/files.c:118
msgid "cannot close file"
msgstr "tidak dapat menutup file"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "output konflik ke file %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison generates parsers for LALR(1) grammars.\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Penggunaan: %s [OPTION]... FILE\n"
#: src/getargs.c:200
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 ""
"Jika option panjang menyatakan argumen sebagai mandatori, maka ia mandatori "
"juga\n"
"untuk option pendek. Hal yang sama untuk argumen opsional.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Mode Operasi:\n"
" -h, --help tampilkan bantuan ini dan keluar\n"
" -V, --version tampilkan informasi versi dan keluar\n"
" -y, --yacc emulasikan POSIX yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Parser:\n"
" -S, --skeleton=FILE specifikasikan rangka yang akan digunakan\n"
" -t, --debug instrumen parser untuk debugging\n"
" --locations aktifkan lokasi perhitungan\n"
" -p, --name-prefix=PREFIX tambahkan PREFIX ke simbol eksternal\n"
" -l, --no-lines jangan hasilkan direktiv `#line'\n"
" -n, --no-parser hasilkan hanya tabel\n"
" -k, --token-table sertakan tabel nama token\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Output:\n"
" -d, --defines juga hasilkan file header\n"
" -r, --report=THINGS juga hasilkan detil tentang otomaton\n"
" -v, --verbose sama seperti `--report=state'\n"
" -b, --file-prefix=PREFIX spesifikasikan PREFIX untuk file output\n"
" -o, --output=FILE simpan output ke FILE\n"
" -g, --graph juga hasilkan deskripsi VCG automaton\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"THINGS adalah daftar kata yang dipisahkan koma termasuk:\n"
" `state' menggambarkan state\n"
" `itemset' lengkapi himpunan item inti dengan klosurnya\n"
" `lookahead' asosiasikan lookaheads ke items secara eksplisit\n"
" `solved' gambarkan penyelesaian konflik shift/reduce\n"
" `all' sertakan semua informasi di atas\n"
" `none' tiadakan laporan\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "Laporkan kesalahan ke <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Written by Robert Corbett and Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "operand hilang setelah `%s'"
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "operand ekstra `%s'"
#: src/gram.c:139
msgid "empty"
msgstr "kosong"
#: src/gram.c:233
msgid "Grammar"
msgstr "Grammar"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "peringatan"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "aturan tidak pernah dikurangi karena konflik"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX melarang deklarasi dalam grammar"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "identifier tidak ada dalam deklarasi parameter"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " tipe %d adalah %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "geser, dan ke state %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "ke state %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "kesalahan(nonasosiatif)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "kurangi gunakan aturan %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "terima"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$default"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "state %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Terminal, dengan aturan tempat mereka muncul"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Nonterminal, dengan aturan tempat mereka muncul"
#: src/print.c:512
msgid " on left:"
msgstr " di kiri:"
#: src/print.c:527
msgid " on right:"
msgstr " di kanan:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Aturan tidak pernah dikurangi"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "deklarasi ganda %s"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr "tipe hasil bentrok pada fungsi merge %s: <%s> != <%s>"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "aturan diberikan untuk %s, yang merupakan sebuah token"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "bentrokan tipe pada aksi baku: <%s> != <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "aturan kosong untuk nonterminal typed, dan tidak ada aksi"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "hanya satu %s yang dibolehkan per aturan"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s hanya mempengaruhi parser GLR"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s harus diikuti angka positif"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "tidak ada aturan dalam grammar input"
#: src/reduce.c:242
msgid "useless rule"
msgstr "aturan tidak berguna"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "nonterminal tidak berguna: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Nonterminal tidak berguna"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Terminal yang tidak digunakan"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Useless rules"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "Aturan %d tidak pernah dikurangi\n"
msgstr[1] "Aturan %d tidak pernah dikurangi\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "nonterminal tidak berguna %d"
msgstr[1] "nonterminal tidak berguna %d"
#: src/reduce.c:403
msgid " and "
msgstr " dan "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "aturan tidak berguna %d"
msgstr[1] "aturan tidak berguna %d"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "simbol awal %s tidak melahirkan kalimat"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "stray `,' dianggap sebagai white space"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "direktif tidak valid: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "integer ke luar batas: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "karakter tidak valid: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "urutan escape tidak valid: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "urutan escape tidak dikenal: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "hilang `{' dalam `%s'"
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ dari `%s' tidak memiliki tipe yang terdeklarasi"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d dari `%s' tidak memiliki tipe terdeklarasi"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "nilai tidak valid: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "`%s' hilang di akhir file"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "nilai $ tidak valid"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "redeklarasi tipe untuk %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "%s redeklarasi untuk %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "mendefinisikan kembali presedens %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "simbol %s didefinisikan ulang"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "mendefinisikan ulang nomor token user %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"simbol %s digunakan, namun tidak didefinisikan sebagai token dan tidak "
"memiliki aturan"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "simbol `%s' digunakan lebih dari satu kali sebagai string literal"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "simbol `%s' diberikan lebih dari satu string literal"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "presenden konflik untuk %s dan %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "asosiatif konflik untuk %s (%s) dan %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "token %s dan %s keduanya memiliki angka %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "simbol awal %s tidak didefinisikan"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "simbol awal %s adalah sebuah token"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "argument %s tidak valid untuk %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "argumen %s ambigu untuk %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Argumen valid adalah:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitset_allocs, %u freed (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitset_sets, %u cached (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitset_resets, %u cached (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitset_tests, %u cached (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitset_lists\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "hitung log histogram\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "ukuran log histogram\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "kepadatan histogram\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Statistik bitset:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Run terakumulasi = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Tidak dapat membaca file stat."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Ukuran file stat buruk.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Tidak dapat menulis file stat."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Tidak dapat membuka file stat untuk ditulisi."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: option `%s' ambigu\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: option `--%s' tidak membolehkan sebuah argumen\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: option `%c%s' tidak membolehkan sebuah argumen\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: option `%s' membutuhkan sebuah argumen\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: option tidak dikenal `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: option tidak dikenal `%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: option ilegal -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: option tidak valid -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: option membutuhkan sebuah argumen -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: option `-W %s' ambigu\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: option `-W %s' tidak membolehkan sebuah argumen\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "memori habis"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "program subsider `%s' tidak dapat dipanggil"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "program subsider `%s' tidak ditemukan"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "program subsider `%s' gagal"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "program subsider `%s' gagal (status kegagalan %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Waktu eksekusi (detik)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " TOTAL :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "waktu dalam %s: %ld.%06ld (%ld%%)\n"
#~ msgid "%d shift/reduce conflict"
#~ msgid_plural "%d shift/reduce conflicts"
#~ msgstr[0] "%d geser/kurangi konflik"
#~ msgstr[1] "%d geser/kurangi konflik"
#~ msgid "and"
#~ msgstr "dan"
#~ msgid "conflicts: "
#~ msgstr "konflik: "
#~ msgid "State %d contains "
#~ msgstr "State %d berisi "

761
po/it.po
View File

@@ -1,761 +0,0 @@
# Italian translation for message of GNU bison.
# Copyright (C) 2002 Free Software Foundation, Inc.
# Paolo Bonzini <bonzini@gnu.org>, 2002.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.50\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2002-10-17 14:37+0100\n"
"Last-Translator: Paolo Bonzini <bonzini@gnu.org>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Errore di sistema sconosciuto"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "attenzione: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "errore fatale: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Conflitto tra la regola %d e il token %s risolto come shift"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " Conflitto tra la regola %d e il token %s risolto come riduzione"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " Conflitto tra la regola %d e il token %s risolto come errore"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr ""
#: src/conflicts.c:401
#, fuzzy, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr " %d shift/riduzione"
#: src/conflicts.c:403
#, fuzzy, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr " %d riduzione/riduzione"
#: src/conflicts.c:421
#, fuzzy, c-format
msgid "State %d "
msgstr "stato %d"
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "atteso %d conflitto shift/riduzione"
msgstr[1] "attesi %d conflitti shift/riduzione"
#: src/conflicts.c:503
#, fuzzy
msgid "expected 0 reduce/reduce conflicts"
msgstr "%d conflitto riduzione/riduzione"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "impossibile aprire il file `%s'"
#: src/files.c:115
msgid "I/O error"
msgstr ""
#: src/files.c:118
msgid "cannot close file"
msgstr "impossibile chiudere il file `%s'"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr ""
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Provare `%s --help' per ulteriori informazioni.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genera parser per grammatiche LALR(1).\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Utilizzo: %s [OPZIONE]... FILE\n"
#: src/getargs.c:200
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 ""
"Se un argomento è indicato come obbligatorio in un'opzione lunga, allora\n"
"è obbligatorio anche per l'equivalente opzione corta. Analogamente per\n"
"gli argomenti opzionali.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Modalità operative:\n"
" -h, --help mostra questo aiuto ed esce\n"
" -V, --version mostra informazioni sulla versione ed esce\n"
" -y, --yacc emula il comportamento di POSIX yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
" -S, --skeleton=FILE specifica lo scheletro da usare\n"
" -t, --debug aggiunge informazioni di debug al parser\n"
" --locations abilita il calcolo delle locazioni (@N)\n"
" -p, --name-prefix=PREFIX prepone PREFIX ai simboli globali\n"
" -l, --no-lines non genera direttive `#line'\n"
" -n, --no-parser genera le sole tabelle\n"
" -k, --token-table include una tabella di nomi dei token\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Output:\n"
" -d, --defines produce anche uno header\n"
" -r, --report=THINGS produce anche dettagli sull'automa\n"
" -v, --verbose produce anche una spiegazione dell'automa\n"
" -b, --file-prefix=PREFIX specifica un prefisso per il file di output\n"
" -o, --output=FILE lascia l'output in FILE\n"
" -g, --graph produce anche una descrizione VCG dell'automa\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"THINGS è un elenco di parole separate da virgola scelte tra:\n"
" `state' descrive gli stati\n"
" `itemset' completa gli insiemi dei simboli con la loro chiusura "
"transitiva\n"
" `lookahead' associa i token di prospezione ai simboli\n"
" `solved' descrive la riduzione dei conflitti shift/riduzione\n"
" `all' include tutte queste informazioni\n"
" `none' disabilita la produzione del rapporto\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "Segnalare eventuali bug a <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Scritto da Robert Corbett e Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Questo e' software libero; vedere il sorgente per le condizioni cui e'\n"
"sottoposta la copia. NON c'è ALCUNA garanzia, neanche di\n"
"COMMERCIABILITA` o di ADEGUATEZZA AD UN PARTICOLARE SCOPO.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr ""
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr ""
#: src/gram.c:139
msgid "empty"
msgstr "vuoto"
#: src/gram.c:233
msgid "Grammar"
msgstr "Grammatica"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "attenzione"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "regola mai ridotta a causa dei conflitti"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX proibisce l'uso di dichiarazioni interne alla grammatica"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr ""
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " il tipo %d è %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "shift e prosecuzione allo stato %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "prosecuzione allo stato %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "errore (non associativo)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "riduzione con la regola %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "accetta"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$default"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "stato %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Simboli terminali e regole in cui appaiono"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Simboli nonterminali e regole in cui appaiono"
#: src/print.c:512
msgid " on left:"
msgstr " nel primo membro:"
#: src/print.c:527
msgid " on right:"
msgstr " nel secondo membro:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Regole mai ridotte"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "dichiarazioni multiple per %s"
#: src/reader.c:115
#, fuzzy, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr ""
"conflitto nei tipi del risultato della funzione di merge %s: `%s' e `%s'"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "fornita una regola per il token %s"
#: src/reader.c:242
#, fuzzy, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "conflitto di tipo (`%s' e `%s') nell'azione di default"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "regola vuota e nessuna azione per un nonterminale con tipo"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, fuzzy, c-format
msgid "only one %s allowed per rule"
msgstr "solo un %%merge è permesso in una regola"
#: src/reader.c:328 src/reader.c:343
#, fuzzy, c-format
msgid "%s affects only GLR parsers"
msgstr "%%merge considerato solo nei parser GLR"
#: src/reader.c:330
#, fuzzy, c-format
msgid "%s must be followed by positive number"
msgstr "%%dprec deve essere seguito da un intero positivo"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "nessuna regola nella grammatica di input"
#: src/reduce.c:242
msgid "useless rule"
msgstr "regola inutile"
#: src/reduce.c:303
#, fuzzy, c-format
msgid "useless nonterminal: %s"
msgstr "simbolo nonterminale inutilizzato"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Simboli nonterminali inutili"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Simboli terminali inutilizzati"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Regole inutili"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d regola non applicata\n"
msgstr[1] "%d regole non applicate\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d simbolo nonterminale inutilizzato"
msgstr[1] "%d simboli nonterminali inutilizzati"
#: src/reduce.c:403
msgid " and "
msgstr " e "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d regola inutile"
msgstr[1] "%d regole inutili"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "dal simbolo iniziale %s non deriva alcuna frase"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr ""
#: src/scan-gram.l:221
#, fuzzy, c-format
msgid "invalid directive: %s"
msgstr ": escape non valido: %s\n"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr ""
#: src/scan-gram.l:283
#, fuzzy, c-format
msgid "invalid character: %s"
msgstr ": carattere non valido: `%c'\n"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, fuzzy, c-format
msgid "invalid escape sequence: %s"
msgstr ": escape non valido: %s\n"
#: src/scan-gram.l:446
#, fuzzy, c-format
msgid "unrecognized escape sequence: %s"
msgstr ": escape non riconosciuto: %s\n"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr ""
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "Manca una dichiarazione di tipo per $$ di `%s'"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "Manca una dichiarazione di tipo per $%d di `%s'"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "valore non valido: %s%d"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr ""
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "valore $ non valido"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "tipo dichiarato due volte per %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "dichiarazione due volte di %s per %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "precedenza di `%s' definita due volte"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "simbolo %s ridefinito"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "numero di token definito dall'utente specificato due volte per %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "usato il simbolo %s, ma non è un token e non ha regole"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "simbolo `%s' usato più di una volta in una stringa letterale"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "il simbolo `%s' dà pi&grave; di una stringa letterale"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedenze in conflitto per %s und %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "associatività in conflitto per %s (%s) e %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "i token %s e %s hanno lo stesso numero %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "simbolo iniziale %s non definito"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "specificato il token %s come simbolo iniziale"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "argomento non valido %s per %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "argomento ambiguo %s per %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Gli argomenti validi sono:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitset_alloc, %u liberati (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitset_set, %u in cache (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitset_reset, %u in cache (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitset_test, %u in cache (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitset_list\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "istogramma dei conteggi\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "istogramma delle dimensioni\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "istogranna delle densità\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Statistiche dei bitset:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Esecuzioni accumulate = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Impossibile leggere il file delle statistiche."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Dimensione errata del file delle statistiche.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Impossibile scrivere il file delle statistiche."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Impossibile aprire in scrittura il file delle statistiche."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: l'opzione `%s' è ambigua\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: l'opzione `--%s' non ammette argomenti\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: l'opzione `%c%s' non ammette argomenti\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: l'opzione `%s' richiede un argomento\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: opzione sconosciuta `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: opzione sconosciuta `%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opzione non valida -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: opzione non valida -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: l'opzione richiede un argomento -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: l'opzione `-W %s' è ambigua\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: l'opzione `-W %s' non ammette un argomento\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "memoria esaurita"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr ""
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr ""
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr ""
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr ""
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Tempo di esecuzione (in secondi)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " TOTALE :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "tempo in %s: %ld.%06ld (%ld%%)\n"
#~ msgid "%d shift/reduce conflict"
#~ msgid_plural "%d shift/reduce conflicts"
#~ msgstr[0] "%d conflitto shift/riduzione"
#~ msgstr[1] "%d conflitti shift/riduzione"
#~ msgid "and"
#~ msgstr "e"
#~ msgid "conflicts: "
#~ msgstr "conflitti: "
#~ msgid "State %d contains "
#~ msgstr "Lo stato %d contiene"
#~ msgid "%s: no grammar file given\n"
#~ msgstr "%s: nessun file grammatica specificato\n"
#~ msgid "%s: extra arguments ignored after `%s'\n"
#~ msgstr "%s: ignorati gli argomenti successivi a `%s'\n"
#~ msgid "too many gotos (max %d)"
#~ msgstr "troppi goto (max %d)"
#~ msgid "two @prec's in a row"
#~ msgstr "due @prec di seguito"
#~ msgid "%%dprec affects only GLR parsers"
#~ msgstr "%%dprec considerato solo nei parser GLR"
#~ msgid "only one %%dprec allowed per rule"
#~ msgstr "solo un %%dprec è permesso in una regola"
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
#~ msgstr "troppi simboli (token e nonterminali); il massimo è %d"
#~ msgid ": unexpected end of file in a comment\n"
#~ msgstr ": fine del file inattesa in un commento\n"
#~ msgid ": unexpected end of file in a string\n"
#~ msgstr ": fine del file inattesa in una stringa\n"
#~ msgid ": unexpected end of file in a character\n"
#~ msgstr ": fine del file inattesa in un carattere\n"
#~ msgid ": unexpected end of file in a braced code\n"
#~ msgstr ": fine del file inattesa in codice (tra parentesi graffe)\n"
#~ msgid ": unexpected end of file in a prologue\n"
#~ msgstr ": fine del file inattesa nel prologo\n"
#~ msgid "%s is invalid"
#~ msgstr "%s non è valido"
#~ msgid "too many states (max %d)"
#~ msgstr "troppi stati (massimo %d)"

1055
po/ja.po

File diff suppressed because it is too large Load Diff

709
po/ms.po
View File

@@ -1,709 +0,0 @@
# Bison Bahasa Melayu (Malay) (ms).
# Copyright (C) 2003 Free Software Foundation, Inc.
# This file is distributed under the same license as the Bison package.
# Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>, 2003.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-01-26 22:43GMT+8\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: KBabel 0.9.5\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Ralat sistem tidak diketahui"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "amaran: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "ralat maut: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Konflik antara hukum %d dan token %s diselesaikan sebagai pindahan"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr ""
" Konflik antara hukum %d dan token %s diselesaikan sebagai pengurangan"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " Konflik antara hukum %d dan token %s diselesaikan sebagai ralat"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "konflik: %d pemindahan/pengurangan, %d pengurangan/pengurangan\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "konflik: %d pemindahan/pengurangan\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "konflik: %d pengurangan/pengurangan\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "Keadaan %d "
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "jangkaan %d konflik pemindahan/pengurangan"
msgstr[1] "jangkaan %d konflik pemindahan/pengurangan"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "jangkaan 0 konflik pengurangan/pengurangan"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "tidak dapat membuka fail `%s'"
#: src/files.c:115
msgid "I/O error"
msgstr "Ralat I/O"
#: src/files.c:118
msgid "cannot close file"
msgstr "tidak dapat menutup fail"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "keluaran berkonflik kepada fail %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Cuba `%s --help' untuk lebih maklumat.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison menjanakan penghurai untuk tatabahasa LALR(1).\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
#: src/getargs.c:200
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 ""
"Jika satu pilihan panjang menunjukkan satu hujah sebagai mandatori, oleh itu "
"ia\n"
"mandatori untuk pilihan pendek sepadan juga. Serupa juga dengan hujah tidak "
"wajib.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Mod operasi:\n"
" -h, --help papar bantuan ini dan keluar\n"
" -V, --version keluarkan maklumat versi dan keluar\n"
" -y, --yacc tiru POSIX yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Parser:\n"
" -S, --skeleton=FAIL nyatakan rangka untuk digunakan\n"
" -t, --debug peralatan parser untuk nyahpepijat\n"
" --locations hidupkan pengiraan lokasi\n"
" -p, --name-prefix=AWALAN tambah AWALAN kepada simbol luaran\n"
" -l, --no-lines jangan jana arahan `#line'\n"
" -n, --no-parser jana jadual sahaja\n"
" -k, --token-table sertakan jadual nama token\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Keluaran:\n"
" -d, --defines juga hasilkan fail header\n"
" -r, --report=PERKARA juga hasilkan butir terperinci bagi automaton\n"
" -v, --verbose sama seperti `--report=state'\n"
" -b, --file-prefix=AWALAN nyatakan AWALAN untuk fail keluaran\n"
" -o, --output=FAIL biarkan keluaran kepada FAIL\n"
" -g, --graph juga hasilkan huraian VCG bagi automaton\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"PERKARA adalah senarai perkataan dipisah koma yang boleh termasuk:\n"
" `state' nyatakan keadaan\n"
" `itemset' lengkapkan perkara asas dengan penutupnya\n"
" `lookahead' dengan jelas kaitkan lookahead kepada perkara\n"
" `solved' nyatakan penyelesaian konflik pemindahan/pengurangan\n"
" `all' masukkan semua maklumat diatas\n"
" `none' matikan laporan\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "Lapor pepijat kepada <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Ditulis oleh Robert Corbett dan Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Hakcipta (C) %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Ini adalah perisian bebas; lihat sumber untuk syarat menyalin. TIADA\n"
"jaminan disediakan; tidak juga untuk KEBOLEHDAGANGAN atau KEUPAYAAN UNTUK "
"SESUATU TUJUAN KHUSUS.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "operan hilang selepas `%s'"
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "operan tambahan `%s'"
#: src/gram.c:139
msgid "empty"
msgstr "kosong"
#: src/gram.c:233
msgid "Grammar"
msgstr "Tatabahasa"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "amaran"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "hukum tidak dikurangkan kerana konflik"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX melarang pengisytiharan didalam tatabahasa"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "pengecam hilang dalam parameter pengisytiharan"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " jenis %d adalah %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "pindah, dan pergi ke keadaan %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "pergi ke keadaan %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "ralat (tidak bergabung)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "kurang menggunakan hukum %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "terima"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$default"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "keadaan %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Terminal, dengan hukum dimana mereka kelihatan"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Tidak terminal, dengan hukum dimana mereka kelihatan"
#: src/print.c:512
msgid " on left:"
msgstr " pada kiri:"
#: src/print.c:527
msgid " on right:"
msgstr " pada kanan:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Hukum tidak dikurangkan"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "pelbagai pengisytiharan %s"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr "jenis hasil bertelingkah pada fungsi gabung %s: <%s> != <%s>"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "hukum diberi untuk %s, dimana ia adalah token"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "pertelingkahan jenis pada tindakan default: <%s> != <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "hukum kosong untuk bukan terminal ditaip, dan tiada tindakan"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "hanya satu %s dibenarkan setiap hukum"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s hanya berkesan kepada parser GLR"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s mesti diikuti dengan nombor positif"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "tiada hukum dalam masukan tatabahasa"
#: src/reduce.c:242
msgid "useless rule"
msgstr "hukum tidak berguna"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "bukan terminal tidak berguna: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Bukan terminal tidak berguna"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Terminal yang tidak digunakan"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Hukum tidak berguna"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d hukum tidak dikurangkan\n"
msgstr[1] "%d hukum tidak dikurangkan\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d bukan terminal tidak berguna"
msgstr[1] "%d bukan terminal tidak berguna"
#: src/reduce.c:403
msgid " and "
msgstr " dan "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d hukum tidak berguna"
msgstr[1] "%d hukum tidak berguna"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "simbol permulaan %s tidak menghasilkan sebarang perkataan"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "`,' sesat dianggap sebagai ruang"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "arahan tidak sah: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "integer diluar julat: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "aksara tidak sah: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "turutan escape tidak sah: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "turutan escape tidak dikenali: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "`(' hilang dalam `%s'"
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ dari `%s' tiada jenis diisytiharkan"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d dari `%s' tiada jenis diisytiharkan"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "nilai tidak sah: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "`%s' hilang pada penghujung fail"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "nilai $ tidak sah"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "pengisytiharan semula jenis untuk %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "%s pengisytiharan semula untuk %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "mentakrif semula keutamaan %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "simbol %s ditakrif semula"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "mentakrif semula nombor token pengguna %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai "
"hukum"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "simbol `%s' digunakan lebih dari sekali sebagai rentetan perkataan"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "simbol `%s' diberikan lebih daripada satu rentetan perkataan"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "konflik keutamaan untuk %s dan %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "konflik kaitan bagi %s (%s) dan %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "token %s dan %s kedua-dunya diberi nombor %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "simbol permulaan %s tidak ditakrifkan"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "simbol permulaan %s adalah token"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "hujah tidak sah %s untuk %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "hujah kabur %s untuk %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Hujah yang sah adalah:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitset_allocs, %u dibebaskan (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitset_sets, %u disimpan (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitset_resets, %u disimpan (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitset_tests, %u disimpan (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitset_lists\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "kira histogram log\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "saiz histogram log\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "histogram kepadatan\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Statistik bitset:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Pelaksanaan terkumpul = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Tidak dapat membaca fail stats."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Saiz fail stats tidak betul.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Tidak dapat menulis fail stats."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Tidak dapat membuka fail stats untuk menulis."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: pilihan `%s' adalah kabur\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: pilihan `--%s' tidak mengizinkan hujah\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: pilihan `%c%s' tidak mengizinkan hujah\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: pilihan `%s' memerlukan hujah\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: pilihan tidak dikenali `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: pilihan tidak dikenali '%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: pilihan salah -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: pilihan tidak sah -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: pilihan memerlukan hujah -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: pilihan `-W %s' adalah kabur\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: pilihan `-W %s' tidak mengizinkan hujah\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "kehabisan memori"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "program subsidiari `%s' tidak dapat dilaksanakan"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "program subsidiari `%s' tidak dijumpai"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "program subsidiari `%s' gagal"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "program subsidiari `%s' gagal (status keluar %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Masa pelaksanaan (saat)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " JUMLAH :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "masa dalam %s: %ld.%06ld (%ld%%)\n"

720
po/nl.po
View File

@@ -1,720 +0,0 @@
# Dutch messages for GNU bison.
# Copyright (C) 1996, 2002, 2003 Free Software Foundation, Inc.
# Tim Van Holder <tim.van.holder@pandora.be>, 2002, 2003.
# Erick Branderhorst <branderh@debian.org>, 1996.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875a\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-02-02 02:19+0100\n"
"Last-Translator: Tim Van Holder <tim.van.holder@pandora.be>\n"
"Language-Team: Dutch <vertaling@nl.linux.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Onbekende systeemfout"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "let op: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "fatale fout: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Conflict tussen regel %d en token %s opgelost als shift"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " Conflict tussen regel %d en token %s opgelost als reductie"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " Conflict tussen regel %d en token %s opgelost als een fout"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "conflicten: %d shift/reductie, %d reductie/reductie\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "conflicten: %d shift/reductie\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "conflicten: %d reductie/reductie\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "Staat %d"
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "%d shift/reductie conflict werd verwacht"
msgstr[1] "%d shift/reductie conflicten werden verwacht"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "er werden geen reductie/reductie conflicten verwacht"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "kan bestand `%s' niet openen"
#: src/files.c:115
msgid "I/O error"
msgstr "I/O fout"
#: src/files.c:118
msgid "cannot close file"
msgstr "kan bestand niet sluiten"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "conflicterende uitvoer naar bestand %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Probeer `%s --help' voor meer informatie.\n"
# Dank U, Akim :-)
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genereert parsers voor LALR(1) grammatica's.\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Gebruik: %s [OPTIE]... BESTAND\n"
#: src/getargs.c:200
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 ""
"Wanneer een lange optie een argument als verplicht aanduidt, dan is dat\n"
"argument eveneens verplicht bij de overeenkomstige korte optie. Voor\n"
"optionele argumenten geldt dezelfde regel.\n"
# Misschien beter 'een POSIX-compatibele yacc'?
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Werkwijzes:\n"
" -h, --help toon deze hulptekst en beëindig het programma\n"
" -V, --version toon versie-informatie en beëindig het programma\n"
" -y, --yacc emuleer POSIX yacc\n"
# Correcte vervoeging van 'voorvoegen'?
# Betere vertaling voor 'directives'?
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Parser:\n"
" -S, --skeleton=BESTAND geef het te gebruiken skeletbestand op\n"
" -t, --debug maak de parser geschikt voor debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX geef een PREFIX op voor de externe symbolen\n"
" -l, --no-lines genereer geen `#line' directieven\n"
" -n, --no-parser genereer alleen de tabellen\n"
" -k, --token-table genereer ook een tabel van tokennamen\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Uitvoer:\n"
" -d, --defines genereer ook een header-bestand\n"
" -r, --report=DINGEN genereer ook details over de automaat\n"
" -v, --verbose hetzelfde als `--report=state'\n"
" -b, --file-prefix=PREFIX geef een PREFIX op voor de uitvoerbestanden\n"
" -o, --output=BESTAND schrijf uitvoer naar BESTAND\n"
" -g, --graph genereer ook een VCG beschrijving van de "
"automaat\n"
# Verschillende dingen die beter zouden moeten kunnen - zeker de 'itemset' tekst
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"DINGEN is een door komma's gescheiden lijst van woorden; geldige woorden "
"zijn:\n"
" `state' beschijft de staten van de automaat\n"
" `itemset' vervolledig de verzamelingen van core items met hun "
"closures\n"
" `lookahead' verbind lookaheads expliciet met items\n"
" `solved' beschijft het oplossen van shift/reductie conflicten\n"
" `all' bevat al de bovenstaande keuzes\n"
" `none' schakel de rapportering uit\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
"Meld bugs aan <bug-bison@gnu.org>.\n"
"Meld fouten in de vertaling aan <vertaling@nl.linux.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Geschreven door Robert Corbett en Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Dit is vrije software; zie de broncode voor kopieercondities. Er is GEEN\n"
"garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD\n"
"DOEL.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "operand ontbreekt na `%s'"
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "overtollige operand `%s'"
#: src/gram.c:139
msgid "empty"
msgstr "leeg"
#: src/gram.c:233
msgid "Grammar"
msgstr "Grammatica"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "let op"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "regel wordt nooit gereduceerd omwille van conflicten"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX verbiedt declaraties binnen de grammatica"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "naam ontbreekt in parameterdeclaratie"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " type %d is %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "shift, en ga naar staat %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "ga naar staat %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "fout (niet associatief)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "reduceren via regel %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "accepteer"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$standaard"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "staat %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Eindsymbolen, met de regels waarin ze voorkomen"
# Betere vertaling voor non-terminals? 'tussensymbolen'?
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Niet-eindsymbolen, met de regels waarin ze voorkomen"
#: src/print.c:512
msgid " on left:"
msgstr " links:"
#: src/print.c:527
msgid " on right:"
msgstr " rechts:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Regels die nooit gereduceerd worden"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "meerdere %s declaraties"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr "botsing tussen resultaattypes bij merge-functie %s: «%s» != «%s»"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regel opgegeven voor token (%s)"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "type-conflict bij standaardaktie: «%s» != «%s»"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "lege regel voor niet-eindsymbool met type, en geen actie"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "slechts één %s toegestaan per regel"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s is enkel van toepassing op GLR parsers"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s moet gevolgd worden door een positief getal"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "invoergrammatica bevat geen regels"
#: src/reduce.c:242
msgid "useless rule"
msgstr "nutteloze regel"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "nutteloos niet-eindsymbool: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Nutteloze niet-eindsymbolen"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Eindsymbolen die niet gebruikt worden"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Nutteloze regels"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d regel wordt nooit gereduceerd\n"
msgstr[1] "%d regels worden nooit gereduceerd\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d nutteloos niet-eindsymbool"
msgstr[1] "%d nutteloze niet-eindsymbolen"
#: src/reduce.c:403
msgid " and "
msgstr " en "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d nutteloze regel"
msgstr[1] "%d nutteloze regels"
# Ik _denk_ dat dit correct weergeeft wat er bedoeld wordt (m.a.w. er is geen regel voor het startsymbool)
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "uit startsymbool %s kan geen enkele zin afgeleid worden"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "losse `,' behandeld als witruimte"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "ongeldig commando: %s"
# Hier zou wel het bereik bij vermeld mogen worden...
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "integer buiten bereik: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "ongeldig teken: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "ongeldige escape: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "onbekende escape: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "`{' ontbreekt in `%s'"
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ van `%s' heeft geen gedeclareerd type"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d van `%s' heeft geen gedeclareerd type"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "ongeldige waarde: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "`%s' ontbreekt aan einde van bestand"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "ongeldige $-waarde"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "type herdeclaratie voor %s"
# Dit ziet er een potentieel slechte originele string uit - wat kan er in die eerste '%s' staan?
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "%s herdeclaratie voor %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "herdefinitie van de voorrang van %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "symbool %s opnieuw gedefinieerd"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "herdefinitie van het door de gebruiker gekozen tokennummer van %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"symbool %s wordt gebruikt, maar is niet gedefinieerd als een teken en heeft "
"geen regels"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "symbool `%s' meer dan eens gebruikt als een letterlijke string"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "symbool `%s' krijgt meer dan één letterlijke string toegewezen"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "voorrangen voor %s en %s geven conflicten"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "associativiteitswaarden voor %s (%s) en %s (%s) geven conflicten"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "tokens %s en %s hebben beide nummer %d toegewezen gekregen"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "het startsymbool %s is niet gedefinieerd"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "het startsymbool %s is een token"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "ongeldige argument %s voor %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "argument %s voor %s is niet eenduidig"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Geldige argumenten zijn:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitset_allocs, %u vrijgegeven (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitset_sets, %u gecached (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitset_resets, %u gecached (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitset_tests, %u gecached (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitset_lists\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "count log histogram\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "size log histogram\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "density histogram\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Bitset statistieken:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Accumulated runs = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Kon het statistiekenbestand niet lezen."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Het statistiekenbestand heeft een verkeerde grootte.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Kon niet schrijven naar het statistiekenbestand."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Kon het statistiekenbestand niet openen voor schrijven."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: optie `%s' is niet eenduidig\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: optie `--%s' staat geen argument toe\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: optie `%c%s' staat geen argument toe\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: optie `%s' vereist een argument\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: onbekende optie `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: onbekende optie `%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ongeldige optie -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ongeldige optie -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: optie vereist een argument -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: optie `-W %s' is niet eenduidig\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: optie `--%s' staat geen argument toe\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "geen geheugen meer beschikbaar"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "hulpprogramma `%s' kon niet opgeroepen worden"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "hulpprogramma `%s' niet gevonden"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "hulpprogramma `%s' mislukt"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "hulpprogramma `%s' mislukt (eindstatus %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Uitvoeringstijden (in seconden)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " TOTAAL :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "tijd in %s: %ld.%06ld (%ld%%)\n"

View File

@@ -1,706 +0,0 @@
# bison: translation to Brazilian Portuguese (pt_BR)
# Copyright (C) 2002 Free Software Foundation, Inc.
# Alexandre Folle de Menezes <afmenez@terra.com.br>, 2002, 2003.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-01-06 02:30-0300\n"
"Last-Translator: Alexandre Folle de Menezes <afmenez@terra.com.br>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Erro de sistema desconhecido"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "aviso: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "erro fatal: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Conflito entre a regra %d e a token %s resolvido como `shift`."
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " Conflito entre a regra %d e a token %s resolvido como `reduce`."
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " Conflito entre a regra %d e a token %s resolvido como um erro."
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "conflitos: %d de deslocamento/redução, %d de redução/redução\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "conflitos: %d de deslocamento/redução\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "conflitos: %d de redução/redução\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "Estado %d"
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "esperado: %d conflito de deslocamento/redução"
msgstr[1] "esperados: %d conflitos de deslocamento/redução"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "esperados 0 conflitos de redução/redução"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "impossível abrir o arquivo `%s'"
#: src/files.c:115
msgid "I/O error"
msgstr "Erro de E/S"
#: src/files.c:118
msgid "cannot close file"
msgstr "impossível fechar o arquivo"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "saídas conflitantes para o arquivo %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "tente `%s --help' para mais informações.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison gera analisadores para gramáticas LALR(1).\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Uso: %s [OPCAO]... ARQUIVO\n"
#: src/getargs.c:200
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 ""
"Se uma opção longa mostra um argumento como obrigatório, então ele é\n"
"obrigatório para a opção curta equivalente também. Igualmente para os\n"
"argumentos opcionais.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Modos de operação:\n"
" -h, --help exibe esta ajuda e sai\n"
" -V, --version mostra informações de versão e sai\n"
" -y, --yacc emula o yacc POSIX\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Analizador:\n"
" -S, --skeleton=arquivo especifica o skeleto a ser usado\n"
" -t, --debug instrumenta o analisador para depuração\n"
" --locations habilita a computação de localizações\n"
" -p, --name-prefix=PREFIXO adiciona PREFIXO aos símbolos externos\n"
" -l, --no-lines não gera diretivas `#line'\n"
" -n, --no-parser apenas gera as tabelas\n"
" --k, --token-table inclui uma tabela de nomes de tokens\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Saída:\n"
" -d, --defines também produz um arquivo de cabeçalho\n"
" -r, --report=ITENS também produz detalhes do autômato\n"
" -v, --verbose o mesmo que `--report=state'\n"
" -b, --file-prefix=PREFIXO especifica o PREFIXO para os arquivos de saída\n"
" -o, --output=ARQUIVO armazena a saída em ARQUIVO\n"
" -g, --graph também produz uma descrição em VCG do autômato\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"ITENS é uma lista separada por vírgulas, que pode incluir:\n"
" `state' descreve os estados\n"
" `itemset' completa os conjuntos de ítens básicos com seus "
"fechamentos\n"
" `lookahead' associa explicitamente as previsões com os ítens\n"
" `solved' descreve a solução de conflitos de deslocamento/redução\n"
" `all' inclui todas as informações acima\n"
" `none' desabilita o relatório\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "Informe os erros para <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Escrito por Robert Corbett e Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright © %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Este é um software livre; veja o código fonte para condições de copyright. "
"Não\n"
"existe NENHUMA garantia; nem mesmo a garantia implícita de COMERCIABILIDADE "
"ou\n"
"ADEQUAÇÃO À QUALQUER FINALIDADE PARTICULAR.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "falta operando depois de `%s'"
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "operando `%s' sobrando"
#: src/gram.c:139
msgid "empty"
msgstr "vazio"
#: src/gram.c:233
msgid "Grammar"
msgstr "Gramática"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "aviso"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "regra não reduzida por causa de conflitos"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "o POSIX proíbe declarações na gramática"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "identificador faltando na declaração do parâmetro"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " tipo %d é %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "deslocar, e ir ao estado %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "ir ao estado %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "erro (não associativo)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "reduzir usando a regra %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "aceitar"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$padrão"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "estado %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Terminais, com as regras onde eles aparecem"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Não-terminais com as regras onde eles aparecem"
#: src/print.c:512
msgid " on left:"
msgstr " à esquerda:"
#: src/print.c:527
msgid " on right:"
msgstr " à direita:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Regras nunca reduzidas"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "declarações de %s múltiplas"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr "tipo de resultado conflita na fução de mescla %s: <%s> != <%s>"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regra fornecida para %s, que é um token"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "conflito de tipos na ação padrão: <%s> != <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "regra vazia para um não-terminal com tipo, e não há ações"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "apenas um %s é permitido por regra"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s afeta apenas analisadores GLR"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s deve ser seguido por um número positivo"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "não há regras na gramática de entrada"
#: src/reduce.c:242
msgid "useless rule"
msgstr "regra inútil"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "não-terminal inútil: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Não-terminais inúteis"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Terminais que não foram usados"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Regras inúteis"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d regra que nunca foi reduzida\n"
msgstr[1] "%d regras que nunca foram reduzidas\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d não-terminal inútil"
msgstr[1] "%d não-terminal inútil"
#: src/reduce.c:403
msgid " and "
msgstr " e "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d regra inútil"
msgstr[1] "%d regras inúteis"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "símbolo de início %s não deriva nenhuma sentença"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "`,' perdida tratada como branco"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "diretiva inválida: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "inteiro fora de faixa: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "caractere inválido: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "seqüência de escape inválida: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "seqüência de escape não reconhecida: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "falta `{' em `%s'"
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ de `%s' não tem tipo declarado"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d de `%s' não tem tipo declarado"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "valor inválido: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "`%s' faltando no final do arquivo"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "valor $ inválido"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "redeclaração de tipo para %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "redeclaração de %s para %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "redefinindo precedência de %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "símbolo %s redefinido"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "redefinindo número de token de usuário de %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "símbolo %s usado, mas não definido como uma token e não tem regras"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "símbolo `%s' usado mais the uma vez como uma string literal"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "símbolo `%s' associado a mais de uma string literal"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedências conflitantes para %s e %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "valores associativos conflitantes para %s (%s) e %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "tokens %s e %s associadas ao mesmo número %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "o símbolo de início %s não está definido"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "o símbolo de início %s é um terminal"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "argumento %s inválido para %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "argumento %s ambíguo para %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Argumentos válidos são:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitset_allocs, %u liberados (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitset_sets, %u em cache (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitset_resets, %u em cache (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitset_tests, %u em cache (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitset_lists\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "histograma de log de contagens\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "histograma de log de tamanhos\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "histograma de densidades\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Estatísticas de bitset:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Execuções acumuladas = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Impossível ler o arquivo de estatísticas."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Tamanho do arquivo de estatísticas com erro.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Impossível de escrever no arquivo de estatísticas."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Impossível abrir arquivo de estatísticas para escrita."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: a opção `%s' é ambígua\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: a opção `--%s' no admite nenhum argumento\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: a opção `%c%s' não admite nenhum argumento\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: a opção `%s' exige um argumento\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: opção `--%s' não reconhecida\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: opção `%c%s' não reconhecida\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opção -- %c ilegal\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: opção -- %c inválida\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: a opção -- %c exige um argumento\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: a opção `-W %s' é ambígua\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: a opção `-W %s' não admite nenhum argumento\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "memória esgotada"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "programa subsidiário `%s' não pôde ser invocado"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "programa subsidiário `%s' não foi encontrado"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "programa subsidiário `%s' falhou"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "programa subsidiário `%s' falhou (estado de saída %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Tempos de execução (segundos)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " TOTAL :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "tempo em %s: %ld.%06ld (%ld%%)\n"

713
po/ro.po
View File

@@ -1,713 +0,0 @@
# Mesajele în limba românã pentru GNU Bison.
# Copyright (C) 2003 Free Software Foundation, Inc.
# Acest fiºier este distribuit sub aceeaºi licenþã ca ºi pachetul bison.
# Laurentiu Buzdugan <buzdugan@voyager.net>, 2003.
#
#
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875a\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-03-01 21:43-0500\n"
"Last-Translator: Laurentiu Buzdugan <buzdugan@voyager.net>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Eroare de sistem necunoscutã"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "avertisment:"
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "eroare fatalã:"
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Conflict între regula %d ºi elementul (token) %s rezolvat ca shift"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr ""
" Conflict între regula %d ºi elementul (token) %s rezolvat ca reduce"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr ""
" Conflict între regula %d ºi elementul (token) %s rezolvat ca eroare"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "conflicte: %d shift/reduce, %d reduce/reduce\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "conflicte: %d shift/reduce\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "conflicte: %d reduce/reduce\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "Stare %d"
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "am aºteptat %d conflict shift/reduce"
msgstr[1] "am aºteptat %d conflicte shift/reduce"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "am aºteptat 0 conflicte reduce/reduce"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "nu am putut deschide fiºierul `%s'"
#: src/files.c:115
msgid "I/O error"
msgstr "Eroare I/O"
#: src/files.c:118
msgid "cannot close file"
msgstr "nu pot închide fiºierul"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "ieºiri în conflict în fiºierul %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Încercaþi `%s --help' pentru informaþii suplimentare.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genereazã parsere pentru gramatici LALR(1).\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Folosire: %s [OPÞIUNE]... FIªIER\n"
#: src/getargs.c:200
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 ""
"Dacã o opþiune lungã aratã un argument ca necesar, atunci el este necesar\n"
"ºi pentru opþiunea scurtã echivalentã. Similar pentru argumentele "
"opþionale.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Moduri de operare:\n"
" -h, --help afiºeazã acest mesaj ºi terminã\n"
" -V, --version afiºeazã informaþii despre versiune ºi terminã\n"
" -y, --yacc emuleazã POSIX yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Parser:\n"
" -S, --skeleton=FIªIER specificã scheletul de folosit\n"
" -t, --debug instrumenteazã parserul pentru depanare\n"
" --locations activeazã calculul locaþiilor\n"
" -p, --name-prefix=PREFIX pune prefix PREFIX la simbolurile externe\n"
" -l, --no-lines nu genera directive `#line'\n"
" -n, --no-parser genereazã numai tabelele\n"
" -k, --token-table include un tabel cu nume de elemente\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Ieºire:\n"
" -d, --defines creazã ºi un fiºier header\n"
" -r, --report=LUCRURI creazã ºi detalii despre automaton\n"
" -v, --verbose la fel ca `--report=state'\n"
" -b, --file-prefix=PREFIX specificã un PREFIX pentru fiºierele ieºire\n"
" -o, --output=FIªIER creazã ieºire în FIªIER\n"
" -g, --graph creazã ºi o descriere VCG a automaton-ului\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"LUCRURI este o listã de cuvinte separate de virgulã ce pot fi:\n"
" `state' descrie stãrile\n"
" `itemset' completeazã seturile de elemente nucleu cu închiderea lor\n"
" `lookahead' asociazã explicit lookaheads la elemente\n"
" `solved' descrie rezolvarea conflictelor shift/reduce\n"
" `all' include toatã informaþia de deasupra\n"
" `none' deactiveazã raportarea\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "Raportaþi bug-uri la <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Scris de Robert Corbett ºi Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Acesta este software liber; vedeþi codul sursã pentru condiþii despre "
"copiere.\n"
"Nu existã nici o garanþie; nici chiar pentru COMERCIALIZARE sau de "
"POTRIVIRE\n"
"PENTRU UN SCOP ANUME.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "operator lipsã dupã `%s'"
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "extra operator `%s'"
#: src/gram.c:139
msgid "empty"
msgstr "goleºte"
#: src/gram.c:233
msgid "Grammar"
msgstr "Gramaticã"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "avertisment"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "regula nu este redusã niciodatã din cauza conflictelor"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX interzice declaraþii în gramaticã"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "identificator lipsã în declaraþia parametrului"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " tipul %d este %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "shift, ºi mergi în starea %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "mergi în starea %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "eroare (ne-asociativitate)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "reduce folosind regula %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "accept"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$implicit"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "stare %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Terminale, cu reguli acolo unde acestea apar"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Non-terminale, cu reguli acolo unde acestea apar"
#: src/print.c:512
msgid " on left:"
msgstr " pe stânga:"
#: src/print.c:527
msgid " on right:"
msgstr " pe dreapta:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Regulile nu au fost reduse"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "declaraþii %s multiple"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr ""
"tipul rezultatului în conflict cu funcþia de combinare %s: <%s> != <%s>"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regula datã pentru %s, care este un element (token)"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "conflict de tip pentru acþiunea implicitã: <%s> != <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "regulã vidã pentru nonterminal cu tip, ºi nici o acþiune"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "un singur %s permis pe fiecare regulã"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s afecteazã numai parsere GLR"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s trebuie sã fie urmat de numere pozitive"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "nici o regulã în gramatica furnizatã"
#: src/reduce.c:242
msgid "useless rule"
msgstr "regulã fãrã rost"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "nonterminal fãrã rost: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Nonterminale fãrã rost"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Terminale care nu sunt folosite"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Reguli fãrã rost"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d regulã niciodatã redusã\n"
msgstr[1] "%d reguli niciodatã reduse\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d nonterminal fãrã rost"
msgstr[1] "%d nonterminale fãrã rost"
#: src/reduce.c:403
msgid " and "
msgstr " ºi "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d regulã fãrã rost"
msgstr[1] "%d reguli fãrã rost"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "simbol de start %s nu deriveazã nici o propoziþie"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "Virgulã `,' rãtãcitã tratatã ca spaþiu gol"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "directivã invalidã: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "întreg în afara domeniului: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "caracter invalid: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "secvenþã escape invalidã: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "secvenþã escape nerecunoscutã: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "`{' lipsã în `%s'"
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ a lui `%s' nu are nici un tip declarat"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d a lui `%s' nu are nici un tip declarat"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "valoare invalidã: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "`%s' lipsã la sfârºitul fiºierului"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "valoare $ invalidã"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "redeclarare de tip pentru %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "redeclarare %s pentru %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "precedenþã redefinitã pentru %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "simbol %s redefinit"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "numãrul elementului (token) definit de utilizator redefinit pentru %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"simbolul %s e folosit, dar nu este definit ca element (token) ºi nu are nici "
"o regulã"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "simbolul `%s' este folosit de mai multe ori ca ºir literar"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "simbolului `%s' îi este dat mai mult de un singur ºir literar"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedenþe în conflict pentru %s ºi %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "asoaciativitãþi în conflict pentru %s (%s) ºi %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "ambelor elementele (tokens) %s ºi %s le sunt alocate acelaºi numãr %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "simbolul de start %s nu este definit"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "simbolul de start %s este un element (token)"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "argument invalid %s pentru %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "argument ambiguu %s pentru %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Argumente valide sunt:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitset_allocs, %u eliberate (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitset_sets, %u stocate (cached) (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitset_resets, %u stocate (cached) (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitset_tests, %u stocate (cached) (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitset_lists\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "numãrã histograma jurnal\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "dimensiune histogramã jurnal\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "densitate histogramã\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Statistici bitset:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Rulãri acumulate = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Nu am putut citi fiºierul de statistici."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Dimensiune fiºier cu statistici incorectã.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Nu am putut scrie fiºier statistici."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Nu am putut deschide fiºierul de statistici pentru scriere."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: opþiunea `%s' este ambiguã\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: opþiunea `--%s' nu permite un argument\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: opþiunea `%c%s' nu permite un argument\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: opþiunea `%s' necesitã un argument\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: opþiune nerecunoscutã `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: opþiune nerecunoscutã `%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opþiune ilegalã -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: opþiune ilegalã -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: opþiunea necesitã un argument -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: opþiunea `-W %s' este ambiguã\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: opþiunea `-W %s' nu permite un argument\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "memorie epuizatã"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "programul auxiliar `%s' nu poate fi invocat"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "programul auxiliar `%s' nu a fost gãsit"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "programul auxiliar `%s' a eºuat"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "programul auxiliar `%s' a eºuat (stare de terminare %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Timp de execuþie (secunde)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " TOTAL :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "timp în %s: %ld.%06ld (%ld%%)\n"

958
po/ru.po
View File

@@ -1,958 +0,0 @@
# ðÅÒÅ×ÏÄ ÓÏÏÂÝÅÎÉÊ bison.
# Copyright (C) 1999 Free Software Foundation, Inc.
# Dmitry S. Sivachenko <dima@Chg.RU>, 1999,2000,2001,2002.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-01-01 20:35+0300\n"
"Last-Translator: Dmitry S. Sivachenko <mitya@cavia.pp.ru>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "ÆÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " ëÏÎÆÌÉËÔ ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ÓÄ×ÉÇÏÍ"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " ëÏÎÆÌÉËÔ ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ×Ù×ÏÄÏÍ"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " ëÏÎÆÌÉËÔ ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ËÁË ÏÛÉÂËÁ"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "ËÏÎÆÌÉËÔÙ: %d ÓÄ×ÉÇÁ/×Ù×ÏÄÁ, %d ×Ù×ÏÄÁ/×Ù×ÏÄÁ\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "ËÏÎÆÌÉËÔÙ: %d ÓÄ×ÉÇÁ/×Ù×ÏÄÁ\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "ËÏÎÆÌÉËÔÙ: %d ×Ù×ÏÄÁ/×Ù×ÏÄÁ\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "óÏÓÔÏÑÎÉÅ %d "
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "ÏÖÉÄÁÌÓÑ %d ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
msgstr[1] "ÏÖÉÄÁÌÏÓØ %d ËÏÎÆÌÉËÔÁ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
msgstr[2] "ÏÖÉÄÁÌÏÓØ %d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "ÏÖÉÄÁÌÏÓØ 0 ËÏÎÆÌÉËÔÏ× ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ `%s'"
#: src/files.c:115
msgid "I/O error"
msgstr "ÏÛÉÂËÁ ××ÏÄÁ-×Ù×ÏÄÁ"
#: src/files.c:118
msgid "cannot close file"
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÚÁËÒÙÔØ ÆÁÊÌ"
#: src/files.c:336
#, fuzzy, c-format
msgid "conflicting outputs to file %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "éÓÐÏÌØÚÕÊÔÅ `%s --help' ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison ÇÅÎÅÒÉÒÕÅÔ ÁÎÁÌÉÚÁÔÏÒÙ ÄÌÑ ÇÒÁÍÍÁÔÉË LALR(1).\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþé]... æáêì\n"
#: src/getargs.c:200
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"
"ÁÒÇÕÍÅÎÔÏ×.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"òÅÖÉÍÙ ÆÕÎËÃÉÏÎÉÒÏ×ÁÎÉÑ:\n"
" -h, --help ×Ù×ÅÓÔÉ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ\n"
" -V, --version ×Ù×ÅÓÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
" -y, --yacc ÜÍÕÌÉÒÏ×ÁÔØ POSIX yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"áÎÁÌÉÚÁÔÏÒ:\n"
" -S, --skeleton=æáêì ÕËÁÚÁÔØ ÆÁÊÌ ÛÁÂÌÏÎÁ\n"
" -t, --debug ÎÁÓÔÒÏÉÔØ ÁÎÁÌÉÚÁÔÏÒ ÄÌÑ ÏÔÌÁÄËÉ\n"
" --locations ×ËÌÀÞÉÔØ ×ÙÞÉÓÌÅÎÉÅ ÍÅÓÔÏÐÏÌÏÖÅÎÉÊ\n"
" -p, --name-prefix=ðòåæéëó ÐÏÄÓÔÁ×ÉÔØ ðòåæéëó ÄÌÑ ×ÎÅÛÎÉÈ ÓÉÍ×ÏÌÏ×\n"
" -l, --no-lines ÎÅ ÇÅÎÅÒÉÒÏ×ÁÔØ ÄÉÒÅËÔÉ×Ù `#line'\n"
" -n, --no-parser ÇÅÎÅÒÉÒÏ×ÁÔØ ÔÏÌØËÏ ÔÁÂÌÉÃÙ\n"
" -k, --token-table ×ËÌÀÞÉÔØ ÔÁÂÌÉÃÕ ÉÍÅÎ ÌÅËÓÅÍ\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"÷Ù×ÏÄ:\n"
" -d, --defines ÓÏÚÄÁÔØ ÔÁËÖÅ ÆÁÊÌ ÚÁÇÏÌÏ×ËÏ×\n"
" -r, --report=THINGS ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ × Á×ÔÏÍÁÔÕ\n"
" -v, --verbose ÔÏ ÖÅ, ÞÔÏ É `--report=state'\n"
" -b, --file-prefix=ðòåæéëó ÕËÁÚÁÔØ ðòåæéëó ÄÌÑ ×ÙÈÏÄÎÙÈ ÆÁÊÌÏ×\n"
" -o, --output=æáêì ÐÏÍÅÓÔÉÔØ ÒÅÚÕÌØÔÁÔ × æáêì\n"
" -g, --graph ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ Ë Á×ÔÏÍÁÔÕ × ×ÉÄÅ \n"
" VCG-ÇÒÁÆÁ\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr "ïÛÉÂËÉ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ <bug-bison@gnu.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "á×ÔÏÒÙ: òÏÂÅÒÔ ëÏÒÂÅÔ É òÉÞÁÒÄ óÔÏÌÍÅÎ.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright (C) %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"üÔÏ Ó×ÏÂÏÄÎÁÑ ÐÒÏÇÒÁÍÍÁ; ÕÓÌÏ×ÉÑ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÓÍÏÔÒÉÔÅ × ÉÓÈÏÄÎÙÈ "
"ÔÅËÓÔÁÈ.\n"
"îéëáëéè ÇÁÒÁÎÔÉÊ ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔÓÑ, ÄÁÖÅ ÇÁÒÁÎÔÉÉ ðïìåúîïóôé ÉÌÉ "
"ðòéçïäîïóôé\n"
"äìñ ïðòåäåìåîîïê ãåìé.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "ÐÏÓÌÅ `%s' ÐÒÏÐÕÝÅÎ ÏÐÅÒÁÎÄ"
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "ÌÉÛÎÉÊ ÏÐÅÒÁÎÄ `%s'"
#: src/gram.c:139
msgid "empty"
msgstr "ÐÕÓÔÏ"
#: src/gram.c:233
msgid "Grammar"
msgstr "çÒÁÍÍÁÔÉËÁ"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "ÐÒÁ×ÉÌÏ ÎÅ Ó×ÅÄÅÎÏ ÉÚ-ÚÁ ËÏÎÆÌÉËÔÏ×"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX ÚÁÐÒÅÝÁÅÔ ÐÏÍÅÝÁÔØ ÏÐÉÓÁÎÉÑ × ÇÒÁÍÍÁÔÉËÅ"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "× ÏÐÉÓÁÎÉÉ ÐÁÒÁÍÅÔÒÁ ÏÔÓÕÔÓÔ×ÕÅÔ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " ÔÉÐ %d Ñ×ÌÑÅÔÓÑ %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "ÓÄ×ÉÇ, É ÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "ÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "ÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr ""
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$default"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "ÓÏÓÔÏÑÎÉÅ %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "ôÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "îÅÔÅÒÍÉÎÁÌØÎÙÅ ÓÉÍ×ÏÌÙ Ó ÐÒÁ×ÉÌÁÍÉ, × ËÏÔÏÒÙÈ ÏÎÉ ÐÏÑ×ÌÑÀÔÓÑ"
#: src/print.c:512
msgid " on left:"
msgstr " ÎÁÌÅ×Ï:"
#: src/print.c:527
msgid " on right:"
msgstr " ÎÁÐÒÁ×Ï:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "ðÒÁ×ÉÌÁ ÎÅ Ó×ÅÄÅÎÙ"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %s"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr ""
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ: <%s> != <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr ""
"ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr ""
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr ""
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "ÚÁ %s ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÐÏÌÏÖÉÔÅÌØÎÏÅ ÞÉÓÌÏ"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
#: src/reduce.c:242
msgid "useless rule"
msgstr "ÂÅÓÐÏÌÅÚÎÏÅ ÐÒÁ×ÉÌÏ"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "ÂÅÓÐÏÌÅÚÎÙÅ ÎÅÔÅÒÍÉÎÁÌ: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÎÅÔÅÒÍÉÎÁÌÙ"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "îÅÉÓÐÏÌØÚÏ×ÁÎÎÙÅ ÔÅÒÍÉÎÁÌÙ"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "âÅÓÐÏÌÅÚÎÙÅ ÐÒÁ×ÉÌÁ"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d ÐÒÁ×ÉÌÏ ÎÅ Ó×ÅÄÅÎÏ\n"
msgstr[1] "%d ÐÒÁ×ÉÌÁ ÎÅ Ó×ÅÄÅÎÏ\n"
msgstr[2] "%d ÐÒÁ×ÉÌ ÎÅ Ó×ÅÄÅÎÏ\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d ÂÅÓÐÏÌÅÚÎÙÊ ÎÅÔÅÒÍÉÎÁÌ"
msgstr[1] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÎÅÔÅÒÍÉÎÁÌÁ"
msgstr[2] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÎÅÔÅÒÍÉÎÁÌÏ×"
#: src/reduce.c:403
msgid " and "
msgstr " É "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d ÂÅÓÐÏÌÅÚÎÏÅ ÐÒÁ×ÉÌÏ"
msgstr[1] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÐÒÁ×ÉÌÁ"
msgstr[2] "%d ÂÅÓÐÏÌÅÚÎÙÈ ÐÒÁ×ÉÌ"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅ ×Ù×ÏÄÉÔ ÎÉ ÏÄÎÏÇÏ ÐÒÅÄÌÏÖÅÎÉÑ"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "ÌÉÛÎÑÑ `,', ÓÞÉÔÁÅÔÓÑ ÐÒÏÂÅÌÏÍ"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "ÎÅ×ÅÒÎÁÑ ÄÉÒÅËÔÉ×Á: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "×ÙÈÏÄ ÚÁ ÇÒÁÎÉÃÙ ÄÉÁÐÁÚÏÎÁ ÃÅÌÏÇÏ: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÜËÒÁÎÉÒÕÀÝÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÜËÒÁÎÉÒÕÀÝÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "× `%s' ÏÔÓÕÔÓÔ×ÕÅÔ `{'"
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d ÉÚ `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ `%s' × ËÏÎÃÅ ÆÁÊÌÁ"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ %s ÄÌÑ %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÏÒÉÔÅÔÁ ÄÌÑ %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÎÏÍÅÒÁ ÌÅËÓÅÍÙ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr ""
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr ""
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s (%s) É %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "ÎÅÏÄÎÏÚÎÁÞÎÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "äÏÐÕÓÔÉÍÙÅ ÁÒÇÕÍÅÎÔÙ:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr ""
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr ""
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr ""
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr ""
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr ""
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr ""
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "îÅ ÕÄÁÅÔÓÑ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ ÓÔÁÔÉÓÔÉËÉ."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr ""
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "îÅ ÕÄÁÅÔÓÑ ÚÁÐÉÓÁÔØ × ÆÁÊÌ ÓÔÁÔÉÓÔÉËÉ."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "îÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ ÓÔÁÔÉÓÔÉËÉ ÄÌÑ ÚÁÐÉÓÉ."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: ËÌÀÞ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "ÎÅ ÕÄÁÅÔÓÑ ×ÙÐÏÌÎÉÔØ ×ÓÐÏÍÏÇÁÔÅÌØÎÕÀ ÐÒÏÇÒÁÍÍÕ `%s'"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "×ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ `%s' ÎÅ ÎÁÊÄÅÎÁ"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "×ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ `%s' ÚÁ×ÅÒÛÉÌÁÓØ ÎÅÕÄÁÞÎÏ"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr ""
"×ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ `%s' ÚÁ×ÅÒÛÉÌÁÓØ ÎÅÕÄÁÞÎÏ (ËÏÄ ÚÁ×ÅÒÛÅÎÉÑ %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr ""
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr ""
#~ msgid "too many states (max %d)"
#~ msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÏÓÔÏÑÎÉÊ (ÍÁËÓÉÍÁÌØÎÏ %d)"
#~ msgid "reduce"
#~ msgstr "×Ù×ÏÄ"
#~ msgid "shift"
#~ msgstr "ÓÄ×ÉÇ"
#~ msgid "%d shift/reduce conflict"
#~ msgid_plural "%d shift/reduce conflicts"
#~ msgstr[0] "%d ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#~ msgstr[1] "%d ËÏÎÆÌÉËÔÁ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#~ msgstr[2] "%d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#~ msgid "and"
#~ msgstr "É"
#~ msgid "State %d contains "
#~ msgstr "óÏÓÔÏÑÎÉÅ %d ÓÏÄÅÒÖÉÔ "
#~ msgid "conflicts: "
#~ msgstr "ËÏÎÆÌÉËÔÙ: "
#~ msgid "%s contains "
#~ msgstr "%s ÓÏÄÅÒÖÉÔ "
#~ msgid "`%s' is no longer supported"
#~ msgstr "`%s' ÂÏÌØÛÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
#~ msgid "%s: no grammar file given\n"
#~ msgstr "%s: ÎÅ ÚÁÄÁÎ ÆÁÊÌ Ó ÇÒÁÍÍÁÔÉËÏÊ\n"
#~ msgid "%s: extra arguments ignored after `%s'\n"
#~ msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
#~ msgid "too many gotos (max %d)"
#~ msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)"
#~ msgid "unexpected `/' found and ignored"
#~ msgstr "×ÓÔÒÅÞÅÎ É ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ ÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'"
#~ msgid "unterminated comment"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ"
#~ msgid "unexpected end of file"
#~ msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
#~ msgid "unescaped newline in constant"
#~ msgstr "ÎÅÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ËÏÎÓÔÁÎÔÅ"
#~ msgid "octal value outside range 0...255: `\\%o'"
#~ msgstr "×ÏÓØÍÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ 0...255: `\\%o'"
#~ msgid "hexadecimal value above 255: `\\x%x'"
#~ msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÐÒÅ×ÙÛÁÅÔ 255: `\\x%x'"
#~ msgid "unknown escape sequence: `\\' followed by `%s'"
#~ msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `%s' ÐÏÓÌÅ `\\'"
#~ msgid "unterminated type name at end of file"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ × ËÏÎÃÅ ÆÁÊÌÁ"
#~ msgid "unterminated type name"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ"
#~ msgid "use \"...\" for multi-character literal tokens"
#~ msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
#~ msgid "`%s' supports no argument: %s"
#~ msgstr "`%s' ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÁÒÇÕÍÅÎÔÁ %s"
#~ msgid "`%s' requires an argument"
#~ msgstr "ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ"
#~ msgid " (rule %d)"
#~ msgstr " (ÐÒÁ×ÉÌÏ %d)"
#~ msgid " %-4s\terror (nonassociative)\n"
#~ msgstr " %-4s\tÏÛÉÂËÁ (ÎÅÁÓÓÏÃÉÁÔÉ×ÎÁÑ)\n"
#~ msgid ""
#~ " $default\treduce using rule %d (%s)\n"
#~ "\n"
#~ msgstr ""
#~ " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#~ "\n"
#~ msgid " %-4s\t[reduce using rule %d (%s)]\n"
#~ msgstr " %-4s\t[×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)]\n"
#~ msgid " %-4s\treduce using rule %d (%s)\n"
#~ msgstr " %-4s\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#~ msgid " $default\treduce using rule %d (%s)\n"
#~ msgstr " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#~ msgid " $default\taccept\n"
#~ msgstr " $default\tÐÒÉÎÑÔÉÅ\n"
#~ msgid " NO ACTIONS\n"
#~ msgstr " îåô äåêóô÷éê\n"
#~ msgid "Number, Line, Rule"
#~ msgstr "îÏÍÅÒ, óÔÒÏËÁ, ðÒÁ×ÉÌÏ"
#~ msgid " %3d %3d %s ->"
#~ msgstr " %3d %3d %s ->"
#~ msgid " Skipping to next \\n"
#~ msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n"
#~ msgid " Skipping to next %c"
#~ msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ %c"
#~ msgid "unterminated string"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ"
#~ msgid "%s is invalid"
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË %s"
#~ msgid "unterminated `%{' definition"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ `%{'"
#~ msgid "Premature EOF after %s"
#~ msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ ÐÏÓÌÅ %s"
#~ msgid "`%s' is invalid in %s"
#~ msgstr "`%s' ÎÅ×ÅÒÎÏ × %s"
#~ msgid "invalid %s declaration"
#~ msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %s"
#~ msgid "%type declaration has no <typename>"
#~ msgstr "ÏÐÉÓÁÎÉÅ %type ÎÅ ÉÍÅÅÔ <ÉÍÑ_ÔÉÐÁ>"
#~ msgid "invalid %%type declaration due to item: %s"
#~ msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %%type ÉÚ-ÚÁ ÜÌÅÍÅÎÔÁ: %s"
#~ msgid "invalid text (%s) - number should be after identifier"
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÔÅËÓÔ (%s) - ÞÉÓÌÏ ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÚÁ ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ"
#~ msgid "unexpected item: %s"
#~ msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
#~ msgid "unmatched %s"
#~ msgstr "ÎÅÐÁÒÎÁÑ %s"
#~ msgid "argument of %%expect is not an integer"
#~ msgstr "ÁÒÇÕÍÅÎÔ %%expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
#~ msgid "unrecognized item %s, expected an identifier"
#~ msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÜÌÅÍÅÎÔ %s, ÏÖÉÄÁÌÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
#~ msgid "expected string constant instead of %s"
#~ msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
#~ msgid "no input grammar"
#~ msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
#~ msgid "ill-formed rule: initial symbol not followed by colon"
#~ msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
#~ msgid "grammar starts with vertical bar"
#~ msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
#~ msgid "previous rule lacks an ending `;'"
#~ msgstr "× ÐÒÅÄÙÄÕÝÅÍ ÐÒÁ×ÉÌÅ ÏÔÓÕÔÓÔ×ÕÅÔ ÚÁ×ÅÒÛÁÀÝÁÑ `;'"
#~ msgid "two @prec's in a row"
#~ msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
#~ msgid "%%guard present but %%semantic_parser not specified"
#~ msgstr "%%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %%semantic_parser ÎÅ ÚÁÄÁÎ"
#~ msgid "two actions at end of one rule"
#~ msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
#~ msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
#~ msgid "maximum table size (%d) exceeded"
#~ msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
#~ msgid " $ \tgo to state %d\n"
#~ msgstr " $ \tÐÅÒÅÈÏÄ × ÓÏÓÔÏÑÎÉÅ %d\n"
#~ msgid "unterminated %guard clause"
#~ msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard"
#~ msgid " 1 shift/reduce conflict"
#~ msgstr " 1 ËÏÎÆÌÉËÔ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
#~ msgid "%s contains"
#~ msgstr "%s ÓÏÄÅÒÖÉÔ"
#~ msgid "DERIVES"
#~ msgstr "DERIVES"
#~ msgid "%s derives"
#~ msgstr "%s ×Ù×ÏÄÉÔ"
#~ msgid "%s: internal error: %s\n"
#~ msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n"
#~ msgid "Entering set_nullable"
#~ msgstr "÷ÈÏÄ × set_nullable"
#~ msgid "\t\t/* empty */"
#~ msgstr "\t\t/* ÐÕÓÔÏ */"
#~ msgid "multiple %%header_extension declarations"
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÙÅ ÏÐÉÓÁÎÉÑ %%header_extension"
#~ msgid "multiple %%source_extension declarations"
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÙÅ ÏÐÉÓÁÎÉÑ %%source_extension"
#~ msgid ""
#~ "Variables\n"
#~ "---------\n"
#~ "\n"
#~ msgstr ""
#~ "ðÅÒÅÍÅÎÎÙÅ\n"
#~ "----------\n"
#~ "\n"
#~ msgid "Value Sprec Sassoc Tag\n"
#~ msgstr "úÎÁÞ ðÒÉÏÒ áÓÓÏÃ ôÅÇ\n"
#~ msgid ""
#~ "Rules\n"
#~ "-----\n"
#~ "\n"
#~ msgstr ""
#~ "ðÒÁ×ÉÌÁ\n"
#~ "-------\n"
#~ "\n"
#~ msgid ""
#~ "Rules interpreted\n"
#~ "-----------------\n"
#~ "\n"
#~ msgstr ""
#~ "éÎÔÅÒÐÒÅÔÉÒÏ×ÁÎÎÙÅ ÐÒÁ×ÉÌÁ\n"
#~ "--------------------------\n"
#~ "\n"
#~ msgid ""
#~ "reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
#~ msgstr ""
#~ "×Ù×ÅÄÅÎÎÙÊ %s ÏÐÒÅÄÅÌÑÅÔ %d ÔÅÒÍÉÎÁÌÏ×%s, %d ÎÅÔÅÒÍÉÎÁÌÏ×%s, É %d ÐÒÁ×ÉÌ "
#~ "×Ù×ÏÄÁ%s.\n"
#~ msgid "@%s is invalid"
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË @%s"

711
po/sv.po
View File

@@ -1,711 +0,0 @@
# Swedish messages for bison.
# Copyright © 2001, 2002, 2003 Free Software Foundation, Inc.
# Göran Uddeborg <goeran@uddeborg.pp.se>, 2001, 2002, 2003.
# $Revision$
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.875\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2003-01-01 23:03+0100\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.pp.se>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Okänt systemfel"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "varning: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "ödesdigert fel: "
#: src/conflicts.c:75
#, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr " Konflikt mellan regel %d och element %s löstes som skift"
#: src/conflicts.c:83
#, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr " Konflikt mellan regel %d och element %s löstes som reducera"
#: src/conflicts.c:90
#, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr " Konflikt mellan regel %d och element %s löstes som ett fel"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr "konflikter: %d skifta/reducera, %d reducera/reducera\n"
#: src/conflicts.c:401
#, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr "konflikter: %d skifta/reducera\n"
#: src/conflicts.c:403
#, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr "konflikter: %d reducera/reducera\n"
#: src/conflicts.c:421
#, c-format
msgid "State %d "
msgstr "Tillstånd %d "
#: src/conflicts.c:498
#, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "förväntade %d skifta/reducerakonflikt"
msgstr[1] "förväntade %d skifta/reducerakonflikter"
#: src/conflicts.c:503
msgid "expected 0 reduce/reduce conflicts"
msgstr "förväntade 0 reducera/reducerakonflikter"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "kan inte öppna filen \"%s\""
#: src/files.c:115
msgid "I/O error"
msgstr "I/O-fel"
#: src/files.c:118
msgid "cannot close file"
msgstr "kan inte stänga fil"
#: src/files.c:336
#, c-format
msgid "conflicting outputs to file %s"
msgstr "motstridiga utmatningar till filen %s"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Försök med \"%s --help\" för mer information.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison genererar parsrar för LALR(1)-grammatiker.\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Användning: %s [FLAGGA]... FIL\n"
#: src/getargs.c:200
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 ""
"Om en lång flagga visar ett argument som obligatoriskt är det\n"
"obligatoriskt för den motsvarande korta flaggan också. Motsvarande\n"
"för valfria argument.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Arbetslägen:\n"
" -h, --help visa denna hjälptext och avsluta\n"
" -V, --version visa versionsinformation och avsluta\n"
" -y, --yacc emulera POSIX-yacc\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Tolk:\n"
" -S, --skeleton=FIL ange skelettfilen som skall användas\n"
" -t, --debug instrumentera tolken för felsökning\n"
" --locations aktivera lägesberäkning\n"
" -p, --name-prefix=PREFIX lägg till PREFIX före externa symboler\n"
" -l, --no-lines generera inte \"#line\"-direktiv\n"
" -n, --no-parser generera endast tabellerna\n"
" -k, --token-table inkludera en tabell över elementnamn\n"
#: src/getargs.c:225
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Utdata:\n"
" -d, --defines skapa också en huvudfil\n"
" -r, --report=SAKER skapa också detaljer om automaten\n"
" -v, --verbose samma som \"--report=state\"\n"
" -b, --file-prefix=PREFIX ange ett PREFIX för utdatafiler\n"
" -o, --output=FIL lägg utdata i FIL\n"
" -g, --graph skapa också en VCG-beskrivning av automaten\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
"SAKER är en lista med kommaseparerade ord som kan innehålla:\n"
" \"state\" beskriv tillstånden\n"
" \"itemset\" komplettera kärnobjektmängderna med sina höljen\n"
" \"lookahead\" koppla uttryckligen framåtblickar till objekt\n"
" \"solved\" beskriv lösningar av skifta/reducerakonflikter\n"
" \"all\" inkludera all ovanstående information\n"
" \"none\" avaktivera rapporten\n"
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
"Rapportera fel till <bug-bison@gnu.org>.\n"
"Rapportera synpunkter på översättningen till <sv@li.org>.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Skriven av Robert Corbett och Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Copyright © %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
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 ""
"Detta är fri programvara, se källkoden för kopieringsvillkor. Det\n"
"finns INGEN garanti, inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR ETT\n"
"SPECIELLT ÄNDAMÅL.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr "saknad operand efter \"%s\""
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr "extra operand \"%s\""
#: src/gram.c:139
msgid "empty"
msgstr "tom"
#: src/gram.c:233
msgid "Grammar"
msgstr "Grammatik"
#: src/gram.c:321 src/reduce.c:394
msgid "warning"
msgstr "varning"
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr "regel aldrig reducerad på grund av konflikter"
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr "POSIX förbjuder deklarationer i grammatiken"
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr "identiferare saknas i parameterdeklaration"
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " typ %d är %s\n"
#: src/print.c:165
#, c-format
msgid "shift, and go to state %d\n"
msgstr "skifta, och gå till tillstånd %d\n"
#: src/print.c:167
#, c-format
msgid "go to state %d\n"
msgstr "gå till tillstånd %d\n"
#: src/print.c:204
msgid "error (nonassociative)\n"
msgstr "fel (ickeassociativ)\n"
#: src/print.c:292
#, c-format
msgid "reduce using rule %d (%s)"
msgstr "reducera med regel %d (%s)"
#: src/print.c:294
msgid "accept"
msgstr "acceptera"
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr "$standard"
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "tillstånd %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Terminaler, med regler där de förekommer"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Icketerminaler, med regler där de förekommer"
#: src/print.c:512
msgid " on left:"
msgstr " till vänster:"
#: src/print.c:527
msgid " on right:"
msgstr " till höger:"
#: src/print.c:555
msgid "Rules never reduced"
msgstr "Aldrig reducerade regler"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "flera %s-deklarationer"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr "resultattypskonflikt vid sammanslagningsfunktion %s: <%s> != <%s>"
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regel given för %s, som är ett element"
#: src/reader.c:242
#, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "typkonflikt för standardåtgärd: <%s> <%s>"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr "tom regel för typad icketerminal, och ingen åtgärd"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr "endast en %s tillåts per regel"
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr "%s påverkar endast GLR-parsrar"
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr "%s måste följas av ett positivt tal"
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "inga regler i ingrammatiken"
#: src/reduce.c:242
msgid "useless rule"
msgstr "oanvändbar regel"
#: src/reduce.c:303
#, c-format
msgid "useless nonterminal: %s"
msgstr "oanvändbar icketerminal: %s"
#: src/reduce.c:351
msgid "Useless nonterminals"
msgstr "Oanvändbara icketerminaler"
#: src/reduce.c:364
msgid "Terminals which are not used"
msgstr "Terminaler som inte används"
#: src/reduce.c:373
msgid "Useless rules"
msgstr "Oanvändbara regler"
#: src/reduce.c:389
#, c-format
msgid "%d rule never reduced\n"
msgid_plural "%d rules never reduced\n"
msgstr[0] "%d regel reduceras aldrig\n"
msgstr[1] "%d regler reduceras aldrig\n"
#: src/reduce.c:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d oanvändbar icketerminal"
msgstr[1] "%d oanvändbara icketerminaler"
#: src/reduce.c:403
msgid " and "
msgstr " och "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d oanvändbar regel"
msgstr[1] "%d oanvändbara regler"
#: src/reduce.c:436
#, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "startsymbolen %s genererar inga meningar"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr "vilsekommet \",\" hanterat som blank"
#: src/scan-gram.l:221
#, c-format
msgid "invalid directive: %s"
msgstr "ogiltigt direktiv: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr "heltal utanför intervall: %s"
#: src/scan-gram.l:283
#, c-format
msgid "invalid character: %s"
msgstr "ogiltigt tecken: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, c-format
msgid "invalid escape sequence: %s"
msgstr "ogiltig specialsekvens: %s"
#: src/scan-gram.l:446
#, c-format
msgid "unrecognized escape sequence: %s"
msgstr "okänd specialsekvens: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr "saknad \"{\" i \"%s\""
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ för \"%s\" har ingen deklarerad typ"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "$%d för \"%s\" har ingen deklarerad typ"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, c-format
msgid "invalid value: %s"
msgstr "felaktigt värde: %s"
#: src/scan-gram.l:996
#, c-format
msgid "missing `%s' at end of file"
msgstr "saknat \"%s\" vid filslut"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "felaktigt $-värde"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "typen omdeklarerad för %s"
#: src/symtab.c:101 src/symtab.c:119
#, c-format
msgid "%s redeclaration for %s"
msgstr "%s-omdeklaration för %s"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "omdefinition av precedens för %s"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "symbolen %s omdefinierad"
#: src/symtab.c:179
#, c-format
msgid "redefining user token number of %s"
msgstr "omdefinition av elementnummer för %s"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"symbolen %s används, men är inte definierad som ett element och har inga "
"regler"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "symbolen \"%s\" används mer än en gång som en bokstavlig sträng"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "symbolen \"%s\" har fått mer än en bokstavlig sträng"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "motstridiga precedenser mellan %s och %s"
#: src/symtab.c:282
#, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "motstridiga associativiteter för %s (%s) och %s (%s)"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "elementen %s och %s har båda fått nummer %d"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "startsymbolen %s är odefinierad"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "startsymbolen %s är ett element"
#: lib/argmatch.c:135
#, c-format
msgid "invalid argument %s for %s"
msgstr "ogiltigt argument %s till %s"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr "tvetydigt argument %s till %s"
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr "Giltiga argument är:"
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr "%u bitmängdallokeringar, %u frianden (%.2f%%).\n"
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr "%u bitmängdmängder, %u cachade (%.2f%%)\n"
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr "%u bitmängdåterställanden, %u cachade (%.2f%%)\n"
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr "%u bitmängdtester, %u cachade (%.2f%%)\n"
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr "%u bitmängdlistor\n"
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr "anropslogghistogram\n"
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr "storlekslogghistogram\n"
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr "densitetshistogram\n"
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
"Bitmängdsstatistik:\n"
"\n"
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr "Ackumulerade körningar = %u\n"
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr "Kunde inte läsa statistikfil."
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr "Dålig statistikfilstorlek.\n"
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr "Kunde inte skriva statistikfil."
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr "Kunde inte öppna statistikfil för skrivning."
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: flaggan \"--%s\" tar inget argument\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: flaggan \"%s\" behöver ett argument\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: okänd flagga \"--%s\"\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: okänd flagga \"%c%s\"\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: otillåten flagga -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ogiltig flagga --%c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: flaggan behöver ett argument -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "minnet slut"
# När vi går över till Unicode mer allmänt kanske vi bör översätta båda dessa
# med U+201D (RIGHT DOUBLE QUOTATION MARK) på svenska. Eller?
#
#: lib/quotearg.c:236
msgid "`"
msgstr "\""
#: lib/quotearg.c:237
msgid "'"
msgstr "\""
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr "underprogram \"%s\" kunde inte köras"
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr "underprogram \"%s\" hittades inte"
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr "underprogram \"%s\" misslyckades"
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr "underprogram \"%s\" misslyckades (slutstatus %d)"
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
"\n"
"Exekveringstider (sekunder)\n"
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr " TOTALT :"
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "tid i %s: %ld.%06ld (%ld%%)\n"

902
po/tr.po
View File

@@ -1,902 +0,0 @@
# Turkish translations for GNU Bison messages.
# Copyright (C) 2001 Free Software Foundation, Inc.
# Altuð Bayram <altugbayram_2000@yahoo.com>, 2001.
#
msgid ""
msgstr ""
"Project-Id-Version: bison 1.49a\n"
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
"POT-Creation-Date: 2003-08-25 17:14+0200\n"
"PO-Revision-Date: 2002-06-25 11:03GMT +02:00\n"
"Last-Translator: Altuð Bayram <altugbayram_2000@yahoo.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-9\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.5\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: src/complain.c:56 lib/error.c:135 lib/error.c:163
msgid "Unknown system error"
msgstr "Bilinmeyen sistem hatasý"
#: src/complain.c:79 src/complain.c:94
msgid "warning: "
msgstr "uyarý: "
#: src/complain.c:150 src/complain.c:166
msgid "fatal error: "
msgstr "ölümcül hata:"
#: src/conflicts.c:75
#, fuzzy, c-format
msgid " Conflict between rule %d and token %s resolved as shift"
msgstr ""
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s olarak\n"
"çözümlendi.\n"
#: src/conflicts.c:83
#, fuzzy, c-format
msgid " Conflict between rule %d and token %s resolved as reduce"
msgstr ""
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s olarak\n"
"çözümlendi.\n"
#: src/conflicts.c:90
#, fuzzy, c-format
msgid " Conflict between rule %d and token %s resolved as an error"
msgstr ""
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s olarak\n"
"çözümlendi.\n"
#: src/conflicts.c:398
#, c-format
msgid "conflicts: %d shift/reduce, %d reduce/reduce\n"
msgstr ""
#: src/conflicts.c:401
#, fuzzy, c-format
msgid "conflicts: %d shift/reduce\n"
msgstr " %d öteleme/indirgeme"
#: src/conflicts.c:403
#, fuzzy, c-format
msgid "conflicts: %d reduce/reduce\n"
msgstr " %d indirgeme/indirgeme"
#: src/conflicts.c:421
#, fuzzy, c-format
msgid "State %d "
msgstr "durum %d"
#: src/conflicts.c:498
#, fuzzy, c-format
msgid "expected %d shift/reduce conflict"
msgid_plural "expected %d shift/reduce conflicts"
msgstr[0] "beklenen %d öteleme/indirgeme çeliþkisi\n"
msgstr[1] "beklenen %d öteleme/indirgeme çeliþkisi\n"
#: src/conflicts.c:503
#, fuzzy
msgid "expected 0 reduce/reduce conflicts"
msgstr "%d indirgeme/indirgeme çeliþkisi"
#: src/files.c:99
#, c-format
msgid "cannot open file `%s'"
msgstr "`%s' dosyasý açýlamadý"
#: src/files.c:115
#, fuzzy
msgid "I/O error"
msgstr "bir hata"
#: src/files.c:118
msgid "cannot close file"
msgstr "dosya kapatýlamýyor"
#: src/files.c:336
#, fuzzy, c-format
msgid "conflicting outputs to file %s"
msgstr "%s ve %s için çeliþen birleþmeli deðerler"
#: src/getargs.c:186
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Daha fazla bilgi için `%s --help' yazýn.\n"
#: src/getargs.c:192
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
msgstr "GNU bison LALR(1) gramerler için ayrýþtýrýcýlar üretir.\n"
#: src/getargs.c:196
#, c-format
msgid "Usage: %s [OPTION]... FILE\n"
msgstr "Kullaným: %s [SEÇENEK]... DOSYA\n"
#: src/getargs.c:200
msgid ""
"If a long option shows an argument as mandatory, then it is mandatory\n"
"for the equivalent short option also. Similarly for optional arguments.\n"
msgstr ""
"Eðer bir uzun seçenek bir argümaný gerektirirse, bu gereklilik, denk olan "
"kýsa\n"
"seçenek için de geçerlidir. Bu durum, seçimli argümanlar için de "
"geçerlidir.\n"
#: src/getargs.c:206
msgid ""
"Operation modes:\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
" -y, --yacc emulate POSIX yacc\n"
msgstr ""
"Çalýþma kipleri:\n"
" -h, --help bu yardýmý göster ve çýk\n"
" -V, --version sürüm bilgisini ver ve çýk\n"
" -y, --yacc POSIX yacc öykünmesi\n"
#: src/getargs.c:213
msgid ""
"Parser:\n"
" -S, --skeleton=FILE specify the skeleton to use\n"
" -t, --debug instrument the parser for debugging\n"
" --locations enable locations computation\n"
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
" -l, --no-lines don't generate `#line' directives\n"
" -n, --no-parser generate the tables only\n"
" -k, --token-table include a table of token names\n"
msgstr ""
"Ayrýþtýrýcý:\n"
" -S, --skeleton=FILE kullanýlacak iskeleti belirle\n"
" -t, --debug ayrýþtýrýcý için hata ayýklayýcý aracý\n"
" --locations konum hesaplamalarýný etkinleþtir\n"
" -p, --name-prefix=PREFIX dýþ simgelere hazýr bekletilen ÖNEK\n"
" -l, --no-lines `#line' bildirimlerini üretme\n"
" -n, --no-parser sadece tablolarý üret\n"
" -k, --token-table andaç isimlerinin bir tablosunu içer\n"
#: src/getargs.c:225
#, fuzzy
msgid ""
"Output:\n"
" -d, --defines also produce a header file\n"
" -r, --report=THINGS also produce details on the automaton\n"
" -v, --verbose same as `--report=state'\n"
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
" -o, --output=FILE leave output to FILE\n"
" -g, --graph also produce a VCG description of the "
"automaton\n"
msgstr ""
"Çýktý:\n"
" -d, --defines bir baþlýk dosyasýda üretir\n"
" -v, --verbose otomatýn bir açýklamasýný da üretir\n"
" -b, --file-prefix=ÖNEK çýktý dosyalarý için bir önek belirtir\n"
" -o, --output=DOSYA çýktýyý dosyaya býrakýr\n"
" -g, --graph otomatýn bir VCG grafik açýklamasýný da üretir\n"
#: src/getargs.c:236
msgid ""
"THINGS is a list of comma separated words that can include:\n"
" `state' describe the states\n"
" `itemset' complete the core item sets with their closure\n"
" `lookahead' explicitly associate lookaheads to items\n"
" `solved' describe shift/reduce conflicts solving\n"
" `all' include all the above information\n"
" `none' disable the report\n"
msgstr ""
#: src/getargs.c:247
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
"Hatalarý <bug-bison@gnu.org>'a,\n"
"çeviri hatalarýný <gnu-tr-u12a@lists.sourceforge.net>'e bildir.\n"
#: src/getargs.c:264
#, c-format
msgid "bison (GNU Bison) %s"
msgstr "bison (GNU Bison) %s"
#: src/getargs.c:266
msgid "Written by Robert Corbett and Richard Stallman.\n"
msgstr "Yazanlar: Robert Corbett ve Richard Stallman.\n"
#: src/getargs.c:270
#, c-format
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
msgstr "Telif Hakký (C) %d Free Software Foundation, Inc.\n"
#: src/getargs.c:272
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"Bu bir serbest yazýlýmdýr; kopyalama koþullarý için kaynak koduna bakýnýz.\n"
"Hiçbir garantisi yoktur; hatta SATILABÝLÝRLÝÐÝ veya ÞAHSÝ KULLANIMINIZA\n"
"UYGUNLUÐU için bile garanti verilmez.\n"
#: src/getargs.c:438
#, c-format
msgid "missing operand after `%s'"
msgstr ""
#: src/getargs.c:440
#, c-format
msgid "extra operand `%s'"
msgstr ""
#: src/gram.c:139
msgid "empty"
msgstr "boþ"
#: src/gram.c:233
msgid "Grammar"
msgstr "Gramer"
#: src/gram.c:321 src/reduce.c:394
#, fuzzy
msgid "warning"
msgstr "uyarý: "
#: src/main.c:124
msgid "rule never reduced because of conflicts"
msgstr ""
#: src/parse-gram.y:353
msgid "POSIX forbids declarations in the grammar"
msgstr ""
#: src/parse-gram.y:476
msgid "missing identifier in parameter declaration"
msgstr ""
#: src/print.c:49
#, c-format
msgid " type %d is %s\n"
msgstr " tip %d %s'dir\n"
#: src/print.c:165
#, fuzzy, c-format
msgid "shift, and go to state %d\n"
msgstr " %-4s\tötele, ve durum %d'ye git\n"
#: src/print.c:167
#, fuzzy, c-format
msgid "go to state %d\n"
msgstr " %-4s\tdurum %d'ye git\n"
#: src/print.c:204
#, fuzzy
msgid "error (nonassociative)\n"
msgstr "%-4s\thata (birleþmeli deðil)"
#: src/print.c:292
#, fuzzy, c-format
msgid "reduce using rule %d (%s)"
msgstr "$default\tindirgeme kural %d (%s)'i kullanýyor"
#: src/print.c:294
msgid "accept"
msgstr ""
#: src/print.c:325 src/print.c:391
msgid "$default"
msgstr ""
#: src/print.c:420
#, c-format
msgid "state %d"
msgstr "durum %d"
#: src/print.c:456
msgid "Terminals, with rules where they appear"
msgstr "Sabit simgeler, kurallarýnýn bulunduklarý yerde"
#: src/print.c:483
msgid "Nonterminals, with rules where they appear"
msgstr "Deðiþken simgeler, kurallarýnýn bulunduklarý yerde"
#: src/print.c:512
msgid " on left:"
msgstr " solda:"
#: src/print.c:527
msgid " on right:"
msgstr " saðda:"
#: src/print.c:555
#, fuzzy
msgid "Rules never reduced"
msgstr "%d kural asla indirgenmedi\n"
#: src/reader.c:53
#, c-format
msgid "multiple %s declarations"
msgstr "çoklu %s bildirimleri"
#: src/reader.c:115
#, c-format
msgid "result type clash on merge function %s: <%s> != <%s>"
msgstr ""
#: src/reader.c:213
#, c-format
msgid "rule given for %s, which is a token"
msgstr "bir andaç olan %s için verilen kural"
#: src/reader.c:242
#, fuzzy, c-format
msgid "type clash on default action: <%s> != <%s>"
msgstr "öntanýmlý eylem üzerinde (`%s' `%s') tip çatýþmasý"
#: src/reader.c:248
msgid "empty rule for typed nonterminal, and no action"
msgstr ""
"Tipli deðiþken simge için boþ kural tanýmlanmýþ, ve eylem belirtilmemiþ"
#: src/reader.c:318 src/reader.c:332 src/reader.c:345
#, c-format
msgid "only one %s allowed per rule"
msgstr ""
#: src/reader.c:328 src/reader.c:343
#, c-format
msgid "%s affects only GLR parsers"
msgstr ""
#: src/reader.c:330
#, c-format
msgid "%s must be followed by positive number"
msgstr ""
#: src/reader.c:487
msgid "no rules in the input grammar"
msgstr "girdi grameri içinde kurallar yok"
#: src/reduce.c:242
#, fuzzy
msgid "useless rule"
msgstr "%d yararsýz kural"
#: src/reduce.c:303
#, fuzzy, c-format
msgid "useless nonterminal: %s"
msgstr "Yararsýz deðiþken simgeler:"
#: src/reduce.c:351
#, fuzzy
msgid "Useless nonterminals"
msgstr "Yararsýz deðiþken simgeler:"
#: src/reduce.c:364
#, fuzzy
msgid "Terminals which are not used"
msgstr "Kullanýlmayan sabit simgeler:"
#: src/reduce.c:373
#, fuzzy
msgid "Useless rules"
msgstr "Yararsýz kurallar:"
#: src/reduce.c:389
#, 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:397
#, c-format
msgid "%d useless nonterminal"
msgid_plural "%d useless nonterminals"
msgstr[0] "%d yararsýz deðiþken simge"
msgstr[1] "%d yararsýz deðiþken simge"
#: src/reduce.c:403
msgid " and "
msgstr " ve "
#: src/reduce.c:406
#, c-format
msgid "%d useless rule"
msgid_plural "%d useless rules"
msgstr[0] "%d yararsýz kural"
msgstr[1] "%d yararsýz kural"
#: src/reduce.c:436
#, fuzzy, c-format
msgid "start symbol %s does not derive any sentence"
msgstr "Baþlangýç simgesi %s herhangi bir cümleden türemez"
#: src/scan-gram.l:160
msgid "stray `,' treated as white space"
msgstr ""
#: src/scan-gram.l:221
#, fuzzy, c-format
msgid "invalid directive: %s"
msgstr "geçersiz girdi: %s"
#: src/scan-gram.l:241 src/scan-gram.l:804 src/scan-gram.l:873
#, c-format
msgid "integer out of range: %s"
msgstr ""
#: src/scan-gram.l:283
#, fuzzy, c-format
msgid "invalid character: %s"
msgstr "bilinmeyen karakter: %s"
#: src/scan-gram.l:412 src/scan-gram.l:422 src/scan-gram.l:441
#, fuzzy, c-format
msgid "invalid escape sequence: %s"
msgstr "geçersiz deðer: %s%d"
#: src/scan-gram.l:446
#, fuzzy, c-format
msgid "unrecognized escape sequence: %s"
msgstr "tanýnmayan: %s"
#: src/scan-gram.l:534
#, c-format
msgid "missing `{' in `%s'"
msgstr ""
#: src/scan-gram.l:774
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "`%s''in $$'ý bildirilmiþ tip deðil"
#: src/scan-gram.l:795
#, c-format
msgid "$%d of `%s' has no declared type"
msgstr "`%2$s''in %1$d'i bildirilmiþ tip deðil"
#: src/scan-gram.l:840 src/scan-gram.l:908
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "geçersiz deðer: %s%d"
#: src/scan-gram.l:996
#, fuzzy, c-format
msgid "missing `%s' at end of file"
msgstr "dosyanýn sonunda sonlandýrýlmamýþ dizge"
#: src/symlist.c:97 src/symlist.c:108
msgid "invalid $ value"
msgstr "geçersiz $ deðeri"
#: src/symtab.c:84
#, c-format
msgid "type redeclaration for %s"
msgstr "%s için yeniden tip bildirimi"
#: src/symtab.c:101 src/symtab.c:119
#, fuzzy, c-format
msgid "%s redeclaration for %s"
msgstr "%s için yeniden tip bildirimi"
#: src/symtab.c:138
#, c-format
msgid "redefining precedence of %s"
msgstr "%s'in önceliði tekrar tanýmlandý"
#: src/symtab.c:156
#, c-format
msgid "symbol %s redefined"
msgstr "%s simgesi yeniden tanýmlandý"
#: src/symtab.c:179
#, fuzzy, c-format
msgid "redefining user token number of %s"
msgstr "%s'in önceliði tekrar tanýmlandý"
#: src/symtab.c:206
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr ""
"simge %s kullanýldý, fakat bir andaç olarak tanýmlanmadý ve kurallarý yok"
#: src/symtab.c:231
#, c-format
msgid "symbol `%s' used more than once as a literal string"
msgstr "simge `%s' bir harfiyen uyumlu dizgi gibi birden fazla kullanýldý"
#: src/symtab.c:234
#, c-format
msgid "symbol `%s' given more than one literal string"
msgstr "simge `%s' bir harfiyen uyumlu dizgi gibi birden fazla verilmiþ"
#: src/symtab.c:270
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "%s ve %s için çeliþen öncelikler"
#: src/symtab.c:282
#, fuzzy, c-format
msgid "conflicting associativities for %s (%s) and %s (%s)"
msgstr "%s ve %s için çeliþen birleþmeli deðerler"
#: src/symtab.c:367
#, c-format
msgid "tokens %s and %s both assigned number %d"
msgstr "%s ve %s andaçlarýnýn her ikisi %d sayýsýna atandý"
#: src/symtab.c:590
#, c-format
msgid "the start symbol %s is undefined"
msgstr "baþlangýç simgesi %s tanýmlanmadý"
#: src/symtab.c:594
#, c-format
msgid "the start symbol %s is a token"
msgstr "baþlangýç simgesi %s bir andaçtýr"
#: lib/argmatch.c:135
#, fuzzy, c-format
msgid "invalid argument %s for %s"
msgstr "geçersiz deðer: %s%d"
#: lib/argmatch.c:136
#, c-format
msgid "ambiguous argument %s for %s"
msgstr ""
#: lib/argmatch.c:155
msgid "Valid arguments are:"
msgstr ""
#: lib/bitset_stats.c:179
#, c-format
msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
msgstr ""
#: lib/bitset_stats.c:182
#, c-format
msgid "%u bitset_sets, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:185
#, c-format
msgid "%u bitset_resets, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:188
#, c-format
msgid "%u bitset_tests, %u cached (%.2f%%)\n"
msgstr ""
#: lib/bitset_stats.c:192
#, c-format
msgid "%u bitset_lists\n"
msgstr ""
#: lib/bitset_stats.c:194
msgid "count log histogram\n"
msgstr ""
#: lib/bitset_stats.c:197
msgid "size log histogram\n"
msgstr ""
#: lib/bitset_stats.c:200
msgid "density histogram\n"
msgstr ""
#: lib/bitset_stats.c:214
msgid ""
"Bitset statistics:\n"
"\n"
msgstr ""
#: lib/bitset_stats.c:217
#, c-format
msgid "Accumulated runs = %u\n"
msgstr ""
#: lib/bitset_stats.c:261 lib/bitset_stats.c:266
msgid "Could not read stats file."
msgstr ""
#: lib/bitset_stats.c:263
msgid "Bad stats file size.\n"
msgstr ""
#: lib/bitset_stats.c:289 lib/bitset_stats.c:291
msgid "Could not write stats file."
msgstr ""
#: lib/bitset_stats.c:294
msgid "Could not open stats file for writing."
msgstr ""
#: lib/getopt.c:688 lib/getopt.c:700
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: `%s' seçeneði belirsiz\n"
#: lib/getopt.c:733 lib/getopt.c:737
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: `--%s' seçeneði argümansýz kullanýlýr\n"
#: lib/getopt.c:746 lib/getopt.c:751
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: seçenek `%c%s' argümansýz kullanýlýr\n"
#: lib/getopt.c:787 lib/getopt.c:800 lib/getopt.c:1089 lib/getopt.c:1102
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: `%s' seçeneði bir argümanla kullanýlýr\n"
#: lib/getopt.c:838 lib/getopt.c:841
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: `--%s' seçeneði bilinmiyor\n"
#: lib/getopt.c:849 lib/getopt.c:852
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: `%c%s' seçeneði bilinmiyor\n"
#: lib/getopt.c:899 lib/getopt.c:902
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: kuraldýþý seçenek -- %c\n"
#: lib/getopt.c:908 lib/getopt.c:911
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: geçersiz seçenek -- %c\n"
#: lib/getopt.c:958 lib/getopt.c:969 lib/getopt.c:1155 lib/getopt.c:1168
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: seçenek bir argümanla kullanýlýr -- %c\n"
#: lib/getopt.c:1021 lib/getopt.c:1032
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: `-W %s' seçeneði belirsiz\n"
#: lib/getopt.c:1056 lib/getopt.c:1068
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: `-W %s' seçeneði argümansýz kullanýlýr\n"
#: lib/obstack.c:487 lib/obstack.c:490 lib/xmalloc.c:63
msgid "memory exhausted"
msgstr "bellek tükendi"
#: lib/quotearg.c:236
msgid "`"
msgstr "`"
#: lib/quotearg.c:237
msgid "'"
msgstr "'"
#: lib/subpipe.c:187
#, c-format
msgid "subsidiary program `%s' could not be invoked"
msgstr ""
#: lib/subpipe.c:189
#, c-format
msgid "subsidiary program `%s' not found"
msgstr ""
#: lib/subpipe.c:191
#, c-format
msgid "subsidiary program `%s' failed"
msgstr ""
#: lib/subpipe.c:192
#, c-format
msgid "subsidiary program `%s' failed (exit status %d)"
msgstr ""
#: lib/timevar.c:476
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
#: lib/timevar.c:526
msgid " TOTAL :"
msgstr ""
#: lib/timevar.c:562
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr ""
#~ msgid "too many states (max %d)"
#~ msgstr "çok fazla durum (en fazla %d)"
#~ msgid "reduce"
#~ msgstr "indirgeme"
#~ msgid "shift"
#~ msgstr "shift"
#~ msgid "%d shift/reduce conflict"
#~ msgid_plural "%d shift/reduce conflicts"
#~ msgstr[0] "%d öteleme/indirgeme çeliþkisi"
#~ msgstr[1] "%d öteleme/indirgeme çeliþkisi"
#~ msgid "and"
#~ msgstr "ve"
#~ msgid "State %d contains "
#~ msgstr "%d durumu içerir"
#~ msgid "conflicts: "
#~ msgstr "çeliþkiler: "
#~ msgid "%s contains "
#~ msgstr "%s içerir"
#~ msgid "`%s' is no longer supported"
#~ msgstr "`%s' artýk desteklenmeyecek"
#~ msgid "%s: no grammar file given\n"
#~ msgstr "%s: gramer dosyasý verilmemiþ\n"
#~ msgid "%s: extra arguments ignored after `%s'\n"
#~ msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n"
#~ msgid "too many gotos (max %d)"
#~ msgstr "gotos çok fazla (en fazla %d)"
#~ msgid "unexpected `/' found and ignored"
#~ msgstr "beklenmeyen `/' bulundu ve yoksayýldý"
#~ msgid "unterminated comment"
#~ msgstr "sonlandýrýlmamýþ açýklama"
#~ msgid "unexpected end of file"
#~ msgstr "beklenmeyen dosya sonu"
#~ msgid "unescaped newline in constant"
#~ msgstr "sabit içinde kaçamayan yeni satýr"
#~ msgid "octal value outside range 0...255: `\\%o'"
#~ msgstr "sekizli deðer 0...255'in dýþýnda: `\\%o'"
#~ msgid "hexadecimal value above 255: `\\x%x'"
#~ msgstr "onaltýlýk deðer 255'in üstünde: `\\x%x'"
#~ msgid "unknown escape sequence: `\\' followed by `%s'"
#~ msgstr "bilinmeyen kaçýþ sýrasý: `\\' `%s' tarafýndan takip edildi"
#~ msgid "unterminated type name at end of file"
#~ msgstr "dosya sonunda sonlandýrýlmamýþ tip adý"
#~ msgid "unterminated type name"
#~ msgstr "sonlandýrýlmamýþ tip ismi"
#~ msgid "use \"...\" for multi-character literal tokens"
#~ msgstr "çok-karakterli yazýn andaçlarý için \"...\" kullan"
#~ msgid "`%s' supports no argument: %s"
#~ msgstr "`%s' argüman %s'i desteklemez"
#~ msgid "`%s' requires an argument"
#~ msgstr "`%s' bir argüman gerektirir"
#~ msgid " (rule %d)"
#~ msgstr " (kural %d)"
#~ msgid " %-4s\terror (nonassociative)\n"
#~ msgstr " %-4s\thata (birleþmeli deðil)\n"
#~ msgid ""
#~ " $default\treduce using rule %d (%s)\n"
#~ "\n"
#~ msgstr ""
#~ " $default\tindirgeme kural %d (%s)'i kullanýyor\n"
#~ "\n"
#~ msgid " %-4s\t[reduce using rule %d (%s)]\n"
#~ msgstr " %-4s\t[indirgeme kural %d (%s)'i kullanýyor]\n"
#~ msgid " %-4s\treduce using rule %d (%s)\n"
#~ msgstr " %-4s\tindirgeme kural %d (%s)'i kullanýyor\n"
#~ msgid " $default\treduce using rule %d (%s)\n"
#~ msgstr " $default\tindirgeme kural %d (%s)'i kullanýyor\n"
#~ msgid " $default\taccept\n"
#~ msgstr " $default\tonayla\n"
#~ msgid " NO ACTIONS\n"
#~ msgstr " EYLEM YOK\n"
#~ msgid "Number, Line, Rule"
#~ msgstr "Sayý, Satýr, Kural"
#~ msgid " %3d %3d %s ->"
#~ msgstr " %3d %3d %s ->"
#~ msgid " Skipping to next \\n"
#~ msgstr " Sonrakine atlanýyor \\n"
#~ msgid " Skipping to next %c"
#~ msgstr " Sonraki %c'ye atlanýyor"
#~ msgid "unterminated string"
#~ msgstr "sonlandýrýlmamýþ dizge"
#~ msgid "%s is invalid"
#~ msgstr "%s geçersizdir"
#~ msgid "unterminated `%{' definition"
#~ msgstr "`%{' tanýmlamasý sonlandýrýlmamýþ"
#~ msgid "Premature EOF after %s"
#~ msgstr "%s'den sonra erken EOF"
#~ msgid "`%s' is invalid in %s"
#~ msgstr "`%s' %s içinde geçersizdir"
#~ msgid "invalid %s declaration"
#~ msgstr "geçersiz %s bildirimi"
#~ msgid "%type declaration has no <typename>"
#~ msgstr "%type bildirimi <tipadý>'na sahip deðil"
#~ msgid "invalid %%type declaration due to item: %s"
#~ msgstr "geçersiz %%type bildirimine neden olan öðe: `%s'"
#~ msgid "invalid text (%s) - number should be after identifier"
#~ msgstr "geçersiz metin (%s) - sayý tanýtýcýdan sonra olmalýdýr"
#~ msgid "unexpected item: %s"
#~ msgstr "beklenmeyen öðe: %s"
#~ msgid "unmatched %s"
#~ msgstr "eþlenemeyen %s"
#~ msgid "argument of %%expect is not an integer"
#~ msgstr "%%expect'in argümaný bir tamsayý deðildir"
#~ msgid "unrecognized item %s, expected an identifier"
#~ msgstr "%s öðesi tanýnmadý, beklenen bir tanýtýcýdýr"
#~ msgid "expected string constant instead of %s"
#~ msgstr "%s'in yerine sabit dizge beklendi"
#~ msgid "no input grammar"
#~ msgstr "girdi grameri yok"
#~ msgid "ill-formed rule: initial symbol not followed by colon"
#~ msgstr "kötü-biçemli kural: baþlangýç simgesini takip eden \":\" yok"
#~ msgid "grammar starts with vertical bar"
#~ msgstr "gramer düþey çubuk ile baþlýyor"
#~ msgid "previous rule lacks an ending `;'"
#~ msgstr "önceki kuralda bir bitiþ `;' eksik"
#~ msgid "two @prec's in a row"
#~ msgstr "bir satýrda iki @prec"
#~ msgid "%%guard present but %%semantic_parser not specified"
#~ msgstr "%%guard sunulmuþ fakat %%semantic_parser belirlenmemiþ"
#~ msgid "two actions at end of one rule"
#~ msgstr "bir kuralýn sonunda iki eylem"
#~ msgid "too many symbols (tokens plus nonterminals); maximum %d"
#~ msgstr "çok fazla simge var (andaçlar ve deðiþken simgeler); en fazla %d"
#~ msgid "maximum table size (%d) exceeded"
#~ msgstr "en büyük tablo uzunluðu (%d) aþýldý"
#~ msgid " $ \tgo to state %d\n"
#~ msgstr " $ \tdurum %d'ye git\n"
#~ msgid "unterminated %guard clause"
#~ msgstr "sonlandýrýlmamýþ %guard yantümcesi"

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