From 19c50364f38b72dcd7bf67a998db3c815b7b6a94 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 19 Dec 2000 18:14:35 +0000 Subject: [PATCH] * src/files.c (strsuffix): New. (stringappend): Be just like strcat but allocate. (base_names): Eve out from open_files. Try to simplify the rather hairy computation of base_name and short_base_name. (open_files): Use it. * tests/suite.at (Checking output file names): New test. --- ChangeLog | 10 +++ po/de.po | 52 +++++++-------- po/es.po | 52 +++++++-------- po/et.po | 52 +++++++-------- po/fr.po | 52 +++++++-------- po/ja.po | 52 +++++++-------- po/nl.po | 52 +++++++-------- po/ru.po | 52 +++++++-------- src/files.c | 170 ++++++++++++++++++++++++++++--------------------- tests/calc.at | 12 ++-- tests/suite.at | 29 +++++++++ 11 files changed, 326 insertions(+), 259 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1f1236b4..23cc385d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2000-12-19 Akim Demaille + + * src/files.c (strsuffix): New. + (stringappend): Be just like strcat but allocate. + (base_names): Eve out from open_files. + Try to simplify the rather hairy computation of base_name and + short_base_name. + (open_files): Use it. + * tests/suite.at (Checking output file names): New test. + 2000-12-19 Akim Demaille * src/system.h (obstack_grow_literal_string): Rename as... diff --git a/po/de.po b/po/de.po index 71a8d76b..91545def 100644 --- a/po/de.po +++ b/po/de.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-12-14 11:46+0100\n" +"POT-Creation-Date: 2000-12-19 15:49+0100\n" "PO-Revision-Date: 1996-10-10 17:54 MET DST\n" "Last-Translator: Ulrich Drepper \n" "Language-Team: German \n" @@ -257,7 +257,7 @@ msgstr "interner Fehler, %s\n" msgid "Entering set_nullable" msgstr "Führe »set_nullable« aus" -#: src/output.c:1002 +#: src/output.c:990 #, fuzzy, c-format msgid "maximum table size (%d) exceeded" msgstr "maximale Tabellengröße (%s) überschritten" @@ -410,7 +410,7 @@ msgstr "" msgid "symbol %s redefined" msgstr "Symbol %s noch einmal definiert" -#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1296 +#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1293 #, c-format msgid "type redeclaration for %s" msgstr "erneute Deklaration des Typs für %s" @@ -425,7 +425,7 @@ msgstr " msgid "multiple %s declarations" msgstr "mehr als eine %start Deklaration" -#: src/reader.c:621 src/reader.c:1274 +#: src/reader.c:621 src/reader.c:1271 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "ungültige %start Deklaration" @@ -454,7 +454,7 @@ msgstr "unzul msgid "unexpected item: %s" msgstr "unerwartetes Symbol: %s" -#: src/reader.c:817 src/reader.c:1104 src/reader.c:1176 +#: src/reader.c:817 src/reader.c:1102 src/reader.c:1173 #, fuzzy, c-format msgid "unmatched %s" msgstr "»{« hat kein Gegenstück" @@ -474,105 +474,105 @@ msgstr "unerwartetes Symbol %s, hier wird ein Bezeichner erwartet" msgid "expected string constant instead of %s" msgstr "hier wird eine Zeichenkette erwartet, nicht %s" -#: src/reader.c:1020 +#: src/reader.c:1018 #, c-format msgid "unrecognized: %s" msgstr "unbekannt: %s" -#: src/reader.c:1025 +#: src/reader.c:1023 msgid "no input grammar" msgstr "keine Eingabe-Grammatik" -#: src/reader.c:1030 +#: src/reader.c:1028 #, c-format msgid "unknown character: %s" msgstr "unbekanntes Zeichen: %s" -#: src/reader.c:1199 +#: src/reader.c:1196 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "unbeendeter %%guard Fall" -#: src/reader.c:1361 +#: src/reader.c:1358 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:1368 +#: src/reader.c:1365 msgid "grammar starts with vertical bar" msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an" -#: src/reader.c:1399 +#: src/reader.c:1396 #, 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:1501 +#: src/reader.c:1498 msgid "two @prec's in a row" msgstr "zwei @prec Anweisungen nacheinander" -#: src/reader.c:1509 +#: src/reader.c:1506 #, fuzzy msgid "%%guard present but %%semantic_parser not specified" msgstr "" "%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben" -#: src/reader.c:1518 +#: src/reader.c:1515 msgid "two actions at end of one rule" msgstr "Zwei Aktionen am Ende einer Regel" -#: src/reader.c:1532 +#: src/reader.c:1529 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion" -#: src/reader.c:1538 +#: src/reader.c:1535 msgid "empty rule for typed nonterminal, and no action" msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion" -#: src/reader.c:1582 +#: src/reader.c:1579 #, c-format msgid "invalid input: %s" msgstr "ungültige Eingabe: %s" -#: src/reader.c:1590 +#: src/reader.c:1587 #, 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:1593 +#: src/reader.c:1590 msgid "no rules in the input grammar" msgstr "Eingabegrammatik enthält keine Regeln" -#: src/reader.c:1617 +#: src/reader.c:1614 #, 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:1723 +#: src/reader.c:1720 #, c-format msgid "conflicting precedences for %s and %s" msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich" -#: src/reader.c:1735 +#: src/reader.c:1732 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "assoc Werte für %s nd %s widersprechen sich" -#: src/reader.c:1786 +#: src/reader.c:1783 #, 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:1799 +#: src/reader.c:1796 #, c-format msgid "the start symbol %s is undefined" msgstr "das Startsymbol %s ist undefiniert" -#: src/reader.c:1801 +#: src/reader.c:1798 #, c-format msgid "the start symbol %s is a token" msgstr "das Startsymbol %s ist ein Token" diff --git a/po/es.po b/po/es.po index 79f11065..a2847bdb 100644 --- a/po/es.po +++ b/po/es.po @@ -30,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU bison 1.25\n" -"POT-Creation-Date: 2000-12-14 11:46+0100\n" +"POT-Creation-Date: 2000-12-19 15:49+0100\n" "PO-Revision-Date: 1998-09-21 10:19+0200\n" "Last-Translator: Nicolás García-Pedrajas \n" "Language-Team: Spanish \n" @@ -323,7 +323,7 @@ msgstr "Entrando set_nullable" # en inglés era así, pero quizás en español sea mejor como dices # ngp # -#: src/output.c:1002 +#: src/output.c:990 #, fuzzy, c-format msgid "maximum table size (%d) exceeded" msgstr "excedido el tamaño máximo de la tabla (%s)" @@ -480,7 +480,7 @@ msgstr "" msgid "symbol %s redefined" msgstr "redefinido el símbolo %s" -#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1296 +#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1293 #, c-format msgid "type redeclaration for %s" msgstr "redeclaración del tipo de %s" @@ -495,7 +495,7 @@ msgstr "`%s' no es v msgid "multiple %s declarations" msgstr "múltiples declaraciones de %start" -#: src/reader.c:621 src/reader.c:1274 +#: src/reader.c:621 src/reader.c:1271 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "declaración de %start no válida" @@ -534,7 +534,7 @@ msgid "unexpected item: %s" msgstr "ítem inesperado: %s" # Cambio el orden y el sexo. Ahora está "en español". sv -#: src/reader.c:817 src/reader.c:1104 src/reader.c:1176 +#: src/reader.c:817 src/reader.c:1102 src/reader.c:1173 #, fuzzy, c-format msgid "unmatched %s" msgstr "`{' desemparejada" @@ -560,16 +560,16 @@ msgstr "no se reconoce el msgid "expected string constant instead of %s" msgstr "se esperaba una cadena constante en lugar de %s" -#: src/reader.c:1020 +#: src/reader.c:1018 #, c-format msgid "unrecognized: %s" msgstr "no reconocido: %s" -#: src/reader.c:1025 +#: src/reader.c:1023 msgid "no input grammar" msgstr "no hay gramática de entrada" -#: src/reader.c:1030 +#: src/reader.c:1028 #, c-format msgid "unknown character: %s" msgstr "carácter desconocido: %s" @@ -578,93 +578,93 @@ msgstr "car # 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:1199 +#: src/reader.c:1196 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "cláusula %%guard sin terminar" -#: src/reader.c:1361 +#: src/reader.c:1358 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:1368 +#: src/reader.c:1365 msgid "grammar starts with vertical bar" msgstr "la gramática comienza con una barra vertical" -#: src/reader.c:1399 +#: src/reader.c:1396 #, 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:1501 +#: src/reader.c:1498 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:1509 +#: src/reader.c:1506 #, fuzzy msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard presente pero %%semantic_parser está sin especificar" -#: src/reader.c:1518 +#: src/reader.c:1515 msgid "two actions at end of one rule" msgstr "dos acciones al final de una regla" -#: src/reader.c:1532 +#: src/reader.c:1529 #, 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:1538 +#: src/reader.c:1535 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:1582 +#: src/reader.c:1579 #, c-format msgid "invalid input: %s" msgstr "entrada no válida: %s" -#: src/reader.c:1590 +#: src/reader.c:1587 #, 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:1593 +#: src/reader.c:1590 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:1617 +#: src/reader.c:1614 #, 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:1723 +#: src/reader.c:1720 #, c-format msgid "conflicting precedences for %s and %s" msgstr "precedencias en conflicto entre %s y %s" -#: src/reader.c:1735 +#: src/reader.c:1732 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "conflicto de valores assoc para %s y %s" -#: src/reader.c:1786 +#: src/reader.c:1783 #, 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:1799 +#: src/reader.c:1796 #, c-format msgid "the start symbol %s is undefined" msgstr "el símbolo de inicio (axioma) %s no está definido" -#: src/reader.c:1801 +#: src/reader.c:1798 #, c-format msgid "the start symbol %s is a token" msgstr "el símbolo de inicio (axioma) %s es un terminal" diff --git a/po/et.po b/po/et.po index c40af7cd..07658223 100644 --- a/po/et.po +++ b/po/et.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-12-14 11:46+0100\n" +"POT-Creation-Date: 2000-12-19 15:49+0100\n" "PO-Revision-Date: 2000-04-11 22:19+02:00\n" "Last-Translator: Toomas Soome \n" "Language-Team: Estonian \n" @@ -280,7 +280,7 @@ msgstr "%s: sisemine viga: %s\n" msgid "Entering set_nullable" msgstr "Entering set_nullable" -#: src/output.c:1002 +#: src/output.c:990 #, c-format msgid "maximum table size (%d) exceeded" msgstr "ületati maksimaalset tabelisuurust (%d)" @@ -433,7 +433,7 @@ msgstr "" msgid "symbol %s redefined" msgstr "sümbol %s on uuesti defineeritud" -#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1296 +#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1293 #, c-format msgid "type redeclaration for %s" msgstr "%s tüübi uuesti deklareerimine" @@ -448,7 +448,7 @@ msgstr "`%s' ei ole %s sees lubatud" msgid "multiple %s declarations" msgstr "korduvad %start deklaratsioonid" -#: src/reader.c:621 src/reader.c:1274 +#: src/reader.c:621 src/reader.c:1271 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "vigane %start deklaratsioon" @@ -476,7 +476,7 @@ msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit" msgid "unexpected item: %s" msgstr "ootamatu element: %s" -#: src/reader.c:817 src/reader.c:1104 src/reader.c:1176 +#: src/reader.c:817 src/reader.c:1102 src/reader.c:1173 #, fuzzy, c-format msgid "unmatched %s" msgstr "puudub `{'" @@ -496,102 +496,102 @@ msgstr "tundmatu element %s, eeldasin identifikaatorit" msgid "expected string constant instead of %s" msgstr "eeldasin %s asemel sõnekonstanti" -#: src/reader.c:1020 +#: src/reader.c:1018 #, c-format msgid "unrecognized: %s" msgstr "tundmatu: %s" -#: src/reader.c:1025 +#: src/reader.c:1023 msgid "no input grammar" msgstr "sisendgrammatikat pole" -#: src/reader.c:1030 +#: src/reader.c:1028 #, c-format msgid "unknown character: %s" msgstr "tundmatu sümbol: %s" -#: src/reader.c:1199 +#: src/reader.c:1196 #, c-format msgid "unterminated %guard clause" msgstr "lõpetamata %guard klausel" -#: src/reader.c:1361 +#: src/reader.c:1358 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit" -#: src/reader.c:1368 +#: src/reader.c:1365 msgid "grammar starts with vertical bar" msgstr "grammatika algab püstkriipsuga" -#: src/reader.c:1399 +#: src/reader.c:1396 #, c-format msgid "rule given for %s, which is a token" msgstr "%s jaoks on antud reegel, aga see on märk" -#: src/reader.c:1501 +#: src/reader.c:1498 msgid "two @prec's in a row" msgstr "kaks @prec ühel real" -#: src/reader.c:1509 +#: src/reader.c:1506 #, fuzzy msgid "%%guard present but %%semantic_parser not specified" msgstr "%guard on määratud, aga %semantic_parser ei ole" -#: src/reader.c:1518 +#: src/reader.c:1515 msgid "two actions at end of one rule" msgstr "kaks tegevust ühe reegli lõpus" -#: src/reader.c:1532 +#: src/reader.c:1529 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')" -#: src/reader.c:1538 +#: src/reader.c:1535 msgid "empty rule for typed nonterminal, and no action" msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus" -#: src/reader.c:1582 +#: src/reader.c:1579 #, c-format msgid "invalid input: %s" msgstr "vigane sisend: %s" -#: src/reader.c:1590 +#: src/reader.c:1587 #, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d" -#: src/reader.c:1593 +#: src/reader.c:1590 msgid "no rules in the input grammar" msgstr "sisendgrammatikas pole reegleid" -#: src/reader.c:1617 +#: src/reader.c:1614 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad " "reeglid" -#: src/reader.c:1723 +#: src/reader.c:1720 #, c-format msgid "conflicting precedences for %s and %s" msgstr "%s ja %s omavad konfliktseid prioriteete" -#: src/reader.c:1735 +#: src/reader.c:1732 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid" -#: src/reader.c:1786 +#: src/reader.c:1783 #, c-format msgid "tokens %s and %s both assigned number %d" msgstr "märkidele %s ja %s on mõlemale omistatud number %d" -#: src/reader.c:1799 +#: src/reader.c:1796 #, c-format msgid "the start symbol %s is undefined" msgstr "stardisümbol %s ei ole defineeritud" -#: src/reader.c:1801 +#: src/reader.c:1798 #, c-format msgid "the start symbol %s is a token" msgstr "stardisümbol %s on märk" diff --git a/po/fr.po b/po/fr.po index d3f8c3c8..f44fde9f 100644 --- a/po/fr.po +++ b/po/fr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-12-14 11:46+0100\n" +"POT-Creation-Date: 2000-12-19 15:49+0100\n" "PO-Revision-Date: 1996-03-19 20:05 EST\n" "Last-Translator: Dominique Boucher \n" "Language-Team: French \n" @@ -263,7 +263,7 @@ msgstr "erreur interne, %s\n" msgid "Entering set_nullable" msgstr "Entré dans set_nullable" -#: src/output.c:1002 +#: src/output.c:990 #, fuzzy, c-format msgid "maximum table size (%d) exceeded" msgstr "taille maximum des tables (%s) dépassée" @@ -416,7 +416,7 @@ msgstr "" msgid "symbol %s redefined" msgstr "symbole %s redéfini" -#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1296 +#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1293 #, c-format msgid "type redeclaration for %s" msgstr "redéclaration du type de %s" @@ -431,7 +431,7 @@ msgstr "`%s' n'est pas valide dans %s" msgid "multiple %s declarations" msgstr "multiples déclarations %start" -#: src/reader.c:621 src/reader.c:1274 +#: src/reader.c:621 src/reader.c:1271 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "la déclaration %start n'est pas valide" @@ -461,7 +461,7 @@ msgstr "" msgid "unexpected item: %s" msgstr "item inattendu: %s" -#: src/reader.c:817 src/reader.c:1104 src/reader.c:1176 +#: src/reader.c:817 src/reader.c:1102 src/reader.c:1173 #, fuzzy, c-format msgid "unmatched %s" msgstr "accolade ouvrante `{' non appariée" @@ -481,102 +481,102 @@ msgstr "item %s non reconnu, un identificateur est attendu" msgid "expected string constant instead of %s" msgstr "chaîne de caractères constante attendue plutôt que %s" -#: src/reader.c:1020 +#: src/reader.c:1018 #, c-format msgid "unrecognized: %s" msgstr "non reconnu: %s" -#: src/reader.c:1025 +#: src/reader.c:1023 msgid "no input grammar" msgstr "aucune grammaire en entrée" -#: src/reader.c:1030 +#: src/reader.c:1028 #, c-format msgid "unknown character: %s" msgstr "caractère inconnu: %s" -#: src/reader.c:1199 +#: src/reader.c:1196 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "clause %%guard non terminée" -#: src/reader.c:1361 +#: src/reader.c:1358 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:1368 +#: src/reader.c:1365 msgid "grammar starts with vertical bar" msgstr "la grammaire débute par une barre verticale" -#: src/reader.c:1399 +#: src/reader.c:1396 #, c-format msgid "rule given for %s, which is a token" msgstr "la règle pour %s, qui est un terminal" -#: src/reader.c:1501 +#: src/reader.c:1498 msgid "two @prec's in a row" msgstr "deux @prec de suite" -#: src/reader.c:1509 +#: src/reader.c:1506 #, fuzzy msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard est présent mais %%semantic_parser n'est pas spécifié" -#: src/reader.c:1518 +#: src/reader.c:1515 msgid "two actions at end of one rule" msgstr "deux actions à la fin d'une même règle" -#: src/reader.c:1532 +#: src/reader.c:1529 #, 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:1538 +#: src/reader.c:1535 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:1582 +#: src/reader.c:1579 #, c-format msgid "invalid input: %s" msgstr "entrée non valide: %s" -#: src/reader.c:1590 +#: src/reader.c:1587 #, 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:1593 +#: src/reader.c:1590 msgid "no rules in the input grammar" msgstr "la grammaire n'a pas de règles" -#: src/reader.c:1617 +#: src/reader.c:1614 #, 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:1723 +#: src/reader.c:1720 #, c-format msgid "conflicting precedences for %s and %s" msgstr "les priorités pour %s et %s entrent en conflit" -#: src/reader.c:1735 +#: src/reader.c:1732 #, 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:1786 +#: src/reader.c:1783 #, 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:1799 +#: src/reader.c:1796 #, c-format msgid "the start symbol %s is undefined" msgstr "le symbole de départ %s n'est pas défini" -#: src/reader.c:1801 +#: src/reader.c:1798 #, c-format msgid "the start symbol %s is a token" msgstr "le symbole de départ %s est un terminal" diff --git a/po/ja.po b/po/ja.po index bad4dd4f..aab9a7f6 100644 --- a/po/ja.po +++ b/po/ja.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU bison 1.28\n" -"POT-Creation-Date: 2000-12-14 11:46+0100\n" +"POT-Creation-Date: 2000-12-19 15:49+0100\n" "PO-Revision-Date: 1999-09-28 21:10+0900\n" "Last-Translator: Daisuke Yamashita \n" "Language-Team: Japanese \n" @@ -262,7 +262,7 @@ msgstr "%s: msgid "Entering set_nullable" msgstr "set_nullable ¤ËÆþ¤ê¤Þ¤¹" -#: src/output.c:1002 +#: src/output.c:990 #, fuzzy, c-format msgid "maximum table size (%d) exceeded" msgstr "ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º (%s) ¤òĶ¤¨¤Þ¤·¤¿" @@ -415,7 +415,7 @@ msgstr "" msgid "symbol %s redefined" msgstr "¥·¥ó¥Ü¥ë %s ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" -#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1296 +#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1293 #, c-format msgid "type redeclaration for %s" msgstr "%s ¤Î·¿¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" @@ -430,7 +430,7 @@ msgstr "%2$s msgid "multiple %s declarations" msgstr "Ê£¿ô¤Î %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿" -#: src/reader.c:621 src/reader.c:1274 +#: src/reader.c:621 src/reader.c:1271 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "̵¸ú¤Ê %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿" @@ -459,7 +459,7 @@ msgstr "̵ msgid "unexpected item: %s" msgstr "ͽ´ü¤»¤Ì¥¢¥¤¥Æ¥à: %s" -#: src/reader.c:817 src/reader.c:1104 src/reader.c:1176 +#: src/reader.c:817 src/reader.c:1102 src/reader.c:1173 #, fuzzy, c-format msgid "unmatched %s" msgstr "Âбþ¤Î¤Ê¤¤ `{' ¤Ç¤¹" @@ -479,102 +479,102 @@ msgstr "ǧ msgid "expected string constant instead of %s" msgstr "¤³¤³¤Ç¤Ï %s ¤Ç¤Ï¤Ê¤¯Ê¸»úÎóÄê¿ô¤¬´üÂÔ¤µ¤ì¤Þ¤¹" -#: src/reader.c:1020 +#: src/reader.c:1018 #, c-format msgid "unrecognized: %s" msgstr "ǧ¼±¤Ç¤­¤Ê¤¤: %s" -#: src/reader.c:1025 +#: src/reader.c:1023 msgid "no input grammar" msgstr "ʸˡ¤ÎÆþÎϤ¬Ìµ¤¤" -#: src/reader.c:1030 +#: src/reader.c:1028 #, c-format msgid "unknown character: %s" msgstr "̤ÃΤÎʸ»ú: %s" -#: src/reader.c:1199 +#: src/reader.c:1196 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤ %%guard Àá¤Ç¤¹" -#: src/reader.c:1361 +#: src/reader.c:1358 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "¼Ù°­¤Êµ¬Â§: ½é´ü²½¥·¥ó¥Ü¥ë¤Ë¥³¥í¥ó (:) ¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1368 +#: src/reader.c:1365 msgid "grammar starts with vertical bar" msgstr "ʸˡ¤Ï½ÄËÀ (|) ¤Ç»Ï¤á¤Þ¤¹" -#: src/reader.c:1399 +#: src/reader.c:1396 #, c-format msgid "rule given for %s, which is a token" msgstr "%s ¤Ëµ¬Â§¤¬Í¿¤¨¤é¤ì¡¢¤½¤ì¤Ï¥È¡¼¥¯¥ó¤È¤Ê¤ê¤Þ¤¹" -#: src/reader.c:1501 +#: src/reader.c:1498 msgid "two @prec's in a row" msgstr "@prec ¤Î¤â¤ÎÆó¤Ä¤¬Æ±Îó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1509 +#: src/reader.c:1506 #, fuzzy msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard ¤¬¤¢¤ê¤Þ¤¹¤¬ %%semantic_parser ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1518 +#: src/reader.c:1515 msgid "two actions at end of one rule" msgstr "°ì¤Ä¤Îµ¬Â§¤Î½ª¤ê¤ËÆó¤Ä¤ÎÆ°ºî¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1532 +#: src/reader.c:1529 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "½é´ü¾õÂÖ¤ÎÆ°ºî¤Ç¤Ï·¿ (`%s' `%s') ¤¬¾×Æͤ·¤Þ¤¹" -#: src/reader.c:1538 +#: src/reader.c:1535 msgid "empty rule for typed nonterminal, and no action" msgstr "¶õ¤Î·¿ÉÕ¤­Èó½ªÃ¼¥¢¥¤¥Æ¥àÍѵ¬Â§¤Ç¤¢¤ê¡¢Æ°ºî¤¬µ¯¤ê¤Þ¤»¤ó" -#: src/reader.c:1582 +#: src/reader.c:1579 #, c-format msgid "invalid input: %s" msgstr "̵¸ú¤ÊÆþÎÏ: %s" -#: src/reader.c:1590 +#: src/reader.c:1587 #, fuzzy, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "¥·¥ó¥Ü¥ë¤¬Â¿¤¹¤®¤Þ¤¹ (¥È¡¼¥¯¥ó¤ÈÈó½ªÃ¼¥¢¥¤¥Æ¥à) -- ºÇÂç %s" -#: src/reader.c:1593 +#: src/reader.c:1590 msgid "no rules in the input grammar" msgstr "ÆþÎϤ·¤¿Ê¸Ë¡¤Ëµ¬Â§¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1617 +#: src/reader.c:1614 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "" "¥·¥ó¥Ü¥ë %s " "¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¥È¡¼¥¯¥ó¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢µ¬Â§¤ò»ý¤Á¤Þ¤»¤ó" -#: src/reader.c:1723 +#: src/reader.c:1720 #, c-format msgid "conflicting precedences for %s and %s" msgstr "Àè¹Ô¤·¤Æ¤¤¤ë %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1735 +#: src/reader.c:1732 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "Èó·ë¹çÃÍ %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹" -#: src/reader.c:1786 +#: src/reader.c:1783 #, fuzzy, c-format msgid "tokens %s and %s both assigned number %d" msgstr "¥È¡¼¥¯¥ó %s ¤È %s ¤ÎÁÐÊý¤¬ÈÖ¹æ %s ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤·¤¿" -#: src/reader.c:1799 +#: src/reader.c:1796 #, c-format msgid "the start symbol %s is undefined" msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" -#: src/reader.c:1801 +#: src/reader.c:1798 #, c-format msgid "the start symbol %s is a token" msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤Ï¥È¡¼¥¯¥ó¤Ç¤¹" diff --git a/po/nl.po b/po/nl.po index 2f30b7a7..cbbfb4f4 100644 --- a/po/nl.po +++ b/po/nl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.25\n" -"POT-Creation-Date: 2000-12-14 11:46+0100\n" +"POT-Creation-Date: 2000-12-19 15:49+0100\n" "PO-Revision-Date: 1996-08-27 15:34 MET DST\n" "Last-Translator: Erick Branderhorst \n" "Language-Team: Dutch \n" @@ -262,7 +262,7 @@ msgstr "interne fout, %s\n" msgid "Entering set_nullable" msgstr "Inkomende set nullable" -#: src/output.c:1002 +#: src/output.c:990 #, fuzzy, c-format msgid "maximum table size (%d) exceeded" msgstr "maximale tabel grootte (%s) overschreden" @@ -415,7 +415,7 @@ msgstr "" msgid "symbol %s redefined" msgstr "symbool %s opnieuw gedefinieerd" -#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1296 +#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1293 #, c-format msgid "type redeclaration for %s" msgstr "type herdeclaratie voor %s" @@ -430,7 +430,7 @@ msgstr "`%s' is onjuist in %s" msgid "multiple %s declarations" msgstr "meerdere %start declaraties" -#: src/reader.c:621 src/reader.c:1274 +#: src/reader.c:621 src/reader.c:1271 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "onjuiste %start declaratie" @@ -459,7 +459,7 @@ msgstr "onjuiste tekst (%s) - nummer hoort na de identifier" msgid "unexpected item: %s" msgstr "onbekend item: %s" -#: src/reader.c:817 src/reader.c:1104 src/reader.c:1176 +#: src/reader.c:817 src/reader.c:1102 src/reader.c:1173 #, fuzzy, c-format msgid "unmatched %s" msgstr "niet overeenkomstige `{'" @@ -479,103 +479,103 @@ msgstr "onbekend item %s, verwacht een identifier" msgid "expected string constant instead of %s" msgstr "verwacht string constante in plaats van %s" -#: src/reader.c:1020 +#: src/reader.c:1018 #, c-format msgid "unrecognized: %s" msgstr "onbekend: %s" -#: src/reader.c:1025 +#: src/reader.c:1023 msgid "no input grammar" msgstr "geen invoer grammatica" -#: src/reader.c:1030 +#: src/reader.c:1028 #, c-format msgid "unknown character: %s" msgstr "onbekend karakter: %s" -#: src/reader.c:1199 +#: src/reader.c:1196 #, fuzzy, c-format msgid "unterminated %guard clause" msgstr "niet getermineerde %%guard voorwaarde" -#: src/reader.c:1361 +#: src/reader.c:1358 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "" "slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt" -#: src/reader.c:1368 +#: src/reader.c:1365 msgid "grammar starts with vertical bar" msgstr "grammatica start met een verticale bar" -#: src/reader.c:1399 +#: src/reader.c:1396 #, c-format msgid "rule given for %s, which is a token" msgstr "regel geven voor %s, welke een teken is" -#: src/reader.c:1501 +#: src/reader.c:1498 msgid "two @prec's in a row" msgstr "twee @prec's in een regel" -#: src/reader.c:1509 +#: src/reader.c:1506 #, fuzzy msgid "%%guard present but %%semantic_parser not specified" msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd" -#: src/reader.c:1518 +#: src/reader.c:1515 msgid "two actions at end of one rule" msgstr "twee akties aan het einde van een regel" -#: src/reader.c:1532 +#: src/reader.c:1529 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "type clash (`%s' `%s') bij standaard aktie" -#: src/reader.c:1538 +#: src/reader.c:1535 msgid "empty rule for typed nonterminal, and no action" msgstr "lege regel voor getypte niet terminal, en geen aktie" -#: src/reader.c:1582 +#: src/reader.c:1579 #, c-format msgid "invalid input: %s" msgstr "ongeldige invoer: %s" -#: src/reader.c:1590 +#: src/reader.c:1587 #, fuzzy, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "te veel symbolen (tekens plus nietterminals); maximum %s" -#: src/reader.c:1593 +#: src/reader.c:1590 msgid "no rules in the input grammar" msgstr "geen regels voor invoer grammatica" -#: src/reader.c:1617 +#: src/reader.c:1614 #, 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:1723 +#: src/reader.c:1720 #, c-format msgid "conflicting precedences for %s and %s" msgstr "conflictuerende precedentein voor %s en %s" -#: src/reader.c:1735 +#: src/reader.c:1732 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "conflictuerende associatieve waarden voor %s en %s" -#: src/reader.c:1786 +#: src/reader.c:1783 #, c-format msgid "tokens %s and %s both assigned number %d" msgstr "" -#: src/reader.c:1799 +#: src/reader.c:1796 #, c-format msgid "the start symbol %s is undefined" msgstr "" -#: src/reader.c:1801 +#: src/reader.c:1798 #, c-format msgid "the start symbol %s is a token" msgstr "het start symbool %s is een token" diff --git a/po/ru.po b/po/ru.po index 43d4d0f0..5c28c055 100644 --- a/po/ru.po +++ b/po/ru.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: bison 1.28a\n" -"POT-Creation-Date: 2000-12-14 11:46+0100\n" +"POT-Creation-Date: 2000-12-19 15:49+0100\n" "PO-Revision-Date: 2000-04-12 13:16+04:00\n" "Last-Translator: Dmitry S. Sivachenko \n" "Language-Team: Russian \n" @@ -282,7 +282,7 @@ msgstr "%s: msgid "Entering set_nullable" msgstr "÷ÈÏÄ × set_nullable" -#: src/output.c:1002 +#: src/output.c:990 #, c-format msgid "maximum table size (%d) exceeded" msgstr "ÐÒÅ×ÙÛÅÎ ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)" @@ -435,7 +435,7 @@ msgstr "" msgid "symbol %s redefined" msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s" -#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1296 +#: src/reader.c:592 src/reader.c:671 src/reader.c:732 src/reader.c:1293 #, c-format msgid "type redeclaration for %s" msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s" @@ -450,7 +450,7 @@ msgstr "`%s' msgid "multiple %s declarations" msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %start" -#: src/reader.c:621 src/reader.c:1274 +#: src/reader.c:621 src/reader.c:1271 #, fuzzy, c-format msgid "invalid %s declaration" msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %start" @@ -478,7 +478,7 @@ msgstr " msgid "unexpected item: %s" msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s" -#: src/reader.c:817 src/reader.c:1104 src/reader.c:1176 +#: src/reader.c:817 src/reader.c:1102 src/reader.c:1173 #, fuzzy, c-format msgid "unmatched %s" msgstr "ÎÅÐÁÒÎÁÑ `{'" @@ -498,101 +498,101 @@ msgstr " msgid "expected string constant instead of %s" msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ" -#: src/reader.c:1020 +#: src/reader.c:1018 #, c-format msgid "unrecognized: %s" msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s" -#: src/reader.c:1025 +#: src/reader.c:1023 msgid "no input grammar" msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ" -#: src/reader.c:1030 +#: src/reader.c:1028 #, c-format msgid "unknown character: %s" msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s" -#: src/reader.c:1199 +#: src/reader.c:1196 #, c-format msgid "unterminated %guard clause" msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard" -#: src/reader.c:1361 +#: src/reader.c:1358 msgid "ill-formed rule: initial symbol not followed by colon" msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ" -#: src/reader.c:1368 +#: src/reader.c:1365 msgid "grammar starts with vertical bar" msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ" -#: src/reader.c:1399 +#: src/reader.c:1396 #, c-format msgid "rule given for %s, which is a token" msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ" -#: src/reader.c:1501 +#: src/reader.c:1498 msgid "two @prec's in a row" msgstr "Ä×Á @prec ÐÏÄÒÑÄ" -#: src/reader.c:1509 +#: src/reader.c:1506 #, fuzzy msgid "%%guard present but %%semantic_parser not specified" msgstr "%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %semantic_parser ÎÅ ÚÁÄÁÎ" -#: src/reader.c:1518 +#: src/reader.c:1515 msgid "two actions at end of one rule" msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ" -#: src/reader.c:1532 +#: src/reader.c:1529 #, c-format msgid "type clash (`%s' `%s') on default action" msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ" -#: src/reader.c:1538 +#: src/reader.c:1535 msgid "empty rule for typed nonterminal, and no action" msgstr "" "ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ" -#: src/reader.c:1582 +#: src/reader.c:1579 #, c-format msgid "invalid input: %s" msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s" -#: src/reader.c:1590 +#: src/reader.c:1587 #, c-format msgid "too many symbols (tokens plus nonterminals); maximum %d" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d" -#: src/reader.c:1593 +#: src/reader.c:1590 msgid "no rules in the input grammar" msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ" -#: src/reader.c:1617 +#: src/reader.c:1614 #, c-format msgid "symbol %s is used, but is not defined as a token and has no rules" msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅÎ ËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ" -#: src/reader.c:1723 +#: src/reader.c:1720 #, c-format msgid "conflicting precedences for %s and %s" msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s" -#: src/reader.c:1735 +#: src/reader.c:1732 #, c-format msgid "conflicting assoc values for %s and %s" msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s" -#: src/reader.c:1786 +#: src/reader.c:1783 #, c-format msgid "tokens %s and %s both assigned number %d" msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅÎ ÎÏÍÅÒ %d" -#: src/reader.c:1799 +#: src/reader.c:1796 #, c-format msgid "the start symbol %s is undefined" msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ" -#: src/reader.c:1801 +#: src/reader.c:1798 #, c-format msgid "the start symbol %s is a token" msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ" diff --git a/src/files.c b/src/files.c index f2ac8582..32a4a8d5 100644 --- a/src/files.c +++ b/src/files.c @@ -47,35 +47,35 @@ static char *defsfile; static char *tabfile; static char *actfile; +/*--------------------------. +| Is SUFFIX ending STRING? | +`--------------------------*/ + +static int +strsuffix (const char *string, const char *suffix) +{ + size_t string_len = strlen (string); + size_t suffix_len = strlen (suffix); + if (suffix_len <= string_len) + return !strcmp (string + string_len - suffix_len, suffix); + else + return 0; +} + + /*-----------------------------------------------------------------. | Return a newly allocated string composed of the concatenation of | -| the END1 first chars of STRING1, and STRING2. | +| STRING1, and STRING2. | `-----------------------------------------------------------------*/ static char * -stringappend (const char *string1, int end1, const char *string2) +stringappend (const char *string1, const char *string2) { - char *res; + size_t len = strlen (string1) + strlen (string2); + char *res = XMALLOC (char, len + 1); char *cp; - const char *cp1; - int i; - - cp1 = string2; - i = 0; - while (*cp1++) - i++; - - res = XCALLOC (char, i + end1 + 1); - - cp = res; - cp1 = string1; - for (i = 0; i < end1; i++) - *cp++ = *cp1++; - - cp1 = string2; - while ((*cp++ = *cp1++)) - ; - + cp = stpcpy (res, string1); + cp = stpcpy (cp, string2); return res; } @@ -157,71 +157,99 @@ skeleton_find (const char *envvar, const char *skeleton) } -/*-----------------------------------------------------------------. -| Open the input file. Look for the skeletons. Find the names of | -| the output files. Prepare the obstacks. | -`-----------------------------------------------------------------*/ +/*----------------------------------------. +| Compute BASE_NAME and SHORT_BASE_NAME. | +`----------------------------------------*/ -void -open_files (void) +/* FIXME: Should use xstrndup. */ + +static void +base_names (char **base_name, char **short_base_name) { - char *name_base; - int base_length; - int short_base_length; + size_t base_length; + size_t short_base_length; + + /* If --output=foo.c was specified (SPEC_OUTFILE == foo.c), + BASE_NAME and SHORT_BASE_NAME are `foo'. + If --output=foo.tab.c was specified, BASE_NAME is `foo.tab' and + SHORT_BASE_NAME is `foo'. + + The precise -o name will be used for FTABLE. For other output + files, remove the ".c" or ".tab.c" suffix. */ if (spec_outfile) { - /* -o was specified. The precise -o name will be used for FTABLE. - For other output files, remove the ".c" or ".tab.c" suffix. */ - name_base = spec_outfile; #ifdef MSDOS - strlwr (name_base); + strlwr (spec_outfile); #endif /* MSDOS */ /* BASE_LENGTH includes ".tab" but not ".c". */ - base_length = strlen (name_base); - if (!strcmp (name_base + base_length - 2, ".c")) + base_length = strlen (spec_outfile); + if (strsuffix (spec_outfile, ".c")) base_length -= 2; /* SHORT_BASE_LENGTH includes neither ".tab" nor ".c". */ short_base_length = base_length; - if (!strncmp (name_base + short_base_length - 4, ".tab", 4)) - short_base_length -= 4; - else if (!strncmp (name_base + short_base_length - 4, "_tab", 4)) + if (strsuffix (spec_outfile, ".tab") || strsuffix (spec_outfile, "_tab")) short_base_length -= 4; + *base_name = strndup (spec_outfile, base_length); + *short_base_name = strndup (spec_outfile, short_base_length); + + return; } - else if (spec_file_prefix) + + /* If --file-prefix=foo was specified, BASE_NAME and SHORT_BASE_NAME + are `foo'. + + Construct names from it. */ + if (spec_file_prefix) { - /* -b was specified. Construct names from it. */ - /* SHORT_BASE_LENGTH includes neither ".tab" nor ".c". */ - short_base_length = strlen (spec_file_prefix); - /* Count room for `.tab'. */ - base_length = short_base_length + 4; - name_base = XMALLOC (char, base_length + 1); - /* Append `.tab'. */ - strcpy (name_base, spec_file_prefix); - strcat (name_base, EXT_TAB); #ifdef MSDOS - strlwr (name_base); + strlwr (spec_file_prefix); #endif /* MSDOS */ + *short_base_name = xstrdup (spec_file_prefix); + + *base_name = XMALLOC (char, + strlen (*short_base_name) + strlen (EXT_TAB) + 1); + stpcpy (stpcpy (*base_name, *short_base_name), EXT_TAB); + + return; } - else - { - /* -o was not specified; compute output file name from input - or use y.tab.c, etc., if -y was specified. */ - static char FIXED_NAME_BASE[] = "y.y"; + /* If neither -o nor --file-prefix were specified, and the input + file is foo.y, BASE_NAME is `foo.tab', and SHORT_BASE_NAME is + `foo'. - name_base = yacc_flag ? FIXED_NAME_BASE : infile; + If --yacc is used, do as if the input file was `y.y'. */ + { + const char *name_base = yacc_flag ? "y.y" : infile; - /* BASE_LENGTH gets length of NAME_BASE, sans ".y" suffix if any. */ + /* BASE_LENGTH gets length of BASE_NAME, sans ".y" suffix if any. */ - base_length = strlen (name_base); - if (!strcmp (name_base + base_length - 2, ".y")) - base_length -= 2; - short_base_length = base_length; + base_length = strlen (name_base); + if (strsuffix (name_base, ".y")) + base_length -= 2; + short_base_length = base_length; + *short_base_name = strndup (name_base, short_base_length); - name_base = stringappend (name_base, short_base_length, EXT_TAB); - base_length = short_base_length + 4; - } + *base_name = XMALLOC (char, + strlen (*short_base_name) + strlen (EXT_TAB) + 1); + stpcpy (stpcpy (*base_name, *short_base_name), EXT_TAB); + + return; + } +} + +/*-----------------------------------------------------------------. +| Open the input file. Look for the skeletons. Find the names of | +| the output files. Prepare the obstacks. | +`-----------------------------------------------------------------*/ + +void +open_files (void) +{ + char *base_name; + char *short_base_name; + + base_names (&base_name, &short_base_name); finput = xfopen (infile, "r"); @@ -229,29 +257,29 @@ open_files (void) { /* We used to use just .out if spec_name_prefix (-p) was used, but that conflicts with Posix. */ - outfile = stringappend (name_base, short_base_length, EXT_OUTPUT); + outfile = stringappend (base_name, EXT_OUTPUT); foutput = xfopen (outfile, "w"); } if (no_parser_flag) { /* use permanent name for actions file */ - actfile = stringappend (name_base, short_base_length, ".act"); + actfile = stringappend (short_base_name, ".act"); } if (defines_flag) { - defsfile = stringappend (name_base, base_length, ".h"); + defsfile = stringappend (base_name, ".h"); } /* These are opened by `done' or `open_extra_files', if at all */ if (spec_outfile) tabfile = spec_outfile; else - tabfile = stringappend (name_base, base_length, ".c"); + tabfile = stringappend (base_name, ".c"); - attrsfile = stringappend (name_base, short_base_length, EXT_STYPE_H); - guardfile = stringappend (name_base, short_base_length, EXT_GUARD_C); + attrsfile = stringappend (short_base_name, EXT_STYPE_H); + guardfile = stringappend (short_base_name, EXT_GUARD_C); /* Initialize the obstacks. */ obstack_init (&action_obstack); diff --git a/tests/calc.at b/tests/calc.at index a8756206..9a8acc56 100644 --- a/tests/calc.at +++ b/tests/calc.at @@ -87,7 +87,7 @@ FILE *yyin; static void yyerror (const char *s) { -#ifdef YYLSP_NEEDED +#if YYLSP_NEEDED fprintf (stderr, "%d.%d:%d.%d: ", yylloc.first_line, yylloc.first_column, yylloc.last_line, yylloc.last_column); @@ -99,7 +99,7 @@ static int yygetc () { int res = getc (yyin); -#ifdef YYLSP_NEEDED +#if YYLSP_NEEDED if (res == '\n') { yylloc.last_line++; @@ -115,7 +115,7 @@ yygetc () static void yyungetc (int c) { -#ifdef YYLSP_NEEDED +#if YYLSP_NEEDED /* Wrong when C == `\n'. */ yylloc.last_column--; #endif @@ -159,7 +159,7 @@ yylex (void) { int c; -#ifdef YYLSP_NEEDED +#if YYLSP_NEEDED yylloc.first_column = yylloc.last_column; yylloc.first_line = yylloc.last_line; #endif @@ -167,7 +167,7 @@ yylex (void) /* Skip white space. */ while ((c = yygetc ()) == ' ' || c == '\t') { -#ifdef YYLSP_NEEDED +#if YYLSP_NEEDED yylloc.first_column = yylloc.last_column; yylloc.first_line = yylloc.last_line; #endif @@ -217,7 +217,7 @@ main (int argn, const char **argv) #if YYDEBUG yydebug = 1; #endif -#ifdef YYLSP_NEEDED +#if YYLSP_NEEDED yylloc.last_column = 0; yylloc.last_line = 1; #endif diff --git a/tests/suite.at b/tests/suite.at index b21ac2c6..f4a4f7d7 100644 --- a/tests/suite.at +++ b/tests/suite.at @@ -1,4 +1,5 @@ #! /bin/sh +# -*- Autoconf -*- # Validation suite for Bison. # Copyright 2000 Free Software Foundation, Inc. @@ -6,3 +7,31 @@ AT_INIT([bison]) AT_INCLUDE([calc.at]) AT_INCLUDE([regression.at]) + + +## ---------------------------- ## +## Checking output file names. ## +## ---------------------------- ## + +AT_SETUP([Checking output file names.]) + +AT_DATA([foo.y], +[[%% +foo: {} +]]) + +# AT_CHECK_BISON_OUTPUT(FLAGS, EXPECTED-FILES-SORTED) +# --------------------------------------------------- +AT_DEFINE([AT_CHECK_BISON_OUTPUT], +[rm -rf $2 +AT_CHECK([bison -dv foo.y $1], 0, ignore, ignore) +AT_CHECK([ls $2 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$2]) +rm -f $2]) + +AT_CHECK_BISON_OUTPUT([], [foo.tab.c foo.tab.h foo.tab.output]) +AT_CHECK_BISON_OUTPUT([-o foo.c], [foo.c foo.h foo.output]) +AT_CHECK_BISON_OUTPUT([-o foo.tab.c], [foo.tab.c foo.tab.h foo.tab.output]) +AT_CHECK_BISON_OUTPUT([-y], [y.tab.c y.tab.h y.tab.output]) +AT_CHECK_BISON_OUTPUT([-b bar], [bar.tab.c bar.tab.h bar.tab.output]) + +AT_CLEANUP -- 2.45.2