* src/report.c: New file.
* src/report.h: Likewise.
* src/Makefile.am: Adjust.
* m4/error.m4: New file.
* m4/Makefile.am: Adjust.
* configure.in (jm_PREREQ_ERROR): Call it.
* src/main.c (int_to_string, banner, fatal_banner, warn_banner):
Remove.
(fatal, fatals): Remove. All callers use complain.c::fatal.
(warn, warni, warns, warnss, warnss): Remove. All callers use
complain.c::complain.
(toomany): Remove, use fatal instead.
* src/files.c (done): No argument, use complain_message_count.
* src/main.c (main): Register `done' to `atexit'.
* src/getargs.c (usage): More `fputs', less `fprintf'.
+2000-03-31 Akim Demaille <akim@epita.fr>
+
+ Clean the error reporting functions.
+
+ * src/report.c: New file.
+ * src/report.h: Likewise.
+ * src/Makefile.am: Adjust.
+ * m4/error.m4: New file.
+ * m4/Makefile.am: Adjust.
+ * configure.in (jm_PREREQ_ERROR): Call it.
+ * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
+ Remove.
+ (fatal, fatals): Remove. All callers use complain.c::fatal.
+ (warn, warni, warns, warnss, warnss): Remove. All callers use
+ complain.c::complain.
+ (toomany): Remove, use fatal instead.
+ * src/files.c (done): No argument, use complain_message_count.
+ * src/main.c (main): Register `done' to `atexit'.
+
+ * src/getargs.c (usage): More `fputs', less `fprintf'.
+
2000-03-28 Akim Demaille <akim@epita.fr>
* lib/: New directory.
BISON_NEED_DECLARATIONS(calloc realloc)
AM_GNU_GETTEXT
+jm_PREREQ_ERROR
# This is necessary so that .o files in LIBOBJS are also built via
# the ANSI2KNR-filtering rules.
INCLUDES = -I.. -I$(srcdir) -I../intl
libbison_a_SOURCES = getopt.c getopt1.c
+noinst_HEADERS = getopt.h
libbison_a_LIBADD = @LIBOBJS@ @ALLOCA@
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
-
-noinst_HEADERS = getopt.h
## Process this file with automake to produce Makefile.in -*-Makefile-*-
-EXTRA_DIST = bison-decl.m4 gettext.m4 lcmessage.m4 progtest.m4
+EXTRA_DIST = bison-decl.m4 error.m4 gettext.m4 lcmessage.m4 progtest.m4
--- /dev/null
+#serial 1
+
+dnl FIXME: put these prerequisite-only *.m4 files in a separate
+dnl directory -- otherwise, they'll conflict with existing files.
+
+dnl These are the prerequisite macros for GNU's error.c file.
+AC_DEFUN(jm_PREREQ_ERROR,
+[
+ AC_CHECK_FUNCS(strerror strerror_r vprintf doprnt)
+ AC_HEADER_STDC
+])
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-03-28 14:20+0200\n"
+"POT-Creation-Date: 2000-03-31 15:40+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"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
+#: src/LR0.c:377
+#, c-format
+msgid "too many states (max %d)"
+msgstr ""
+
#: src/allocate.c:59 src/allocate.c:75
#, c-format
msgid "%s: memory exhausted\n"
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
-#: src/getargs.c:196
+#: src/getargs.c:195
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: keine Grammatik-Datei angegeben\n"
-#: src/getargs.c:200
+#: src/getargs.c:199
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n"
-#: src/lalr.c:294
-msgid "gotos"
-msgstr "»goto« Anweisungen"
+#: src/lalr.c:293
+#, c-format
+msgid "too many gotos (max %d)"
+msgstr ""
-#: src/lex.c:119
+#: src/lex.c:115
msgid "unexpected `/' found and ignored"
msgstr "»/« wird hier nicht erwartet und wird deshalb ignoriert"
-#: src/lex.c:148 src/reader.c:258
+#: src/lex.c:144 src/reader.c:248
msgid "unterminated comment"
msgstr "unbeendeter Kommentar"
-#: src/lex.c:176
-msgid "Unexpected end of file"
+#: src/lex.c:172
+#, fuzzy
+msgid "unexpected end of file"
msgstr "Datei endet unerwartet"
# Oder soll man den Begriff "Escapezeichen" verwenden?
-#: src/lex.c:197
+#: src/lex.c:193
msgid "unescaped newline in constant"
msgstr "nicht maskiertes Zeilenendezeichen in Konstante"
-#: src/lex.c:229
+#: src/lex.c:225
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "oktaler Zahlenwert außerhalb des Bereichs 0...255: »\\%o«"
-#: src/lex.c:253
+#: src/lex.c:250
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadezimaler Zahlenwert größer als 255: »\\x%x«"
-#: src/lex.c:263
+#: src/lex.c:261
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "unbekanntes Fluchtzeichen: »\\« gefolgt von »%s«"
-#: src/lex.c:396
+#: src/lex.c:394
msgid "use \"...\" for multi-character literal tokens"
msgstr "für Literal mit mehreren Zeichen bitte \"...\" verwenden"
-#: src/lex.c:475
+#: src/lex.c:473
msgid "unterminated type name at end of file"
msgstr "unerwarteter Typname am Ende der Datei"
-#: src/lex.c:478
+#: src/lex.c:476
msgid "unterminated type name"
msgstr "unerwarteter Typname"
-#: src/main.c:163
-#, fuzzy
-msgid "fatal error: "
-msgstr "fataler Fehler: %s\n"
-
-#: src/main.c:258
-#, c-format
-msgid "too many %s (max %d)"
-msgstr ""
-
-#: src/main.c:268
+#: src/main.c:137
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interner Fehler, %s\n"
msgid "Entering set_nullable"
msgstr "Führe »set_nullable« aus"
-#: src/output.c:1201
-#, c-format
-msgid "maximum table size (%s) exceeded"
+#: src/output.c:1199
+#, fuzzy, c-format
+msgid "maximum table size (%d) exceeded"
msgstr "maximale Tabellengröße (%s) überschritten"
#: src/print.c:85
msgid " on right:"
msgstr " auf der rechten Seite:"
-#: src/reader.c:163
+#: src/reader.c:154
msgid " Skipping to next \\n"
msgstr " Überspringe Zeichen bis zum nächsten \\n"
-#: src/reader.c:165
+#: src/reader.c:156
#, c-format
msgid " Skipping to next %c"
msgstr " Überspringe Zeichen bis zum nächten %c"
-#: src/reader.c:189 src/reader.c:204
+#: src/reader.c:180 src/reader.c:195
msgid "unterminated string at end of file"
msgstr "unbeendete Zeichenkette am Ende der Datei"
-#: src/reader.c:192
+#: src/reader.c:183
msgid "unterminated string"
msgstr "unbeendete Zeichenkette"
-#: src/reader.c:434
+#: src/reader.c:424
#, c-format
msgid "unrecognized: %s"
msgstr "unbekannt: %s"
-#: src/reader.c:439
+#: src/reader.c:429
msgid "no input grammar"
msgstr "keine Eingabe-Grammatik"
-#: src/reader.c:442
+#: src/reader.c:432
#, c-format
msgid "unknown character: %s"
msgstr "unbekanntes Zeichen: %s"
-#: src/reader.c:493
+#: src/reader.c:484
msgid "unterminated `%{' definition"
msgstr "unbeendete »%{« Definition"
-#: src/reader.c:571 src/reader.c:792
+#: src/reader.c:525 src/reader.c:713 src/reader.c:762
+#, c-format
+msgid "Premature EOF after %s"
+msgstr ""
+
+#: src/reader.c:562 src/reader.c:784
#, c-format
msgid "symbol %s redefined"
msgstr "Symbol %s noch einmal definiert"
-#: src/reader.c:581 src/reader.c:737 src/reader.c:799 src/reader.c:1703
+#: src/reader.c:572 src/reader.c:728 src/reader.c:791 src/reader.c:1697
#, c-format
msgid "type redeclaration for %s"
msgstr "erneute Deklaration des Typs für %s"
-#: src/reader.c:591
+#: src/reader.c:582
#, c-format
msgid "`%s' is invalid in %s"
msgstr "»%s« ist in %s nicht erlaubt"
-#: src/reader.c:639
+#: src/reader.c:630
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "unerwartetes Symbol %s, hier wird ein Bezeichner erwartet"
-#: src/reader.c:661
+#: src/reader.c:652
#, c-format
msgid "expected string constant instead of %s"
msgstr "hier wird eine Zeichenkette erwartet, nicht %s"
-#: src/reader.c:683
+#: src/reader.c:674
#, c-format
msgid "multiple %start declarations"
msgstr "mehr als eine %start Deklaration"
-#: src/reader.c:685
+#: src/reader.c:676
#, c-format
msgid "invalid %start declaration"
msgstr "ungültige %start Deklaration"
-#: src/reader.c:705
+#: src/reader.c:696
msgid "%type declaration has no <typename>"
msgstr "%type Deklaration hat keinen <Typ-Namen>"
-#: src/reader.c:742
-msgid "invalid %%type declaration due to item: `%s'"
+#: src/reader.c:733
+#, fuzzy
+msgid "invalid %%type declaration due to item: %s"
msgstr "ungültige %%type Deklaration wegen »%s«"
-#: src/reader.c:788
+#: src/reader.c:780
#, c-format
msgid "redefining precedence of %s"
msgstr "Stellenwertigkeit von %s wird erneut definiert"
-#: src/reader.c:811
+#: src/reader.c:803
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "unzulässiger Text (%s) - Nummer sollte nach Bezeichner kommen"
-#: src/reader.c:821
+#: src/reader.c:813
#, c-format
msgid "unexpected item: %s"
msgstr "unerwartetes Symbol: %s"
-#: src/reader.c:845
+#: src/reader.c:837
#, c-format
msgid "multiple %union declarations"
msgstr "erneute %union Definition"
-#: src/reader.c:903
+#: src/reader.c:895
msgid "unterminated comment at end of file"
msgstr "unbeendeter Kommentar am Dateiende"
-#: src/reader.c:929
+#: src/reader.c:921
msgid "unmatched close-brace (`}')"
msgstr "schließende geschweifte Klammer (»}«) hat kein Gegenstück"
-#: src/reader.c:973
+#: src/reader.c:965
#, c-format
msgid "argument of %expect is not an integer"
msgstr "Argument von %expect ist keine ganze Zahl"
-#: src/reader.c:1005
+#: src/reader.c:997
#, c-format
msgid "@%s is invalid"
msgstr "@%s ist unzulässig"
-#: src/reader.c:1014
+#: src/reader.c:1012 src/reader.c:1024
msgid "invalid $ value"
msgstr "unzulässiger $ Wert"
-#: src/reader.c:1092
+#: src/reader.c:1083
msgid "unmatched right brace (`}')"
msgstr "schließende geschweifte Klammer (»}«) hat kein Gegenstück"
-#: src/reader.c:1139 src/reader.c:1277
+#: src/reader.c:1130 src/reader.c:1270
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ von »%s« hat keine deklarierten Wert"
-#: src/reader.c:1154 src/reader.c:1293
-#, c-format
-msgid "$%s of `%s' has no declared type"
+#: src/reader.c:1146 src/reader.c:1286
+#, fuzzy, c-format
+msgid "$%d of `%s' has no declared type"
msgstr "»%s« von »%s« hat keine deklarierten Wert"
-#: src/reader.c:1159 src/reader.c:1298
+#: src/reader.c:1151 src/reader.c:1291
#, c-format
msgid "$%s is invalid"
msgstr "$%s ist unzulässig"
-#: src/reader.c:1167
-msgid "unterminated %%guard clause"
+#: src/reader.c:1160
+#, fuzzy, c-format
+msgid "unterminated %guard clause"
msgstr "unbeendeter %%guard Fall"
-#: src/reader.c:1307
+#: src/reader.c:1300
msgid "unmatched `{'"
msgstr "»{« hat kein Gegenstück"
-#: src/reader.c:1393
+#: src/reader.c:1386
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:1400
+#: src/reader.c:1393
msgid "grammar starts with vertical bar"
msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an"
-#: src/reader.c:1431
+#: src/reader.c:1424
#, 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:1529
+#: src/reader.c:1522
msgid "two @prec's in a row"
msgstr "zwei @prec Anweisungen nacheinander"
-#: src/reader.c:1537
-msgid "%%guard present but %%semantic_parser not specified"
+#: src/reader.c:1531
+#, fuzzy, c-format
+msgid "%guard present but %semantic_parser not specified"
msgstr ""
"%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben"
-#: src/reader.c:1546
+#: src/reader.c:1540
msgid "two actions at end of one rule"
msgstr "Zwei Aktionen am Ende einer Regel"
-#: src/reader.c:1561
+#: src/reader.c:1555
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion"
-#: src/reader.c:1567
+#: src/reader.c:1561
msgid "empty rule for typed nonterminal, and no action"
msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion"
-#: src/reader.c:1611
+#: src/reader.c:1605
#, c-format
msgid "invalid input: %s"
msgstr "ungültige Eingabe: %s"
-#: src/reader.c:1619
-#, c-format
-msgid "too many symbols (tokens plus nonterminals); maximum %s"
+#: src/reader.c:1613
+#, 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:1622
+#: src/reader.c:1616
msgid "no rules in the input grammar"
msgstr "Eingabegrammatik enthält keine Regeln"
-#: src/reader.c:1640
+#: src/reader.c:1634
#, 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:1679
+#: src/reader.c:1673
msgid "ill-formed %type declaration"
msgstr "falsch geformte %type Deklaration"
-#: src/reader.c:1758
+#: src/reader.c:1752
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich"
-#: src/reader.c:1770
+#: src/reader.c:1764
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "assoc Werte für %s nd %s widersprechen sich"
-#: src/reader.c:1821
-#, c-format
-msgid "tokens %s and %s both assigned number %s"
+#: src/reader.c:1815
+#, 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:1835
+#: src/reader.c:1829
#, c-format
msgid "the start symbol %s is undefined"
msgstr "das Startsymbol %s ist undefiniert"
-#: src/reader.c:1837
+#: src/reader.c:1831
#, c-format
msgid "the start symbol %s is a token"
msgstr "das Startsymbol %s ist ein Token"
msgid "%d useless rule%s"
msgstr "%d ungenutzte Regel"
-#: src/getopt.c:675
+#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: die Option »%s« ist nicht eindeutig\n"
-#: src/getopt.c:700
+#: lib/getopt.c:700
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: die Option »--%s« erlaubt kein Argument\n"
-#: src/getopt.c:705
+#: lib/getopt.c:705
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: die Option »%c%s« erlaubt kein Argument\n"
-#: src/getopt.c:723 src/getopt.c:896
+#: lib/getopt.c:723 lib/getopt.c:896
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: die Option »%s« erfordert ein Argument\n"
#. --option
-#: src/getopt.c:752
+#: lib/getopt.c:752
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: unbekannte Option »--%s«\n"
#. +option or -option
-#: src/getopt.c:756
+#: lib/getopt.c:756
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: unbekannte Option »%c%s«\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:782
+#: lib/getopt.c:782
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: die Option ist nicht erlaubt -- %c\n"
-#: src/getopt.c:785
+#: lib/getopt.c:785
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ungültige Option -- %c\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:815 src/getopt.c:945
+#: lib/getopt.c:815 lib/getopt.c:945
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: die Option benötigt ein Argument -- %c\n"
-#: src/getopt.c:862
+#: lib/getopt.c:862
#, fuzzy, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: die Option »%s« ist nicht eindeutig\n"
-#: src/getopt.c:880
+#: lib/getopt.c:880
#, fuzzy, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: die Option »--%s« erlaubt kein Argument\n"
+#~ msgid "gotos"
+#~ msgstr "»goto« Anweisungen"
+
+#, fuzzy
+#~ msgid "fatal error: "
+#~ msgstr "fataler Fehler: %s\n"
+
#, fuzzy
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.25\n"
-"POT-Creation-Date: 2000-03-28 14:20+0200\n"
+"POT-Creation-Date: 2000-03-31 15:40+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"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
+#: src/LR0.c:377
+#, c-format
+msgid "too many states (max %d)"
+msgstr ""
+
#: src/allocate.c:59 src/allocate.c:75
#, c-format
msgid "%s: memory exhausted\n"
# Me parece menos "computadora" decir "ningún fichero de gramática" - cll
#
-#: src/getargs.c:196
+#: src/getargs.c:195
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: no se ha especificado ningún fichero de gramática\n"
# Ignorar es no saber, to ignore es no hacer caso, que no es lo mismo. sv
-#: src/getargs.c:200
+#: src/getargs.c:199
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: los argumentos extra después de '%s' no se tendrán en cuenta\n"
-# Duda: desconozco en qué caso se emplea esto. Estúdialo bien y
-# comprueba que realmente es necesario emplear una palabra no
-# española. Recuerda que el acuerdo que existe en la lista de correo en
-# español es, en el peor de los casos, poner algo en español y luego en
-# inglés a modo de recordatorio. Por ejemplo: "tubería (pipe)" - cll
-#
-# miré el código, lo que indica es el número de gotos del código
-# ngp
-#
-#: src/lalr.c:294
-msgid "gotos"
-msgstr "saltos (gotos)"
+#: src/lalr.c:293
+#, c-format
+msgid "too many gotos (max %d)"
+msgstr ""
# to ignore no es ignorar. Pon otra cosa, please. sv
-#: src/lex.c:119
+#: src/lex.c:115
msgid "unexpected `/' found and ignored"
msgstr "se ha encontrado `/' cuando no se esperaba, no se tendrán en cuenta"
-#: src/lex.c:148 src/reader.c:258
+#: src/lex.c:144 src/reader.c:248
msgid "unterminated comment"
msgstr "comentario sin terminar"
-#: src/lex.c:176
-msgid "Unexpected end of file"
+#: src/lex.c:172
+#, fuzzy
+msgid "unexpected end of file"
msgstr "Fin de fichero inesperado"
# ¿unescaped?
-#: src/lex.c:197
+#: src/lex.c:193
msgid "unescaped newline in constant"
msgstr "salto de línea en constante sin secuencia de escape"
-#: src/lex.c:229
+#: src/lex.c:225
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "valor octal fuera del rango 0...255: `\\%o'"
-#: src/lex.c:253
+#: src/lex.c:250
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "valor hexadecimal mayor que 255: `\\x%x'"
-#: src/lex.c:263
+#: src/lex.c:261
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "secuencia de escape desconocida: `\\' seguido de `%s'"
# ¿multicarácter o multicaracteres? sv
-#: src/lex.c:396
+#: src/lex.c:394
msgid "use \"...\" for multi-character literal tokens"
msgstr "use \"...\" para terminales literales multicarácter"
-#: src/lex.c:475
+#: src/lex.c:473
msgid "unterminated type name at end of file"
msgstr "nombre de tipo sin terminar al final del fichero"
-#: src/lex.c:478
+#: src/lex.c:476
msgid "unterminated type name"
msgstr "nombre de tipo sin terminar"
-# Duda: desconozco cuál será el convenio en la lista de correo a
-# propósito de "fatal". Por favor, comprueba que "error grave" es
-# preferido por todos los miembros a "error fatal" - cll
-# veremos que dice la mayoría, como hay otros 2 revisores
-# La verdad es que a mi lo de error fatal me suena fatal
-# ngp
-#
-#: src/main.c:163
-#, fuzzy
-msgid "fatal error: "
-msgstr "error grave: %s\n"
-
-#: src/main.c:258
-#, c-format
-msgid "too many %s (max %d)"
-msgstr ""
-
-#: src/main.c:268
+#: src/main.c:137
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "error interno, %s\n"
# en inglés era así, pero quizás en español sea mejor como dices
# ngp
#
-#: src/output.c:1201
-#, c-format
-msgid "maximum table size (%s) exceeded"
+#: src/output.c:1199
+#, fuzzy, c-format
+msgid "maximum table size (%d) exceeded"
msgstr "excedido el tamaño máximo de la tabla (%s)"
#: src/print.c:85
msgid " on right:"
msgstr " en la derecha:"
-#: src/reader.c:163
+#: src/reader.c:154
msgid " Skipping to next \\n"
msgstr " Saltando al siguiente \\n"
-#: src/reader.c:165
+#: src/reader.c:156
#, c-format
msgid " Skipping to next %c"
msgstr " Saltando al siguiente %c"
-#: src/reader.c:189 src/reader.c:204
+#: src/reader.c:180 src/reader.c:195
msgid "unterminated string at end of file"
msgstr "cadena sin terminar al final del fichero"
-#: src/reader.c:192
+#: src/reader.c:183
msgid "unterminated string"
msgstr "cadena sin terminar"
-#: src/reader.c:434
+#: src/reader.c:424
#, c-format
msgid "unrecognized: %s"
msgstr "no reconocido: %s"
-#: src/reader.c:439
+#: src/reader.c:429
msgid "no input grammar"
msgstr "no hay gramática de entrada"
-#: src/reader.c:442
+#: src/reader.c:432
#, c-format
msgid "unknown character: %s"
msgstr "carácter desconocido: %s"
-#: src/reader.c:493
+#: src/reader.c:484
msgid "unterminated `%{' definition"
msgstr "definición `%{' sin terminar"
-#: src/reader.c:571 src/reader.c:792
+#: src/reader.c:525 src/reader.c:713 src/reader.c:762
+#, c-format
+msgid "Premature EOF after %s"
+msgstr ""
+
+#: src/reader.c:562 src/reader.c:784
#, c-format
msgid "symbol %s redefined"
msgstr "redefinido el símbolo %s"
-#: src/reader.c:581 src/reader.c:737 src/reader.c:799 src/reader.c:1703
+#: src/reader.c:572 src/reader.c:728 src/reader.c:791 src/reader.c:1697
#, c-format
msgid "type redeclaration for %s"
msgstr "redeclaración del tipo de %s"
-#: src/reader.c:591
+#: src/reader.c:582
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' no es válido en %s"
# - cll
# ok - ngp
#
-#: src/reader.c:639
+#: src/reader.c:630
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "no se reconoce el ítem %s, se esperaba un identificador"
-#: src/reader.c:661
+#: src/reader.c:652
#, c-format
msgid "expected string constant instead of %s"
msgstr "se esperaba una cadena constante en lugar de %s"
-#: src/reader.c:683
+#: src/reader.c:674
#, c-format
msgid "multiple %start declarations"
msgstr "múltiples declaraciones de %start"
-#: src/reader.c:685
+#: src/reader.c:676
#, c-format
msgid "invalid %start declaration"
msgstr "declaración de %start no válida"
-#: src/reader.c:705
+#: src/reader.c:696
msgid "%type declaration has no <typename>"
msgstr "la declaración %type no tiene <nombre-tipo>"
-#: src/reader.c:742
-msgid "invalid %%type declaration due to item: `%s'"
+#: src/reader.c:733
+#, fuzzy
+msgid "invalid %%type declaration due to item: %s"
msgstr "declaración de %%type no válida debido al ítem: `%s'"
-#: src/reader.c:788
+#: src/reader.c:780
#, c-format
msgid "redefining precedence of %s"
msgstr "redefinición de la precedencia de %s"
# 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:811
+#: src/reader.c:803
#, c-format
msgid "invalid text (%s) - number should be after identifier"
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:821
+#: src/reader.c:813
#, c-format
msgid "unexpected item: %s"
msgstr "ítem inesperado: %s"
-#: src/reader.c:845
+#: src/reader.c:837
#, c-format
msgid "multiple %union declarations"
msgstr "declaraciones múltiples de %union"
-#: src/reader.c:903
+#: src/reader.c:895
msgid "unterminated comment at end of file"
msgstr "comentario sin terminar al final del fichero"
-#: src/reader.c:929
+#: src/reader.c:921
msgid "unmatched close-brace (`}')"
msgstr "llave de cierre (`}') desemparejada"
-#: src/reader.c:973
+#: src/reader.c:965
#, c-format
msgid "argument of %expect is not an integer"
msgstr "el argumento de %expect no es un entero"
-#: src/reader.c:1005
+#: src/reader.c:997
#, c-format
msgid "@%s is invalid"
msgstr "@%s no es válido"
-#: src/reader.c:1014
+#: src/reader.c:1012 src/reader.c:1024
msgid "invalid $ value"
msgstr "valor $ no válido"
-#: src/reader.c:1092
+#: src/reader.c:1083
msgid "unmatched right brace (`}')"
msgstr "llave derecha (`}') desemparejada"
-#: src/reader.c:1139 src/reader.c:1277
+#: src/reader.c:1130 src/reader.c:1270
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ de `%s' no tiene tipo declarado"
-#: src/reader.c:1154 src/reader.c:1293
-#, c-format
-msgid "$%s of `%s' has no declared type"
+#: src/reader.c:1146 src/reader.c:1286
+#, fuzzy, c-format
+msgid "$%d of `%s' has no declared type"
msgstr "$%s de `%s' no tiene tipo declarado"
-#: src/reader.c:1159 src/reader.c:1298
+#: src/reader.c:1151 src/reader.c:1291
#, c-format
msgid "$%s is invalid"
msgstr "$%s no es válida"
# 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:1167
-msgid "unterminated %%guard clause"
+#: src/reader.c:1160
+#, fuzzy, c-format
+msgid "unterminated %guard clause"
msgstr "cláusula %%guard sin terminar"
# Cambio el orden y el sexo. Ahora está "en español". sv
-#: src/reader.c:1307
+#: src/reader.c:1300
msgid "unmatched `{'"
msgstr "`{' desemparejada"
-#: src/reader.c:1393
+#: src/reader.c:1386
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:1400
+#: src/reader.c:1393
msgid "grammar starts with vertical bar"
msgstr "la gramática comienza con una barra vertical"
-#: src/reader.c:1431
+#: src/reader.c:1424
#, 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:1529
+#: src/reader.c:1522
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:1537
-msgid "%%guard present but %%semantic_parser not specified"
+#: src/reader.c:1531
+#, fuzzy, c-format
+msgid "%guard present but %semantic_parser not specified"
msgstr "%%guard presente pero %%semantic_parser está sin especificar"
-#: src/reader.c:1546
+#: src/reader.c:1540
msgid "two actions at end of one rule"
msgstr "dos acciones al final de una regla"
-#: src/reader.c:1561
+#: src/reader.c:1555
#, 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:1567
+#: src/reader.c:1561
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:1611
+#: src/reader.c:1605
#, c-format
msgid "invalid input: %s"
msgstr "entrada no válida: %s"
-#: src/reader.c:1619
-#, c-format
-msgid "too many symbols (tokens plus nonterminals); maximum %s"
+#: src/reader.c:1613
+#, 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:1622
+#: src/reader.c:1616
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:1640
+#: src/reader.c:1634
#, 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:1679
+#: src/reader.c:1673
msgid "ill-formed %type declaration"
msgstr "declaración %type incorrectamente formada"
-#: src/reader.c:1758
+#: src/reader.c:1752
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "precedencias en conflicto entre %s y %s"
-#: src/reader.c:1770
+#: src/reader.c:1764
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflicto de valores assoc para %s y %s"
-#: src/reader.c:1821
-#, c-format
-msgid "tokens %s and %s both assigned number %s"
+#: src/reader.c:1815
+#, 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:1835
+#: src/reader.c:1829
#, c-format
msgid "the start symbol %s is undefined"
msgstr "el símbolo de inicio (axioma) %s no está definido"
-#: src/reader.c:1837
+#: src/reader.c:1831
#, c-format
msgid "the start symbol %s is a token"
msgstr "el símbolo de inicio (axioma) %s es un terminal"
msgid "%d useless rule%s"
msgstr "%d regla%s sin uso"
-#: src/getopt.c:675
+#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: la opción `%s' es ambigua\n"
# Pongo esto como en otros .po. sv
-#: src/getopt.c:700
+#: lib/getopt.c:700
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: la opción `--%s' no admite ningún argumento\n"
-#: src/getopt.c:705
+#: lib/getopt.c:705
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: la opción `%c%s' no admite ningún argumento\n"
-#: src/getopt.c:723 src/getopt.c:896
+#: lib/getopt.c:723 lib/getopt.c:896
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: la opción `%s' requiere un argumento\n"
#. --option
-#: src/getopt.c:752
+#: lib/getopt.c:752
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: opción `--%s' no reconocida\n"
#. +option or -option
-#: src/getopt.c:756
+#: lib/getopt.c:756
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: opción `%c%s' no reconocida\n"
# a la cárcel (como mucho se cuelgan, je, je, 0ff0 :-). sv
#
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:782
+#: lib/getopt.c:782
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opción -- %c ilegal\n"
# Porque Enrique decía que le recordaba a disminuidos físicos.
# Francamente, no creo que haya que andar con estas "fobias".
# Pongo inválida. sv
-#: src/getopt.c:785
+#: lib/getopt.c:785
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: opción -- %c inválida\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:815 src/getopt.c:945
+#: lib/getopt.c:815 lib/getopt.c:945
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: la opción -- %c requiere un argumento\n"
-#: src/getopt.c:862
+#: lib/getopt.c:862
#, fuzzy, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: la opción `%s' es ambigua\n"
# Pongo esto como en otros .po. sv
-#: src/getopt.c:880
+#: lib/getopt.c:880
#, fuzzy, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: la opción `--%s' no admite ningún argumento\n"
+# Duda: desconozco en qué caso se emplea esto. Estúdialo bien y
+# comprueba que realmente es necesario emplear una palabra no
+# española. Recuerda que el acuerdo que existe en la lista de correo en
+# español es, en el peor de los casos, poner algo en español y luego en
+# inglés a modo de recordatorio. Por ejemplo: "tubería (pipe)" - cll
+#
+# miré el código, lo que indica es el número de gotos del código
+# ngp
+#
+#~ msgid "gotos"
+#~ msgstr "saltos (gotos)"
+
+# Duda: desconozco cuál será el convenio en la lista de correo a
+# propósito de "fatal". Por favor, comprueba que "error grave" es
+# preferido por todos los miembros a "error fatal" - cll
+# veremos que dice la mayoría, como hay otros 2 revisores
+# La verdad es que a mi lo de error fatal me suena fatal
+# ngp
+#
+#, fuzzy
+#~ msgid "fatal error: "
+#~ msgstr "error grave: %s\n"
+
# ¿Por qué no lo pones en mayúsculas? Al fin y al cabo, eso es lo que
# haces luego con "FDERIVES" que traduces como "FDERIVACIONES", ... -
# cll
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-03-28 14:20+0200\n"
+"POT-Creation-Date: 2000-03-31 15:40+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"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
+#: src/LR0.c:377
+#, c-format
+msgid "too many states (max %d)"
+msgstr ""
+
#: src/allocate.c:59 src/allocate.c:75
#, c-format
msgid "%s: memory exhausted\n"
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
-#: src/getargs.c:196
+#: src/getargs.c:195
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: grammaire manquante\n"
-#: src/getargs.c:200
+#: src/getargs.c:199
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: paramètres supplémentaires ignorés après «%s»\n"
-#: src/lalr.c:294
-msgid "gotos"
-msgstr "gotos"
+#: src/lalr.c:293
+#, c-format
+msgid "too many gotos (max %d)"
+msgstr ""
-#: src/lex.c:119
+#: src/lex.c:115
msgid "unexpected `/' found and ignored"
msgstr "`/' inattendu et ignoré"
-#: src/lex.c:148 src/reader.c:258
+#: src/lex.c:144 src/reader.c:248
msgid "unterminated comment"
msgstr "le commentaire ne se termine pas"
-#: src/lex.c:176
-msgid "Unexpected end of file"
+#: src/lex.c:172
+#, fuzzy
+msgid "unexpected end of file"
msgstr "Fin de fichier inattendue"
-#: src/lex.c:197
+#: src/lex.c:193
msgid "unescaped newline in constant"
msgstr "retour de chariot sans échappement dans une constante"
-#: src/lex.c:229
+#: src/lex.c:225
#, 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:253
+#: src/lex.c:250
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "valeur hexadécimale supérieure à 255: \\x%x"
-#: src/lex.c:263
+#: src/lex.c:261
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "séquence d'échappement inconnue: `\\' suivie de `%s'"
-#: src/lex.c:396
+#: src/lex.c:394
msgid "use \"...\" for multi-character literal tokens"
msgstr "utilisez \"...\" pour les terminaux litéraux de plusieurs caractères"
-#: src/lex.c:475
+#: src/lex.c:473
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:478
+#: src/lex.c:476
msgid "unterminated type name"
msgstr "le nom de type ne se termine pas"
-#: src/main.c:163
-#, fuzzy
-msgid "fatal error: "
-msgstr "erreur fatale: %s\n"
-
-#: src/main.c:258
-#, c-format
-msgid "too many %s (max %d)"
-msgstr ""
-
-#: src/main.c:268
+#: src/main.c:137
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "erreur interne, %s\n"
msgid "Entering set_nullable"
msgstr "Entré dans set_nullable"
-#: src/output.c:1201
-#, c-format
-msgid "maximum table size (%s) exceeded"
+#: src/output.c:1199
+#, fuzzy, c-format
+msgid "maximum table size (%d) exceeded"
msgstr "taille maximum des tables (%s) dépassée"
#: src/print.c:85
msgid " on right:"
msgstr " à droite:"
-#: src/reader.c:163
+#: src/reader.c:154
msgid " Skipping to next \\n"
msgstr " Saut jusqu'au prochain \\n"
-#: src/reader.c:165
+#: src/reader.c:156
#, c-format
msgid " Skipping to next %c"
msgstr " Saut jusqu'au prochain %c"
-#: src/reader.c:189 src/reader.c:204
+#: src/reader.c:180 src/reader.c:195
msgid "unterminated string at end of file"
msgstr "chaîne de caractères non terminée en fin de fichier"
-#: src/reader.c:192
+#: src/reader.c:183
msgid "unterminated string"
msgstr "chaîne de caractère non terminée"
-#: src/reader.c:434
+#: src/reader.c:424
#, c-format
msgid "unrecognized: %s"
msgstr "non reconnu: %s"
-#: src/reader.c:439
+#: src/reader.c:429
msgid "no input grammar"
msgstr "aucune grammaire en entrée"
-#: src/reader.c:442
+#: src/reader.c:432
#, c-format
msgid "unknown character: %s"
msgstr "caractère inconnu: %s"
-#: src/reader.c:493
+#: src/reader.c:484
msgid "unterminated `%{' definition"
msgstr "La section de définition (%{) ne termine pas avant la fin du fichier"
-#: src/reader.c:571 src/reader.c:792
+#: src/reader.c:525 src/reader.c:713 src/reader.c:762
+#, c-format
+msgid "Premature EOF after %s"
+msgstr ""
+
+#: src/reader.c:562 src/reader.c:784
#, c-format
msgid "symbol %s redefined"
msgstr "symbole %s redéfini"
-#: src/reader.c:581 src/reader.c:737 src/reader.c:799 src/reader.c:1703
+#: src/reader.c:572 src/reader.c:728 src/reader.c:791 src/reader.c:1697
#, c-format
msgid "type redeclaration for %s"
msgstr "redéclaration du type de %s"
-#: src/reader.c:591
+#: src/reader.c:582
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' n'est pas valide dans %s"
-#: src/reader.c:639
+#: src/reader.c:630
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "item %s non reconnu, un identificateur est attendu"
-#: src/reader.c:661
+#: src/reader.c:652
#, c-format
msgid "expected string constant instead of %s"
msgstr "chaîne de caractères constante attendue plutôt que %s"
-#: src/reader.c:683
+#: src/reader.c:674
#, c-format
msgid "multiple %start declarations"
msgstr "multiples déclarations %start"
-#: src/reader.c:685
+#: src/reader.c:676
#, c-format
msgid "invalid %start declaration"
msgstr "la déclaration %start n'est pas valide"
-#: src/reader.c:705
+#: src/reader.c:696
msgid "%type declaration has no <typename>"
msgstr "la déclaration %type n'a pas de <nom_de_type>"
-#: src/reader.c:742
-msgid "invalid %%type declaration due to item: `%s'"
+#: src/reader.c:733
+#, 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:788
+#: src/reader.c:780
#, c-format
msgid "redefining precedence of %s"
msgstr "redéfinition du niveau de priorité de %s"
-#: src/reader.c:811
+#: src/reader.c:803
#, 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:821
+#: src/reader.c:813
#, c-format
msgid "unexpected item: %s"
msgstr "item inattendu: %s"
-#: src/reader.c:845
+#: src/reader.c:837
#, c-format
msgid "multiple %union declarations"
msgstr "multiples déclarations %union"
-#: src/reader.c:903
+#: src/reader.c:895
msgid "unterminated comment at end of file"
msgstr "le commentaire ne se termine pas avant la fin du fichier"
-#: src/reader.c:929
+#: src/reader.c:921
msgid "unmatched close-brace (`}')"
msgstr "accolade fermante `}' non appariée"
-#: src/reader.c:973
+#: src/reader.c:965
#, c-format
msgid "argument of %expect is not an integer"
msgstr "le paramètre de %expect n'est pas un entier"
-#: src/reader.c:1005
+#: src/reader.c:997
#, c-format
msgid "@%s is invalid"
msgstr "@%s n'est pas valide"
-#: src/reader.c:1014
+#: src/reader.c:1012 src/reader.c:1024
msgid "invalid $ value"
msgstr "la valeur de symbole $ n'est pas valide"
-#: src/reader.c:1092
+#: src/reader.c:1083
msgid "unmatched right brace (`}')"
msgstr "accolade fermante `}' non appariée"
-#: src/reader.c:1139 src/reader.c:1277
+#: src/reader.c:1130 src/reader.c:1270
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ de `%s' n'a pas son type déclaré"
-#: src/reader.c:1154 src/reader.c:1293
-#, c-format
-msgid "$%s of `%s' has no declared type"
+#: src/reader.c:1146 src/reader.c:1286
+#, 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:1159 src/reader.c:1298
+#: src/reader.c:1151 src/reader.c:1291
#, c-format
msgid "$%s is invalid"
msgstr "$%s n'est pas valide"
-#: src/reader.c:1167
-msgid "unterminated %%guard clause"
+#: src/reader.c:1160
+#, fuzzy, c-format
+msgid "unterminated %guard clause"
msgstr "clause %%guard non terminée"
-#: src/reader.c:1307
+#: src/reader.c:1300
msgid "unmatched `{'"
msgstr "accolade ouvrante `{' non appariée"
-#: src/reader.c:1393
+#: src/reader.c:1386
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:1400
+#: src/reader.c:1393
msgid "grammar starts with vertical bar"
msgstr "la grammaire débute par une barre verticale"
-#: src/reader.c:1431
+#: src/reader.c:1424
#, c-format
msgid "rule given for %s, which is a token"
msgstr "la règle pour %s, qui est un terminal"
-#: src/reader.c:1529
+#: src/reader.c:1522
msgid "two @prec's in a row"
msgstr "deux @prec de suite"
-#: src/reader.c:1537
-msgid "%%guard present but %%semantic_parser not specified"
+#: src/reader.c:1531
+#, fuzzy, c-format
+msgid "%guard present but %semantic_parser not specified"
msgstr "%%guard est présent mais %%semantic_parser n'est pas spécifié"
-#: src/reader.c:1546
+#: src/reader.c:1540
msgid "two actions at end of one rule"
msgstr "deux actions à la fin d'une même règle"
-#: src/reader.c:1561
+#: src/reader.c:1555
#, 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:1567
+#: src/reader.c:1561
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:1611
+#: src/reader.c:1605
#, c-format
msgid "invalid input: %s"
msgstr "entrée non valide: %s"
-#: src/reader.c:1619
-#, c-format
-msgid "too many symbols (tokens plus nonterminals); maximum %s"
+#: src/reader.c:1613
+#, 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:1622
+#: src/reader.c:1616
msgid "no rules in the input grammar"
msgstr "la grammaire n'a pas de règles"
-#: src/reader.c:1640
+#: src/reader.c:1634
#, 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:1679
+#: src/reader.c:1673
msgid "ill-formed %type declaration"
msgstr "déclaration %type mal formée"
-#: src/reader.c:1758
+#: src/reader.c:1752
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "les priorités pour %s et %s entrent en conflit"
-#: src/reader.c:1770
+#: src/reader.c:1764
#, 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:1821
-#, c-format
-msgid "tokens %s and %s both assigned number %s"
+#: src/reader.c:1815
+#, 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:1835
+#: src/reader.c:1829
#, c-format
msgid "the start symbol %s is undefined"
msgstr "le symbole de départ %s n'est pas défini"
-#: src/reader.c:1837
+#: src/reader.c:1831
#, c-format
msgid "the start symbol %s is a token"
msgstr "le symbole de départ %s est un terminal"
msgid "%d useless rule%s"
msgstr "%d règle(s) non productive(s)"
-#: src/getopt.c:675
+#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: l'option %s est ambigüe\n"
-#: src/getopt.c:700
+#: lib/getopt.c:700
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: l'option --%s n'admet pas de paramètre\n"
-#: src/getopt.c:705
+#: lib/getopt.c:705
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: l'option %c%s n'admet pas de paramètre\n"
-#: src/getopt.c:723 src/getopt.c:896
+#: lib/getopt.c:723 lib/getopt.c:896
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: l'option %s requiert un paramètre\n"
#. --option
-#: src/getopt.c:752
+#: lib/getopt.c:752
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: l'option --%s est inconnue\n"
#. +option or -option
-#: src/getopt.c:756
+#: lib/getopt.c:756
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: l'option %c%s est inconnue\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:782
+#: lib/getopt.c:782
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: option illégale -- %c\n"
-#: src/getopt.c:785
+#: lib/getopt.c:785
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: option non valide -- %c\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:815 src/getopt.c:945
+#: lib/getopt.c:815 lib/getopt.c:945
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: Cette option requiert un paramètre -- %c\n"
-#: src/getopt.c:862
+#: lib/getopt.c:862
#, fuzzy, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: l'option %s est ambigüe\n"
-#: src/getopt.c:880
+#: lib/getopt.c:880
#, fuzzy, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: l'option --%s n'admet pas de paramètre\n"
+#~ msgid "gotos"
+#~ msgstr "gotos"
+
+#, fuzzy
+#~ msgid "fatal error: "
+#~ msgstr "erreur fatale: %s\n"
+
#~ msgid ""
#~ "\n"
#~ "\n"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-03-28 14:20+0200\n"
+"POT-Creation-Date: 2000-03-31 15:40+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"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
+#: src/LR0.c:377
+#, c-format
+msgid "too many states (max %d)"
+msgstr ""
+
#: src/allocate.c:59 src/allocate.c:75
#, c-format
msgid "%s: memory exhausted\n"
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
-#: src/getargs.c:196
+#: src/getargs.c:195
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: geen grammatica bestand gegeven\n"
-#: src/getargs.c:200
+#: src/getargs.c:199
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: extra argumenten genegeerd na '%s'\n"
-#: src/lalr.c:294
-msgid "gotos"
-msgstr "ganaar"
+#: src/lalr.c:293
+#, c-format
+msgid "too many gotos (max %d)"
+msgstr ""
-#: src/lex.c:119
+#: src/lex.c:115
msgid "unexpected `/' found and ignored"
msgstr "onverwachte `/' gevonden en genegeerd"
-#: src/lex.c:148 src/reader.c:258
+#: src/lex.c:144 src/reader.c:248
msgid "unterminated comment"
msgstr "ongetermineerd commentaar"
-#: src/lex.c:176
-msgid "Unexpected end of file"
+#: src/lex.c:172
+#, fuzzy
+msgid "unexpected end of file"
msgstr "Onverwacht bestandseinde"
-#: src/lex.c:197
+#: src/lex.c:193
msgid "unescaped newline in constant"
msgstr "niet geescapete nieuwe regel in constante"
-#: src/lex.c:229
+#: src/lex.c:225
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "octale waarde buiten domein 0...255: `\\%o'"
-#: src/lex.c:253
+#: src/lex.c:250
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "hexadecimale waarde boven 255: `\\x%x'"
-#: src/lex.c:263
+#: src/lex.c:261
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "onbekende escape reeks: `\\' gevolgd door `%s'"
-#: src/lex.c:396
+#: src/lex.c:394
msgid "use \"...\" for multi-character literal tokens"
msgstr "gebruik \"...\" voor meerdere karakters literal tekens"
-#: src/lex.c:475
+#: src/lex.c:473
msgid "unterminated type name at end of file"
msgstr "niet getermineerd type naam aan het einde van bestand"
-#: src/lex.c:478
+#: src/lex.c:476
msgid "unterminated type name"
msgstr "niet getermineerd type naam"
-#: src/main.c:163
-#, fuzzy
-msgid "fatal error: "
-msgstr "fatale fout: %s\n"
-
-#: src/main.c:258
-#, c-format
-msgid "too many %s (max %d)"
-msgstr ""
-
-#: src/main.c:268
+#: src/main.c:137
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interne fout, %s\n"
msgid "Entering set_nullable"
msgstr "Inkomende set nullable"
-#: src/output.c:1201
-#, c-format
-msgid "maximum table size (%s) exceeded"
+#: src/output.c:1199
+#, fuzzy, c-format
+msgid "maximum table size (%d) exceeded"
msgstr "maximale tabel grootte (%s) overschreden"
#: src/print.c:85
msgid " on right:"
msgstr " rechts:"
-#: src/reader.c:163
+#: src/reader.c:154
msgid " Skipping to next \\n"
msgstr " Verder naar volgende \\n"
-#: src/reader.c:165
+#: src/reader.c:156
#, c-format
msgid " Skipping to next %c"
msgstr " Verder naar volgende %c"
-#: src/reader.c:189 src/reader.c:204
+#: src/reader.c:180 src/reader.c:195
msgid "unterminated string at end of file"
msgstr "niet getermineerde string aan einde van bestand"
-#: src/reader.c:192
+#: src/reader.c:183
msgid "unterminated string"
msgstr "niet getermineerde string"
-#: src/reader.c:434
+#: src/reader.c:424
#, c-format
msgid "unrecognized: %s"
msgstr "onbekend: %s"
-#: src/reader.c:439
+#: src/reader.c:429
msgid "no input grammar"
msgstr "geen invoer grammatica"
-#: src/reader.c:442
+#: src/reader.c:432
#, c-format
msgid "unknown character: %s"
msgstr "onbekend karakter: %s"
-#: src/reader.c:493
+#: src/reader.c:484
msgid "unterminated `%{' definition"
msgstr "niet getermineerde `%{' definitie"
-#: src/reader.c:571 src/reader.c:792
+#: src/reader.c:525 src/reader.c:713 src/reader.c:762
+#, c-format
+msgid "Premature EOF after %s"
+msgstr ""
+
+#: src/reader.c:562 src/reader.c:784
#, c-format
msgid "symbol %s redefined"
msgstr "symbool %s opnieuw gedefinieerd"
-#: src/reader.c:581 src/reader.c:737 src/reader.c:799 src/reader.c:1703
+#: src/reader.c:572 src/reader.c:728 src/reader.c:791 src/reader.c:1697
#, c-format
msgid "type redeclaration for %s"
msgstr "type herdeclaratie voor %s"
-#: src/reader.c:591
+#: src/reader.c:582
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' is onjuist in %s"
-#: src/reader.c:639
+#: src/reader.c:630
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "onbekend item %s, verwacht een identifier"
-#: src/reader.c:661
+#: src/reader.c:652
#, c-format
msgid "expected string constant instead of %s"
msgstr "verwacht string constante in plaats van %s"
-#: src/reader.c:683
+#: src/reader.c:674
#, c-format
msgid "multiple %start declarations"
msgstr "meerdere %start declaraties"
-#: src/reader.c:685
+#: src/reader.c:676
#, c-format
msgid "invalid %start declaration"
msgstr "onjuiste %start declaratie"
-#: src/reader.c:705
+#: src/reader.c:696
msgid "%type declaration has no <typename>"
msgstr "%type declaratie heeft geen <typenaam>"
-#: src/reader.c:742
-msgid "invalid %%type declaration due to item: `%s'"
+#: src/reader.c:733
+#, fuzzy
+msgid "invalid %%type declaration due to item: %s"
msgstr "onjuist %%type declaratie door item: `%s'"
-#: src/reader.c:788
+#: src/reader.c:780
#, c-format
msgid "redefining precedence of %s"
msgstr "herdefinieren voorganger van %s"
-#: src/reader.c:811
+#: src/reader.c:803
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "onjuiste tekst (%s) - nummer hoort na de identifier"
-#: src/reader.c:821
+#: src/reader.c:813
#, c-format
msgid "unexpected item: %s"
msgstr "onbekend item: %s"
-#: src/reader.c:845
+#: src/reader.c:837
#, c-format
msgid "multiple %union declarations"
msgstr "meerdere %union declaraties"
-#: src/reader.c:903
+#: src/reader.c:895
msgid "unterminated comment at end of file"
msgstr "niet getermineerd commentaar aan einde van bestand"
-#: src/reader.c:929
+#: src/reader.c:921
msgid "unmatched close-brace (`}')"
msgstr "niet overeenkomstige afsluit-haakje (`}')"
-#: src/reader.c:973
+#: src/reader.c:965
#, c-format
msgid "argument of %expect is not an integer"
msgstr "argument van %expect is niet een integer"
-#: src/reader.c:1005
+#: src/reader.c:997
#, c-format
msgid "@%s is invalid"
msgstr "@%s is onjuist"
-#: src/reader.c:1014
+#: src/reader.c:1012 src/reader.c:1024
msgid "invalid $ value"
msgstr "onjuiste $ waarde"
-#: src/reader.c:1092
+#: src/reader.c:1083
msgid "unmatched right brace (`}')"
msgstr "niet overeenkomstig rechter haakje (`}')"
-#: src/reader.c:1139 src/reader.c:1277
+#: src/reader.c:1130 src/reader.c:1270
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ van `%s' heeft geen gedeclareerd type"
-#: src/reader.c:1154 src/reader.c:1293
-#, c-format
-msgid "$%s of `%s' has no declared type"
+#: src/reader.c:1146 src/reader.c:1286
+#, fuzzy, c-format
+msgid "$%d of `%s' has no declared type"
msgstr "$%s van `%s' heeft geen gedeclareerd type"
-#: src/reader.c:1159 src/reader.c:1298
+#: src/reader.c:1151 src/reader.c:1291
#, c-format
msgid "$%s is invalid"
msgstr "$%s is onjuist"
-#: src/reader.c:1167
-msgid "unterminated %%guard clause"
+#: src/reader.c:1160
+#, fuzzy, c-format
+msgid "unterminated %guard clause"
msgstr "niet getermineerde %%guard voorwaarde"
-#: src/reader.c:1307
+#: src/reader.c:1300
msgid "unmatched `{'"
msgstr "niet overeenkomstige `{'"
-#: src/reader.c:1393
+#: src/reader.c:1386
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr ""
"slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt"
-#: src/reader.c:1400
+#: src/reader.c:1393
msgid "grammar starts with vertical bar"
msgstr "grammatica start met een verticale bar"
-#: src/reader.c:1431
+#: src/reader.c:1424
#, c-format
msgid "rule given for %s, which is a token"
msgstr "regel geven voor %s, welke een teken is"
-#: src/reader.c:1529
+#: src/reader.c:1522
msgid "two @prec's in a row"
msgstr "twee @prec's in een regel"
-#: src/reader.c:1537
-msgid "%%guard present but %%semantic_parser not specified"
+#: src/reader.c:1531
+#, fuzzy, c-format
+msgid "%guard present but %semantic_parser not specified"
msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd"
-#: src/reader.c:1546
+#: src/reader.c:1540
msgid "two actions at end of one rule"
msgstr "twee akties aan het einde van een regel"
-#: src/reader.c:1561
+#: src/reader.c:1555
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "type clash (`%s' `%s') bij standaard aktie"
-#: src/reader.c:1567
+#: src/reader.c:1561
msgid "empty rule for typed nonterminal, and no action"
msgstr "lege regel voor getypte niet terminal, en geen aktie"
-#: src/reader.c:1611
+#: src/reader.c:1605
#, c-format
msgid "invalid input: %s"
msgstr "ongeldige invoer: %s"
-#: src/reader.c:1619
-#, c-format
-msgid "too many symbols (tokens plus nonterminals); maximum %s"
+#: src/reader.c:1613
+#, fuzzy, c-format
+msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "te veel symbolen (tekens plus nietterminals); maximum %s"
-#: src/reader.c:1622
+#: src/reader.c:1616
msgid "no rules in the input grammar"
msgstr "geen regels voor invoer grammatica"
-#: src/reader.c:1640
+#: src/reader.c:1634
#, 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:1679
+#: src/reader.c:1673
msgid "ill-formed %type declaration"
msgstr "slecht geformuleerde %type declaratie"
-#: src/reader.c:1758
+#: src/reader.c:1752
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "conflictuerende precedentein voor %s en %s"
-#: src/reader.c:1770
+#: src/reader.c:1764
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "conflictuerende associatieve waarden voor %s en %s"
-#: src/reader.c:1821
+#: src/reader.c:1815
#, c-format
-msgid "tokens %s and %s both assigned number %s"
+msgid "tokens %s and %s both assigned number %d"
msgstr ""
-#: src/reader.c:1835
+#: src/reader.c:1829
#, c-format
msgid "the start symbol %s is undefined"
msgstr ""
-#: src/reader.c:1837
+#: src/reader.c:1831
#, c-format
msgid "the start symbol %s is a token"
msgstr "het start symbool %s is een token"
msgid "%d useless rule%s"
msgstr "%d onbruikbare regels%s"
-#: src/getopt.c:675
+#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: optie `%s' is niet eenduidig\n"
-#: src/getopt.c:700
+#: lib/getopt.c:700
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: optie `--%s' staat geen argument toe\n"
-#: src/getopt.c:705
+#: lib/getopt.c:705
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: optie `%c%s' staat geen argument toe\n"
-#: src/getopt.c:723 src/getopt.c:896
+#: lib/getopt.c:723 lib/getopt.c:896
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: optie `%s' vereist een argument\n"
#. --option
-#: src/getopt.c:752
+#: lib/getopt.c:752
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: onbekende optie `--%s'\n"
#. +option or -option
-#: src/getopt.c:756
+#: lib/getopt.c:756
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: onbekende optie `%c%s'\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:782
+#: lib/getopt.c:782
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ongeldige optie -- %c\n"
-#: src/getopt.c:785
+#: lib/getopt.c:785
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: onjuiste optie -- %c\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:815 src/getopt.c:945
+#: lib/getopt.c:815 lib/getopt.c:945
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: optie vereist een argument -- %c\n"
-#: src/getopt.c:862
+#: lib/getopt.c:862
#, fuzzy, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: optie `%s' is niet eenduidig\n"
-#: src/getopt.c:880
+#: lib/getopt.c:880
#, fuzzy, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: optie `--%s' staat geen argument toe\n"
+#~ msgid "gotos"
+#~ msgstr "ganaar"
+
+#, fuzzy
+#~ msgid "fatal error: "
+#~ msgstr "fatale fout: %s\n"
+
#~ msgid ""
#~ "\n"
#~ "\n"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-03-28 14:20+0200\n"
+"POT-Creation-Date: 2000-03-31 15:40+0200\n"
"PO-Revision-Date: 1999-07-12 12:18\n"
"Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
"Language-Team: Russian <ru@li.org>\n"
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8-bit\n"
+#: src/LR0.c:377
+#, c-format
+msgid "too many states (max %d)"
+msgstr ""
+
#: src/allocate.c:59 src/allocate.c:75
#, c-format
msgid "%s: memory exhausted\n"
msgid "Report bugs to <bug-bison@gnu.org>.\n"
msgstr ""
-#: src/getargs.c:196
+#: src/getargs.c:195
#, c-format
msgid "%s: no grammar file given\n"
msgstr "%s: ÎÅ ÚÁÄÁÎ ÆÁÊÌ Ó ÇÒÁÍÍÁÔÉËÏÊ\n"
-#: src/getargs.c:200
+#: src/getargs.c:199
#, fuzzy, c-format
msgid "%s: extra arguments ignored after `%s'\n"
msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ '%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
-#: src/lalr.c:294
-msgid "gotos"
-msgstr "ÂÅÚÕÓÌÏ×ÎÙÈ ÐÅÒÅÈÏÄÏ×"
+#: src/lalr.c:293
+#, c-format
+msgid "too many gotos (max %d)"
+msgstr ""
-#: src/lex.c:119
+#: src/lex.c:115
msgid "unexpected `/' found and ignored"
msgstr "×ÓÔÒÅÞÅÎ É ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎ ÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'"
-#: src/lex.c:148 src/reader.c:258
+#: src/lex.c:144 src/reader.c:248
msgid "unterminated comment"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ"
-#: src/lex.c:176
-msgid "Unexpected end of file"
+#: src/lex.c:172
+#, fuzzy
+msgid "unexpected end of file"
msgstr "îÅÏÖÉÄÁÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ"
-#: src/lex.c:197
+#: src/lex.c:193
msgid "unescaped newline in constant"
msgstr "ÎÅÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ËÏÎÓÔÁÎÔÅ"
-#: src/lex.c:229
+#: src/lex.c:225
#, c-format
msgid "octal value outside range 0...255: `\\%o'"
msgstr "×ÏÓØÍÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ 0...255: `\\%o'"
-#: src/lex.c:253
+#: src/lex.c:250
#, c-format
msgid "hexadecimal value above 255: `\\x%x'"
msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÁÑ ×ÅÌÉÞÉÎÁ ÐÒÅ×ÙÛÁÅÔ 255: `\\x%x'"
-#: src/lex.c:263
+#: src/lex.c:261
#, c-format
msgid "unknown escape sequence: `\\' followed by `%s'"
msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: `%s' ÐÏÓÌÅ `\\'"
-#: src/lex.c:396
+#: src/lex.c:394
msgid "use \"...\" for multi-character literal tokens"
msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
-#: src/lex.c:475
+#: src/lex.c:473
msgid "unterminated type name at end of file"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ × ËÏÎÃÅ ÆÁÊÌÁ"
-#: src/lex.c:478
+#: src/lex.c:476
msgid "unterminated type name"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ"
-#: src/main.c:163
-#, fuzzy
-msgid "fatal error: "
-msgstr "ÆÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: %s\n"
-
-#: src/main.c:258
-#, c-format
-msgid "too many %s (max %d)"
-msgstr ""
-
-#: src/main.c:268
+#: src/main.c:137
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ, %s\n"
msgid "Entering set_nullable"
msgstr "÷ÈÏÄ × set_nullable"
-#: src/output.c:1201
-#, c-format
-msgid "maximum table size (%s) exceeded"
+#: src/output.c:1199
+#, fuzzy, c-format
+msgid "maximum table size (%d) exceeded"
msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%s)"
#: src/print.c:85
msgid " on right:"
msgstr " ÎÁÐÒÁ×Ï:"
-#: src/reader.c:163
+#: src/reader.c:154
msgid " Skipping to next \\n"
msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n"
-#: src/reader.c:165
+#: src/reader.c:156
#, c-format
msgid " Skipping to next %c"
msgstr " ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ %c"
-#: src/reader.c:189 src/reader.c:204
+#: src/reader.c:180 src/reader.c:195
msgid "unterminated string at end of file"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ × ËÏÎÃÅ ÆÁÊÌÁ"
-#: src/reader.c:192
+#: src/reader.c:183
msgid "unterminated string"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ"
-#: src/reader.c:434
+#: src/reader.c:424
#, c-format
msgid "unrecognized: %s"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s"
-#: src/reader.c:439
+#: src/reader.c:429
msgid "no input grammar"
msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
-#: src/reader.c:442
+#: src/reader.c:432
#, c-format
msgid "unknown character: %s"
msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s"
-#: src/reader.c:493
+#: src/reader.c:484
msgid "unterminated `%{' definition"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ `%{'"
-#: src/reader.c:571 src/reader.c:792
+#: src/reader.c:525 src/reader.c:713 src/reader.c:762
+#, c-format
+msgid "Premature EOF after %s"
+msgstr ""
+
+#: src/reader.c:562 src/reader.c:784
#, c-format
msgid "symbol %s redefined"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
-#: src/reader.c:581 src/reader.c:737 src/reader.c:799 src/reader.c:1703
+#: src/reader.c:572 src/reader.c:728 src/reader.c:791 src/reader.c:1697
#, c-format
msgid "type redeclaration for %s"
msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
-#: src/reader.c:591
+#: src/reader.c:582
#, c-format
msgid "`%s' is invalid in %s"
msgstr "`%s' ÎÅ×ÅÒÎÏ × %s"
-#: src/reader.c:639
+#: src/reader.c:630
#, c-format
msgid "unrecognized item %s, expected an identifier"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÜÌÅÍÅÎÔ %s, ÏÖÉÄÁÌÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
-#: src/reader.c:661
+#: src/reader.c:652
#, c-format
msgid "expected string constant instead of %s"
msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
-#: src/reader.c:683
+#: src/reader.c:674
#, c-format
msgid "multiple %start declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %start"
-#: src/reader.c:685
+#: src/reader.c:676
#, c-format
msgid "invalid %start declaration"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %start"
-#: src/reader.c:705
+#: src/reader.c:696
msgid "%type declaration has no <typename>"
msgstr "ÏÐÉÓÁÎÉÅ %type ÎÅ ÉÍÅÅÔ <ÉÍÑ_ÔÉÐÁ>"
-#: src/reader.c:742
-msgid "invalid %%type declaration due to item: `%s'"
+#: src/reader.c:733
+#, fuzzy
+msgid "invalid %%type declaration due to item: %s"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %%type ÉÚ-ÚÁ ÜÌÅÍÅÎÔÁ: `%s'"
-#: src/reader.c:788
+#: src/reader.c:780
#, c-format
msgid "redefining precedence of %s"
msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÏÒÉÔÅÔÁ ÄÌÑ %s"
-#: src/reader.c:811
+#: src/reader.c:803
#, c-format
msgid "invalid text (%s) - number should be after identifier"
msgstr "ÎÅ×ÅÒÎÙÊ ÔÅËÓÔ (%s) - ÞÉÓÌÏ ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÚÁ ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ"
-#: src/reader.c:821
+#: src/reader.c:813
#, c-format
msgid "unexpected item: %s"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
-#: src/reader.c:845
+#: src/reader.c:837
#, c-format
msgid "multiple %union declarations"
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %union"
-#: src/reader.c:903
+#: src/reader.c:895
msgid "unterminated comment at end of file"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ × ËÏÎÃÅ ÆÁÊÌÁ"
-#: src/reader.c:929
+#: src/reader.c:921
msgid "unmatched close-brace (`}')"
msgstr "ÎÅÐÁÒÎÁÑ ÚÁËÒÙ×ÁÀÝÁÑ ÆÉÇÕÒÎÁÑ ÓËÏÂËÁ (`}')"
-#: src/reader.c:973
+#: src/reader.c:965
#, c-format
msgid "argument of %expect is not an integer"
msgstr "ÁÒÇÕÍÅÎÔ %expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
-#: src/reader.c:1005
+#: src/reader.c:997
#, c-format
msgid "@%s is invalid"
msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË @%s"
-#: src/reader.c:1014
+#: src/reader.c:1012 src/reader.c:1024
msgid "invalid $ value"
msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ"
-#: src/reader.c:1092
+#: src/reader.c:1083
msgid "unmatched right brace (`}')"
msgstr "ÎÅÐÁÒÎÁÑ ÐÒÁ×ÁÑ ÆÉÇÕÒÎÁÑ ÓËÏÂËÁ (`}')"
-#: src/reader.c:1139 src/reader.c:1277
+#: src/reader.c:1130 src/reader.c:1270
#, c-format
msgid "$$ of `%s' has no declared type"
msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
-#: src/reader.c:1154 src/reader.c:1293
-#, c-format
-msgid "$%s of `%s' has no declared type"
+#: src/reader.c:1146 src/reader.c:1286
+#, fuzzy, c-format
+msgid "$%d of `%s' has no declared type"
msgstr "$%s × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
-#: src/reader.c:1159 src/reader.c:1298
+#: src/reader.c:1151 src/reader.c:1291
#, c-format
msgid "$%s is invalid"
msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË $%s"
-#: src/reader.c:1167
-msgid "unterminated %%guard clause"
+#: src/reader.c:1160
+#, fuzzy, c-format
+msgid "unterminated %guard clause"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %%guard"
-#: src/reader.c:1307
+#: src/reader.c:1300
msgid "unmatched `{'"
msgstr "ÎÅÐÁÒÎÁÑ `{'"
-#: src/reader.c:1393
+#: src/reader.c:1386
msgid "ill-formed rule: initial symbol not followed by colon"
msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
-#: src/reader.c:1400
+#: src/reader.c:1393
msgid "grammar starts with vertical bar"
msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
-#: src/reader.c:1431
+#: src/reader.c:1424
#, c-format
msgid "rule given for %s, which is a token"
msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
-#: src/reader.c:1529
+#: src/reader.c:1522
msgid "two @prec's in a row"
msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
-#: src/reader.c:1537
-msgid "%%guard present but %%semantic_parser not specified"
+#: src/reader.c:1531
+#, fuzzy, c-format
+msgid "%guard present but %semantic_parser not specified"
msgstr "%%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %%semantic_parser ÎÅ ÚÁÄÁÎ"
-#: src/reader.c:1546
+#: src/reader.c:1540
msgid "two actions at end of one rule"
msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
-#: src/reader.c:1561
+#: src/reader.c:1555
#, c-format
msgid "type clash (`%s' `%s') on default action"
msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
-#: src/reader.c:1567
+#: src/reader.c:1561
msgid "empty rule for typed nonterminal, and no action"
msgstr ""
"ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
-#: src/reader.c:1611
+#: src/reader.c:1605
#, c-format
msgid "invalid input: %s"
msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s"
-#: src/reader.c:1619
-#, c-format
-msgid "too many symbols (tokens plus nonterminals); maximum %s"
+#: src/reader.c:1613
+#, fuzzy, c-format
+msgid "too many symbols (tokens plus nonterminals); maximum %d"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %s"
-#: src/reader.c:1622
+#: src/reader.c:1616
msgid "no rules in the input grammar"
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
-#: src/reader.c:1640
+#: src/reader.c:1634
#, c-format
msgid "symbol %s is used, but is not defined as a token and has no rules"
msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
-#: src/reader.c:1679
+#: src/reader.c:1673
msgid "ill-formed %type declaration"
msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %type"
-#: src/reader.c:1758
+#: src/reader.c:1752
#, c-format
msgid "conflicting precedences for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
-#: src/reader.c:1770
+#: src/reader.c:1764
#, c-format
msgid "conflicting assoc values for %s and %s"
msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
-#: src/reader.c:1821
-#, c-format
-msgid "tokens %s and %s both assigned number %s"
+#: src/reader.c:1815
+#, fuzzy, c-format
+msgid "tokens %s and %s both assigned number %d"
msgstr "ÏÂÏÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %s"
-#: src/reader.c:1835
+#: src/reader.c:1829
#, c-format
msgid "the start symbol %s is undefined"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
-#: src/reader.c:1837
+#: src/reader.c:1831
#, c-format
msgid "the start symbol %s is a token"
msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
msgid "%d useless rule%s"
msgstr "%d ÂÅÓÐÏÌÅÚÎÙÈ ÐÒÁ×ÉÌ%s"
-#: src/getopt.c:675
+#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n"
-#: src/getopt.c:700
+#: lib/getopt.c:700
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
-#: src/getopt.c:705
+#: lib/getopt.c:705
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
-#: src/getopt.c:723 src/getopt.c:896
+#: lib/getopt.c:723 lib/getopt.c:896
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n"
#. --option
-#: src/getopt.c:752
+#: lib/getopt.c:752
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n"
#. +option or -option
-#: src/getopt.c:756
+#: lib/getopt.c:756
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:782
+#: lib/getopt.c:782
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n"
-#: src/getopt.c:785
+#: lib/getopt.c:785
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n"
#. 1003.2 specifies the format of this message.
-#: src/getopt.c:815 src/getopt.c:945
+#: lib/getopt.c:815 lib/getopt.c:945
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: ËÌÀÞ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ -- %c\n"
-#: src/getopt.c:862
+#: lib/getopt.c:862
#, fuzzy, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n"
-#: src/getopt.c:880
+#: lib/getopt.c:880
#, fuzzy, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
+#~ msgid "gotos"
+#~ msgstr "ÂÅÚÕÓÌÏ×ÎÙÈ ÐÅÒÅÈÏÄÏ×"
+
+#, fuzzy
+#~ msgid "fatal error: "
+#~ msgstr "ÆÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: %s\n"
+
#, fuzzy
#~ msgid ""
#~ "Usage: %s [-dhklntvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n"
#include "alloc.h"
#include "gram.h"
#include "state.h"
+#include "complain.h"
extern char *nullable;
extern void initialize_closure PARAMS((int));
extern void closure PARAMS((short *, int));
extern void finalize_closure PARAMS((void));
-extern void toomany PARAMS((char *));
static core *this_state;
static core *last_state;
#endif
if (nstates >= MAXSHORT)
- toomany("states");
+ fatal (_("too many states (max %d)"), MAXSHORT);
isp1 = kernel_base[symbol];
iend = kernel_end[symbol];
## Process this file with automake to produce Makefile.in -*-Makefile-*-
AUTOMAKE_OPTIONS = 1.4 ../lib/ansi2knr
-bin_PROGRAMS = bison
-
-bison_SOURCES = LR0.c allocate.c closure.c conflicts.c derives.c \
- files.c getargs.c gram.c lalr.c lex.c main.c nullable.c output.c \
- print.c reader.c reduce.c symtab.c warshall.c
-
-EXTRA_bison_SOURCES = vmsgetargs.c
-
DEFS = @DEFS@ \
-DXPFILE=\"${datadir}/bison.simple\" \
-DXPFILE1=\"${datadir}/bison.hairy\" \
INCLUDES = -I../intl -I$(top_srcdir)/intl -I..
LDADD = @INTLLIBS@ ../lib/libbison.a
-noinst_HEADERS = alloc.h files.h gram.h lex.h machine.h state.h \
+bin_PROGRAMS = bison
+
+bison_SOURCES = LR0.c allocate.c closure.c complain.c conflicts.c \
+ derives.c \
+ files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
+ output.c \
+ print.c reader.c reduce.c symtab.c warshall.c
+
+EXTRA_bison_SOURCES = vmsgetargs.c
+
+noinst_HEADERS = alloc.h complain.h files.h gram.h lex.h machine.h \
+ state.h \
symtab.h system.h types.h
data_DATA = bison.simple bison.hairy
--- /dev/null
+/* Declaration for error-reporting function for Bison.
+ Copyright (C) 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. */
+
+/* Based on error.c and error.h,
+ 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 "complain.h"
+
+#ifndef _
+# define _(String) String
+#endif
+
+#ifdef _LIBC
+/* In the GNU C library, there is a predefined variable for this. */
+# define program_name program_invocation_name
+#else /* not _LIBC */
+/* The calling program should define program_name and set it to the
+ name of the executing program. */
+extern char *program_name;
+#endif
+
+/* This variable is incremented each time `warn' is called. */
+unsigned int warn_message_count;
+
+/* This variable is incremented each time `complain' is called. */
+unsigned int complain_message_count;
+
+/* Sometimes we want to have at most one error per line. This
+ variable controls whether this mode is selected or not. */
+int error_one_per_line;
+\f
+/*--------------------------------.
+| Report a warning, and proceed. |
+`--------------------------------*/
+
+void
+#if defined VA_START && __STDC__
+warn (const char *message, ...)
+#else
+warn (message, va_alist)
+ char *message;
+ va_dcl
+#endif
+{
+#ifdef VA_START
+ va_list args;
+#endif
+
+ if (error_one_per_line)
+ {
+ static const char *old_infile;
+ static unsigned int old_lineno;
+
+ if (old_lineno == lineno &&
+ (infile == old_infile || !strcmp (old_infile, infile)))
+ /* Simply return and print nothing. */
+ return;
+
+ old_infile = infile;
+ old_lineno = lineno;
+ }
+
+ fflush (stdout);
+ if (infile != NULL)
+ fprintf (stderr, "%s:%d: ", infile, lineno);
+ else
+ fprintf (stderr, "%s:", program_name);
+
+ fputs (_("warning: "), stderr);
+
+#ifdef VA_START
+ VA_START (args, message);
+ vfprintf (stderr, message, args);
+ va_end (args);
+#else
+ fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
+#endif
+
+ ++warn_message_count;
+ putc ('\n', stderr);
+ fflush (stderr);
+}
+\f
+/*-----------------------------------------------------------.
+| An error has occurred, but we can proceed, and die later. |
+`-----------------------------------------------------------*/
+
+void
+#if defined VA_START && __STDC__
+complain (const char *message, ...)
+#else
+complain (message, va_alist)
+ char *message;
+ va_dcl
+#endif
+{
+#ifdef VA_START
+ va_list args;
+#endif
+
+ if (error_one_per_line)
+ {
+ static const char *old_infile;
+ static unsigned int old_lineno;
+
+ if (old_lineno == lineno &&
+ (infile == old_infile || !strcmp (old_infile, infile)))
+ /* Simply return and print nothing. */
+ return;
+
+ old_infile = infile;
+ old_lineno = lineno;
+ }
+
+ fflush (stdout);
+ if (infile != NULL)
+ fprintf (stderr, "%s:%d: ", infile, lineno);
+ else
+ fprintf (stderr, "%s:", program_name);
+
+#ifdef VA_START
+ VA_START (args, message);
+ vfprintf (stderr, message, args);
+ va_end (args);
+#else
+ fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
+#endif
+
+ ++complain_message_count;
+ putc ('\n', stderr);
+ fflush (stderr);
+}
+\f
+/*-------------------------------------------------.
+| A severe error has occurred, we cannot proceed. |
+`-------------------------------------------------*/
+
+void
+#if defined VA_START && __STDC__
+fatal (const char *message, ...)
+#else
+fatal (message, va_alist)
+ char *message;
+ va_dcl
+#endif
+{
+#ifdef VA_START
+ va_list args;
+#endif
+
+ fflush (stdout);
+ if (infile != NULL)
+ fprintf (stderr, "%s:%d: ", infile, lineno);
+ else
+ fprintf (stderr, "%s:", program_name);
+
+ fputs (_("fatal error: "), stderr);
+
+#ifdef VA_START
+ VA_START (args, message);
+ vfprintf (stderr, message, args);
+ va_end (args);
+#else
+ fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
+#endif
+ putc ('\n', stderr);
+ fflush (stderr);
+ exit (1);
+}
+\f
+/*------------------------------------------------------------------.
+| A severe error has occurred, we cannot proceed. Exit with STATUS, |
+| and report the error message of the errno ERRNUM. |
+`------------------------------------------------------------------*/
+
+void
+#if defined VA_START && __STDC__
+error (int status, int errnum,
+ const char *message, ...)
+#else
+error (status, errnum, message, va_alist)
+ int status;
+ int errnum;
+ char *message;
+ va_dcl
+#endif
+{
+#ifdef VA_START
+ va_list args;
+#endif
+
+ fflush (stdout);
+ if (infile != NULL)
+ fprintf (stderr, "%s:%d: ", infile, lineno);
+ else
+ fprintf (stderr, "%s:", program_name);
+
+ fputs (_("fatal error: "), stderr);
+
+#ifdef VA_START
+ VA_START (args, message);
+ vfprintf (stderr, message, args);
+ va_end (args);
+#else
+ fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
+#endif
+
+ 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);
+}
--- /dev/null
+/* Declaration for error-reporting function for Bison.
+ Copyright (C) 2000 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef COMPLAIN_H_
+#define COMPLAIN_H_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined (__STDC__) && __STDC__
+
+/* Informative messages, but we proceed. */
+
+extern void warn (const char *format, ...)
+ __attribute__ ((__format__ (__printf__, 1, 2)));
+
+/* Something bad happen, but let's continue and die later. */
+
+extern void complain (const char *format, ...)
+ __attribute__ ((__format__ (__printf__, 1, 2)));
+
+/* Something bad happen and we die now. */
+
+extern void fatal (const char *format, ...)
+ __attribute__ ((__format__ (__printf__, 1, 2)));
+
+/* 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)));
+
+#else
+void warn ();
+void complain ();
+void error ();
+#endif
+
+/* Position in the current input file. */
+extern char *infile;
+extern int lineno;
+
+/* This variable is incremented each time `warn' is called. */
+extern unsigned int warn_message_count;
+
+/* This variable is incremented each time `complain' is called. */
+extern unsigned int complain_message_count;
+
+/* Sometimes we want to have at most one error per line. This
+ variable controls whether this mode is selected or not. */
+extern int error_one_per_line;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !COMPLAIN_H_ */
#include "files.h"
#include "alloc.h"
#include "gram.h"
+#include "complain.h"
FILE *finput = NULL;
FILE *foutput = NULL;
extern char *mktemp(); /* So the compiler won't complain */
extern char *getenv();
-extern void perror();
char *stringappend PARAMS((char *, int, char *));
void openfiles PARAMS((void));
void open_extra_files PARAMS((void));
FILE *tryopen PARAMS((char *, char *)); /* This might be a good idea */
int tryclose PARAMS((FILE *));
-void done PARAMS((int));
extern char *program_name;
extern int verboseflag;
finput = tryopen(infile, "r");
- if (! noparserflag)
+ if (! noparserflag)
{
filename = getenv("BISON_SIMPLE");
#ifdef MSDOS
/* use permanent name for actions file */
actfile = stringappend(name_base, short_base_length, ".act");
faction = tryopen(actfile, "w");
- }
+ }
#ifdef MSDOS
if (! noparserflag)
tryclose(fparser);
- if (! noparserflag)
+ if (! noparserflag)
{
filename = (char *) getenv ("BISON_HAIRY");
#ifdef MSDOS
}
- /* JF to make file opening easier. This func tries to open file
- NAME with mode MODE, and prints an error message if it fails. */
+/* JF to make file opening easier. This func tries to open file
+ NAME with mode MODE, and prints an error message if it fails. */
FILE *
tryopen (char *name, char *mode)
{
FILE *ptr;
- ptr = fopen(name, mode);
- if (ptr == NULL)
- {
- fprintf(stderr, "%s: ", program_name);
- perror(name);
- done(2);
- }
+ ptr = fopen (name, mode);
+ if (!ptr)
+ error (2, errno, _("cannot open file `%s'"), name);
+
return ptr;
}
result = fclose (ptr);
if (result == EOF)
- {
- fprintf (stderr, "%s: ", program_name);
- perror ("fclose");
- done (2);
- }
+ error (2, errno, _("cannot close file"));
+
return result;
}
void
-done (int k)
+done (void)
{
tryclose(faction);
tryclose(fattrs);
tryclose(fparser);
tryclose(foutput);
- /* JF write out the output file */
- if (k == 0 && ftable)
+ /* JF write out the output file */
+ if (!complain_message_count && ftable)
{
FILE *ftmp;
register int c;
delete(tmpattrsfile);
if (ftable)
delete(tmptabfile);
- if (k==0) sys$exit(SS$_NORMAL);
- sys$exit(SS$_ABORT);
+/* Don't call exit again, we're in atexit ().
+ if (!complain_message_count)
+ sys$exit(SS$_NORMAL);
+ sys$exit(SS$_ABORT); */
#else
#if (defined (MSDOS) || (defined(_WIN32) && !defined(__CYGWIN32__)))
if (actfile && ! noparserflag) unlink(actfile);
if (tmptabfile) unlink(tmptabfile);
if (tmpdefsfile) unlink(tmpdefsfile);
#endif /* MSDOS || (_WIN32 && !__CYGWIN32__) */
- exit(k);
+/* Don't call exit again, we're in atexit ().
+ exit (complain_message_count ? 1 : 0); */
#endif /* not VMS, or __VMS_POSIX */
}
/* File names and variables for bison,
- Copyright (C) 1984, 1989 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989, 2000 Free Software Foundation, Inc.
-This file is part of Bison, the GNU Compiler Compiler.
+ 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 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.
+ 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. */
+ 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. */
/* These two should be pathnames for opening the sample parser files.
extern char *spec_file_prefix;
extern char *infile;
+extern int lineno;
extern char *outfile;
extern char *defsfile;
extern char *tabfile;
extern char *attrsfile;
extern char *guardfile;
extern char *actfile;
+
+void done PARAMS((void));
{
/* Some efforts were made to ease the translators' task, please
continue. */
- fprintf (stream, _("\
-GNU bison generates parsers for LALR(1) grammars.\n"));
+ fputs (_("\
+GNU bison generates parsers for LALR(1) grammars.\n"), stream);
putc ('\n', stream);
fprintf (stream, _("\
stream);
putc ('\n', stream);
- fprintf (stream, _("\
+ fputs (_("\
Operation modes:\n\
-h, --help display this help and exit\n\
-V, --version output version information and exit\n\
- -y, --yacc emulate POSIX yacc\n"));
+ -y, --yacc emulate POSIX yacc\n"), stream);
putc ('\n', stream);
- fprintf (stream, _("\
+ fputs (_("\
Parser:\n\
-t, --debug instrument the parser for debugging\n\
-p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n\
-n, --no-parser generate the tables only\n\
-r, --raw number the tokens from 3\n\
-k, --token-table include a table of token names\n\
-"));
+"), stream);
putc ('\n', stream);
- fprintf (stream, _("\
+ fputs (_("\
Output:\n\
-d, --defines also produce a header file\n\
-v, --verbose also produce an explanation of the automaton\n\
-b, --file-prefix=PREFIX specify a PREFIX for output files\n\
- -o, --output-file=FILE leave output to FILE\n"));
+ -o, --output-file=FILE leave output to FILE\n"), stream);
putc ('\n', stream);
- fprintf (stream, _("\
-Report bugs to <bug-bison@gnu.org>.\n"),
- program_name);
+ fputs (_("\
+Report bugs to <bug-bison@gnu.org>.\n"), stream);
}
void
lalr(), the entry point, builds these data structures:
-goto_map, from_state and to_state
+goto_map, from_state and to_state
record each shift transition which accepts a variable (a nonterminal).
ngotos is the number of such transitions.
from_state[t] is the state number which a transition leads from
lookaheads[s] through lookaheads[s+1]-1.
Each element of LAruleno is a rule number.
-If lr is the length of LAruleno, then a number from 0 to lr-1
+If lr is the length of LAruleno, then a number from 0 to lr-1
can specify both a rule and a state where the rule might be applied.
LA is a lr by ntokens matrix of bits.
#include "state.h"
#include "alloc.h"
#include "gram.h"
-
+#include "complain.h"
extern short **derives;
extern char *nullable;
void digraph PARAMS((short **));
void traverse PARAMS((register int));
-extern void toomany PARAMS((char *));
extern void berror PARAMS((char *));
static int infinity;
if (ISTOKEN(symbol)) break;
if (ngotos == MAXSHORT)
- toomany(_("gotos"));
+ fatal (_("too many gotos (max %d)"), MAXSHORT);
ngotos++;
goto_map[symbol]++;
if (nullable[symbol])
edge[nedges++] = map_goto(stateno, symbol);
}
-
+
if (nedges)
{
reads[i] = rp = NEW2(nedges + 1, short);
/* Token-reader for Bison's input parser,
- Copyright (C) 1984, 1986, 1989, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1986, 1989, 1992, 2000 Free Software Foundation, Inc.
-This file is part of Bison, the GNU Compiler Compiler.
+ 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 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.
+ 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. */
+ 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. */
/*
#include "symtab.h"
#include "lex.h"
#include "alloc.h"
+#include "complain.h"
/* flags set by % directives */
extern int definesflag; /* for -d */
extern char *spec_file_prefix; /* for -b */
/*spec_outfile is declared in files.h, for -o */
-extern int lineno;
extern int translations;
void init_lex PARAMS((void));
/* functions from main.c */
extern char *printable_version PARAMS((int));
-extern void fatal PARAMS((char *));
-extern void warn PARAMS((char *));
-extern void warni PARAMS((char *, int));
-extern void warns PARAMS((char *, char *));
/* Buffer for storing the current token. */
char *token_buffer;
c = getc(finput);
if (c != '*' && c != '/')
{
- warn(_("unexpected `/' found and ignored"));
+ complain (_("unexpected `/' found and ignored"));
break;
}
cplus_comment = (c == '/');
c = getc(finput);
}
else if (c == EOF)
- fatal(_("unterminated comment"));
+ fatal (_("unterminated comment"));
else
c = getc(finput);
}
{
register int c = getc(f);
if (c == EOF)
- fatal(_("Unexpected end of file"));
+ fatal (_("unexpected end of file"));
return c;
}
c = safegetc(finput);
if (c == '\n')
{
- warn(_("unescaped newline in constant"));
+ complain (_("unescaped newline in constant"));
ungetc(c, finput);
code = '?';
wasquote = 1;
code = (code * 8) + (c - '0');
if (code >= 256 || code < 0)
{
- warni(_("octal value outside range 0...255: `\\%o'"), code);
+ complain (_("octal value outside range 0...255: `\\%o'"),
+ code);
code &= 0xFF;
break;
}
break;
if (code >= 256 || code<0)
{
- warni(_("hexadecimal value above 255: `\\x%x'"), code);
+ complain (_("hexadecimal value above 255: `\\x%x'"),
+ code);
code &= 0xFF;
break;
}
}
else
{
- warns (_("unknown escape sequence: `\\' followed by `%s'"),
- printable_version(c));
+ complain (_("unknown escape sequence: `\\' followed by `%s'"),
+ printable_version(c));
code = '?';
}
} /* has \ */
c = getc(finput);
if (c != '\'')
{
- warn(_("use \"...\" for multi-character literal tokens"));
+ complain (_("use \"...\" for multi-character literal tokens"));
while (1)
{
dp = discard;
while (c != '>')
{
if (c == EOF)
- fatal(_("unterminated type name at end of file"));
+ fatal (_("unterminated type name at end of file"));
if (c == '\n')
{
- warn(_("unterminated type name"));
+ complain (_("unterminated type name"));
ungetc(c, finput);
break;
}
#include <stdio.h>
#include "system.h"
#include "machine.h" /* for MAXSHORT */
+#include "files.h"
+#include "complain.h"
-extern int lineno;
extern int verboseflag;
-extern char *infile;
/* Nonzero means failure has been detected; don't write a parser file. */
int failure;
char *program_name;
char *printable_version PARAMS((int));
-char *int_to_string PARAMS((int));
-void fatal PARAMS((char *));
-void fatals PARAMS((char *, char *));
-void warn PARAMS((char *));
-void warni PARAMS((char *, int));
-void warns PARAMS((char *, char *));
-void warnss PARAMS((char *, char *, char *));
-void warnsss PARAMS((char *, char *, char *, char *));
void toomany PARAMS((char *));
void berror PARAMS((char *));
extern void verbose PARAMS((void));
extern void terse PARAMS((void));
extern void output PARAMS((void));
-extern void done PARAMS((int));
/* VMS complained about using `int'. */
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
- failure = 0;
lineno = 0;
getargs(argc, argv);
+
+ /* Be ready to clean up if we exit.*/
+ atexit (done);
+
openfiles();
/* read the input. Copy some parts of it to fguard, faction, ftable and fattrs.
In file reader.c.
The other parts are recorded in the grammar; see gram.h. */
- reader();
- if (failure)
- done(failure);
+ reader ();
+ if (complain_message_count)
+ exit (1);
/* find useless nonterminals and productions and reduce the grammar. In
file reduce.c */
/* output the tables and the parser to ftable. In file output. */
output();
- done(failure);
- return failure;
+ done ();
+
+ exit (complain_message_count ? 1 : 0);
}
\f
/* functions to report errors which prevent a parser from being generated */
return buf;
}
-/* Generate a string from the integer I.
- Return a ptr to internal memory containing the string. */
-
-char *
-int_to_string (int i)
-{
- static char buf[20];
- sprintf(buf, "%d", i);
- return buf;
-}
-
-/* Display filename and lino if available. */
-
-static void
-banner (void)
-{
- if (infile == 0)
- fprintf(stderr, "%s: ", program_name);
- else
- fprintf(stderr, "%s:%d: ", infile, lineno);
-}
-
-static void
-fatal_banner (void)
-{
- banner ();
- fputs (_("fatal error: "), stderr);
-}
-
-/* Print the message S for a fatal error. */
-
-void
-fatal (char *s)
-{
- fatal_banner ();
- fputs (s, stderr);
- fputc ('\n', stderr);
- done (1);
-}
-
-
-/* Print a message for a fatal error. Use FMT to construct the message
- and incorporate string X1. */
-
-void
-fatals (char *fmt, char *x1)
-{
- fatal_banner ();
- fprintf (stderr, fmt, x1);
- fputc ('\n', stderr);
- done (1);
-}
-
-static void
-warn_banner (void)
-{
- banner ();
- failure = 1;
-}
-
-/* Print a warning message S. */
-
-void
-warn (char *s)
-{
- warn_banner ();
- fputs (s, stderr);
- fputc ('\n', stderr);
-}
-
-/* Print a warning message containing the string for the integer X1.
- The message is given by the format FMT. */
-
-void
-warni (char *fmt, int x1)
-{
- warn_banner ();
- fprintf (stderr, fmt, x1);
- fputc ('\n', stderr);
-}
-
-/* Print a warning message containing the string X1.
- The message is given by the format FMT. */
-
-void
-warns (char *fmt, char *x1)
-{
- warn_banner ();
- fprintf (stderr, fmt, x1);
- fputc ('\n', stderr);
-}
-
-/* Print a warning message containing the two strings X1 and X2.
- The message is given by the format FMT. */
-
-void
-warnss (char *fmt, char *x1, char *x2)
-{
- warn_banner ();
- fprintf (stderr, fmt, x1, x2);
- fputc ('\n', stderr);
-}
-
-/* Print a warning message containing the 3 strings X1, X2, X3.
- The message is given by the format FMT. */
-
-void
-warnsss (char *fmt, char *x1, char *x2, char *x3)
-{
- warn_banner ();
- fprintf (stderr, fmt, x1, x2, x3);
- fputc ('\n', stderr);
-}
-
-/* Print a message for the fatal occurence of more than MAXSHORT
- instances of whatever is denoted by the string S. */
-
-void
-toomany (char *s)
-{
- fatal_banner ();
- fprintf (stderr, _("too many %s (max %d)"), s, MAXSHORT);
- fputc ('\n', stderr);
- done (1);
-}
-
/* Abort for an internal error denoted by string S. */
void
berror (char *s)
{
- fprintf(stderr, _("%s: internal error: %s\n"), program_name, s);
+ fprintf (stderr, _("%s: internal error: %s\n"), program_name, s);
abort();
}
#include "files.h"
#include "gram.h"
#include "state.h"
+#include "complain.h"
extern int debugflag;
extern short *goto_map;
extern short *from_state;
extern short *to_state;
-extern int lineno;
void output_headers PARAMS((void));
void output_trailers PARAMS((void));
int pack_vector PARAMS((int));
extern void berror PARAMS((char *));
-extern void fatals PARAMS((char *, char *));
-extern char *int_to_string PARAMS((int));
extern void reader_output_yylsp PARAMS((FILE *));
static int nvectors;
{
loc = j + from[k];
if (loc > MAXTABLE)
- fatals(_("maximum table size (%s) exceeded"), int_to_string(MAXTABLE));
+ fatal (_("maximum table size (%d) exceeded"), MAXTABLE);
if (table[loc] != 0)
ok = 0;
#include "lex.h"
#include "gram.h"
#include "machine.h"
+#include "complain.h"
#define LTYPESTR "\
\n\
/* Number of slots allocated (but not necessarily used yet) in `rline' */
int rline_allocated;
-extern char *program_name;
extern int definesflag;
extern int nolinesflag;
extern int noparserflag;
extern void output_trailers PARAMS((void));
extern void free_symtab PARAMS((void));
extern void open_extra_files PARAMS((void));
-extern char *int_to_string PARAMS((int));
extern char *printable_version PARAMS((int));
-extern void fatal PARAMS((char *));
-extern void fatals PARAMS((char *, char *));
-extern void warn PARAMS((char *));
-extern void warni PARAMS((char *, int));
-extern void warns PARAMS((char *, char *));
-extern void warnss PARAMS((char *, char *, char *));
-extern void warnsss PARAMS((char *, char *, char *, char *));
extern void unlex PARAMS((int));
-extern void done PARAMS((int));
extern int skip_white_space PARAMS((void));
extern int parse_percent_token PARAMS((void));
{
int c;
if (target == '\n')
- warn(_(" Skipping to next \\n"));
+ complain (_(" Skipping to next \\n"));
else
- warni(_(" Skipping to next %c"), target);
+ complain (_(" Skipping to next %c"), target);
do
c = skip_white_space();
fatal (_("unterminated string at end of file"));
if (c == '\n')
{
- warn (_("unterminated string"));
+ complain (_("unterminated string"));
ungetc (c, finput);
c = match; /* invent terminator */
continue;
copy_comment (FILE *finput, FILE *foutput, int c)
{
int cplus_comment;
- register int match;
register int ended;
cplus_comment = (c == '/');
break;
default:
- warns(_("unrecognized: %s"), token_buffer);
+ complain (_("unrecognized: %s"), token_buffer);
skip_to_char('%');
}
}
else if (c == EOF)
- fatal(_("no input grammar"));
+ fatal (_("no input grammar"));
else
{
- warns (_("unknown character: %s"), printable_version(c));
+ complain (_("unknown character: %s"), printable_version(c));
skip_to_char('%');
}
}
break;
case EOF:
- fatal(_("unterminated `%{' definition"));
+ fatal ("%s",
+ _("unterminated `%{' definition"));
default:
putc(c, fattrs);
if (tmp_char == '%')
return;
if (tmp_char == EOF)
- fatals ("Premature EOF after %s", token_buffer);
+ fatal (_("Premature EOF after %s"), token_buffer);
token = lex();
if (token == COMMA)
symbol = symval;
if (symbol->class == what_is_not)
- warns(_("symbol %s redefined"), symbol->tag);
+ complain (_("symbol %s redefined"), symbol->tag);
symbol->class = what_is;
if (what_is == SNTERM && oldclass != SNTERM)
symbol->value = nvars++;
if (symbol->type_name == NULL)
symbol->type_name = typename;
else if (strcmp(typename, symbol->type_name) != 0)
- warns(_("type redeclaration for %s"), symbol->tag);
+ complain (_("type redeclaration for %s"), symbol->tag);
}
}
else if (symbol && token == NUMBER)
}
else
{
- warnss(_("`%s' is invalid in %s"),
- token_buffer,
+ complain (_("`%s' is invalid in %s"),
+ token_buffer,
(what_is == STOKEN) ? "%token" : "%nterm");
skip_to_char('%');
}
if (token != IDENTIFIER)
{
- warns(_("unrecognized item %s, expected an identifier"),
- token_buffer);
+ complain (_("unrecognized item %s, expected an identifier"),
+ token_buffer);
skip_to_char('%');
return;
}
if (token != IDENTIFIER || *symval->tag != '\"')
{
- warns(_("expected string constant instead of %s"),
- token_buffer);
+ complain (_("expected string constant instead of %s"),
+ token_buffer);
skip_to_char('%');
return;
}
}
-/* parse what comes after %start */
+/* Parse what comes after %start */
void
parse_start_decl (void)
{
if (start_flag)
- warn(_("multiple %start declarations"));
+ complain ("%s", _("multiple %start declarations"));
if (lex() != IDENTIFIER)
- warn(_("invalid %start declaration"));
+ complain ("%s", _("invalid %start declaration"));
else
{
start_flag = 1;
if (lex() != TYPENAME)
{
- warn(_("%type declaration has no <typename>"));
+ complain ("%s", _("%type declaration has no <typename>"));
skip_to_char('%');
return;
}
if (tmp_char == '%')
return;
if (tmp_char == EOF)
- fatals ("Premature EOF after %s", token_buffer);
+ fatal (_("Premature EOF after %s"), token_buffer);
t = lex();
if (symval->type_name == NULL)
symval->type_name = name;
else if (strcmp(name, symval->type_name) != 0)
- warns(_("type redeclaration for %s"), symval->tag);
+ complain (_("type redeclaration for %s"), symval->tag);
break;
default:
- warns(_("invalid %%type declaration due to item: `%s'"), token_buffer);
+ complain (_("invalid %%type declaration due to item: %s"),
+ token_buffer);
skip_to_char('%');
}
}
if (tmp_char == '%')
return;
if (tmp_char == EOF)
- fatals ("Premature EOF after %s", token_buffer);
+ fatal (_("Premature EOF after %s"), token_buffer);
t = lex();
case IDENTIFIER:
if (symval->prec != 0)
- warns(_("redefining precedence of %s"), symval->tag);
+ complain (_("redefining precedence of %s"), symval->tag);
symval->prec = lastprec;
symval->assoc = assoc;
if (symval->class == SNTERM)
- warns(_("symbol %s redefined"), symval->tag);
+ complain (_("symbol %s redefined"), symval->tag);
symval->class = STOKEN;
if (name)
{ /* record the type, if one is specified */
if (symval->type_name == NULL)
symval->type_name = name;
else if (strcmp(name, symval->type_name) != 0)
- warns(_("type redeclaration for %s"), symval->tag);
+ complain (_("type redeclaration for %s"), symval->tag);
}
break;
}
else
{
- warns(_("invalid text (%s) - number should be after identifier"),
+ complain (_("invalid text (%s) - number should be after identifier"),
token_buffer);
skip_to_char('%');
}
return;
default:
- warns(_("unexpected item: %s"), token_buffer);
+ complain (_("unexpected item: %s"), token_buffer);
skip_to_char('%');
}
int cplus_comment;
if (typed)
- warn(_("multiple %union declarations"));
+ complain ("%s", _("multiple %union declarations"));
typed = 1;
}
}
if (c == EOF)
- fatal(_("unterminated comment at end of file"));
+ fatal (_("unterminated comment at end of file"));
if (!cplus_comment && c == '*')
{
case '}':
if (count == 0)
- warn (_("unmatched close-brace (`}')"));
+ complain (_("unmatched close-brace (`}')"));
count--;
if (count <= 0)
{
ungetc (c, finput);
if (count <= 0 || count > 10)
- warn(_("argument of %expect is not an integer"));
+ complain ("%s", _("argument of %expect is not an integer"));
expected_conflicts = atoi (buffer);
}
yylsp_needed = 1;
}
else
- warns (_("@%s is invalid"), printable_version (c));
+ complain (_("@%s is invalid"), printable_version (c));
}
-/* Get the data type (alternative in the union) of the value for symbol n in rule rule. */
+/* Get the data type (alternative in the union) of the value for
+ symbol n in rule rule. */
char *
get_type_name (int n, symbol_list *rule)
{
- static char *msg = N_("invalid $ value");
-
register int i;
register symbol_list *rp;
if (n < 0)
{
- warn(_(msg));
+ complain (_("invalid $ value"));
return NULL;
}
rp = rp->next;
if (rp == NULL || rp->sym == NULL)
{
- warn(_(msg));
+ complain (_("invalid $ value"));
return NULL;
}
i++;
count--;
else
{
- warn(_("unmatched right brace (`}')"));
+ complain (_("unmatched right brace (`}')"));
c = getc(finput); /* skip it */
}
break;
if (type_name)
fprintf(fguard, ".%s", type_name);
if(!type_name && typed)
- warns(_("$$ of `%s' has no declared type"), rule->sym->tag);
+ complain (_("$$ of `%s' has no declared type"),
+ rule->sym->tag);
}
else if (isdigit(c) || c == '-')
{
if (type_name)
fprintf(fguard, ".%s", type_name);
if (!type_name && typed)
- warnss (_("$%s of `%s' has no declared type"),
- int_to_string(n), rule->sym->tag);
+ complain (_("$%d of `%s' has no declared type"),
+ n, rule->sym->tag);
continue;
}
else
- warns(_("$%s is invalid"), printable_version(c));
+ complain (_("$%s is invalid"), printable_version (c));
break;
case '@':
break;
case EOF:
- fatal (_("unterminated %%guard clause"));
+ fatal ("%s",
+ _("unterminated %guard clause"));
default:
putc (c, fguard);
if (type_name)
fprintf(faction, ".%s", type_name);
if(!type_name && typed)
- warns(_("$$ of `%s' has no declared type"),
- rule->sym->tag);
+ complain (_("$$ of `%s' has no declared type"),
+ rule->sym->tag);
}
else if (isdigit(c) || c == '-')
{
if (type_name)
fprintf(faction, ".%s", type_name);
if(!type_name && typed)
- warnss(_("$%s of `%s' has no declared type"),
- int_to_string(n), rule->sym->tag);
+ complain (_("$%d of `%s' has no declared type"),
+ n, rule->sym->tag);
continue;
}
else
- warns(_("$%s is invalid"), printable_version(c));
+ complain (_("$%s is invalid"), printable_version (c));
break;
break;
case EOF:
- fatal(_("unmatched `{'"));
+ fatal (_("unmatched `{'"));
default:
putc(c, faction);
t = lex();
if (t != COLON)
{
- warn(_("ill-formed rule: initial symbol not followed by colon"));
+ complain (_("ill-formed rule: initial symbol not followed by colon"));
unlex(t);
}
}
if (nrules == 0 && t == BAR)
{
- warn(_("grammar starts with vertical bar"));
+ complain (_("grammar starts with vertical bar"));
lhs = symval; /* BOGUS: use a random symval */
}
/* start a new rule and record its lhs. */
nvars++;
}
else if (lhs->class == STOKEN)
- warns(_("rule given for %s, which is a token"), lhs->tag);
+ complain (_("rule given for %s, which is a token"), lhs->tag);
/* read the rhs of the rule. */
if (t == PREC)
{
- warn(_("two @prec's in a row"));
+ complain (_("two @prec's in a row"));
t = lex();
crule->ruleprec = symval;
t = lex();
if (t == GUARD)
{
if (! semantic_parser)
- warn(_("%%guard present but %%semantic_parser not specified"));
+ complain ("%s",
+ _("%guard present but %semantic_parser not specified"));
copy_guard(crule, rulelength);
t = lex();
{
/* This case never occurs -wjh */
if (actionflag)
- warn(_("two actions at end of one rule"));
+ complain (_("two actions at end of one rule"));
copy_action(crule, rulelength);
actionflag = 1;
xactions++; /* -wjh */
t = lex();
}
- /* If $$ is being set in default way, warn if any type
+ /* If $$ is being set in default way, report if any type
mismatch. */
else if (!xactions
&& first_rhs
if (lhs->type_name == 0
|| first_rhs->type_name == 0
|| strcmp(lhs->type_name,first_rhs->type_name))
- warnss(_("type clash (`%s' `%s') on default action"),
- lhs->type_name ? lhs->type_name : "",
- first_rhs->type_name ? first_rhs->type_name : "");
+ complain (_("type clash (`%s' `%s') on default action"),
+ lhs->type_name ? lhs->type_name : "",
+ first_rhs->type_name ? first_rhs->type_name : "");
}
/* Warn if there is no default for $$ but we need one. */
else if (!xactions && !first_rhs && lhs->type_name != 0)
- warn(_("empty rule for typed nonterminal, and no action"));
+ complain (_("empty rule for typed nonterminal, and no action"));
if (t == SEMICOLON)
t = lex();
}
else
{
- warns(_("invalid input: %s"), token_buffer);
+ complain (_("invalid input: %s"), token_buffer);
t = lex();
}
}
/* grammar has been read. Do some checking */
if (nsyms > MAXSHORT)
- fatals(_("too many symbols (tokens plus nonterminals); maximum %s"),
- int_to_string(MAXSHORT));
+ fatal (_("too many symbols (tokens plus nonterminals); maximum %d"),
+ MAXSHORT);
if (nrules == 0)
- fatal(_("no rules in the input grammar"));
+ fatal (_("no rules in the input grammar"));
if (typed == 0 /* JF put out same default YYSTYPE as YACC does */
&& !value_components_used)
for (bp = firstsymbol; bp; bp = bp->next)
if (bp->class == SUNKNOWN)
{
- warns(_("symbol %s is used, but is not defined as a token and has no rules"),
- bp->tag);
+ complain (_("symbol %s is used, but is not defined as a token and has no rules"),
+ bp->tag);
bp->class = SNTERM;
bp->value = nvars++;
}
if (t != TYPENAME)
{
- warn(_("ill-formed %type declaration"));
+ complain (_("ill-formed %type declaration"));
return t;
}
if (symval->type_name == NULL)
symval->type_name = name;
else if (strcmp(name, symval->type_name) != 0)
- warns(_("type redeclaration for %s"), symval->tag);
+ complain (_("type redeclaration for %s"), symval->tag);
break;
{
if (bp->prec != 0 && bp->alias->prec != 0
&& bp->user_token_number == SALIAS)
- warnss(_("conflicting precedences for %s and %s"),
- bp->tag, bp->alias->tag);
+ complain (_("conflicting precedences for %s and %s"),
+ bp->tag, bp->alias->tag);
if (bp->prec != 0)
bp->alias->prec = bp->prec;
else
if (bp->assoc != bp->alias->assoc)
{
- if (bp->assoc != 0 && bp->alias->assoc != 0
- && bp->user_token_number == SALIAS)
- warnss(_("conflicting assoc values for %s and %s"),
- bp->tag, bp->alias->tag);
- if (bp->assoc != 0)
- bp->alias->assoc = bp->assoc;
- else
- bp->assoc = bp->alias->assoc;
- }
+ if (bp->assoc != 0 && bp->alias->assoc != 0
+ && bp->user_token_number == SALIAS)
+ complain (_("conflicting assoc values for %s and %s"),
+ bp->tag, bp->alias->tag);
+ if (bp->assoc != 0)
+ bp->alias->assoc = bp->assoc;
+ else
+ bp->assoc = bp->alias->assoc;
+ }
if (bp->user_token_number == SALIAS)
continue; /* do not do processing below for SALIASs */
if (bp->user_token_number == SALIAS)
continue;
if (token_translations[bp->user_token_number] != 2)
- warnsss(_("tokens %s and %s both assigned number %s"),
- tags[token_translations[bp->user_token_number]],
- bp->tag,
- int_to_string(bp->user_token_number));
+ complain (_("tokens %s and %s both assigned number %d"),
+ tags[token_translations[bp->user_token_number]],
+ bp->tag,
+ bp->user_token_number);
token_translations[bp->user_token_number] = bp->value;
}
}
output_token_defines(ftable);
if (startval->class == SUNKNOWN)
- fatals(_("the start symbol %s is undefined"), startval->tag);
+ fatal (_("the start symbol %s is undefined"), startval->tag);
else if (startval->class == STOKEN)
- fatals(_("the start symbol %s is a token"), startval->tag);
+ fatal (_("the start symbol %s is a token"), startval->tag);
start_symbol = startval->value;
while ((c = *cp++) && c != '.');
if (c != '\0') continue;
- fprintf(file, "#define\t%s\t%d\n", symbol,
- ((translations && ! rawtoknumflag)
- ? bp->user_token_number
- : bp->value));
+ fprintf (file, "#define\t%s\t%d\n", symbol,
+ ((translations && ! rawtoknumflag)
+ ? bp->user_token_number
+ : bp->value));
if (semantic_parser)
- fprintf(file, "#define\tT%s\t%d\n", symbol, bp->value);
+ fprintf (file, "#define\tT%s\t%d\n", symbol, bp->value);
}
putc('\n', file);
#include "gram.h"
#include "machine.h"
#include "alloc.h"
+#include "complain.h"
extern char **tags; /* reader.c */
static void print_notices PARAMS((void));
void dump_grammar PARAMS((void));
-extern void fatals PARAMS((char *, char *));
\f
bool
print_notices();
if (!BITISSET(N, start_symbol - ntokens))
- fatals(_("Start symbol %s does not derive any sentence"),
+ fatal (_("Start symbol %s does not derive any sentence"),
tags[start_symbol]);
reduce_grammar_tables();
+/* system-dependent definitions for Bison.
+ Copyright (C) 2000 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
#ifndef BISON_SYSTEM_H
#define BISON_SYSTEM_H
#endif
#ifdef MSDOS
-#include <io.h>
+# include <io.h>
#endif
#ifdef _MSC_VER
-#include <stdlib.h>
-#include <process.h>
-#define getpid _getpid
+# include <stdlib.h>
+# include <process.h>
+# define getpid _getpid
#endif
#if defined(HAVE_STDLIB_H) || defined(MSDOS)
-#include <stdlib.h>
+# include <stdlib.h>
#endif
#if defined(HAVE_UNISTD_H)
-#include <unistd.h>
+# include <unistd.h>
#endif
#if (defined(VMS) || defined(MSDOS)) && !defined(HAVE_STRING_H)
-#define HAVE_STRING_H 1
+# define HAVE_STRING_H 1
#endif
#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
-#include <string.h>
+# include <string.h>
/* An ANSI string.h and pre-ANSI memory.h might conflict. */
-#if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
-#include <memory.h>
-#endif /* not STDC_HEADERS and HAVE_MEMORY_H */
-#ifndef bcopy
-#define bcopy(src, dst, num) memcpy((dst), (src), (num))
-#endif
+# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
+# include <memory.h>
+# endif /* not STDC_HEADERS and HAVE_MEMORY_H */
+# ifndef bcopy
+# define bcopy(src, dst, num) memcpy((dst), (src), (num))
+# endif
#else /* not STDC_HEADERS and not HAVE_STRING_H */
-#include <strings.h>
+# include <strings.h>
/* memory.h and strings.h conflict on some systems. */
#endif /* not STDC_HEADERS and not HAVE_STRING_H */
#if defined(STDC_HEADERS) || defined(HAVE_CTYPE_H)
-#include <ctype.h>
+# include <ctype.h>
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
#endif
+
+/*-----------------.
+| GCC extensions. |
+`-----------------*/
+
+#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
+
+
+/*------.
+| NLS. |
+`------*/
+
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
#endif
#define N_(Text) Text
+
+/*-------------------------------.
+| Fix broken compilation flags. |
+`-------------------------------*/
+
#ifndef LOCALEDIR
-#define LOCALEDIR "/usr/local/share/locale"
+# define LOCALEDIR "/usr/local/share/locale"
#endif
#endif /* BISON_SYSTEM_H */