* lib/xalloc.h, lib/xmalloc.c@ Update.
+2001-02-02 Akim Demaille <akim@epita.fr>
+
+ * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
+ * lib/xalloc.h, lib/xmalloc.c@ Update.
+
+2001-01-19 Akim Demaille <akim@epita.fr>
+
+ * src/conflicts.c (conflict_report): Report the difference with
+ expected number of s/r conflicts.
+
2001-01-19 Akim Demaille <akim@epita.fr>
Get rid of the ad hoc handling of token_buffer in the scanner: use
--- /dev/null
+/* Work around bug on some systems where malloc (0) fails.
+ Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* written by Jim Meyering */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+#undef malloc
+
+#include <sys/types.h>
+
+char *malloc ();
+
+/* Allocate an N-byte block of memory from the heap.
+ If N is zero, allocate a 1-byte block. */
+
+char *
+rpl_malloc (size_t n)
+{
+ if (n == 0)
+ n = 1;
+ return malloc (n);
+}
--- /dev/null
+/* Work around bug on some systems where realloc (NULL, 0) fails.
+ Copyright (C) 1997 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* written by Jim Meyering */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+#undef realloc
+
+#include <sys/types.h>
+
+char *malloc ();
+char *realloc ();
+
+/* Change the size of an allocated block of memory P to N bytes,
+ with error checking. If N is zero, change it to 1. If P is NULL,
+ use malloc. */
+
+char *
+rpl_realloc (p, n)
+ char *p;
+ size_t n;
+{
+ if (n == 0)
+ n = 1;
+ if (p == 0)
+ return malloc (n);
+ return realloc (p, n);
+}
/* xalloc.h -- malloc with out-of-memory checking
- Copyright (C) 1990-1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1990-1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
extern void (*xalloc_fail_func) PARAMS ((void));
/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
- message must be non-NULL. It is translated via gettext.
- The default value is "Memory exhausted". */
-extern char *const xalloc_msg_memory_exhausted;
+ message is output. It is translated via gettext.
+ Its value is "memory exhausted". */
+extern char const xalloc_msg_memory_exhausted[];
/* This function is always triggered when memory is exhausted. It is
in charge of honoring the three previous items. This is the
/* xmalloc.c -- malloc with out of memory checking
- Copyright (C) 1990-1997, 98, 99 Free Software Foundation, Inc.
+ Copyright (C) 1990-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
/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message
before exiting when memory is exhausted. Goes through gettext. */
-char *const xalloc_msg_memory_exhausted = N_("Memory exhausted");
+char const xalloc_msg_memory_exhausted[] = N_("memory exhausted");
void
xalloc_die (void)
}
/* Change the size of an allocated block of memory P to N bytes,
- with error checking.
- If P is NULL, run xmalloc. */
+ with error checking. */
void *
xrealloc (void *p, size_t n)
{"memory exhausted", 139},
{"`", 140},
{"'", 141},
- {"Memory exhausted", 142},
};
-int _msg_tbl_length = 142;
+int _msg_tbl_length = 141;
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2001-01-18 17:53+0100\n"
+"POT-Creation-Date: 2001-02-01 17:25+0100\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"
msgstr "Datei endet unerwartet"
# Oder soll man den Begriff "Escapezeichen" verwenden?
-#: src/lex.c:154
+#: src/lex.c:160
msgid "unescaped newline in constant"
msgstr "nicht maskiertes Zeilenendezeichen in Konstante"
-#: src/lex.c:196
+#: src/lex.c:202
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "oktaler Zahlenwert außerhalb des Bereichs 0...255: »\\%o«"
-#: src/lex.c:221
+#: src/lex.c:227
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadezimaler Zahlenwert größer als 255: »\\x%x«"
-#: src/lex.c:233
+#: src/lex.c:239
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "unbekanntes Fluchtzeichen: »\\« gefolgt von »%s«"
-#: src/lex.c:326
+#: src/lex.c:335
msgid "unterminated type name at end of file"
msgstr "unerwarteter Typname am Ende der Datei"
-#: src/lex.c:329
+#: src/lex.c:338
msgid "unterminated type name"
msgstr "unerwarteter Typname"
-#: src/lex.c:422
+#: src/lex.c:430
msgid "use \"...\" for multi-character literal tokens"
msgstr "für Literal mit mehreren Zeichen bitte \"...\" verwenden"
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.25\n"
-"POT-Creation-Date: 2001-01-18 17:53+0100\n"
+"POT-Creation-Date: 2001-02-01 17:25+0100\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"
msgstr "Fin de fichero inesperado"
# ¿unescaped?
-#: src/lex.c:154
+#: src/lex.c:160
msgid "unescaped newline in constant"
msgstr "salto de línea en constante sin secuencia de escape"
-#: src/lex.c:196
+#: src/lex.c:202
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "valor octal fuera del rango 0...255: `\\%o'"
-#: src/lex.c:221
+#: src/lex.c:227
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "valor hexadecimal mayor que 255: `\\x%x'"
-#: src/lex.c:233
+#: src/lex.c:239
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "secuencia de escape desconocida: `\\' seguido de `%s'"
-#: src/lex.c:326
+#: src/lex.c:335
msgid "unterminated type name at end of file"
msgstr "nombre de tipo sin terminar al final del fichero"
-#: src/lex.c:329
+#: src/lex.c:338
msgid "unterminated type name"
msgstr "nombre de tipo sin terminar"
# ¿multicarácter o multicaracteres? sv
-#: src/lex.c:422
+#: src/lex.c:430
msgid "use \"...\" for multi-character literal tokens"
msgstr "use \"...\" para terminales literales multicarácter"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2001-01-18 17:53+0100\n"
+"POT-Creation-Date: 2001-02-01 17:25+0100\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"
msgid "unexpected end of file"
msgstr "ootamatu faililõpp"
-#: src/lex.c:154
+#: src/lex.c:160
msgid "unescaped newline in constant"
msgstr "paojadata reavahetus konstandis"
-#: src/lex.c:196
+#: src/lex.c:202
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "kaheksandväärtus väljaspool piire 0...255: `\\%o'"
-#: src/lex.c:221
+#: src/lex.c:227
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "kuueteistkümnendväärtus suurem, kui above 255: `\\x%x'"
-#: src/lex.c:233
+#: src/lex.c:239
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "tundmatu paojada: `\\' järgneb `%s'"
-#: src/lex.c:326
+#: src/lex.c:335
msgid "unterminated type name at end of file"
msgstr "lõpetamata tüübinimi faili lõpus"
-#: src/lex.c:329
+#: src/lex.c:338
msgid "unterminated type name"
msgstr "lõpetamata tüübinimi"
-#: src/lex.c:422
+#: src/lex.c:430
msgid "use \"...\" for multi-character literal tokens"
msgstr "kasuta mitmesümboliliste literaalidega \"...\" konstruktsiooni"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2001-01-18 17:53+0100\n"
+"POT-Creation-Date: 2001-02-01 17:25+0100\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"
msgid "unexpected end of file"
msgstr "Fin de fichier inattendue"
-#: src/lex.c:154
+#: src/lex.c:160
msgid "unescaped newline in constant"
msgstr "retour de chariot sans échappement dans une constante"
-#: src/lex.c:196
+#: src/lex.c:202
#, 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:221
+#: src/lex.c:227
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "valeur hexadécimale supérieure à 255: \\x%x"
-#: src/lex.c:233
+#: src/lex.c:239
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "séquence d'échappement inconnue: `\\' suivie de `%s'"
-#: src/lex.c:326
+#: src/lex.c:335
msgid "unterminated type name at end of file"
msgstr "le nom de type ne se termine pas avant la fin de fichier"
-#: src/lex.c:329
+#: src/lex.c:338
msgid "unterminated type name"
msgstr "le nom de type ne se termine pas"
-#: src/lex.c:422
+#: src/lex.c:430
msgid "use \"...\" for multi-character literal tokens"
msgstr "utilisez \"...\" pour les terminaux litéraux de plusieurs caractères"
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.28\n"
-"POT-Creation-Date: 2001-01-18 17:53+0100\n"
+"POT-Creation-Date: 2001-02-01 17:25+0100\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"
msgid "unexpected end of file"
msgstr "ͽ´ü¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤Ç¤¹"
-#: src/lex.c:154
+#: src/lex.c:160
msgid "unescaped newline in constant"
msgstr "Äê¿ô¤ÎÃæ¤Ë¥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤¤²þ¹Ô¤¬¤¢¤ê¤Þ¤¹"
-#: src/lex.c:196
+#: src/lex.c:202
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "8 ¿Ê¿ô¤ÎÃͤ¬ 0...255 ¤ÎÈϰϳ°¤Ç¤¹: `\\%o'"
-#: src/lex.c:221
+#: src/lex.c:227
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "16 ¿Ê¿ô¤ÎÃͤ¬ 255 ¤ò±Û¤¨¤Æ¤¤¤Þ¤¹: `\\x%x'"
-#: src/lex.c:233
+#: src/lex.c:239
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹: `\\' ¤Î¸å¤Ë `%s'"
-#: src/lex.c:326
+#: src/lex.c:335
msgid "unterminated type name at end of file"
msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤¥¿¥¤¥×̾¤¬¡¢¥Õ¥¡¥¤¥ëËöÈø¤Ë¤¢¤ê¤Þ¤¹"
-#: src/lex.c:329
+#: src/lex.c:338
msgid "unterminated type name"
msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤¥¿¥¤¥×̾¤¬¤¢¤ê¤Þ¤¹"
-#: src/lex.c:422
+#: src/lex.c:430
msgid "use \"...\" for multi-character literal tokens"
msgstr "Ê£¿ôʸ»ú¤Î¥ê¥Æ¥é¥ë¥È¡¼¥¯¥ó¤Ë¤Ï \"...\" ¤ò»È¤¤¤Þ¤·¤ç¤¦"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2001-01-18 17:53+0100\n"
+"POT-Creation-Date: 2001-02-01 17:25+0100\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"
msgid "unexpected end of file"
msgstr "Onverwacht bestandseinde"
-#: src/lex.c:154
+#: src/lex.c:160
msgid "unescaped newline in constant"
msgstr "niet geescapete nieuwe regel in constante"
-#: src/lex.c:196
+#: src/lex.c:202
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "octale waarde buiten domein 0...255: `\\%o'"
-#: src/lex.c:221
+#: src/lex.c:227
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadecimale waarde boven 255: `\\x%x'"
-#: src/lex.c:233
+#: src/lex.c:239
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "onbekende escape reeks: `\\' gevolgd door `%s'"
-#: src/lex.c:326
+#: src/lex.c:335
msgid "unterminated type name at end of file"
msgstr "niet getermineerd type naam aan het einde van bestand"
-#: src/lex.c:329
+#: src/lex.c:338
msgid "unterminated type name"
msgstr "niet getermineerd type naam"
-#: src/lex.c:422
+#: src/lex.c:430
msgid "use \"...\" for multi-character literal tokens"
msgstr "gebruik \"...\" voor meerdere karakters literal tekens"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.28a\n"
-"POT-Creation-Date: 2001-01-18 17:53+0100\n"
+"POT-Creation-Date: 2001-02-01 17:25+0100\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"
msgid "unexpected end of file"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
-#: src/lex.c:154
+#: src/lex.c:160
msgid "unescaped newline in constant"
msgstr "ÎÅÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ËÏÎÓÔÁÎÔÅ"
-#: src/lex.c:196
+#: src/lex.c:202
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "×ÏÓØÍÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ 0...255: `\\%o'"
-#: src/lex.c:221
+#: src/lex.c:227
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÐÒÅ×ÙÛÁÅÔ 255: `\\x%x'"
-#: src/lex.c:233
+#: src/lex.c:239
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `%s' ÐÏÓÌÅ `\\'"
-#: src/lex.c:326
+#: src/lex.c:335
msgid "unterminated type name at end of file"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ × ËÏÎÃÅ ÆÁÊÌÁ"
-#: src/lex.c:329
+#: src/lex.c:338
msgid "unterminated type name"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ"
-#: src/lex.c:422
+#: src/lex.c:430
msgid "use \"...\" for multi-character literal tokens"
msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
{ "nonassoc", NULL, tok_nonassoc },
{ "binary", NULL, tok_nonassoc },
{ "prec", NULL, tok_prec },
- { "locations", &locations_flag, tok_noop }, /* -l */
- { "no_lines", &no_lines_flag, tok_noop }, /* -l */
- { "raw", &raw_flag, tok_noop }, /* -r */
- { "token_table", &token_table_flag, tok_noop }, /* -k */
- { "yacc", &yacc_flag, tok_noop }, /* -y */
- { "fixed_output_files",&yacc_flag, tok_noop }, /* -y */
- { "defines", &defines_flag, tok_noop }, /* -d */
- { "no_parser", &no_parser_flag, tok_noop }, /* -n */
+ { "locations", &locations_flag, tok_noop }, /* -l */
+ { "no_lines", &no_lines_flag, tok_noop }, /* -l */
+ { "raw", &raw_flag, tok_noop }, /* -r */
+ { "token_table", &token_table_flag, tok_noop }, /* -k */
+ { "yacc", &yacc_flag, tok_noop }, /* -y */
+ { "fixed_output_files",&yacc_flag, tok_noop }, /* -y */
+ { "defines", &defines_flag, tok_noop }, /* -d */
+ { "no_parser", &no_parser_flag, tok_noop }, /* -n */
#if 0
/* For the time being, this is not enabled yet, while it's possible
though, since we use obstacks. The only risk is with semantic
{ "file_prefix", &spec_file_prefix, tok_setopt }, /* -b */
{ "name_prefix", &spec_name_prefix, tok_setopt }, /* -p */
#endif
- { "verbose", &verbose_flag, tok_noop }, /* -v */
- { "debug", &debug_flag, tok_noop }, /* -t */
+ { "verbose", &verbose_flag, tok_noop }, /* -v */
+ { "debug", &debug_flag, tok_noop }, /* -t */
{ "semantic_parser", &semantic_parser, tok_noop },
{ "pure_parser", &pure_parser, tok_noop },
-/* {"help", <print usage stmt>, tok_noop}, *//* -h */
-/* {"version", <print version number> , tok_noop}, *//* -V */
+
{ NULL, NULL, tok_illegal}
};