From: Akim Demaille Date: Mon, 16 Oct 2000 17:28:41 +0000 (+0000) Subject: * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c: X-Git-Tag: BISON-1_28b~91 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/ff4a34be273490d08c7b34a51e309a76c5b2c127 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c: * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4: New files, from Fileutils 4.0.27. * src/main.c (printable_version): Remove. * src/lex.c, src/reader.c: Use `quote'. * lib/error.c, lib/error.h: New files, needed by xmalloc.c. --- diff --git a/ChangeLog b/ChangeLog index ce415b77..402b0bea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2000-10-16 Akim Demaille + + * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c: + * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4: + New files, from Fileutils 4.0.27. + * src/main.c (printable_version): Remove. + * src/lex.c, src/reader.c: Use `quote'. + +2000-10-04 Akim Demaille + + * lib/error.c, lib/error.h: New files, needed by xmalloc.c. + 2000-10-04 Akim Demaille * doc/bison.texinfo: Various typos spotted by Neil Booth. diff --git a/THANKS b/THANKS index 5aa7039a..0cfdeb88 100644 --- a/THANKS +++ b/THANKS @@ -14,3 +14,19 @@ thank them! Please, help us keeping this list up to date. Local Variables: mode: text End: +Daniel Hagerty hag@gnu.org +David J. MacKenzie djm@gnu.org +Jesse Thilo jthilo@gnu.org +Jim Meyering meyering@gnu.org +Neil Booth NeilB@earthling.net +Noah Friedman friedman@gnu.org +Paul Eggert eggert@twinsun.com +Piotr Gackiewicz gacek@intertel.com.pl +Richard Stallman rms@gnu.org + +Many people are not named here because we lost track of them. We +thank them! Please, help us keeping this list up to date. + +Local Variables: +mode: text +End: diff --git a/configure.in b/configure.in index 41c5e279..3299183d 100644 --- a/configure.in +++ b/configure.in @@ -66,6 +66,7 @@ AC_FUNC_ALLOCA AC_CHECK_FUNCS(mkstemp setlocale) jm_FUNC_MALLOC jm_FUNC_REALLOC +jm_PREREQ_QUOTEARG ALL_LINGUAS="de es et fr ja nl ru" AM_GNU_GETTEXT diff --git a/lib/Makefile.am b/lib/Makefile.am index 03df9e52..104c19be 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -6,8 +6,11 @@ noinst_LIBRARIES = libbison.a INCLUDES = -I.. -I$(srcdir) -I../intl -libbison_a_SOURCES = getopt.c getopt1.c xmalloc.c xstrdup.c -noinst_HEADERS = getopt.h xalloc.h +libbison_a_SOURCES = \ + error.c error.h \ + getopt.h getopt.c getopt1.c \ + quote.h quote.c quotearg.h quotearg.c \ + xalloc.h xmalloc.c xstrdup.c libbison_a_LIBADD = @LIBOBJS@ @ALLOCA@ libbison_a_DEPENDENCIES = $(libbison_a_LIBADD) diff --git a/lib/error.c b/lib/error.c new file mode 100644 index 00000000..ffa54c39 --- /dev/null +++ b/lib/error.c @@ -0,0 +1,261 @@ +/* Error handler for noninteractive utilities + Copyright (C) 1990-2000 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. + + 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. */ + +/* Written by David MacKenzie . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC +# if __STDC__ +# include +# define VA_START(args, lastarg) va_start(args, lastarg) +# else +# include +# 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 +# include +#else +void exit (); +#endif + +#include "error.h" + +#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 + +/* In GNU libc we want do not want to use the common name `error' directly. + Instead make it a weak alias. */ +# define error __error +# define error_at_line __error_at_line + +#else /* not _LIBC */ + +/* The calling program should define program_name and set it to the + name of the executing program. */ +extern char *program_name; + +# ifdef HAVE_STRERROR_R +# define __strerror_r strerror_r +# else +# if HAVE_STRERROR +# ifndef strerror /* On some systems, strerror is a macro */ +char *strerror (); +# endif +# else +static char * +private_strerror (errnum) + 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 */ +#endif /* not _LIBC */ + +/* 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 + + if (error_print_progname) + (*error_print_progname) (); + else + { + fflush (stdout); + fprintf (stderr, "%s: ", program_name); + } + +#ifdef VA_START + VA_START (args, message); +# if HAVE_VPRINTF || _LIBC + vfprintf (stderr, message, args); +# else + _doprnt (message, args, stderr); +# endif + va_end (args); +#else + fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); +#endif + + ++error_message_count; + if (errnum) + { +#if defined HAVE_STRERROR_R || _LIBC + char errbuf[1024]; +# if HAVE_WORKING_STRERROR_R || _LIBC + fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf)); +# else + /* Don't use __strerror_r's return value because on some systems + (at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */ + __strerror_r (errnum, errbuf, sizeof errbuf); + fprintf (stderr, ": %s", errbuf); +# endif +#else + fprintf (stderr, ": %s", strerror (errnum)); +#endif + } + putc ('\n', stderr); + fflush (stderr); + if (status) + exit (status); +} + +/* 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))) + /* Simply return and print nothing. */ + return; + + old_file_name = file_name; + old_line_number = line_number; + } + + if (error_print_progname) + (*error_print_progname) (); + else + { + fflush (stdout); + fprintf (stderr, "%s:", program_name); + } + + if (file_name != NULL) + fprintf (stderr, "%s:%d: ", file_name, line_number); + +#ifdef VA_START + VA_START (args, message); +# if HAVE_VPRINTF || _LIBC + vfprintf (stderr, message, args); +# else + _doprnt (message, args, stderr); +# endif + va_end (args); +#else + fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); +#endif + + ++error_message_count; + if (errnum) + { +#if defined HAVE_STRERROR_R || _LIBC + char errbuf[1024]; +# if HAVE_WORKING_STRERROR_R || _LIBC + fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf)); +# else + /* Don't use __strerror_r's return value because on some systems + (at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */ + __strerror_r (errnum, errbuf, sizeof errbuf); + fprintf (stderr, ": %s", errbuf); +# endif +#else + fprintf (stderr, ": %s", strerror (errnum)); +#endif + } + putc ('\n', stderr); + fflush (stderr); + if (status) + exit (status); +} + +#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 diff --git a/lib/error.h b/lib/error.h new file mode 100644 index 00000000..38a8e296 --- /dev/null +++ b/lib/error.h @@ -0,0 +1,156 @@ +/* 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) || __STRICT_ANSI__ +# 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 */ +/* 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) || __STRICT_ANSI__ +# 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 */ diff --git a/lib/quote.c b/lib/quote.c new file mode 100644 index 00000000..fd1b57e9 --- /dev/null +++ b/lib/quote.c @@ -0,0 +1,25 @@ +/* Written by Paul Eggert */ + +#if HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +/* Return an unambiguous printable representated, allocated in slot N, + for NAME, 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); +} diff --git a/lib/quote.h b/lib/quote.h new file mode 100644 index 00000000..96549b76 --- /dev/null +++ b/lib/quote.h @@ -0,0 +1,4 @@ +/* prototypes for quote.c */ + +char const *quote_n (int n, char const *name); +char const *quote (char const *name); diff --git a/lib/quotearg.c b/lib/quotearg.c new file mode 100644 index 00000000..d5fbc9e6 --- /dev/null +++ b/lib/quotearg.c @@ -0,0 +1,616 @@ +/* quotearg.c - quote arguments for output + Copyright (C) 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. */ + +/* Written by Paul Eggert */ + +#if HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#include + +#if ENABLE_NLS +# include +# define _(text) gettext (text) +#else +# define _(text) text +#endif +#define N_(text) text + +#if HAVE_LIMITS_H +# include +#endif +#ifndef CHAR_BIT +# define CHAR_BIT 8 +#endif +#ifndef UCHAR_MAX +# define UCHAR_MAX ((unsigned char) -1) +#endif + +#if HAVE_C_BACKSLASH_A +# define ALERT_CHAR '\a' +#else +# define ALERT_CHAR '\7' +#endif + +#if HAVE_STDLIB_H +# include +#endif + +#if HAVE_STRING_H +# include +#endif + +#if HAVE_WCHAR_H +# include +#endif + +#if HAVE_MBRTOWC +size_t mbrtowc (); +# ifdef mbstate_t +# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0) +# define mbsinit(ps) 1 +# endif +#else +/* 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 mbsinit(ps) 1 +# define iswprint(wc) ISPRINT ((unsigned char) (wc)) +#endif + +#ifndef iswprint +# if HAVE_WCTYPE_H +# include +# endif +# if !defined iswprint && !HAVE_ISWPRINT +# define iswprint(wc) 1 +# endif +#endif + +#define INT_BITS (sizeof (int) * CHAR_BIT) + +#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)) + +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) +{ + struct quoting_options *p + = (struct quoting_options *) xmalloc (sizeof (struct quoting_options)); + *p = *(o ? o : &default_quoting_options); + 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_t) -1 ? 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 '?': + 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. */ + i += 2; + c = arg[i + 2]; + STORE ('?'); + STORE ('\\'); + STORE ('?'); + break; + } + break; + + default: + break; + } + break; + + case ALERT_CHAR: 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_t) -1) + 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; + return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, + p->style, p); +} + +/* Use storage slot N to return a quoted version of the string ARG. + 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, + struct quoting_options const *options) +{ + /* 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; + struct slotvec + { + size_t size; + char *val; + }; + static struct slotvec slotvec0 = {sizeof slot0, slot0}; + static struct slotvec *slotvec = &slotvec0; + + if (nslots <= n) + { + int n1 = n + 1; + size_t s = n1 * sizeof (struct slotvec); + if (! (0 < n1 && n1 == s / sizeof (struct slotvec))) + abort (); + if (slotvec == &slotvec0) + { + slotvec = (struct slotvec *) xmalloc (sizeof (struct slotvec)); + *slotvec = slotvec0; + } + slotvec = (struct slotvec *) xrealloc (slotvec, s); + memset (slotvec + nslots, 0, (n1 - nslots) * sizeof (struct slotvec)); + nslots = n; + } + + { + size_t size = slotvec[n].size; + char *val = slotvec[n].val; + size_t qsize = quotearg_buffer (val, size, arg, (size_t) -1, 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, (size_t) -1, options); + } + + return val; + } +} + +char * +quotearg_n (unsigned int n, char const *arg) +{ + return quotearg_n_options (n, arg, &default_quoting_options); +} + +char * +quotearg (char const *arg) +{ + return quotearg_n (0, arg); +} + +char * +quotearg_n_style (unsigned int n, enum quoting_style s, char const *arg) +{ + struct quoting_options o; + o.style = s; + memset (o.quote_these_too, 0, sizeof o.quote_these_too); + return quotearg_n_options (n, arg, &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, &options); +} + +char * +quotearg_colon (char const *arg) +{ + return quotearg_char (arg, ':'); +} diff --git a/lib/quotearg.h b/lib/quotearg.h new file mode 100644 index 00000000..f6463b1a --- /dev/null +++ b/lib/quotearg.h @@ -0,0 +1,110 @@ +/* quotearg.h - quote arguments for output + Copyright (C) 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. */ + +/* Written by Paul Eggert */ + +/* 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; + +#ifndef PARAMS +# if defined PROTOTYPES || defined __STDC__ +# define PARAMS(Args) Args +# else +# define PARAMS(Args) () +# endif +#endif + +/* 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 + PARAMS ((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 PARAMS ((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 PARAMS ((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 PARAMS ((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 PARAMS ((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 PARAMS ((unsigned int n, char const *arg)); + +/* Equivalent to quotearg_n (0, ARG). */ +char *quotearg PARAMS ((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 PARAMS ((unsigned int n, enum quoting_style s, + char const *arg)); + +/* Equivalent to quotearg_n_style (0, S, ARG). */ +char *quotearg_style PARAMS ((enum quoting_style s, char const *arg)); + +/* Like quotearg (ARG), except also quote any instances of CH. */ +char *quotearg_char PARAMS ((char const *arg, char ch)); + +/* Equivalent to quotearg_char (ARG, ':'). */ +char *quotearg_colon PARAMS ((char const *arg)); diff --git a/m4/Makefile.am b/m4/Makefile.am index 15610bda..3d5d9fa0 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -1,11 +1,14 @@ ## Process this file with automake to produce Makefile.in -*-Makefile-*- EXTRA_DIST = \ atconfig.m4 \ +c-bs-a.m4 \ error.m4 \ gettext.m4 \ lcmessage.m4 \ m4.m4 \ malloc.m4 \ +mbstate_t.m4 \ +prereq.m4 \ progtest.m4 \ realloc.m4 \ warning.m4 diff --git a/m4/c-bs-a.m4 b/m4/c-bs-a.m4 new file mode 100644 index 00000000..d9e6e11e --- /dev/null +++ b/m4/c-bs-a.m4 @@ -0,0 +1,23 @@ +#serial 3 + +dnl From Paul Eggert. + +AC_DEFUN(AC_C_BACKSLASH_A, +[ + AC_CACHE_CHECK([whether backslash-a works in strings], ac_cv_c_backslash_a, + [AC_TRY_COMPILE([], + [ +#if '\a' == 'a' + syntax error; +#endif + char buf['\a' == 'a' ? -1 : 1]; + buf[0] = '\a'; + return buf[0] != "\a"[0]; + ], + ac_cv_c_backslash_a=yes, + ac_cv_c_backslash_a=no)]) + if test $ac_cv_c_backslash_a = yes; then + AC_DEFINE(HAVE_C_BACKSLASH_A, 1, + [Define if backslash-a works in C strings.]) + fi +]) diff --git a/m4/mbstate_t.m4 b/m4/mbstate_t.m4 new file mode 100644 index 00000000..a185a7db --- /dev/null +++ b/m4/mbstate_t.m4 @@ -0,0 +1,29 @@ +# serial 8 + +# From Paul Eggert. + +# BeOS 5 has but does not define mbstate_t, +# so you can't declare an object of that type. +# Check for this incompatibility with Standard C. + +# Include stdlib.h first, because otherwise this test would fail on Linux +# (at least glibc-2.1.3) because the "_XOPEN_SOURCE 500" definition elicits +# a syntax error in wchar.h due to the use of undefined __int32_t. + +AC_DEFUN(AC_MBSTATE_T, + [ + AC_CHECK_HEADERS(stdlib.h) + + AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t, + [AC_TRY_COMPILE([ +#if HAVE_STDLIB_H +# include +#endif +#include ], + [mbstate_t x; return sizeof x;], + ac_cv_type_mbstate_t=yes, + ac_cv_type_mbstate_t=no)]) + if test $ac_cv_type_mbstate_t = no; then + AC_DEFINE(mbstate_t, int, + [Define to a type if does not define.]) + fi]) diff --git a/m4/prereq.m4 b/m4/prereq.m4 new file mode 100644 index 00000000..f7114268 --- /dev/null +++ b/m4/prereq.m4 @@ -0,0 +1,14 @@ +#serial 1 + +dnl These are the prerequisite macros for files in the lib/ +dnl directories of Bison. + +AC_DEFUN([jm_PREREQ_QUOTEARG], +[ + AC_CHECK_FUNCS(isascii iswprint mbrtowc) + AC_CHECK_HEADERS(limits.h stdlib.h string.h wchar.h wctype.h) + AC_HEADER_STDC + AC_C_BACKSLASH_A + AC_MBSTATE_T + AM_C_PROTOTYPES +]) diff --git a/po/de.po b/po/de.po index bdda7f54..7659f5bc 100644 --- a/po/de.po +++ b/po/de.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-10-04 13:59+0200\n" +"POT-Creation-Date: 2000-10-16 19:27+0200\n" "PO-Revision-Date: 1996-10-10 17:54 MET DST\n" "Last-Translator: Ulrich Drepper \n" "Language-Team: German \n" @@ -204,30 +204,30 @@ msgstr "%s: zus msgid "too many gotos (max %d)" msgstr "" -#: src/lex.c:84 +#: src/lex.c:82 msgid "unexpected `/' found and ignored" msgstr "»/« wird hier nicht erwartet und wird deshalb ignoriert" -#: src/lex.c:113 src/reader.c:216 +#: src/lex.c:111 src/reader.c:215 msgid "unterminated comment" msgstr "unbeendeter Kommentar" -#: src/lex.c:141 +#: src/lex.c:139 #, fuzzy msgid "unexpected end of file" msgstr "Datei endet unerwartet" # Oder soll man den Begriff "Escapezeichen" verwenden? -#: src/lex.c:164 +#: src/lex.c:162 msgid "unescaped newline in constant" msgstr "nicht maskiertes Zeilenendezeichen in Konstante" -#: src/lex.c:206 +#: src/lex.c:204 #, c-format msgid "octal value outside range 0...255: `\\%o'" msgstr "oktaler Zahlenwert außerhalb des Bereichs 0...255: »\\%o«" -#: src/lex.c:231 +#: src/lex.c:229 #, c-format msgid "hexadecimal value above 255: `\\x%x'" msgstr "hexadezimaler Zahlenwert größer als 255: »\\x%x«" @@ -249,7 +249,7 @@ msgstr "unerwarteter Typname am Ende der Datei" msgid "unterminated type name" msgstr "unerwarteter Typname" -#: src/main.c:123 +#: src/main.c:104 #, fuzzy, c-format msgid "%s: internal error: %s\n" msgstr "interner Fehler, %s\n" @@ -351,234 +351,229 @@ msgstr " auf der linken Seite:" msgid " on right:" msgstr " auf der rechten Seite:" -#: src/reader.c:81 +#: src/reader.c:80 msgid " Skipping to next \\n" msgstr " Überspringe Zeichen bis zum nächsten \\n" -#: src/reader.c:83 +#: src/reader.c:82 #, c-format msgid " Skipping to next %c" msgstr " Überspringe Zeichen bis zum nächten %c" -#: src/reader.c:137 src/reader.c:152 +#: src/reader.c:136 src/reader.c:151 msgid "unterminated string at end of file" msgstr "unbeendete Zeichenkette am Ende der Datei" -#: src/reader.c:140 +#: src/reader.c:139 msgid "unterminated string" msgstr "unbeendete Zeichenkette" -#: src/reader.c:269 -#, c-format -msgid "@%s is invalid" +#: src/reader.c:271 src/reader.c:1021 src/reader.c:1174 +#, fuzzy, c-format +msgid "%s is invalid" msgstr "@%s ist unzulässig" -#: src/reader.c:318 +#: src/reader.c:321 msgid "unterminated `%{' definition" msgstr "unbeendete »%{« Definition" -#: src/reader.c:359 src/reader.c:512 src/reader.c:562 +#: src/reader.c:362 src/reader.c:515 src/reader.c:565 #, c-format msgid "Premature EOF after %s" msgstr "" -#: src/reader.c:376 +#: src/reader.c:379 #, c-format msgid "symbol `%s' used more than once as a literal string" msgstr "" -#: src/reader.c:379 +#: src/reader.c:382 #, c-format msgid "symbol `%s' given more than one literal string" msgstr "" -#: src/reader.c:401 src/reader.c:581 +#: src/reader.c:404 src/reader.c:584 #, c-format msgid "symbol %s redefined" msgstr "Symbol %s noch einmal definiert" -#: src/reader.c:411 src/reader.c:527 src/reader.c:588 src/reader.c:1267 +#: src/reader.c:414 src/reader.c:530 src/reader.c:591 src/reader.c:1280 #, c-format msgid "type redeclaration for %s" msgstr "erneute Deklaration des Typs für %s" -#: src/reader.c:421 +#: src/reader.c:424 #, c-format msgid "`%s' is invalid in %s" msgstr "»%s« ist in %s nicht erlaubt" -#: src/reader.c:438 src/reader.c:635 +#: src/reader.c:441 src/reader.c:638 #, fuzzy, c-format msgid "multiple %s declarations" msgstr "mehr als eine %start Deklaration" -#: src/reader.c:440 src/reader.c:1245 +#: src/reader.c:443 src/reader.c:1258 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "ungültige %start Deklaration" -#: src/reader.c:463 src/reader.c:475 +#: src/reader.c:466 src/reader.c:478 msgid "invalid $ value" msgstr "unzulässiger $ Wert" -#: src/reader.c:497 +#: src/reader.c:500 msgid "%type declaration has no " msgstr "%type Deklaration hat keinen " -#: src/reader.c:532 +#: src/reader.c:535 #, fuzzy msgid "invalid %%type declaration due to item: %s" msgstr "ungültige %%type Deklaration wegen »%s«" -#: src/reader.c:577 +#: src/reader.c:580 #, c-format msgid "redefining precedence of %s" msgstr "Stellenwertigkeit von %s wird erneut definiert" -#: src/reader.c:601 +#: src/reader.c:604 #, c-format msgid "invalid text (%s) - number should be after identifier" msgstr "unzulässiger Text (%s) - Nummer sollte nach Bezeichner kommen" -#: src/reader.c:611 +#: src/reader.c:614 #, c-format msgid "unexpected item: %s" msgstr "unerwartetes Symbol: %s" -#: src/reader.c:676 src/reader.c:1022 src/reader.c:1094 +#: src/reader.c:679 src/reader.c:1031 src/reader.c:1103 #, fuzzy, c-format msgid "unmatched %s" msgstr "»{« hat kein Gegenstück" -#: src/reader.c:724 +#: src/reader.c:727 #, c-format msgid "argument of %expect is not an integer" msgstr "Argument von %expect ist keine ganze Zahl" -#: src/reader.c:770 +#: src/reader.c:773 #, c-format msgid "unrecognized item %s, expected an identifier" msgstr "unerwartetes Symbol %s, hier wird ein Bezeichner erwartet" -#: src/reader.c:794 +#: src/reader.c:797 #, c-format msgid "expected string constant instead of %s" msgstr "hier wird eine Zeichenkette erwartet, nicht %s" -#: src/reader.c:893 +#: src/reader.c:896 #, c-format msgid "unrecognized: %s" msgstr "unbekannt: %s" -#: src/reader.c:898 +#: src/reader.c:901 msgid "no input grammar" msgstr "keine Eingabe-Grammatik" -#: src/reader.c:901 +#: src/reader.c:906 #, c-format msgid "unknown character: %s" msgstr "unbekanntes Zeichen: %s" -#: src/reader.c:992 src/reader.c:1141 +#: src/reader.c:997 src/reader.c:1150 #, c-format msgid "$$ of `%s' has no declared type" msgstr "$$ von »%s« hat keine deklarierten Wert" -#: src/reader.c:1008 src/reader.c:1157 +#: src/reader.c:1013 src/reader.c:1166 #, fuzzy, c-format msgid "$%d of `%s' has no declared type" msgstr "»%s« von »%s« hat keine deklarierten Wert" -#: src/reader.c:1013 src/reader.c:1162 -#, c-format -msgid "$%s is invalid" -msgstr "$%s ist unzulässig" - -#: src/reader.c:1170 +#: src/reader.c:1183 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "unbeendeter %%guard Fall" -#: src/reader.c:1329 +#: src/reader.c:1345 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "" "falsch geformte Regel: führendes Symbol wird nicht von einem Semikolon " "gefolgt" -#: src/reader.c:1336 +#: src/reader.c:1352 msgid "grammar starts with vertical bar" msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an" -#: src/reader.c:1367 +#: src/reader.c:1383 #, c-format msgid "rule given for %s, which is a token" msgstr "Regel für %s vorhanden, welches aber ein Token ist" -#: src/reader.c:1468 +#: src/reader.c:1484 msgid "two @prec's in a row" msgstr "zwei @prec Anweisungen nacheinander" -#: src/reader.c:1478 -#, fuzzy, c-format -msgid "%guard present but %semantic_parser not specified" +#: src/reader.c:1492 +#, fuzzy +msgid "%%guard present but %%semantic_parser not specified" msgstr "" "%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben" -#: src/reader.c:1487 +#: src/reader.c:1501 msgid "two actions at end of one rule" msgstr "Zwei Aktionen am Ende einer Regel" -#: src/reader.c:1501 +#: src/reader.c:1515 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion" -#: src/reader.c:1507 +#: src/reader.c:1521 msgid "empty rule for typed nonterminal, and no action" msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion" -#: src/reader.c:1551 +#: src/reader.c:1565 #, c-format msgid "invalid input: %s" msgstr "ungültige Eingabe: %s" -#: src/reader.c:1559 +#: src/reader.c:1573 #, fuzzy, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "zu viele Symbols (Token plus Nicht-Terminal); Maximum %s" -#: src/reader.c:1562 +#: src/reader.c:1576 msgid "no rules in the input grammar" msgstr "Eingabegrammatik enthält keine Regeln" -#: src/reader.c:1581 +#: src/reader.c:1596 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "Symbol %s wird benutzt, ist aber nicht als Token definiert und hat keine " "Regel" -#: src/reader.c:1686 +#: src/reader.c:1701 #, c-format msgid "conflicting precedences for %s and %s" msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich" -#: src/reader.c:1698 +#: src/reader.c:1713 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "assoc Werte für %s nd %s widersprechen sich" -#: src/reader.c:1749 +#: src/reader.c:1764 #, fuzzy, c-format msgid "tokens %s and %s both assigned number %d" msgstr "Token %s und %s haben die selbe nummer %s" -#: src/reader.c:1762 +#: src/reader.c:1777 #, c-format msgid "the start symbol %s is undefined" msgstr "das Startsymbol %s ist undefiniert" -#: src/reader.c:1764 +#: src/reader.c:1779 #, c-format msgid "the start symbol %s is a token" msgstr "das Startsymbol %s ist ein Token" @@ -738,6 +733,9 @@ msgstr "%s: die Option msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: die Option »--%s« erlaubt kein Argument\n" +#~ msgid "$%s is invalid" +#~ msgstr "$%s ist unzulässig" + #~ msgid "%s: memory exhausted\n" #~ msgstr "%s: Hauptspeicher erschöpft\n" diff --git a/po/es.po b/po/es.po index 9f0cd9a8..eee9378d 100644 --- a/po/es.po +++ b/po/es.po @@ -30,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU bison 1.25\n" -"POT-Creation-Date: 2000-10-04 13:59+0200\n" +"POT-Creation-Date: 2000-10-16 19:27+0200\n" "PO-Revision-Date: 1998-09-21 10:19+0200\n" "Last-Translator: Nicolás García-Pedrajas \n" "Language-Team: Spanish \n" @@ -264,30 +264,30 @@ msgid "too many gotos (max %d)" msgstr "" # to ignore no es ignorar. Pon otra cosa, please. sv -#: src/lex.c:84 +#: src/lex.c:82 msgid "unexpected `/' found and ignored" msgstr "se ha encontrado `/' cuando no se esperaba, no se tendrán en cuenta" -#: src/lex.c:113 src/reader.c:216 +#: src/lex.c:111 src/reader.c:215 msgid "unterminated comment" msgstr "comentario sin terminar" -#: src/lex.c:141 +#: src/lex.c:139 #, fuzzy msgid "unexpected end of file" msgstr "Fin de fichero inesperado" # ¿unescaped? -#: src/lex.c:164 +#: src/lex.c:162 msgid "unescaped newline in constant" msgstr "salto de línea en constante sin secuencia de escape" -#: src/lex.c:206 +#: src/lex.c:204 #, c-format msgid "octal value outside range 0...255: `\\%o'" msgstr "valor octal fuera del rango 0...255: `\\%o'" -#: src/lex.c:231 +#: src/lex.c:229 #, c-format msgid "hexadecimal value above 255: `\\x%x'" msgstr "valor hexadecimal mayor que 255: `\\x%x'" @@ -310,7 +310,7 @@ msgstr "nombre de tipo sin terminar al final del fichero" msgid "unterminated type name" msgstr "nombre de tipo sin terminar" -#: src/main.c:123 +#: src/main.c:104 #, fuzzy, c-format msgid "%s: internal error: %s\n" msgstr "error interno, %s\n" @@ -421,86 +421,86 @@ msgstr " en la izquierda:" msgid " on right:" msgstr " en la derecha:" -#: src/reader.c:81 +#: src/reader.c:80 msgid " Skipping to next \\n" msgstr " Saltando al siguiente \\n" -#: src/reader.c:83 +#: src/reader.c:82 #, c-format msgid " Skipping to next %c" msgstr " Saltando al siguiente %c" -#: src/reader.c:137 src/reader.c:152 +#: src/reader.c:136 src/reader.c:151 msgid "unterminated string at end of file" msgstr "cadena sin terminar al final del fichero" -#: src/reader.c:140 +#: src/reader.c:139 msgid "unterminated string" msgstr "cadena sin terminar" -#: src/reader.c:269 -#, c-format -msgid "@%s is invalid" +#: src/reader.c:271 src/reader.c:1021 src/reader.c:1174 +#, fuzzy, c-format +msgid "%s is invalid" msgstr "@%s no es válido" -#: src/reader.c:318 +#: src/reader.c:321 msgid "unterminated `%{' definition" msgstr "definición `%{' sin terminar" -#: src/reader.c:359 src/reader.c:512 src/reader.c:562 +#: src/reader.c:362 src/reader.c:515 src/reader.c:565 #, c-format msgid "Premature EOF after %s" msgstr "" -#: src/reader.c:376 +#: src/reader.c:379 #, c-format msgid "symbol `%s' used more than once as a literal string" msgstr "" -#: src/reader.c:379 +#: src/reader.c:382 #, c-format msgid "symbol `%s' given more than one literal string" msgstr "" -#: src/reader.c:401 src/reader.c:581 +#: src/reader.c:404 src/reader.c:584 #, c-format msgid "symbol %s redefined" msgstr "redefinido el símbolo %s" -#: src/reader.c:411 src/reader.c:527 src/reader.c:588 src/reader.c:1267 +#: src/reader.c:414 src/reader.c:530 src/reader.c:591 src/reader.c:1280 #, c-format msgid "type redeclaration for %s" msgstr "redeclaración del tipo de %s" -#: src/reader.c:421 +#: src/reader.c:424 #, c-format msgid "`%s' is invalid in %s" msgstr "`%s' no es válido en %s" -#: src/reader.c:438 src/reader.c:635 +#: src/reader.c:441 src/reader.c:638 #, fuzzy, c-format msgid "multiple %s declarations" msgstr "múltiples declaraciones de %start" -#: src/reader.c:440 src/reader.c:1245 +#: src/reader.c:443 src/reader.c:1258 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "declaración de %start no válida" -#: src/reader.c:463 src/reader.c:475 +#: src/reader.c:466 src/reader.c:478 msgid "invalid $ value" msgstr "valor $ no válido" -#: src/reader.c:497 +#: src/reader.c:500 msgid "%type declaration has no " msgstr "la declaración %type no tiene " -#: src/reader.c:532 +#: src/reader.c:535 #, fuzzy msgid "invalid %%type declaration due to item: %s" msgstr "declaración de %%type no válida debido al ítem: `%s'" -#: src/reader.c:577 +#: src/reader.c:580 #, c-format msgid "redefining precedence of %s" msgstr "redefinición de la precedencia de %s" @@ -509,7 +509,7 @@ msgstr "redefinici # de "to must" y aquí se emplea en su forma condicional. Por eso, he # cambiado `debe' por `debería' - cll # ahí me has pillado en un olvido del inglés - ngp -#: src/reader.c:601 +#: src/reader.c:604 #, c-format msgid "invalid text (%s) - number should be after identifier" msgstr "" @@ -519,18 +519,18 @@ msgstr "" # otras, como `inesperado'. Cualquiera es correcta, por supuesto y, en # este caso, la segunda me parece más apropiada - cll # ok - ngp -#: src/reader.c:611 +#: src/reader.c:614 #, c-format msgid "unexpected item: %s" msgstr "ítem inesperado: %s" # Cambio el orden y el sexo. Ahora está "en español". sv -#: src/reader.c:676 src/reader.c:1022 src/reader.c:1094 +#: src/reader.c:679 src/reader.c:1031 src/reader.c:1103 #, fuzzy, c-format msgid "unmatched %s" msgstr "`{' desemparejada" -#: src/reader.c:724 +#: src/reader.c:727 #, c-format msgid "argument of %expect is not an integer" msgstr "el argumento de %expect no es un entero" @@ -541,136 +541,131 @@ msgstr "el argumento de %expect no es un entero" # - cll # ok - ngp # -#: src/reader.c:770 +#: src/reader.c:773 #, c-format msgid "unrecognized item %s, expected an identifier" msgstr "no se reconoce el ítem %s, se esperaba un identificador" -#: src/reader.c:794 +#: src/reader.c:797 #, c-format msgid "expected string constant instead of %s" msgstr "se esperaba una cadena constante en lugar de %s" -#: src/reader.c:893 +#: src/reader.c:896 #, c-format msgid "unrecognized: %s" msgstr "no reconocido: %s" -#: src/reader.c:898 +#: src/reader.c:901 msgid "no input grammar" msgstr "no hay gramática de entrada" -#: src/reader.c:901 +#: src/reader.c:906 #, c-format msgid "unknown character: %s" msgstr "carácter desconocido: %s" -#: src/reader.c:992 src/reader.c:1141 +#: src/reader.c:997 src/reader.c:1150 #, c-format msgid "$$ of `%s' has no declared type" msgstr "$$ de `%s' no tiene tipo declarado" -#: src/reader.c:1008 src/reader.c:1157 +#: src/reader.c:1013 src/reader.c:1166 #, fuzzy, c-format msgid "$%d of `%s' has no declared type" msgstr "$%s de `%s' no tiene tipo declarado" -#: src/reader.c:1013 src/reader.c:1162 -#, c-format -msgid "$%s is invalid" -msgstr "$%s no es válida" - # Tal vez pueda parecer pedante, pero `inconclusa' me suena muchísimo # mejor que `sin terminar' que me parece más "computerizado" - cll # quizás un poco cacofónico lo de claúsula inconclusa - ngp # -#: src/reader.c:1170 +#: src/reader.c:1183 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "cláusula %%guard sin terminar" -#: src/reader.c:1329 +#: src/reader.c:1345 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "regla mal formada: el símbolo inicial no está seguido por :" -#: src/reader.c:1336 +#: src/reader.c:1352 msgid "grammar starts with vertical bar" msgstr "la gramática comienza con una barra vertical" -#: src/reader.c:1367 +#: src/reader.c:1383 #, c-format msgid "rule given for %s, which is a token" msgstr "se ha dado una regla para %s, que es un terminal" -#: src/reader.c:1468 +#: src/reader.c:1484 msgid "two @prec's in a row" msgstr "dos @prec en una línea" # Insisto, el empleo de participios a secas me parece como hablar en # indio. Por favor, permíteme que añada un "está" :) - cll # ok - ngp -#: src/reader.c:1478 -#, fuzzy, c-format -msgid "%guard present but %semantic_parser not specified" +#: src/reader.c:1492 +#, fuzzy +msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard presente pero %%semantic_parser está sin especificar" -#: src/reader.c:1487 +#: src/reader.c:1501 msgid "two actions at end of one rule" msgstr "dos acciones al final de una regla" -#: src/reader.c:1501 +#: src/reader.c:1515 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "los tipos (`%s' `%s') no concuerdan en la acción por defecto" -#: src/reader.c:1507 +#: src/reader.c:1521 msgid "empty rule for typed nonterminal, and no action" msgstr "regla vacía para un no terminal con tipo y no hay ninguna acción" -#: src/reader.c:1551 +#: src/reader.c:1565 #, c-format msgid "invalid input: %s" msgstr "entrada no válida: %s" -#: src/reader.c:1559 +#: src/reader.c:1573 #, fuzzy, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "demasiados símbolos (terminales y no terminales); máximo %s" -#: src/reader.c:1562 +#: src/reader.c:1576 msgid "no rules in the input grammar" msgstr "no hay reglas en la gramática de entrada" # `token' se debe traducir como `literal' - cll # en terminología de compiladores token es más un terminal - ngp # -#: src/reader.c:1581 +#: src/reader.c:1596 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "se usa el símbolo %s, pero no está definido como terminal y no tiene reglas" -#: src/reader.c:1686 +#: src/reader.c:1701 #, c-format msgid "conflicting precedences for %s and %s" msgstr "precedencias en conflicto entre %s y %s" -#: src/reader.c:1698 +#: src/reader.c:1713 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "conflicto de valores assoc para %s y %s" -#: src/reader.c:1749 +#: src/reader.c:1764 #, fuzzy, c-format msgid "tokens %s and %s both assigned number %d" msgstr "los terminales %s y %s tienen asignados ambos el número %s" -#: src/reader.c:1762 +#: src/reader.c:1777 #, c-format msgid "the start symbol %s is undefined" msgstr "el símbolo de inicio (axioma) %s no está definido" -#: src/reader.c:1764 +#: src/reader.c:1779 #, c-format msgid "the start symbol %s is a token" msgstr "el símbolo de inicio (axioma) %s es un terminal" @@ -866,6 +861,9 @@ msgstr "%s: la opci msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: la opción `--%s' no admite ningún argumento\n" +#~ msgid "$%s is invalid" +#~ msgstr "$%s no es válida" + #~ msgid "%s: memory exhausted\n" #~ msgstr "%s: memoria agotada\n" diff --git a/po/et.po b/po/et.po index 62604677..4ab8eaa0 100644 --- a/po/et.po +++ b/po/et.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-10-04 13:59+0200\n" +"POT-Creation-Date: 2000-10-16 19:27+0200\n" "PO-Revision-Date: 2000-04-11 22:19+02:00\n" "Last-Translator: Toomas Soome \n" "Language-Team: Estonian \n" @@ -229,28 +229,28 @@ msgstr "%s: ignoreerin lisaargumente peale `%s'\n" msgid "too many gotos (max %d)" msgstr "liiga palju gotosid (maks %d)" -#: src/lex.c:84 +#: src/lex.c:82 msgid "unexpected `/' found and ignored" msgstr "leidsin ja ignoreerin ootamatu `/'" -#: src/lex.c:113 src/reader.c:216 +#: src/lex.c:111 src/reader.c:215 msgid "unterminated comment" msgstr "lõpetamata kommentaar" -#: src/lex.c:141 +#: src/lex.c:139 msgid "unexpected end of file" msgstr "ootamatu faililõpp" -#: src/lex.c:164 +#: src/lex.c:162 msgid "unescaped newline in constant" msgstr "paojadata reavahetus konstandis" -#: src/lex.c:206 +#: src/lex.c:204 #, c-format msgid "octal value outside range 0...255: `\\%o'" msgstr "kaheksandväärtus väljaspool piire 0...255: `\\%o'" -#: src/lex.c:231 +#: src/lex.c:229 #, c-format msgid "hexadecimal value above 255: `\\x%x'" msgstr "kuueteistkümnendväärtus suurem, kui above 255: `\\x%x'" @@ -272,7 +272,7 @@ msgstr "l msgid "unterminated type name" msgstr "lõpetamata tüübinimi" -#: src/main.c:123 +#: src/main.c:104 #, c-format msgid "%s: internal error: %s\n" msgstr "%s: sisemine viga: %s\n" @@ -374,230 +374,225 @@ msgstr " vasakul:" msgid " on right:" msgstr " paremal:" -#: src/reader.c:81 +#: src/reader.c:80 msgid " Skipping to next \\n" msgstr " Liigun järgmisele \\n" -#: src/reader.c:83 +#: src/reader.c:82 #, c-format msgid " Skipping to next %c" msgstr " Liigun järgmisele %c" -#: src/reader.c:137 src/reader.c:152 +#: src/reader.c:136 src/reader.c:151 msgid "unterminated string at end of file" msgstr "lõpetamata sõne faili lõpus" -#: src/reader.c:140 +#: src/reader.c:139 msgid "unterminated string" msgstr "lõpetamata sõne" -#: src/reader.c:269 -#, c-format -msgid "@%s is invalid" +#: src/reader.c:271 src/reader.c:1021 src/reader.c:1174 +#, fuzzy, c-format +msgid "%s is invalid" msgstr "@%s on vigane" -#: src/reader.c:318 +#: src/reader.c:321 msgid "unterminated `%{' definition" msgstr "lõpetamata `%{' definitsioon" -#: src/reader.c:359 src/reader.c:512 src/reader.c:562 +#: src/reader.c:362 src/reader.c:515 src/reader.c:565 #, c-format msgid "Premature EOF after %s" msgstr "Enneaegne EOF peale %s" -#: src/reader.c:376 +#: src/reader.c:379 #, c-format msgid "symbol `%s' used more than once as a literal string" msgstr "" -#: src/reader.c:379 +#: src/reader.c:382 #, c-format msgid "symbol `%s' given more than one literal string" msgstr "" -#: src/reader.c:401 src/reader.c:581 +#: src/reader.c:404 src/reader.c:584 #, c-format msgid "symbol %s redefined" msgstr "sümbol %s on uuesti defineeritud" -#: src/reader.c:411 src/reader.c:527 src/reader.c:588 src/reader.c:1267 +#: src/reader.c:414 src/reader.c:530 src/reader.c:591 src/reader.c:1280 #, c-format msgid "type redeclaration for %s" msgstr "%s tüübi uuesti deklareerimine" -#: src/reader.c:421 +#: src/reader.c:424 #, c-format msgid "`%s' is invalid in %s" msgstr "`%s' ei ole %s sees lubatud" -#: src/reader.c:438 src/reader.c:635 +#: src/reader.c:441 src/reader.c:638 #, fuzzy, c-format msgid "multiple %s declarations" msgstr "korduvad %start deklaratsioonid" -#: src/reader.c:440 src/reader.c:1245 +#: src/reader.c:443 src/reader.c:1258 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "vigane %start deklaratsioon" -#: src/reader.c:463 src/reader.c:475 +#: src/reader.c:466 src/reader.c:478 msgid "invalid $ value" msgstr "vigane $ väärtus" -#: src/reader.c:497 +#: src/reader.c:500 msgid "%type declaration has no " msgstr "%type deklaratsioonis puudub " -#: src/reader.c:532 +#: src/reader.c:535 msgid "invalid %%type declaration due to item: %s" msgstr "vigane %%type deklaratsioon, element: %s" -#: src/reader.c:577 +#: src/reader.c:580 #, c-format msgid "redefining precedence of %s" msgstr "%s prioriteedi uus definitsioon" -#: src/reader.c:601 +#: src/reader.c:604 #, c-format msgid "invalid text (%s) - number should be after identifier" msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit" -#: src/reader.c:611 +#: src/reader.c:614 #, c-format msgid "unexpected item: %s" msgstr "ootamatu element: %s" -#: src/reader.c:676 src/reader.c:1022 src/reader.c:1094 +#: src/reader.c:679 src/reader.c:1031 src/reader.c:1103 #, fuzzy, c-format msgid "unmatched %s" msgstr "puudub `{'" -#: src/reader.c:724 +#: src/reader.c:727 #, c-format msgid "argument of %expect is not an integer" msgstr "%expect argument ei ole täisarv" -#: src/reader.c:770 +#: src/reader.c:773 #, c-format msgid "unrecognized item %s, expected an identifier" msgstr "tundmatu element %s, eeldasin identifikaatorit" -#: src/reader.c:794 +#: src/reader.c:797 #, c-format msgid "expected string constant instead of %s" msgstr "eeldasin %s asemel sõnekonstanti" -#: src/reader.c:893 +#: src/reader.c:896 #, c-format msgid "unrecognized: %s" msgstr "tundmatu: %s" -#: src/reader.c:898 +#: src/reader.c:901 msgid "no input grammar" msgstr "sisendgrammatikat pole" -#: src/reader.c:901 +#: src/reader.c:906 #, c-format msgid "unknown character: %s" msgstr "tundmatu sümbol: %s" -#: src/reader.c:992 src/reader.c:1141 +#: src/reader.c:997 src/reader.c:1150 #, c-format msgid "$$ of `%s' has no declared type" msgstr "`%s' $$ ei oma deklareeritud tüüpi" -#: src/reader.c:1008 src/reader.c:1157 +#: src/reader.c:1013 src/reader.c:1166 #, c-format msgid "$%d of `%s' has no declared type" msgstr "$%d `%s' ei oma deklareeritud tüüpi" -#: src/reader.c:1013 src/reader.c:1162 -#, c-format -msgid "$%s is invalid" -msgstr "$%s on vigane" - -#: src/reader.c:1170 +#: src/reader.c:1183 #, c-format msgid "unterminated %guard clause" msgstr "lõpetamata %guard klausel" -#: src/reader.c:1329 +#: src/reader.c:1345 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit" -#: src/reader.c:1336 +#: src/reader.c:1352 msgid "grammar starts with vertical bar" msgstr "grammatika algab püstkriipsuga" -#: src/reader.c:1367 +#: src/reader.c:1383 #, 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:1468 +#: src/reader.c:1484 msgid "two @prec's in a row" msgstr "kaks @prec ühel real" -#: src/reader.c:1478 -#, c-format -msgid "%guard present but %semantic_parser not specified" +#: src/reader.c:1492 +#, fuzzy +msgid "%%guard present but %%semantic_parser not specified" msgstr "%guard on määratud, aga %semantic_parser ei ole" -#: src/reader.c:1487 +#: src/reader.c:1501 msgid "two actions at end of one rule" msgstr "kaks tegevust ühe reegli lõpus" -#: src/reader.c:1501 +#: src/reader.c:1515 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')" -#: src/reader.c:1507 +#: src/reader.c:1521 msgid "empty rule for typed nonterminal, and no action" msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus" -#: src/reader.c:1551 +#: src/reader.c:1565 #, c-format msgid "invalid input: %s" msgstr "vigane sisend: %s" -#: src/reader.c:1559 +#: src/reader.c:1573 #, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d" -#: src/reader.c:1562 +#: src/reader.c:1576 msgid "no rules in the input grammar" msgstr "sisendgrammatikas pole reegleid" -#: src/reader.c:1581 +#: src/reader.c:1596 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad " "reeglid" -#: src/reader.c:1686 +#: src/reader.c:1701 #, c-format msgid "conflicting precedences for %s and %s" msgstr "%s ja %s omavad konfliktseid prioriteete" -#: src/reader.c:1698 +#: src/reader.c:1713 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid" -#: src/reader.c:1749 +#: src/reader.c:1764 #, c-format msgid "tokens %s and %s both assigned number %d" msgstr "märkidele %s ja %s on mõlemale omistatud number %d" -#: src/reader.c:1762 +#: src/reader.c:1777 #, c-format msgid "the start symbol %s is undefined" msgstr "stardisümbol %s ei ole defineeritud" -#: src/reader.c:1764 +#: src/reader.c:1779 #, c-format msgid "the start symbol %s is a token" msgstr "stardisümbol %s on märk" @@ -757,6 +752,9 @@ msgstr "%s: v msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: võti `-W %s' ei luba argumenti\n" +#~ msgid "$%s is invalid" +#~ msgstr "$%s on vigane" + #~ msgid "%s: memory exhausted\n" #~ msgstr "%s: mälu on otsas\n" diff --git a/po/fr.po b/po/fr.po index d4280b1f..528a7db2 100644 --- a/po/fr.po +++ b/po/fr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-10-04 13:59+0200\n" +"POT-Creation-Date: 2000-10-16 19:27+0200\n" "PO-Revision-Date: 1996-03-19 20:05 EST\n" "Last-Translator: Dominique Boucher \n" "Language-Team: French \n" @@ -211,29 +211,29 @@ msgstr "%s: param msgid "too many gotos (max %d)" msgstr "" -#: src/lex.c:84 +#: src/lex.c:82 msgid "unexpected `/' found and ignored" msgstr "`/' inattendu et ignoré" -#: src/lex.c:113 src/reader.c:216 +#: src/lex.c:111 src/reader.c:215 msgid "unterminated comment" msgstr "le commentaire ne se termine pas" -#: src/lex.c:141 +#: src/lex.c:139 #, fuzzy msgid "unexpected end of file" msgstr "Fin de fichier inattendue" -#: src/lex.c:164 +#: src/lex.c:162 msgid "unescaped newline in constant" msgstr "retour de chariot sans échappement dans une constante" -#: src/lex.c:206 +#: src/lex.c:204 #, c-format msgid "octal value outside range 0...255: `\\%o'" msgstr "valeur octale à l'extérieur de l'intervalle 0...255: \\%o" -#: src/lex.c:231 +#: src/lex.c:229 #, c-format msgid "hexadecimal value above 255: `\\x%x'" msgstr "valeur hexadécimale supérieure à 255: \\x%x" @@ -255,7 +255,7 @@ msgstr "le nom de type ne se termine pas avant la fin de fichier" msgid "unterminated type name" msgstr "le nom de type ne se termine pas" -#: src/main.c:123 +#: src/main.c:104 #, fuzzy, c-format msgid "%s: internal error: %s\n" msgstr "erreur interne, %s\n" @@ -357,232 +357,227 @@ msgstr " msgid " on right:" msgstr " à droite:" -#: src/reader.c:81 +#: src/reader.c:80 msgid " Skipping to next \\n" msgstr " Saut jusqu'au prochain \\n" -#: src/reader.c:83 +#: src/reader.c:82 #, c-format msgid " Skipping to next %c" msgstr " Saut jusqu'au prochain %c" -#: src/reader.c:137 src/reader.c:152 +#: src/reader.c:136 src/reader.c:151 msgid "unterminated string at end of file" msgstr "chaîne de caractères non terminée en fin de fichier" -#: src/reader.c:140 +#: src/reader.c:139 msgid "unterminated string" msgstr "chaîne de caractère non terminée" -#: src/reader.c:269 -#, c-format -msgid "@%s is invalid" +#: src/reader.c:271 src/reader.c:1021 src/reader.c:1174 +#, fuzzy, c-format +msgid "%s is invalid" msgstr "@%s n'est pas valide" -#: src/reader.c:318 +#: src/reader.c:321 msgid "unterminated `%{' definition" msgstr "La section de définition (%{) ne termine pas avant la fin du fichier" -#: src/reader.c:359 src/reader.c:512 src/reader.c:562 +#: src/reader.c:362 src/reader.c:515 src/reader.c:565 #, c-format msgid "Premature EOF after %s" msgstr "" -#: src/reader.c:376 +#: src/reader.c:379 #, c-format msgid "symbol `%s' used more than once as a literal string" msgstr "" -#: src/reader.c:379 +#: src/reader.c:382 #, c-format msgid "symbol `%s' given more than one literal string" msgstr "" -#: src/reader.c:401 src/reader.c:581 +#: src/reader.c:404 src/reader.c:584 #, c-format msgid "symbol %s redefined" msgstr "symbole %s redéfini" -#: src/reader.c:411 src/reader.c:527 src/reader.c:588 src/reader.c:1267 +#: src/reader.c:414 src/reader.c:530 src/reader.c:591 src/reader.c:1280 #, c-format msgid "type redeclaration for %s" msgstr "redéclaration du type de %s" -#: src/reader.c:421 +#: src/reader.c:424 #, c-format msgid "`%s' is invalid in %s" msgstr "`%s' n'est pas valide dans %s" -#: src/reader.c:438 src/reader.c:635 +#: src/reader.c:441 src/reader.c:638 #, fuzzy, c-format msgid "multiple %s declarations" msgstr "multiples déclarations %start" -#: src/reader.c:440 src/reader.c:1245 +#: src/reader.c:443 src/reader.c:1258 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "la déclaration %start n'est pas valide" -#: src/reader.c:463 src/reader.c:475 +#: src/reader.c:466 src/reader.c:478 msgid "invalid $ value" msgstr "la valeur de symbole $ n'est pas valide" -#: src/reader.c:497 +#: src/reader.c:500 msgid "%type declaration has no " msgstr "la déclaration %type n'a pas de " -#: src/reader.c:532 +#: src/reader.c:535 #, fuzzy msgid "invalid %%type declaration due to item: %s" msgstr "la déclaration %%type n'est pas valide à cause de l'item: %s" -#: src/reader.c:577 +#: src/reader.c:580 #, c-format msgid "redefining precedence of %s" msgstr "redéfinition du niveau de priorité de %s" -#: src/reader.c:601 +#: src/reader.c:604 #, c-format msgid "invalid text (%s) - number should be after identifier" msgstr "" "le texte n'est pas valide (%s) - le nombre devrait suivre l'identificateur" -#: src/reader.c:611 +#: src/reader.c:614 #, c-format msgid "unexpected item: %s" msgstr "item inattendu: %s" -#: src/reader.c:676 src/reader.c:1022 src/reader.c:1094 +#: src/reader.c:679 src/reader.c:1031 src/reader.c:1103 #, fuzzy, c-format msgid "unmatched %s" msgstr "accolade ouvrante `{' non appariée" -#: src/reader.c:724 +#: src/reader.c:727 #, c-format msgid "argument of %expect is not an integer" msgstr "le paramètre de %expect n'est pas un entier" -#: src/reader.c:770 +#: src/reader.c:773 #, c-format msgid "unrecognized item %s, expected an identifier" msgstr "item %s non reconnu, un identificateur est attendu" -#: src/reader.c:794 +#: src/reader.c:797 #, c-format msgid "expected string constant instead of %s" msgstr "chaîne de caractères constante attendue plutôt que %s" -#: src/reader.c:893 +#: src/reader.c:896 #, c-format msgid "unrecognized: %s" msgstr "non reconnu: %s" -#: src/reader.c:898 +#: src/reader.c:901 msgid "no input grammar" msgstr "aucune grammaire en entrée" -#: src/reader.c:901 +#: src/reader.c:906 #, c-format msgid "unknown character: %s" msgstr "caractère inconnu: %s" -#: src/reader.c:992 src/reader.c:1141 +#: src/reader.c:997 src/reader.c:1150 #, c-format msgid "$$ of `%s' has no declared type" msgstr "$$ de `%s' n'a pas son type déclaré" -#: src/reader.c:1008 src/reader.c:1157 +#: src/reader.c:1013 src/reader.c:1166 #, fuzzy, c-format msgid "$%d of `%s' has no declared type" msgstr "$%s cd `%s' n'a pas son type déclaré" -#: src/reader.c:1013 src/reader.c:1162 -#, c-format -msgid "$%s is invalid" -msgstr "$%s n'est pas valide" - -#: src/reader.c:1170 +#: src/reader.c:1183 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "clause %%guard non terminée" -#: src/reader.c:1329 +#: src/reader.c:1345 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "règle mal formée: le symbole initial n'est pas suivi de `:'" -#: src/reader.c:1336 +#: src/reader.c:1352 msgid "grammar starts with vertical bar" msgstr "la grammaire débute par une barre verticale" -#: src/reader.c:1367 +#: src/reader.c:1383 #, c-format msgid "rule given for %s, which is a token" msgstr "la règle pour %s, qui est un terminal" -#: src/reader.c:1468 +#: src/reader.c:1484 msgid "two @prec's in a row" msgstr "deux @prec de suite" -#: src/reader.c:1478 -#, fuzzy, c-format -msgid "%guard present but %semantic_parser not specified" +#: src/reader.c:1492 +#, fuzzy +msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard est présent mais %%semantic_parser n'est pas spécifié" -#: src/reader.c:1487 +#: src/reader.c:1501 msgid "two actions at end of one rule" msgstr "deux actions à la fin d'une même règle" -#: src/reader.c:1501 +#: src/reader.c:1515 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "conflit de type (`%s' `%s') pour l'action par défaut" -#: src/reader.c:1507 +#: src/reader.c:1521 msgid "empty rule for typed nonterminal, and no action" msgstr "règle vide pour une catégorie typée et aucune action" -#: src/reader.c:1551 +#: src/reader.c:1565 #, c-format msgid "invalid input: %s" msgstr "entrée non valide: %s" -#: src/reader.c:1559 +#: src/reader.c:1573 #, fuzzy, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "trop de symboles (terminaux et catégories); maximum de %s" -#: src/reader.c:1562 +#: src/reader.c:1576 msgid "no rules in the input grammar" msgstr "la grammaire n'a pas de règles" -#: src/reader.c:1581 +#: src/reader.c:1596 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "le symbole %s est utilisé mais ce n'est pas un terminal et il ne possède pas " "de règle" -#: src/reader.c:1686 +#: src/reader.c:1701 #, c-format msgid "conflicting precedences for %s and %s" msgstr "les priorités pour %s et %s entrent en conflit" -#: src/reader.c:1698 +#: src/reader.c:1713 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "les valeurs d'association de %s et %s entrent en conflit" -#: src/reader.c:1749 +#: src/reader.c:1764 #, fuzzy, c-format msgid "tokens %s and %s both assigned number %d" msgstr "les terminaux %s et %s se sont vus assigner le nombre %s" -#: src/reader.c:1762 +#: src/reader.c:1777 #, c-format msgid "the start symbol %s is undefined" msgstr "le symbole de départ %s n'est pas défini" -#: src/reader.c:1764 +#: src/reader.c:1779 #, c-format msgid "the start symbol %s is a token" msgstr "le symbole de départ %s est un terminal" @@ -742,6 +737,9 @@ msgstr "%s: l'option %s est ambig msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'option --%s n'admet pas de paramètre\n" +#~ msgid "$%s is invalid" +#~ msgstr "$%s n'est pas valide" + #~ msgid "%s: memory exhausted\n" #~ msgstr "%s: mémoire épuisée\n" diff --git a/po/ja.po b/po/ja.po index 0e6f9e9f..05da8ae1 100644 --- a/po/ja.po +++ b/po/ja.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU bison 1.28\n" -"POT-Creation-Date: 2000-10-04 13:59+0200\n" +"POT-Creation-Date: 2000-10-16 19:27+0200\n" "PO-Revision-Date: 1999-09-28 21:10+0900\n" "Last-Translator: Daisuke Yamashita \n" "Language-Team: Japanese \n" @@ -210,29 +210,29 @@ msgstr "%s: '%s' msgid "too many gotos (max %d)" msgstr "%s ¤Î¿ô¤¬Â¿¤¹¤®¤Þ¤¹ (ºÇÂç %d)" -#: src/lex.c:84 +#: src/lex.c:82 msgid "unexpected `/' found and ignored" msgstr "ͽ´ü¤·¤Ê¤¤ `/' ¤¬¸«¤Ä¤«¤ê¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿" -#: src/lex.c:113 src/reader.c:216 +#: src/lex.c:111 src/reader.c:215 msgid "unterminated comment" msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥È¤Ç¤¹" -#: src/lex.c:141 +#: src/lex.c:139 #, fuzzy msgid "unexpected end of file" msgstr "ͽ´ü¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ç¤¹" -#: src/lex.c:164 +#: src/lex.c:162 msgid "unescaped newline in constant" msgstr "Äê¿ô¤ÎÃæ¤Ë¥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤¤²þ¹Ô¤¬¤¢¤ê¤Þ¤¹" -#: src/lex.c:206 +#: src/lex.c:204 #, c-format msgid "octal value outside range 0...255: `\\%o'" msgstr "8 ¿Ê¿ô¤ÎÃͤ¬ 0...255 ¤ÎÈϰϳ°¤Ç¤¹: `\\%o'" -#: src/lex.c:231 +#: src/lex.c:229 #, c-format msgid "hexadecimal value above 255: `\\x%x'" msgstr "16 ¿Ê¿ô¤ÎÃͤ¬ 255 ¤ò±Û¤¨¤Æ¤¤¤Þ¤¹: `\\x%x'" @@ -254,7 +254,7 @@ msgstr " msgid "unterminated type name" msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤¥¿¥¤¥×̾¤¬¤¢¤ê¤Þ¤¹" -#: src/main.c:123 +#: src/main.c:104 #, c-format msgid "%s: internal error: %s\n" msgstr "%s: ÆâÉô¥¨¥é¡¼: %s\n" @@ -356,231 +356,226 @@ msgstr " msgid " on right:" msgstr " ±¦ÊÕ:" -#: src/reader.c:81 +#: src/reader.c:80 msgid " Skipping to next \\n" msgstr " ¼¡¤Î \\n ¤Ë¥¹¥­¥Ã¥×" -#: src/reader.c:83 +#: src/reader.c:82 #, c-format msgid " Skipping to next %c" msgstr " ¼¡¤Î %c ¤Ë¥¹¥­¥Ã¥×" -#: src/reader.c:137 src/reader.c:152 +#: src/reader.c:136 src/reader.c:151 msgid "unterminated string at end of file" msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎ󤬥ե¡¥¤¥ëËöÈø¤Ë¤¢¤ê¤Þ¤¹" -#: src/reader.c:140 +#: src/reader.c:139 msgid "unterminated string" msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎó" -#: src/reader.c:269 -#, c-format -msgid "@%s is invalid" +#: src/reader.c:271 src/reader.c:1021 src/reader.c:1174 +#, fuzzy, c-format +msgid "%s is invalid" msgstr "@%s ¤Ï̵¸ú¤Ç¤¹" -#: src/reader.c:318 +#: src/reader.c:321 msgid "unterminated `%{' definition" msgstr "`%{' ÄêµÁ ¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:359 src/reader.c:512 src/reader.c:562 +#: src/reader.c:362 src/reader.c:515 src/reader.c:565 #, c-format msgid "Premature EOF after %s" msgstr "" -#: src/reader.c:376 +#: src/reader.c:379 #, c-format msgid "symbol `%s' used more than once as a literal string" msgstr "" -#: src/reader.c:379 +#: src/reader.c:382 #, c-format msgid "symbol `%s' given more than one literal string" msgstr "" -#: src/reader.c:401 src/reader.c:581 +#: src/reader.c:404 src/reader.c:584 #, c-format msgid "symbol %s redefined" msgstr "¥·¥ó¥Ü¥ë %s ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" -#: src/reader.c:411 src/reader.c:527 src/reader.c:588 src/reader.c:1267 +#: src/reader.c:414 src/reader.c:530 src/reader.c:591 src/reader.c:1280 #, c-format msgid "type redeclaration for %s" msgstr "%s ¤Î·¿¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" -#: src/reader.c:421 +#: src/reader.c:424 #, c-format msgid "`%s' is invalid in %s" msgstr "%2$s Æâ¤Î `%1$s' ¤Ï̵¸ú¤Ç¤¹" -#: src/reader.c:438 src/reader.c:635 +#: src/reader.c:441 src/reader.c:638 #, fuzzy, c-format msgid "multiple %s declarations" msgstr "Ê£¿ô¤Î %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿" -#: src/reader.c:440 src/reader.c:1245 +#: src/reader.c:443 src/reader.c:1258 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "̵¸ú¤Ê %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿" -#: src/reader.c:463 src/reader.c:475 +#: src/reader.c:466 src/reader.c:478 msgid "invalid $ value" msgstr "̵¸ú¤Ê $ ¤ÎÃÍ" -#: src/reader.c:497 +#: src/reader.c:500 msgid "%type declaration has no " msgstr "%type Àë¸À¤Ë <¥¿¥¤¥×̾> ¤¬¤¢¤ê¤Þ¤»¤ó" -#: src/reader.c:532 +#: src/reader.c:535 #, fuzzy msgid "invalid %%type declaration due to item: %s" msgstr "¥¢¥¤¥Æ¥à¤ËÍ¿¤¨¤é¤ì¤ë¤Ù¤­ %%type Àë¸À¤¬Ìµ¸ú¤Ç¤¹: `%s'" -#: src/reader.c:577 +#: src/reader.c:580 #, c-format msgid "redefining precedence of %s" msgstr "%s ¤ËÀè¹Ô¤·¤¿ºÆÄêµÁ¤Ç¤¹" -#: src/reader.c:601 +#: src/reader.c:604 #, c-format msgid "invalid text (%s) - number should be after identifier" msgstr "̵¸ú¤Ê¥Æ¥­¥¹¥È (%s) - ¿ôÃͤϼ±Ê̻Ҥθå¤í¤Ë¤¢¤ë¤Ù¤­¤Ç¤¹" -#: src/reader.c:611 +#: src/reader.c:614 #, c-format msgid "unexpected item: %s" msgstr "ͽ´ü¤»¤Ì¥¢¥¤¥Æ¥à: %s" -#: src/reader.c:676 src/reader.c:1022 src/reader.c:1094 +#: src/reader.c:679 src/reader.c:1031 src/reader.c:1103 #, fuzzy, c-format msgid "unmatched %s" msgstr "Âбþ¤Î¤Ê¤¤ `{' ¤Ç¤¹" -#: src/reader.c:724 +#: src/reader.c:727 #, c-format msgid "argument of %expect is not an integer" msgstr "%expect ¤Î°ú¿ô¤¬À°¿ôÃͤǤϤ¢¤ê¤Þ¤»¤ó" -#: src/reader.c:770 +#: src/reader.c:773 #, c-format msgid "unrecognized item %s, expected an identifier" msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥¢¥¤¥Æ¥à %s¡¢¤³¤³¤Ç¤Ï¼±Ê̻Ҥ¬´üÂÔ¤µ¤ì¤Þ¤¹" -#: src/reader.c:794 +#: src/reader.c:797 #, c-format msgid "expected string constant instead of %s" msgstr "¤³¤³¤Ç¤Ï %s ¤Ç¤Ï¤Ê¤¯Ê¸»úÎóÄê¿ô¤¬´üÂÔ¤µ¤ì¤Þ¤¹" -#: src/reader.c:893 +#: src/reader.c:896 #, c-format msgid "unrecognized: %s" msgstr "ǧ¼±¤Ç¤­¤Ê¤¤: %s" -#: src/reader.c:898 +#: src/reader.c:901 msgid "no input grammar" msgstr "ʸˡ¤ÎÆþÎϤ¬Ìµ¤¤" -#: src/reader.c:901 +#: src/reader.c:906 #, c-format msgid "unknown character: %s" msgstr "̤ÃΤÎʸ»ú: %s" -#: src/reader.c:992 src/reader.c:1141 +#: src/reader.c:997 src/reader.c:1150 #, c-format msgid "$$ of `%s' has no declared type" msgstr "`%s' ¤Î $$ ¤ËÀë¸À¤Î¤Ê¤¤·¿¤¬¤¢¤ê¤Þ¤¹" -#: src/reader.c:1008 src/reader.c:1157 +#: src/reader.c:1013 src/reader.c:1166 #, fuzzy, c-format msgid "$%d of `%s' has no declared type" msgstr "`%s' ¤Î $%s ¤ËÀë¸À¤Î¤Ê¤¤·¿¤¬¤¢¤ê¤Þ¤¹" -#: src/reader.c:1013 src/reader.c:1162 -#, c-format -msgid "$%s is invalid" -msgstr "$%s ¤Ï̵¸ú¤Ç¤¹" - -#: src/reader.c:1170 +#: src/reader.c:1183 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤ %%guard Àá¤Ç¤¹" -#: src/reader.c:1329 +#: src/reader.c:1345 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "¼Ù°­¤Êµ¬Â§: ½é´ü²½¥·¥ó¥Ü¥ë¤Ë¥³¥í¥ó (:) ¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1336 +#: src/reader.c:1352 msgid "grammar starts with vertical bar" msgstr "ʸˡ¤Ï½ÄËÀ (|) ¤Ç»Ï¤á¤Þ¤¹" -#: src/reader.c:1367 +#: src/reader.c:1383 #, c-format msgid "rule given for %s, which is a token" msgstr "%s ¤Ëµ¬Â§¤¬Í¿¤¨¤é¤ì¡¢¤½¤ì¤Ï¥È¡¼¥¯¥ó¤È¤Ê¤ê¤Þ¤¹" -#: src/reader.c:1468 +#: src/reader.c:1484 msgid "two @prec's in a row" msgstr "@prec ¤Î¤â¤ÎÆó¤Ä¤¬Æ±Îó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1478 -#, fuzzy, c-format -msgid "%guard present but %semantic_parser not specified" +#: src/reader.c:1492 +#, fuzzy +msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard ¤¬¤¢¤ê¤Þ¤¹¤¬ %%semantic_parser ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1487 +#: src/reader.c:1501 msgid "two actions at end of one rule" msgstr "°ì¤Ä¤Îµ¬Â§¤Î½ª¤ê¤ËÆó¤Ä¤ÎÆ°ºî¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1501 +#: src/reader.c:1515 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "½é´ü¾õÂÖ¤ÎÆ°ºî¤Ç¤Ï·¿ (`%s' `%s') ¤¬¾×Æͤ·¤Þ¤¹" -#: src/reader.c:1507 +#: src/reader.c:1521 msgid "empty rule for typed nonterminal, and no action" msgstr "¶õ¤Î·¿ÉÕ¤­Èó½ªÃ¼¥¢¥¤¥Æ¥àÍѵ¬Â§¤Ç¤¢¤ê¡¢Æ°ºî¤¬µ¯¤ê¤Þ¤»¤ó" -#: src/reader.c:1551 +#: src/reader.c:1565 #, c-format msgid "invalid input: %s" msgstr "̵¸ú¤ÊÆþÎÏ: %s" -#: src/reader.c:1559 +#: src/reader.c:1573 #, fuzzy, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "¥·¥ó¥Ü¥ë¤¬Â¿¤¹¤®¤Þ¤¹ (¥È¡¼¥¯¥ó¤ÈÈó½ªÃ¼¥¢¥¤¥Æ¥à) -- ºÇÂç %s" -#: src/reader.c:1562 +#: src/reader.c:1576 msgid "no rules in the input grammar" msgstr "ÆþÎϤ·¤¿Ê¸Ë¡¤Ëµ¬Â§¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1581 +#: src/reader.c:1596 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "¥·¥ó¥Ü¥ë %s " "¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¥È¡¼¥¯¥ó¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢µ¬Â§¤ò»ý¤Á¤Þ¤»¤ó" -#: src/reader.c:1686 +#: src/reader.c:1701 #, c-format msgid "conflicting precedences for %s and %s" msgstr "Àè¹Ô¤·¤Æ¤¤¤ë %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1698 +#: src/reader.c:1713 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "Èó·ë¹çÃÍ %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1749 +#: src/reader.c:1764 #, fuzzy, c-format msgid "tokens %s and %s both assigned number %d" msgstr "¥È¡¼¥¯¥ó %s ¤È %s ¤ÎÁÐÊý¤¬ÈÖ¹æ %s ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤·¤¿" -#: src/reader.c:1762 +#: src/reader.c:1777 #, c-format msgid "the start symbol %s is undefined" msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1764 +#: src/reader.c:1779 #, c-format msgid "the start symbol %s is a token" msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤Ï¥È¡¼¥¯¥ó¤Ç¤¹" @@ -740,6 +735,9 @@ msgstr "%s: msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï°ú¿ô¤òµö¤·¤Þ¤»¤ó\n" +#~ msgid "$%s is invalid" +#~ msgstr "$%s ¤Ï̵¸ú¤Ç¤¹" + #~ msgid "%s: memory exhausted\n" #~ msgstr "%s: ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿\n" diff --git a/po/nl.po b/po/nl.po index c0b73531..da9703d7 100644 --- a/po/nl.po +++ b/po/nl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-10-04 13:59+0200\n" +"POT-Creation-Date: 2000-10-16 19:27+0200\n" "PO-Revision-Date: 1996-08-27 15:34 MET DST\n" "Last-Translator: Erick Branderhorst \n" "Language-Team: Dutch \n" @@ -210,29 +210,29 @@ msgstr "%s: extra argumenten genegeerd na '%s'\n" msgid "too many gotos (max %d)" msgstr "" -#: src/lex.c:84 +#: src/lex.c:82 msgid "unexpected `/' found and ignored" msgstr "onverwachte `/' gevonden en genegeerd" -#: src/lex.c:113 src/reader.c:216 +#: src/lex.c:111 src/reader.c:215 msgid "unterminated comment" msgstr "ongetermineerd commentaar" -#: src/lex.c:141 +#: src/lex.c:139 #, fuzzy msgid "unexpected end of file" msgstr "Onverwacht bestandseinde" -#: src/lex.c:164 +#: src/lex.c:162 msgid "unescaped newline in constant" msgstr "niet geescapete nieuwe regel in constante" -#: src/lex.c:206 +#: src/lex.c:204 #, c-format msgid "octal value outside range 0...255: `\\%o'" msgstr "octale waarde buiten domein 0...255: `\\%o'" -#: src/lex.c:231 +#: src/lex.c:229 #, c-format msgid "hexadecimal value above 255: `\\x%x'" msgstr "hexadecimale waarde boven 255: `\\x%x'" @@ -254,7 +254,7 @@ msgstr "niet getermineerd type naam aan het einde van bestand" msgid "unterminated type name" msgstr "niet getermineerd type naam" -#: src/main.c:123 +#: src/main.c:104 #, fuzzy, c-format msgid "%s: internal error: %s\n" msgstr "interne fout, %s\n" @@ -356,232 +356,227 @@ msgstr " links:" msgid " on right:" msgstr " rechts:" -#: src/reader.c:81 +#: src/reader.c:80 msgid " Skipping to next \\n" msgstr " Verder naar volgende \\n" -#: src/reader.c:83 +#: src/reader.c:82 #, c-format msgid " Skipping to next %c" msgstr " Verder naar volgende %c" -#: src/reader.c:137 src/reader.c:152 +#: src/reader.c:136 src/reader.c:151 msgid "unterminated string at end of file" msgstr "niet getermineerde string aan einde van bestand" -#: src/reader.c:140 +#: src/reader.c:139 msgid "unterminated string" msgstr "niet getermineerde string" -#: src/reader.c:269 -#, c-format -msgid "@%s is invalid" +#: src/reader.c:271 src/reader.c:1021 src/reader.c:1174 +#, fuzzy, c-format +msgid "%s is invalid" msgstr "@%s is onjuist" -#: src/reader.c:318 +#: src/reader.c:321 msgid "unterminated `%{' definition" msgstr "niet getermineerde `%{' definitie" -#: src/reader.c:359 src/reader.c:512 src/reader.c:562 +#: src/reader.c:362 src/reader.c:515 src/reader.c:565 #, c-format msgid "Premature EOF after %s" msgstr "" -#: src/reader.c:376 +#: src/reader.c:379 #, c-format msgid "symbol `%s' used more than once as a literal string" msgstr "" -#: src/reader.c:379 +#: src/reader.c:382 #, c-format msgid "symbol `%s' given more than one literal string" msgstr "" -#: src/reader.c:401 src/reader.c:581 +#: src/reader.c:404 src/reader.c:584 #, c-format msgid "symbol %s redefined" msgstr "symbool %s opnieuw gedefinieerd" -#: src/reader.c:411 src/reader.c:527 src/reader.c:588 src/reader.c:1267 +#: src/reader.c:414 src/reader.c:530 src/reader.c:591 src/reader.c:1280 #, c-format msgid "type redeclaration for %s" msgstr "type herdeclaratie voor %s" -#: src/reader.c:421 +#: src/reader.c:424 #, c-format msgid "`%s' is invalid in %s" msgstr "`%s' is onjuist in %s" -#: src/reader.c:438 src/reader.c:635 +#: src/reader.c:441 src/reader.c:638 #, fuzzy, c-format msgid "multiple %s declarations" msgstr "meerdere %start declaraties" -#: src/reader.c:440 src/reader.c:1245 +#: src/reader.c:443 src/reader.c:1258 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "onjuiste %start declaratie" -#: src/reader.c:463 src/reader.c:475 +#: src/reader.c:466 src/reader.c:478 msgid "invalid $ value" msgstr "onjuiste $ waarde" -#: src/reader.c:497 +#: src/reader.c:500 msgid "%type declaration has no " msgstr "%type declaratie heeft geen " -#: src/reader.c:532 +#: src/reader.c:535 #, fuzzy msgid "invalid %%type declaration due to item: %s" msgstr "onjuist %%type declaratie door item: `%s'" -#: src/reader.c:577 +#: src/reader.c:580 #, c-format msgid "redefining precedence of %s" msgstr "herdefinieren voorganger van %s" -#: src/reader.c:601 +#: src/reader.c:604 #, c-format msgid "invalid text (%s) - number should be after identifier" msgstr "onjuiste tekst (%s) - nummer hoort na de identifier" -#: src/reader.c:611 +#: src/reader.c:614 #, c-format msgid "unexpected item: %s" msgstr "onbekend item: %s" -#: src/reader.c:676 src/reader.c:1022 src/reader.c:1094 +#: src/reader.c:679 src/reader.c:1031 src/reader.c:1103 #, fuzzy, c-format msgid "unmatched %s" msgstr "niet overeenkomstige `{'" -#: src/reader.c:724 +#: src/reader.c:727 #, c-format msgid "argument of %expect is not an integer" msgstr "argument van %expect is niet een integer" -#: src/reader.c:770 +#: src/reader.c:773 #, c-format msgid "unrecognized item %s, expected an identifier" msgstr "onbekend item %s, verwacht een identifier" -#: src/reader.c:794 +#: src/reader.c:797 #, c-format msgid "expected string constant instead of %s" msgstr "verwacht string constante in plaats van %s" -#: src/reader.c:893 +#: src/reader.c:896 #, c-format msgid "unrecognized: %s" msgstr "onbekend: %s" -#: src/reader.c:898 +#: src/reader.c:901 msgid "no input grammar" msgstr "geen invoer grammatica" -#: src/reader.c:901 +#: src/reader.c:906 #, c-format msgid "unknown character: %s" msgstr "onbekend karakter: %s" -#: src/reader.c:992 src/reader.c:1141 +#: src/reader.c:997 src/reader.c:1150 #, c-format msgid "$$ of `%s' has no declared type" msgstr "$$ van `%s' heeft geen gedeclareerd type" -#: src/reader.c:1008 src/reader.c:1157 +#: src/reader.c:1013 src/reader.c:1166 #, fuzzy, c-format msgid "$%d of `%s' has no declared type" msgstr "$%s van `%s' heeft geen gedeclareerd type" -#: src/reader.c:1013 src/reader.c:1162 -#, c-format -msgid "$%s is invalid" -msgstr "$%s is onjuist" - -#: src/reader.c:1170 +#: src/reader.c:1183 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "niet getermineerde %%guard voorwaarde" -#: src/reader.c:1329 +#: src/reader.c:1345 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "" "slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt" -#: src/reader.c:1336 +#: src/reader.c:1352 msgid "grammar starts with vertical bar" msgstr "grammatica start met een verticale bar" -#: src/reader.c:1367 +#: src/reader.c:1383 #, c-format msgid "rule given for %s, which is a token" msgstr "regel geven voor %s, welke een teken is" -#: src/reader.c:1468 +#: src/reader.c:1484 msgid "two @prec's in a row" msgstr "twee @prec's in een regel" -#: src/reader.c:1478 -#, fuzzy, c-format -msgid "%guard present but %semantic_parser not specified" +#: src/reader.c:1492 +#, fuzzy +msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd" -#: src/reader.c:1487 +#: src/reader.c:1501 msgid "two actions at end of one rule" msgstr "twee akties aan het einde van een regel" -#: src/reader.c:1501 +#: src/reader.c:1515 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "type clash (`%s' `%s') bij standaard aktie" -#: src/reader.c:1507 +#: src/reader.c:1521 msgid "empty rule for typed nonterminal, and no action" msgstr "lege regel voor getypte niet terminal, en geen aktie" -#: src/reader.c:1551 +#: src/reader.c:1565 #, c-format msgid "invalid input: %s" msgstr "ongeldige invoer: %s" -#: src/reader.c:1559 +#: src/reader.c:1573 #, fuzzy, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "te veel symbolen (tekens plus nietterminals); maximum %s" -#: src/reader.c:1562 +#: src/reader.c:1576 msgid "no rules in the input grammar" msgstr "geen regels voor invoer grammatica" -#: src/reader.c:1581 +#: src/reader.c:1596 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "symbool %s is gebruikt, maar is niet gedefinieerd als een teken en\n" "heeft geen regels" -#: src/reader.c:1686 +#: src/reader.c:1701 #, c-format msgid "conflicting precedences for %s and %s" msgstr "conflictuerende precedentein voor %s en %s" -#: src/reader.c:1698 +#: src/reader.c:1713 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "conflictuerende associatieve waarden voor %s en %s" -#: src/reader.c:1749 +#: src/reader.c:1764 #, c-format msgid "tokens %s and %s both assigned number %d" msgstr "" -#: src/reader.c:1762 +#: src/reader.c:1777 #, c-format msgid "the start symbol %s is undefined" msgstr "" -#: src/reader.c:1764 +#: src/reader.c:1779 #, c-format msgid "the start symbol %s is a token" msgstr "het start symbool %s is een token" @@ -741,6 +736,9 @@ msgstr "%s: optie `%s' is niet eenduidig\n" msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: optie `--%s' staat geen argument toe\n" +#~ msgid "$%s is invalid" +#~ msgstr "$%s is onjuist" + #~ msgid "%s: memory exhausted\n" #~ msgstr "%s: geen geheugen meer beschikbaar\n" diff --git a/po/ru.po b/po/ru.po index 258ad733..d339adff 100644 --- a/po/ru.po +++ b/po/ru.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.28a\n" -"POT-Creation-Date: 2000-10-04 13:59+0200\n" +"POT-Creation-Date: 2000-10-16 19:27+0200\n" "PO-Revision-Date: 2000-04-12 13:16+04:00\n" "Last-Translator: Dmitry S. Sivachenko \n" "Language-Team: Russian \n" @@ -231,28 +231,28 @@ msgstr "%s: msgid "too many gotos (max %d)" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ goto (ÍÁËÓÉÍÁÌØÎÏ %d)" -#: src/lex.c:84 +#: src/lex.c:82 msgid "unexpected `/' found and ignored" msgstr "×ÓÔÒÅÞÅÎ É ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ ÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'" -#: src/lex.c:113 src/reader.c:216 +#: src/lex.c:111 src/reader.c:215 msgid "unterminated comment" msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ" -#: src/lex.c:141 +#: src/lex.c:139 msgid "unexpected end of file" msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ" -#: src/lex.c:164 +#: src/lex.c:162 msgid "unescaped newline in constant" msgstr "ÎÅÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ËÏÎÓÔÁÎÔÅ" -#: src/lex.c:206 +#: src/lex.c:204 #, c-format msgid "octal value outside range 0...255: `\\%o'" msgstr "×ÏÓØÍÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ 0...255: `\\%o'" -#: src/lex.c:231 +#: src/lex.c:229 #, c-format msgid "hexadecimal value above 255: `\\x%x'" msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÐÒÅ×ÙÛÁÅÔ 255: `\\x%x'" @@ -274,7 +274,7 @@ msgstr " msgid "unterminated type name" msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ" -#: src/main.c:123 +#: src/main.c:104 #, c-format msgid "%s: internal error: %s\n" msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n" @@ -376,229 +376,224 @@ msgstr " msgid " on right:" msgstr " ÎÁÐÒÁ×Ï:" -#: src/reader.c:81 +#: src/reader.c:80 msgid " Skipping to next \\n" msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n" -#: src/reader.c:83 +#: src/reader.c:82 #, c-format msgid " Skipping to next %c" msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ %c" -#: src/reader.c:137 src/reader.c:152 +#: src/reader.c:136 src/reader.c:151 msgid "unterminated string at end of file" msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ × ËÏÎÃÅ ÆÁÊÌÁ" -#: src/reader.c:140 +#: src/reader.c:139 msgid "unterminated string" msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ" -#: src/reader.c:269 -#, c-format -msgid "@%s is invalid" +#: src/reader.c:271 src/reader.c:1021 src/reader.c:1174 +#, fuzzy, c-format +msgid "%s is invalid" msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË @%s" -#: src/reader.c:318 +#: src/reader.c:321 msgid "unterminated `%{' definition" msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ `%{'" -#: src/reader.c:359 src/reader.c:512 src/reader.c:562 +#: src/reader.c:362 src/reader.c:515 src/reader.c:565 #, c-format msgid "Premature EOF after %s" msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ ÐÏÓÌÅ %s" -#: src/reader.c:376 +#: src/reader.c:379 #, c-format msgid "symbol `%s' used more than once as a literal string" msgstr "" -#: src/reader.c:379 +#: src/reader.c:382 #, c-format msgid "symbol `%s' given more than one literal string" msgstr "" -#: src/reader.c:401 src/reader.c:581 +#: src/reader.c:404 src/reader.c:584 #, c-format msgid "symbol %s redefined" msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s" -#: src/reader.c:411 src/reader.c:527 src/reader.c:588 src/reader.c:1267 +#: src/reader.c:414 src/reader.c:530 src/reader.c:591 src/reader.c:1280 #, c-format msgid "type redeclaration for %s" msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s" -#: src/reader.c:421 +#: src/reader.c:424 #, c-format msgid "`%s' is invalid in %s" msgstr "`%s' ÎÅ×ÅÒÎÏ × %s" -#: src/reader.c:438 src/reader.c:635 +#: src/reader.c:441 src/reader.c:638 #, fuzzy, c-format msgid "multiple %s declarations" msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %start" -#: src/reader.c:440 src/reader.c:1245 +#: src/reader.c:443 src/reader.c:1258 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %start" -#: src/reader.c:463 src/reader.c:475 +#: src/reader.c:466 src/reader.c:478 msgid "invalid $ value" msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ" -#: src/reader.c:497 +#: src/reader.c:500 msgid "%type declaration has no " msgstr "ÏÐÉÓÁÎÉÅ %type ÎÅ ÉÍÅÅÔ <ÉÍÑ_ÔÉÐÁ>" -#: src/reader.c:532 +#: src/reader.c:535 msgid "invalid %%type declaration due to item: %s" msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %%type ÉÚ-ÚÁ ÜÌÅÍÅÎÔÁ: %s" -#: src/reader.c:577 +#: src/reader.c:580 #, c-format msgid "redefining precedence of %s" msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÏÒÉÔÅÔÁ ÄÌÑ %s" -#: src/reader.c:601 +#: src/reader.c:604 #, c-format msgid "invalid text (%s) - number should be after identifier" msgstr "ÎÅ×ÅÒÎÙÊ ÔÅËÓÔ (%s) - ÞÉÓÌÏ ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÚÁ ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ" -#: src/reader.c:611 +#: src/reader.c:614 #, c-format msgid "unexpected item: %s" msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s" -#: src/reader.c:676 src/reader.c:1022 src/reader.c:1094 +#: src/reader.c:679 src/reader.c:1031 src/reader.c:1103 #, fuzzy, c-format msgid "unmatched %s" msgstr "ÎÅÐÁÒÎÁÑ `{'" -#: src/reader.c:724 +#: src/reader.c:727 #, c-format msgid "argument of %expect is not an integer" msgstr "ÁÒÇÕÍÅÎÔ %expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ" -#: src/reader.c:770 +#: src/reader.c:773 #, c-format msgid "unrecognized item %s, expected an identifier" msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÜÌÅÍÅÎÔ %s, ÏÖÉÄÁÌÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ" -#: src/reader.c:794 +#: src/reader.c:797 #, c-format msgid "expected string constant instead of %s" msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ" -#: src/reader.c:893 +#: src/reader.c:896 #, c-format msgid "unrecognized: %s" msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s" -#: src/reader.c:898 +#: src/reader.c:901 msgid "no input grammar" msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ" -#: src/reader.c:901 +#: src/reader.c:906 #, c-format msgid "unknown character: %s" msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s" -#: src/reader.c:992 src/reader.c:1141 +#: src/reader.c:997 src/reader.c:1150 #, c-format msgid "$$ of `%s' has no declared type" msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ" -#: src/reader.c:1008 src/reader.c:1157 +#: src/reader.c:1013 src/reader.c:1166 #, c-format msgid "$%d of `%s' has no declared type" msgstr "$%d ÉÚ `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ" -#: src/reader.c:1013 src/reader.c:1162 -#, c-format -msgid "$%s is invalid" -msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË $%s" - -#: src/reader.c:1170 +#: src/reader.c:1183 #, c-format msgid "unterminated %guard clause" msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard" -#: src/reader.c:1329 +#: src/reader.c:1345 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ" -#: src/reader.c:1336 +#: src/reader.c:1352 msgid "grammar starts with vertical bar" msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ" -#: src/reader.c:1367 +#: src/reader.c:1383 #, c-format msgid "rule given for %s, which is a token" msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ" -#: src/reader.c:1468 +#: src/reader.c:1484 msgid "two @prec's in a row" msgstr "Ä×Á @prec ÐÏÄÒÑÄ" -#: src/reader.c:1478 -#, c-format -msgid "%guard present but %semantic_parser not specified" +#: src/reader.c:1492 +#, fuzzy +msgid "%%guard present but %%semantic_parser not specified" msgstr "%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %semantic_parser ÎÅ ÚÁÄÁÎ" -#: src/reader.c:1487 +#: src/reader.c:1501 msgid "two actions at end of one rule" msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ" -#: src/reader.c:1501 +#: src/reader.c:1515 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ" -#: src/reader.c:1507 +#: src/reader.c:1521 msgid "empty rule for typed nonterminal, and no action" msgstr "" "ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ" -#: src/reader.c:1551 +#: src/reader.c:1565 #, c-format msgid "invalid input: %s" msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s" -#: src/reader.c:1559 +#: src/reader.c:1573 #, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d" -#: src/reader.c:1562 +#: src/reader.c:1576 msgid "no rules in the input grammar" msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ" -#: src/reader.c:1581 +#: src/reader.c:1596 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ" -#: src/reader.c:1686 +#: src/reader.c:1701 #, c-format msgid "conflicting precedences for %s and %s" msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s" -#: src/reader.c:1698 +#: src/reader.c:1713 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s" -#: src/reader.c:1749 +#: src/reader.c:1764 #, c-format msgid "tokens %s and %s both assigned number %d" msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %d" -#: src/reader.c:1762 +#: src/reader.c:1777 #, c-format msgid "the start symbol %s is undefined" msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ" -#: src/reader.c:1764 +#: src/reader.c:1779 #, c-format msgid "the start symbol %s is a token" msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ" @@ -758,6 +753,9 @@ msgstr "%s: msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" +#~ msgid "$%s is invalid" +#~ msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË $%s" + #~ msgid "%s: memory exhausted\n" #~ msgstr "%s: ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ\n" diff --git a/src/lex.c b/src/lex.c index bcf8cd66..f81e2910 100644 --- a/src/lex.c +++ b/src/lex.c @@ -27,9 +27,7 @@ #include "xalloc.h" #include "complain.h" #include "gram.h" - -/* functions from main.c */ -extern char *printable_version PARAMS ((int)); +#include "quote.h" /* Buffer for storing the current token. */ char *token_buffer; @@ -238,8 +236,10 @@ literalchar (char **pp, int *pcode, char term) } else { + char buf [] = "c"; + buf[0] = c; complain (_("unknown escape sequence: `\\' followed by `%s'"), - printable_version (c)); + quote (buf)); code = '?'; } } /* has \ */ diff --git a/src/main.c b/src/main.c index eaa85596..d14657a1 100644 --- a/src/main.c +++ b/src/main.c @@ -39,8 +39,6 @@ char *program_name; extern void berror PARAMS((const char *)); -extern char *printable_version PARAMS ((int)); - int main (int argc, char *argv[]) { @@ -98,23 +96,6 @@ main (int argc, char *argv[]) exit (complain_message_count ? 1 : 0); } -/* Return a string containing a printable version of C: - either C itself, or the corresponding \DDD code. */ - -char * -printable_version (int c) -{ - static char buf[10]; - if (c < ' ' || c >= '\177') - sprintf (buf, "\\%o", c); - else - { - buf[0] = c; - buf[1] = '\0'; - } - return buf; -} - /* Abort for an internal error denoted by string S. */ void diff --git a/src/reader.c b/src/reader.c index 4309cf87..7c368621 100644 --- a/src/reader.c +++ b/src/reader.c @@ -31,8 +31,7 @@ #include "output.h" #include "reader.h" #include "conflicts.h" - -extern char *printable_version PARAMS ((int)); +#include "quote.h" /* Number of slots allocated (but not necessarily used yet) in `rline' */ static int rline_allocated; @@ -266,7 +265,11 @@ copy_at (FILE *fin, FILE *fout, int stack_offset) locations_flag = 1; } else - complain (_("@%s is invalid"), printable_version (c)); + { + char buf[] = "@c"; + buf[1] = c; + complain (_("%s is invalid"), quote (buf)); + } } /*-------------------------------------------------------------------. @@ -702,7 +705,7 @@ static void parse_expect_decl (void) { int c; - int count; + size_t count; char buffer[20]; c = getc (finput); @@ -898,7 +901,9 @@ read_declarations (void) fatal (_("no input grammar")); else { - complain (_("unknown character: %s"), printable_version (c)); + char buf[] = "c"; + buf[0] = c; + complain (_("unknown character: %s"), quote (buf)); skip_to_char ('%'); } } @@ -1010,7 +1015,11 @@ copy_action (symbol_list * rule, int stack_offset) continue; } else - complain (_("$%s is invalid"), printable_version (c)); + { + char buf[] = "$c"; + buf[1] = c; + complain (_("%s is invalid"), quote (buf)); + } break; @@ -1159,7 +1168,11 @@ copy_guard (symbol_list * rule, int stack_offset) continue; } else - complain (_("$%s is invalid"), printable_version (c)); + { + char buf[] = "$c"; + buf[1] = c; + complain (_("%s is invalid"), quote (buf)); + } break; case '@': @@ -1296,9 +1309,11 @@ readgram (void) symbol_list *p1; bucket *bp; - symbol_list *crule; /* points to first symbol_list of current rule. */ - /* its symbol is the lhs of the rule. */ - symbol_list *crule1; /* points to the symbol_list preceding crule. */ + /* Points to first symbol_list of current rule. its symbol is the + lhs of the rule. */ + symbol_list *crule; + /* Points to the symbol_list preceding crule. */ + symbol_list *crule1; p1 = NULL; @@ -1309,7 +1324,8 @@ readgram (void) if (t == IDENTIFIER || t == BAR) { int action_flag = 0; - int rulelength = 0; /* number of symbols in rhs of this rule so far */ + /* Number of symbols in rhs of this rule so far */ + int rulelength = 0; int xactions = 0; /* JF for error checking */ bucket *first_rhs = 0; @@ -1473,9 +1489,7 @@ readgram (void) if (t == GUARD) { if (!semantic_parser) - complain ("%s", - _ - ("%guard present but %semantic_parser not specified")); + complain (_("%%guard present but %%semantic_parser not specified")); copy_guard (crule, rulelength); t = lex (); @@ -1561,7 +1575,8 @@ readgram (void) if (nrules == 0) fatal (_("no rules in the input grammar")); - if (typed == 0 /* JF put out same default YYSTYPE as YACC does */ + /* JF put out same default YYSTYPE as YACC does */ + if (typed == 0 && !value_components_used) { /* We used to use `unsigned long' as YYSTYPE on MSDOS, @@ -1579,7 +1594,7 @@ readgram (void) { complain (_ ("symbol %s is used, but is not defined as a token and has no rules"), -bp->tag); + bp->tag); bp->class = nterm_sym; bp->value = nvars++; } diff --git a/src/warshall.h b/src/warshall.h index 02c2e757..0f1070ad 100644 --- a/src/warshall.h +++ b/src/warshall.h @@ -23,3 +23,28 @@ void RTC PARAMS ((unsigned *, int)); #endif /* !WARSHALL_H_ */ +/* Generate transitive closure of a matrix, + Copyright (C) 1984, 1989, 2000 Free Software Foundation, Inc. + + This file is part of Bison, the GNU Compiler Compiler. + + Bison 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. + + Bison 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 Bison; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef WARSHALL_H_ +# define WARSHALL_H_ + +void RTC PARAMS ((unsigned *, int)); +#endif /* !WARSHALL_H_ */ diff --git a/tests/regression.m4 b/tests/regression.m4 index 94839aeb..6fecd6a2 100644 --- a/tests/regression.m4 +++ b/tests/regression.m4 @@ -24,3 +24,29 @@ exp: '(' exp ')' | NUM ; AT_CHECK([bison -v duplicate.y -o duplicate.c], 0, ignore, ignore) AT_CLEANUP(duplicate.*) +# -*- Autoconf -*- + +cat <