]> git.saurik.com Git - bison.git/commitdiff
* lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
authorAkim Demaille <akim@epita.fr>
Mon, 16 Oct 2000 17:28:41 +0000 (17:28 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 16 Oct 2000 17:28:41 +0000 (17:28 +0000)
* 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.

26 files changed:
ChangeLog
THANKS
configure.in
lib/Makefile.am
lib/error.c [new file with mode: 0644]
lib/error.h [new file with mode: 0644]
lib/quote.c [new file with mode: 0644]
lib/quote.h [new file with mode: 0644]
lib/quotearg.c [new file with mode: 0644]
lib/quotearg.h [new file with mode: 0644]
m4/Makefile.am
m4/c-bs-a.m4 [new file with mode: 0644]
m4/mbstate_t.m4 [new file with mode: 0644]
m4/prereq.m4 [new file with mode: 0644]
po/de.po
po/es.po
po/et.po
po/fr.po
po/ja.po
po/nl.po
po/ru.po
src/lex.c
src/main.c
src/reader.c
src/warshall.h
tests/regression.m4

index ce415b7773e508c1fc2d60e6684fb5065f2f68a6..402b0beaf4cf10ce582bb5aea02659971cbfd688 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2000-10-16  Akim Demaille  <akim@epita.fr>
+
+       * 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  <akim@epita.fr>
+
+       * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
+
 2000-10-04  Akim Demaille  <akim@epita.fr>
 
        * doc/bison.texinfo: Various typos spotted by Neil Booth.
diff --git a/THANKS b/THANKS
index 5aa7039a1150c0452f276853d0210737c8227039..0cfdeb88b08939e40bcba6f7394139de13213dcf 100644 (file)
--- 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:
index 41c5e2799a5f4a3779628115a3cd34c0a6b31c2a..3299183db165e0cb967672cda3713ab52d3db5c4 100644 (file)
@@ -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
index 03df9e52d2fc9d279bb820827c99a5a19ff9286e..104c19befc5a5b889dbe0f6b92f942578addef74 100644 (file)
@@ -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 (file)
index 0000000..ffa54c3
--- /dev/null
@@ -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 <djm@gnu.ai.mit.edu>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+
+#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
+# if __STDC__
+#  include <stdarg.h>
+#  define VA_START(args, lastarg) va_start(args, lastarg)
+# else
+#  include <varargs.h>
+#  define VA_START(args, lastarg) va_start(args)
+# endif
+#else
+# define va_alist a1, a2, a3, a4, a5, a6, a7, a8
+# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
+#endif
+
+#if STDC_HEADERS || _LIBC
+# include <stdlib.h>
+# include <string.h>
+#else
+void exit ();
+#endif
+
+#include "error.h"
+
+#ifndef _
+# define _(String) String
+#endif
+
+/* If NULL, error will flush stdout, then print on stderr the program
+   name, a colon and a space.  Otherwise, error will call this
+   function without parameters instead.  */
+void (*error_print_progname) (
+#if __STDC__ - 0
+                             void
+#endif
+                             );
+
+/* This variable is incremented each time `error' is called.  */
+unsigned int error_message_count;
+
+#ifdef _LIBC
+/* In the GNU C library, there is a predefined variable for this.  */
+
+# define program_name program_invocation_name
+# include <errno.h>
+
+/* 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);
+}
+\f
+/* 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 (file)
index 0000000..38a8e29
--- /dev/null
@@ -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 (file)
index 0000000..fd1b57e
--- /dev/null
@@ -0,0 +1,25 @@
+/* Written by Paul Eggert <eggert@twinsun.com> */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <quotearg.h>
+#include <quote.h>
+
+/* 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 (file)
index 0000000..96549b7
--- /dev/null
@@ -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 (file)
index 0000000..d5fbc9e
--- /dev/null
@@ -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 <eggert@twinsun.com> */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <quotearg.h>
+#include <xalloc.h>
+
+#include <ctype.h>
+
+#if ENABLE_NLS
+# include <libintl.h>
+# define _(text) gettext (text)
+#else
+# define _(text) text
+#endif
+#define N_(text) text
+
+#if HAVE_LIMITS_H
+# include <limits.h>
+#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 <stdlib.h>
+#endif
+
+#if HAVE_STRING_H
+# include <string.h>
+#endif
+
+#if HAVE_WCHAR_H
+# include <wchar.h>
+#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 <wctype.h>
+# 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 (file)
index 0000000..f6463b1
--- /dev/null
@@ -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 <eggert@twinsun.com> */
+
+/* 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));
index 15610bdaff5182a86341b0fa809d51c47030098e..3d5d9fa05dcae75a3daee6d6de07e30c5ce870a6 100644 (file)
@@ -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 (file)
index 0000000..d9e6e11
--- /dev/null
@@ -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 (file)
index 0000000..a185a7d
--- /dev/null
@@ -0,0 +1,29 @@
+# serial 8
+
+# From Paul Eggert.
+
+# BeOS 5 has <wchar.h> 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 <stdlib.h>
+#endif
+#include <wchar.h>],
+      [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 <wchar.h> does not define.])
+   fi])
diff --git a/m4/prereq.m4 b/m4/prereq.m4
new file mode 100644 (file)
index 0000000..f711426
--- /dev/null
@@ -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
+])
index bdda7f5444cb8eaaddd24e7e98e791abfe676954..7659f5bc83b98f8a61ccd6ee730edff215eedba6 100644 (file)
--- 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 <drepper@gnu.ai.mit.edu>\n"
 "Language-Team: German <de@li.org>\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 <typename>"
 msgstr "%type Deklaration hat keinen <Typ-Namen>"
 
-#: 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"
 
index 9f0cd9a83efef51d6c828380b6f2a3646dba120c..eee9378d1da9df23b899c9f2a63e4a565669dd54 100644 (file)
--- 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 <ngarcia-pedrajas@acm.org>\n"
 "Language-Team: Spanish <es@li.org>\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 <typename>"
 msgstr "la declaración %type no tiene <nombre-tipo>"
 
-#: 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"
 
index 62604677cf90b96cbfc7913449cda39c3d32c39a..4ab8eaa0a30bbb963b361693861207c1efbc3fbc 100644 (file)
--- 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 <tsoome@ut.ee>\n"
 "Language-Team: Estonian <et@li.org>\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 <typename>"
 msgstr "%type deklaratsioonis puudub <tüübinimi>"
 
-#: 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"
 
index d4280b1f2d5690f081b9c87903e81ed4d7c64112..528a7db2eddf993b824be13eb2d8dd46e818f105 100644 (file)
--- 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 <boucherd@IRO.UMontreal.CA>\n"
 "Language-Team: French <fr@li.org>\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 <typename>"
 msgstr "la déclaration %type n'a pas de <nom_de_type>"
 
-#: 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"
 
index 0e6f9e9f34ede63bd424e6787bef975d374c7c00..05da8ae15fc4c13b995b96a93a9865fceaee1ce6 100644 (file)
--- 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 <yamad@mb.infoweb.ne.jp>\n"
 "Language-Team: Japanese <ja@li.org>\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 <typename>"
 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"
 
index c0b735318787cc2f8692d8e943d422a6e210d19a..da9703d72b8c8ed7a1f96dd7eea250928497765c 100644 (file)
--- 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 <branderh@debian.org>\n"
 "Language-Team: Dutch <nl@li.org>\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 <typename>"
 msgstr "%type declaratie heeft geen <typenaam>"
 
-#: 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"
 
index 258ad733e2733bad65e06a78c5675a10947f6e85..d339adff7315fdbf4b7c45b16a163045822cdffb 100644 (file)
--- 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 <dima@Chg.RU>\n"
 "Language-Team: Russian <ru@li.org>\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 <typename>"
 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"
 
index bcf8cd66522d5fd0468c06d0c189a09bcd9a4c47..f81e291036c9b0913bd6bb4bf944e74f2d172ffd 100644 (file)
--- 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 \ */
index eaa85596258219aedcadfc7ac37ab775ff4a2e4b..d14657a14b32948dd33b7a1ca94ce03f0add4553 100644 (file)
@@ -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);
 }
 \f
-/* 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
index 4309cf879999a6382b8ccb265176954543d5ac98..7c368621cc1985697caef4ba7e2a06125951ea47 100644 (file)
@@ -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));
+    }
 }
 \f
 /*-------------------------------------------------------------------.
@@ -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++;
       }
index 02c2e75773ee292c6b299f0f22b5b960de0b572f..0f1070ad8c66bf7c1ca9fe00ae0baeee3a8fb8ab 100644 (file)
 
 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_ */
index 94839aeb7e46008ffeef766a9105e0eadfe6a463..6fecd6a24569355cfd162f0db163484edd6cf38b 100644 (file)
@@ -24,3 +24,29 @@ exp: '(' exp ')' | NUM ;
 AT_CHECK([bison -v duplicate.y -o duplicate.c], 0, ignore, ignore)
 
 AT_CLEANUP(duplicate.*)
+#                                                        -*- Autoconf -*-
+
+cat <<EOF
+
+Regression tests.
+
+EOF
+
+AT_SETUP(Duplicate string)
+
+AT_DATA([duplicate.y],
+[[/* `Bison -v' used to dump core when two tokens are defined with the same
+   string, as LE and GE below. */
+
+%token NUM
+%token LE "<="
+%token GE "<="
+
+%%
+exp: '(' exp ')' | NUM ;
+%%
+]])
+
+AT_CHECK([bison -v duplicate.y -o duplicate.c], 0, ignore, ignore)
+
+AT_CLEANUP(duplicate.*)