]> git.saurik.com Git - bison.git/commitdiff
Remove the last uses of mktemp and unlink/delete.
authorAkim Demaille <akim@epita.fr>
Thu, 2 Nov 2000 13:38:12 +0000 (13:38 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 2 Nov 2000 13:38:12 +0000 (13:38 +0000)
* src/files.c (fdefines, ftable): Removed.
(defines_ostack, table_obstack): New.
Adjust dependencies of the former into uses of the latter.
* src/output.c (output_short_or_char_table, output_short_table):
Convert to using obstacks.
* src/reader.c (copy_comment2): Accept one FILE * and two
obstacks.
(output_token_defines, reader_output_yylsp): Use obstacks.
* src/system.h (obstack_fgrow3): New.

14 files changed:
ChangeLog
po/de.po
po/es.po
po/et.po
po/fr.po
po/ja.po
po/nl.po
po/ru.po
src/files.c
src/files.h
src/output.c
src/reader.c
src/reader.h
src/system.h

index e0e980b725bc420bd4aede7f3c5bba624991e719..2150f85117bd314a199a6959a9705225e1249146 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2000-11-02  Akim Demaille  <akim@epita.fr>
+
+       Remove the last uses of mktemp and unlink/delete.
+
+       * src/files.c (fdefines, ftable): Removed.
+       (defines_ostack, table_obstack): New.
+       Adjust dependencies of the former into uses of the latter.
+       * src/output.c (output_short_or_char_table, output_short_table):
+       Convert to using obstacks.
+       * src/reader.c (copy_comment2): Accept one FILE * and two
+       obstacks.
+       (output_token_defines, reader_output_yylsp): Use obstacks.
+       * src/system.h (obstack_fgrow3): New.
+
 2000-11-01  Akim Demaille  <akim@epita.fr>
 
        Change each use of `fattrs' into a use of `attrs_obstack'.
 2000-11-01  Akim Demaille  <akim@epita.fr>
 
        Change each use of `fattrs' into a use of `attrs_obstack'.
index c6fa4bf11adad7fe2066918c7cd4c6b23c4726bc..162584220c4eb52f90e28603f82d786db3020851 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-10-16 20:27+0200\n"
+"POT-Creation-Date: 2000-11-02 10:14+0100\n"
 "PO-Revision-Date: 1996-10-10 17:54 MET DST\n"
 "Last-Translator: Ulrich Drepper <drepper@gnu.ai.mit.edu>\n"
 "Language-Team: German <de@li.org>\n"
 "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"
@@ -208,7 +208,7 @@ msgstr ""
 msgid "unexpected `/' found and ignored"
 msgstr "»/« wird hier nicht erwartet und wird deshalb ignoriert"
 
 msgid "unexpected `/' found and ignored"
 msgstr "»/« wird hier nicht erwartet und wird deshalb ignoriert"
 
-#: src/lex.c:112 src/reader.c:269
+#: src/lex.c:112 src/reader.c:299
 msgid "unterminated comment"
 msgstr "unbeendeter Kommentar"
 
 msgid "unterminated comment"
 msgstr "unbeendeter Kommentar"
 
@@ -258,7 +258,7 @@ msgstr "interner Fehler, %s\n"
 msgid "Entering set_nullable"
 msgstr "Führe »set_nullable« aus"
 
 msgid "Entering set_nullable"
 msgstr "Führe »set_nullable« aus"
 
-#: src/output.c:983
+#: src/output.c:1026
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "maximale Tabellengröße (%s) überschritten"
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "maximale Tabellengröße (%s) überschritten"
@@ -351,229 +351,229 @@ msgstr " auf der linken Seite:"
 msgid " on right:"
 msgstr " auf der rechten Seite:"
 
 msgid " on right:"
 msgstr " auf der rechten Seite:"
 
-#: src/reader.c:80
+#: src/reader.c:81
 msgid "   Skipping to next \\n"
 msgstr "   Überspringe Zeichen bis zum nächsten \\n"
 
 msgid "   Skipping to next \\n"
 msgstr "   Überspringe Zeichen bis zum nächsten \\n"
 
-#: src/reader.c:82
+#: src/reader.c:83
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Überspringe Zeichen bis zum nächten %c"
 
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Überspringe Zeichen bis zum nächten %c"
 
-#: src/reader.c:133 src/reader.c:145
+#: src/reader.c:134 src/reader.c:146
 msgid "invalid $ value"
 msgstr "unzulässiger $ Wert"
 
 msgid "invalid $ value"
 msgstr "unzulässiger $ Wert"
 
-#: src/reader.c:170 src/reader.c:185
+#: src/reader.c:175 src/reader.c:193
 msgid "unterminated string at end of file"
 msgstr "unbeendete Zeichenkette am Ende der Datei"
 
 msgid "unterminated string at end of file"
 msgstr "unbeendete Zeichenkette am Ende der Datei"
 
-#: src/reader.c:173
+#: src/reader.c:178
 msgid "unterminated string"
 msgstr "unbeendete Zeichenkette"
 
 msgid "unterminated string"
 msgstr "unbeendete Zeichenkette"
 
-#: src/reader.c:325 src/reader.c:387
+#: src/reader.c:366 src/reader.c:446
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s ist unzulässig"
 
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s ist unzulässig"
 
-#: src/reader.c:364
+#: src/reader.c:414
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ von »%s« hat keine deklarierten Wert"
 
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ von »%s« hat keine deklarierten Wert"
 
-#: src/reader.c:380
+#: src/reader.c:439
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "»%s« von »%s« hat keine deklarierten Wert"
 
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "»%s« von »%s« hat keine deklarierten Wert"
 
-#: src/reader.c:433
+#: src/reader.c:492
 msgid "unterminated `%{' definition"
 msgstr "unbeendete »%{« Definition"
 
 msgid "unterminated `%{' definition"
 msgstr "unbeendete »%{« Definition"
 
-#: src/reader.c:480 src/reader.c:596 src/reader.c:646
+#: src/reader.c:537 src/reader.c:653 src/reader.c:703
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
-#: src/reader.c:497
+#: src/reader.c:554
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
-#: src/reader.c:500
+#: src/reader.c:557
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
-#: src/reader.c:522 src/reader.c:665
+#: src/reader.c:579 src/reader.c:722
 #, c-format
 msgid "symbol %s redefined"
 msgstr "Symbol %s noch einmal definiert"
 
 #, c-format
 msgid "symbol %s redefined"
 msgstr "Symbol %s noch einmal definiert"
 
-#: src/reader.c:532 src/reader.c:611 src/reader.c:672 src/reader.c:1224
+#: src/reader.c:589 src/reader.c:668 src/reader.c:729 src/reader.c:1290
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "erneute Deklaration des Typs für %s"
 
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "erneute Deklaration des Typs für %s"
 
-#: src/reader.c:542
+#: src/reader.c:599
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "»%s« ist in %s nicht erlaubt"
 
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "»%s« ist in %s nicht erlaubt"
 
-#: src/reader.c:559 src/reader.c:719
+#: src/reader.c:616 src/reader.c:776
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "mehr als eine %start Deklaration"
 
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "mehr als eine %start Deklaration"
 
-#: src/reader.c:561 src/reader.c:1202
+#: src/reader.c:618 src/reader.c:1268
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "ungültige %start Deklaration"
 
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "ungültige %start Deklaration"
 
-#: src/reader.c:581
+#: src/reader.c:638
 msgid "%type declaration has no <typename>"
 msgstr "%type Deklaration hat keinen <Typ-Namen>"
 
 msgid "%type declaration has no <typename>"
 msgstr "%type Deklaration hat keinen <Typ-Namen>"
 
-#: src/reader.c:616
+#: src/reader.c:673
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "ungültige %%type Deklaration wegen »%s«"
 
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "ungültige %%type Deklaration wegen »%s«"
 
-#: src/reader.c:661
+#: src/reader.c:718
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "Stellenwertigkeit von %s wird erneut definiert"
 
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "Stellenwertigkeit von %s wird erneut definiert"
 
-#: src/reader.c:685
+#: src/reader.c:742
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "unzulässiger Text (%s) - Nummer sollte nach Bezeichner kommen"
 
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "unzulässiger Text (%s) - Nummer sollte nach Bezeichner kommen"
 
-#: src/reader.c:695
+#: src/reader.c:752
 #, c-format
 msgid "unexpected item: %s"
 msgstr "unerwartetes Symbol: %s"
 
 #, c-format
 msgid "unexpected item: %s"
 msgstr "unerwartetes Symbol: %s"
 
-#: src/reader.c:756 src/reader.c:1034 src/reader.c:1104
+#: src/reader.c:813 src/reader.c:1099 src/reader.c:1170
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "»{« hat kein Gegenstück"
 
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "»{« hat kein Gegenstück"
 
-#: src/reader.c:788
+#: src/reader.c:845
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "Argument von %expect ist keine ganze Zahl"
 
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "Argument von %expect ist keine ganze Zahl"
 
-#: src/reader.c:835
+#: src/reader.c:892
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "unerwartetes Symbol %s, hier wird ein Bezeichner erwartet"
 
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "unerwartetes Symbol %s, hier wird ein Bezeichner erwartet"
 
-#: src/reader.c:859
+#: src/reader.c:916
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "hier wird eine Zeichenkette erwartet, nicht %s"
 
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "hier wird eine Zeichenkette erwartet, nicht %s"
 
-#: src/reader.c:959
+#: src/reader.c:1016
 #, c-format
 msgid "unrecognized: %s"
 msgstr "unbekannt: %s"
 
 #, c-format
 msgid "unrecognized: %s"
 msgstr "unbekannt: %s"
 
-#: src/reader.c:964
+#: src/reader.c:1021
 msgid "no input grammar"
 msgstr "keine Eingabe-Grammatik"
 
 msgid "no input grammar"
 msgstr "keine Eingabe-Grammatik"
 
-#: src/reader.c:969
+#: src/reader.c:1026
 #, c-format
 msgid "unknown character: %s"
 msgstr "unbekanntes Zeichen: %s"
 
 #, c-format
 msgid "unknown character: %s"
 msgstr "unbekanntes Zeichen: %s"
 
-#: src/reader.c:1127
+#: src/reader.c:1193
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "unbeendeter %%guard Fall"
 
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "unbeendeter %%guard Fall"
 
-#: src/reader.c:1289
+#: src/reader.c:1355
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr ""
 "falsch geformte Regel: führendes Symbol wird nicht von einem Semikolon "
 "gefolgt"
 
 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:1296
+#: src/reader.c:1362
 msgid "grammar starts with vertical bar"
 msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an"
 
 msgid "grammar starts with vertical bar"
 msgstr "Grammatik fängt mit einem vertikalen Strich (»|«) an"
 
-#: src/reader.c:1327
+#: src/reader.c:1393
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "Regel für %s vorhanden, welches aber ein Token ist"
 
 #, 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:1429
+#: src/reader.c:1495
 msgid "two @prec's in a row"
 msgstr "zwei @prec Anweisungen nacheinander"
 
 msgid "two @prec's in a row"
 msgstr "zwei @prec Anweisungen nacheinander"
 
-#: src/reader.c:1437
+#: src/reader.c:1503
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr ""
 "%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben"
 
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr ""
 "%%guard Anweisung vorhanden, jedoch wird %%semantic_parser nicht angegeben"
 
-#: src/reader.c:1446
+#: src/reader.c:1512
 msgid "two actions at end of one rule"
 msgstr "Zwei Aktionen am Ende einer Regel"
 
 msgid "two actions at end of one rule"
 msgstr "Zwei Aktionen am Ende einer Regel"
 
-#: src/reader.c:1460
+#: src/reader.c:1526
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion"
 
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "Typkonflikt (»%s« »%s«) bei Default Aktion"
 
-#: src/reader.c:1466
+#: src/reader.c:1532
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion"
 
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "leere Regel für Nicht-Terminal vmit Typ und keine Aktion"
 
-#: src/reader.c:1510
+#: src/reader.c:1576
 #, c-format
 msgid "invalid input: %s"
 msgstr "ungültige Eingabe: %s"
 
 #, c-format
 msgid "invalid input: %s"
 msgstr "ungültige Eingabe: %s"
 
-#: src/reader.c:1518
+#: src/reader.c:1584
 #, fuzzy, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "zu viele Symbols (Token plus Nicht-Terminal); Maximum %s"
 
 #, 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:1521
+#: src/reader.c:1587
 msgid "no rules in the input grammar"
 msgstr "Eingabegrammatik enthält keine Regeln"
 
 msgid "no rules in the input grammar"
 msgstr "Eingabegrammatik enthält keine Regeln"
 
-#: src/reader.c:1541
+#: src/reader.c:1608
 #, 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"
 
 #, 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:1646
+#: src/reader.c:1714
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich"
 
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "Vorrangwertigkeiten für %s und %s widersprechen sich"
 
-#: src/reader.c:1658
+#: src/reader.c:1726
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "assoc Werte für %s nd %s widersprechen sich"
 
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "assoc Werte für %s nd %s widersprechen sich"
 
-#: src/reader.c:1709
+#: src/reader.c:1777
 #, fuzzy, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr "Token %s und %s haben die selbe nummer %s"
 
 #, 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:1722
+#: src/reader.c:1790
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "das Startsymbol %s ist undefiniert"
 
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "das Startsymbol %s ist undefiniert"
 
-#: src/reader.c:1724
+#: src/reader.c:1792
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "das Startsymbol %s ist ein Token"
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "das Startsymbol %s ist ein Token"
index 62614fdc9b3a2fcb2d4dcbb15f11aa4705560aeb..60700d35c937fe8cf381872f5b4b3eb77ee0dabd 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -30,7 +30,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU bison 1.25\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU bison 1.25\n"
-"POT-Creation-Date: 2000-10-16 20:27+0200\n"
+"POT-Creation-Date: 2000-11-02 10:14+0100\n"
 "PO-Revision-Date: 1998-09-21 10:19+0200\n"
 "Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "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"
@@ -268,7 +268,7 @@ msgstr ""
 msgid "unexpected `/' found and ignored"
 msgstr "se ha encontrado `/' cuando no se esperaba, no se tendrán en cuenta"
 
 msgid "unexpected `/' found and ignored"
 msgstr "se ha encontrado `/' cuando no se esperaba, no se tendrán en cuenta"
 
-#: src/lex.c:112 src/reader.c:269
+#: src/lex.c:112 src/reader.c:299
 msgid "unterminated comment"
 msgstr "comentario sin terminar"
 
 msgid "unterminated comment"
 msgstr "comentario sin terminar"
 
@@ -324,7 +324,7 @@ msgstr "Entrando set_nullable"
 # en inglés era así, pero quizás en español sea mejor como dices
 # ngp
 #
 # en inglés era así, pero quizás en español sea mejor como dices
 # ngp
 #
-#: src/output.c:983
+#: src/output.c:1026
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "excedido el tamaño máximo de la tabla (%s)"
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "excedido el tamaño máximo de la tabla (%s)"
@@ -421,96 +421,96 @@ msgstr " en la izquierda:"
 msgid " on right:"
 msgstr " en la derecha:"
 
 msgid " on right:"
 msgstr " en la derecha:"
 
-#: src/reader.c:80
+#: src/reader.c:81
 msgid "   Skipping to next \\n"
 msgstr "   Saltando al siguiente \\n"
 
 msgid "   Skipping to next \\n"
 msgstr "   Saltando al siguiente \\n"
 
-#: src/reader.c:82
+#: src/reader.c:83
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Saltando al siguiente %c"
 
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Saltando al siguiente %c"
 
-#: src/reader.c:133 src/reader.c:145
+#: src/reader.c:134 src/reader.c:146
 msgid "invalid $ value"
 msgstr "valor $ no válido"
 
 msgid "invalid $ value"
 msgstr "valor $ no válido"
 
-#: src/reader.c:170 src/reader.c:185
+#: src/reader.c:175 src/reader.c:193
 msgid "unterminated string at end of file"
 msgstr "cadena sin terminar al final del fichero"
 
 msgid "unterminated string at end of file"
 msgstr "cadena sin terminar al final del fichero"
 
-#: src/reader.c:173
+#: src/reader.c:178
 msgid "unterminated string"
 msgstr "cadena sin terminar"
 
 msgid "unterminated string"
 msgstr "cadena sin terminar"
 
-#: src/reader.c:325 src/reader.c:387
+#: src/reader.c:366 src/reader.c:446
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s no es válido"
 
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s no es válido"
 
-#: src/reader.c:364
+#: src/reader.c:414
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ de `%s' no tiene tipo declarado"
 
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ de `%s' no tiene tipo declarado"
 
-#: src/reader.c:380
+#: src/reader.c:439
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%s de `%s' no tiene tipo declarado"
 
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%s de `%s' no tiene tipo declarado"
 
-#: src/reader.c:433
+#: src/reader.c:492
 msgid "unterminated `%{' definition"
 msgstr "definición `%{' sin terminar"
 
 msgid "unterminated `%{' definition"
 msgstr "definición `%{' sin terminar"
 
-#: src/reader.c:480 src/reader.c:596 src/reader.c:646
+#: src/reader.c:537 src/reader.c:653 src/reader.c:703
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
-#: src/reader.c:497
+#: src/reader.c:554
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
-#: src/reader.c:500
+#: src/reader.c:557
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
-#: src/reader.c:522 src/reader.c:665
+#: src/reader.c:579 src/reader.c:722
 #, c-format
 msgid "symbol %s redefined"
 msgstr "redefinido el símbolo %s"
 
 #, c-format
 msgid "symbol %s redefined"
 msgstr "redefinido el símbolo %s"
 
-#: src/reader.c:532 src/reader.c:611 src/reader.c:672 src/reader.c:1224
+#: src/reader.c:589 src/reader.c:668 src/reader.c:729 src/reader.c:1290
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "redeclaración del tipo de %s"
 
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "redeclaración del tipo de %s"
 
-#: src/reader.c:542
+#: src/reader.c:599
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' no es válido en %s"
 
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' no es válido en %s"
 
-#: src/reader.c:559 src/reader.c:719
+#: src/reader.c:616 src/reader.c:776
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "múltiples declaraciones de %start"
 
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "múltiples declaraciones de %start"
 
-#: src/reader.c:561 src/reader.c:1202
+#: src/reader.c:618 src/reader.c:1268
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "declaración de %start no válida"
 
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "declaración de %start no válida"
 
-#: src/reader.c:581
+#: src/reader.c:638
 msgid "%type declaration has no <typename>"
 msgstr "la declaración %type no tiene <nombre-tipo>"
 
 msgid "%type declaration has no <typename>"
 msgstr "la declaración %type no tiene <nombre-tipo>"
 
-#: src/reader.c:616
+#: src/reader.c:673
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "declaración de %%type no válida debido al ítem: `%s'"
 
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "declaración de %%type no válida debido al ítem: `%s'"
 
-#: src/reader.c:661
+#: src/reader.c:718
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "redefinición de la precedencia de %s"
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "redefinición de la precedencia de %s"
@@ -519,7 +519,7 @@ msgstr "redefinici
 # de "to must" y aquí se emplea en su forma condicional. Por eso, he
 # cambiado `debe' por `debería' - cll
 # ahí me has pillado en un olvido del inglés - ngp
 # 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:685
+#: src/reader.c:742
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr ""
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr ""
@@ -529,18 +529,18 @@ msgstr ""
 # otras, como `inesperado'. Cualquiera es correcta, por supuesto y, en
 # este caso, la segunda me parece más apropiada - cll
 # ok - ngp
 # 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:695
+#: src/reader.c:752
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ítem inesperado: %s"
 
 # Cambio el orden y el sexo. Ahora está "en español". sv
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ítem inesperado: %s"
 
 # Cambio el orden y el sexo. Ahora está "en español". sv
-#: src/reader.c:756 src/reader.c:1034 src/reader.c:1104
+#: src/reader.c:813 src/reader.c:1099 src/reader.c:1170
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "`{' desemparejada"
 
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "`{' desemparejada"
 
-#: src/reader.c:788
+#: src/reader.c:845
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "el argumento de %expect no es un entero"
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "el argumento de %expect no es un entero"
@@ -551,26 +551,26 @@ msgstr "el argumento de %expect no es un entero"
 # - cll
 # ok - ngp
 #
 # - cll
 # ok - ngp
 #
-#: src/reader.c:835
+#: src/reader.c:892
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "no se reconoce el ítem %s, se esperaba un identificador"
 
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "no se reconoce el ítem %s, se esperaba un identificador"
 
-#: src/reader.c:859
+#: src/reader.c:916
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "se esperaba una cadena constante en lugar de %s"
 
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "se esperaba una cadena constante en lugar de %s"
 
-#: src/reader.c:959
+#: src/reader.c:1016
 #, c-format
 msgid "unrecognized: %s"
 msgstr "no reconocido: %s"
 
 #, c-format
 msgid "unrecognized: %s"
 msgstr "no reconocido: %s"
 
-#: src/reader.c:964
+#: src/reader.c:1021
 msgid "no input grammar"
 msgstr "no hay gramática de entrada"
 
 msgid "no input grammar"
 msgstr "no hay gramática de entrada"
 
-#: src/reader.c:969
+#: src/reader.c:1026
 #, c-format
 msgid "unknown character: %s"
 msgstr "carácter desconocido: %s"
 #, c-format
 msgid "unknown character: %s"
 msgstr "carácter desconocido: %s"
@@ -579,93 +579,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
 #
 # 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:1127
+#: src/reader.c:1193
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "cláusula %%guard sin terminar"
 
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "cláusula %%guard sin terminar"
 
-#: src/reader.c:1289
+#: src/reader.c:1355
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "regla mal formada: el símbolo inicial no está seguido por :"
 
 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:1296
+#: src/reader.c:1362
 msgid "grammar starts with vertical bar"
 msgstr "la gramática comienza con una barra vertical"
 
 msgid "grammar starts with vertical bar"
 msgstr "la gramática comienza con una barra vertical"
 
-#: src/reader.c:1327
+#: src/reader.c:1393
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "se ha dado una regla para %s, que es un terminal"
 
 #, 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:1429
+#: src/reader.c:1495
 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
 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:1437
+#: src/reader.c:1503
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%%guard presente pero %%semantic_parser está sin especificar"
 
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%%guard presente pero %%semantic_parser está sin especificar"
 
-#: src/reader.c:1446
+#: src/reader.c:1512
 msgid "two actions at end of one rule"
 msgstr "dos acciones al final de una regla"
 
 msgid "two actions at end of one rule"
 msgstr "dos acciones al final de una regla"
 
-#: src/reader.c:1460
+#: src/reader.c:1526
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "los tipos (`%s' `%s') no concuerdan en la acción por defecto"
 
 #, 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:1466
+#: src/reader.c:1532
 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"
 
 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:1510
+#: src/reader.c:1576
 #, c-format
 msgid "invalid input: %s"
 msgstr "entrada no válida: %s"
 
 #, c-format
 msgid "invalid input: %s"
 msgstr "entrada no válida: %s"
 
-#: src/reader.c:1518
+#: src/reader.c:1584
 #, fuzzy, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "demasiados símbolos (terminales y no terminales); máximo %s"
 
 #, 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:1521
+#: src/reader.c:1587
 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
 #
 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:1541
+#: src/reader.c:1608
 #, 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"
 
 #, 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:1646
+#: src/reader.c:1714
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "precedencias en conflicto entre %s y %s"
 
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "precedencias en conflicto entre %s y %s"
 
-#: src/reader.c:1658
+#: src/reader.c:1726
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "conflicto de valores assoc para %s y %s"
 
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "conflicto de valores assoc para %s y %s"
 
-#: src/reader.c:1709
+#: src/reader.c:1777
 #, 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"
 
 #, 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:1722
+#: src/reader.c:1790
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "el símbolo de inicio (axioma) %s no está definido"
 
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "el símbolo de inicio (axioma) %s no está definido"
 
-#: src/reader.c:1724
+#: src/reader.c:1792
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "el símbolo de inicio (axioma) %s es un terminal"
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "el símbolo de inicio (axioma) %s es un terminal"
index 026f31b686ca8e9d8c0b2c1a54e185b4cbd2b285..613fce85504ef6ef5cffabfb69b681e52cbbe162 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-10-16 20:27+0200\n"
+"POT-Creation-Date: 2000-11-02 10:14+0100\n"
 "PO-Revision-Date: 2000-04-11 22:19+02:00\n"
 "Last-Translator: Toomas Soome <tsoome@ut.ee>\n"
 "Language-Team: Estonian <et@li.org>\n"
 "PO-Revision-Date: 2000-04-11 22:19+02:00\n"
 "Last-Translator: Toomas Soome <tsoome@ut.ee>\n"
 "Language-Team: Estonian <et@li.org>\n"
@@ -233,7 +233,7 @@ msgstr "liiga palju gotosid (maks %d)"
 msgid "unexpected `/' found and ignored"
 msgstr "leidsin ja ignoreerin ootamatu `/'"
 
 msgid "unexpected `/' found and ignored"
 msgstr "leidsin ja ignoreerin ootamatu `/'"
 
-#: src/lex.c:112 src/reader.c:269
+#: src/lex.c:112 src/reader.c:299
 msgid "unterminated comment"
 msgstr "lõpetamata kommentaar"
 
 msgid "unterminated comment"
 msgstr "lõpetamata kommentaar"
 
@@ -281,7 +281,7 @@ msgstr "%s: sisemine viga: %s\n"
 msgid "Entering set_nullable"
 msgstr "Entering set_nullable"
 
 msgid "Entering set_nullable"
 msgstr "Entering set_nullable"
 
-#: src/output.c:983
+#: src/output.c:1026
 #, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "ületati maksimaalset tabelisuurust (%d)"
 #, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "ületati maksimaalset tabelisuurust (%d)"
@@ -374,225 +374,225 @@ msgstr " vasakul:"
 msgid " on right:"
 msgstr " paremal:"
 
 msgid " on right:"
 msgstr " paremal:"
 
-#: src/reader.c:80
+#: src/reader.c:81
 msgid "   Skipping to next \\n"
 msgstr "   Liigun järgmisele \\n"
 
 msgid "   Skipping to next \\n"
 msgstr "   Liigun järgmisele \\n"
 
-#: src/reader.c:82
+#: src/reader.c:83
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Liigun järgmisele %c"
 
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Liigun järgmisele %c"
 
-#: src/reader.c:133 src/reader.c:145
+#: src/reader.c:134 src/reader.c:146
 msgid "invalid $ value"
 msgstr "vigane $ väärtus"
 
 msgid "invalid $ value"
 msgstr "vigane $ väärtus"
 
-#: src/reader.c:170 src/reader.c:185
+#: src/reader.c:175 src/reader.c:193
 msgid "unterminated string at end of file"
 msgstr "lõpetamata sõne faili lõpus"
 
 msgid "unterminated string at end of file"
 msgstr "lõpetamata sõne faili lõpus"
 
-#: src/reader.c:173
+#: src/reader.c:178
 msgid "unterminated string"
 msgstr "lõpetamata sõne"
 
 msgid "unterminated string"
 msgstr "lõpetamata sõne"
 
-#: src/reader.c:325 src/reader.c:387
+#: src/reader.c:366 src/reader.c:446
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s on vigane"
 
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s on vigane"
 
-#: src/reader.c:364
+#: src/reader.c:414
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "`%s' $$ ei oma deklareeritud tüüpi"
 
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "`%s' $$ ei oma deklareeritud tüüpi"
 
-#: src/reader.c:380
+#: src/reader.c:439
 #, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%d `%s' ei oma deklareeritud tüüpi"
 
 #, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%d `%s' ei oma deklareeritud tüüpi"
 
-#: src/reader.c:433
+#: src/reader.c:492
 msgid "unterminated `%{' definition"
 msgstr "lõpetamata `%{' definitsioon"
 
 msgid "unterminated `%{' definition"
 msgstr "lõpetamata `%{' definitsioon"
 
-#: src/reader.c:480 src/reader.c:596 src/reader.c:646
+#: src/reader.c:537 src/reader.c:653 src/reader.c:703
 #, c-format
 msgid "Premature EOF after %s"
 msgstr "Enneaegne EOF peale %s"
 
 #, c-format
 msgid "Premature EOF after %s"
 msgstr "Enneaegne EOF peale %s"
 
-#: src/reader.c:497
+#: src/reader.c:554
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
-#: src/reader.c:500
+#: src/reader.c:557
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
-#: src/reader.c:522 src/reader.c:665
+#: src/reader.c:579 src/reader.c:722
 #, c-format
 msgid "symbol %s redefined"
 msgstr "sümbol %s on uuesti defineeritud"
 
 #, c-format
 msgid "symbol %s redefined"
 msgstr "sümbol %s on uuesti defineeritud"
 
-#: src/reader.c:532 src/reader.c:611 src/reader.c:672 src/reader.c:1224
+#: src/reader.c:589 src/reader.c:668 src/reader.c:729 src/reader.c:1290
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "%s tüübi uuesti deklareerimine"
 
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "%s tüübi uuesti deklareerimine"
 
-#: src/reader.c:542
+#: src/reader.c:599
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' ei ole %s sees lubatud"
 
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' ei ole %s sees lubatud"
 
-#: src/reader.c:559 src/reader.c:719
+#: src/reader.c:616 src/reader.c:776
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "korduvad %start deklaratsioonid"
 
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "korduvad %start deklaratsioonid"
 
-#: src/reader.c:561 src/reader.c:1202
+#: src/reader.c:618 src/reader.c:1268
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "vigane %start deklaratsioon"
 
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "vigane %start deklaratsioon"
 
-#: src/reader.c:581
+#: src/reader.c:638
 msgid "%type declaration has no <typename>"
 msgstr "%type deklaratsioonis puudub <tüübinimi>"
 
 msgid "%type declaration has no <typename>"
 msgstr "%type deklaratsioonis puudub <tüübinimi>"
 
-#: src/reader.c:616
+#: src/reader.c:673
 msgid "invalid %%type declaration due to item: %s"
 msgstr "vigane %%type deklaratsioon, element: %s"
 
 msgid "invalid %%type declaration due to item: %s"
 msgstr "vigane %%type deklaratsioon, element: %s"
 
-#: src/reader.c:661
+#: src/reader.c:718
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "%s prioriteedi uus definitsioon"
 
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "%s prioriteedi uus definitsioon"
 
-#: src/reader.c:685
+#: src/reader.c:742
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit"
 
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit"
 
-#: src/reader.c:695
+#: src/reader.c:752
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ootamatu element: %s"
 
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ootamatu element: %s"
 
-#: src/reader.c:756 src/reader.c:1034 src/reader.c:1104
+#: src/reader.c:813 src/reader.c:1099 src/reader.c:1170
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "puudub `{'"
 
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "puudub `{'"
 
-#: src/reader.c:788
+#: src/reader.c:845
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "%expect argument ei ole täisarv"
 
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "%expect argument ei ole täisarv"
 
-#: src/reader.c:835
+#: src/reader.c:892
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "tundmatu element %s, eeldasin identifikaatorit"
 
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "tundmatu element %s, eeldasin identifikaatorit"
 
-#: src/reader.c:859
+#: src/reader.c:916
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "eeldasin %s asemel sõnekonstanti"
 
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "eeldasin %s asemel sõnekonstanti"
 
-#: src/reader.c:959
+#: src/reader.c:1016
 #, c-format
 msgid "unrecognized: %s"
 msgstr "tundmatu: %s"
 
 #, c-format
 msgid "unrecognized: %s"
 msgstr "tundmatu: %s"
 
-#: src/reader.c:964
+#: src/reader.c:1021
 msgid "no input grammar"
 msgstr "sisendgrammatikat pole"
 
 msgid "no input grammar"
 msgstr "sisendgrammatikat pole"
 
-#: src/reader.c:969
+#: src/reader.c:1026
 #, c-format
 msgid "unknown character: %s"
 msgstr "tundmatu sümbol: %s"
 
 #, c-format
 msgid "unknown character: %s"
 msgstr "tundmatu sümbol: %s"
 
-#: src/reader.c:1127
+#: src/reader.c:1193
 #, c-format
 msgid "unterminated %guard clause"
 msgstr "lõpetamata %guard klausel"
 
 #, c-format
 msgid "unterminated %guard clause"
 msgstr "lõpetamata %guard klausel"
 
-#: src/reader.c:1289
+#: src/reader.c:1355
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit"
 
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit"
 
-#: src/reader.c:1296
+#: src/reader.c:1362
 msgid "grammar starts with vertical bar"
 msgstr "grammatika algab püstkriipsuga"
 
 msgid "grammar starts with vertical bar"
 msgstr "grammatika algab püstkriipsuga"
 
-#: src/reader.c:1327
+#: src/reader.c:1393
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "%s jaoks on antud reegel, aga see on märk"
 
 #, 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:1429
+#: src/reader.c:1495
 msgid "two @prec's in a row"
 msgstr "kaks @prec ühel real"
 
 msgid "two @prec's in a row"
 msgstr "kaks @prec ühel real"
 
-#: src/reader.c:1437
+#: src/reader.c:1503
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%guard on määratud, aga %semantic_parser ei ole"
 
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%guard on määratud, aga %semantic_parser ei ole"
 
-#: src/reader.c:1446
+#: src/reader.c:1512
 msgid "two actions at end of one rule"
 msgstr "kaks tegevust ühe reegli lõpus"
 
 msgid "two actions at end of one rule"
 msgstr "kaks tegevust ühe reegli lõpus"
 
-#: src/reader.c:1460
+#: src/reader.c:1526
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')"
 
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')"
 
-#: src/reader.c:1466
+#: src/reader.c:1532
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
 
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
 
-#: src/reader.c:1510
+#: src/reader.c:1576
 #, c-format
 msgid "invalid input: %s"
 msgstr "vigane sisend: %s"
 
 #, c-format
 msgid "invalid input: %s"
 msgstr "vigane sisend: %s"
 
-#: src/reader.c:1518
+#: src/reader.c:1584
 #, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d"
 
 #, 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:1521
+#: src/reader.c:1587
 msgid "no rules in the input grammar"
 msgstr "sisendgrammatikas pole reegleid"
 
 msgid "no rules in the input grammar"
 msgstr "sisendgrammatikas pole reegleid"
 
-#: src/reader.c:1541
+#: src/reader.c:1608
 #, 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"
 
 #, 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:1646
+#: src/reader.c:1714
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "%s ja %s omavad konfliktseid prioriteete"
 
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "%s ja %s omavad konfliktseid prioriteete"
 
-#: src/reader.c:1658
+#: src/reader.c:1726
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid"
 
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid"
 
-#: src/reader.c:1709
+#: src/reader.c:1777
 #, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr "märkidele %s ja %s on mõlemale omistatud number %d"
 
 #, 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:1722
+#: src/reader.c:1790
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "stardisümbol %s ei ole defineeritud"
 
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "stardisümbol %s ei ole defineeritud"
 
-#: src/reader.c:1724
+#: src/reader.c:1792
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "stardisümbol %s on märk"
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "stardisümbol %s on märk"
index 011abbb3dc9bfa06ff294125b86a88f118ed4795..14b23b16c699d58e7b4e4776a52e2fd5f99d1ef7 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-10-16 20:27+0200\n"
+"POT-Creation-Date: 2000-11-02 10:14+0100\n"
 "PO-Revision-Date: 1996-03-19 20:05 EST\n"
 "Last-Translator: Dominique Boucher <boucherd@IRO.UMontreal.CA>\n"
 "Language-Team: French <fr@li.org>\n"
 "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"
@@ -215,7 +215,7 @@ msgstr ""
 msgid "unexpected `/' found and ignored"
 msgstr "`/' inattendu et ignoré"
 
 msgid "unexpected `/' found and ignored"
 msgstr "`/' inattendu et ignoré"
 
-#: src/lex.c:112 src/reader.c:269
+#: src/lex.c:112 src/reader.c:299
 msgid "unterminated comment"
 msgstr "le commentaire ne se termine pas"
 
 msgid "unterminated comment"
 msgstr "le commentaire ne se termine pas"
 
@@ -264,7 +264,7 @@ msgstr "erreur interne, %s\n"
 msgid "Entering set_nullable"
 msgstr "Entré dans set_nullable"
 
 msgid "Entering set_nullable"
 msgstr "Entré dans set_nullable"
 
-#: src/output.c:983
+#: src/output.c:1026
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "taille maximum des tables (%s) dépassée"
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "taille maximum des tables (%s) dépassée"
@@ -357,227 +357,227 @@ msgstr " 
 msgid " on right:"
 msgstr " à droite:"
 
 msgid " on right:"
 msgstr " à droite:"
 
-#: src/reader.c:80
+#: src/reader.c:81
 msgid "   Skipping to next \\n"
 msgstr "   Saut jusqu'au prochain \\n"
 
 msgid "   Skipping to next \\n"
 msgstr "   Saut jusqu'au prochain \\n"
 
-#: src/reader.c:82
+#: src/reader.c:83
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Saut jusqu'au prochain %c"
 
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Saut jusqu'au prochain %c"
 
-#: src/reader.c:133 src/reader.c:145
+#: src/reader.c:134 src/reader.c:146
 msgid "invalid $ value"
 msgstr "la valeur de symbole $ n'est pas valide"
 
 msgid "invalid $ value"
 msgstr "la valeur de symbole $ n'est pas valide"
 
-#: src/reader.c:170 src/reader.c:185
+#: src/reader.c:175 src/reader.c:193
 msgid "unterminated string at end of file"
 msgstr "chaîne de caractères non terminée en fin de fichier"
 
 msgid "unterminated string at end of file"
 msgstr "chaîne de caractères non terminée en fin de fichier"
 
-#: src/reader.c:173
+#: src/reader.c:178
 msgid "unterminated string"
 msgstr "chaîne de caractère non terminée"
 
 msgid "unterminated string"
 msgstr "chaîne de caractère non terminée"
 
-#: src/reader.c:325 src/reader.c:387
+#: src/reader.c:366 src/reader.c:446
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s n'est pas valide"
 
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s n'est pas valide"
 
-#: src/reader.c:364
+#: src/reader.c:414
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ de `%s' n'a pas son type déclaré"
 
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ de `%s' n'a pas son type déclaré"
 
-#: src/reader.c:380
+#: src/reader.c:439
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%s cd `%s' n'a pas son type déclaré"
 
 #, 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:433
+#: src/reader.c:492
 msgid "unterminated `%{' definition"
 msgstr "La section de définition (%{) ne termine pas avant la fin du fichier"
 
 msgid "unterminated `%{' definition"
 msgstr "La section de définition (%{) ne termine pas avant la fin du fichier"
 
-#: src/reader.c:480 src/reader.c:596 src/reader.c:646
+#: src/reader.c:537 src/reader.c:653 src/reader.c:703
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
-#: src/reader.c:497
+#: src/reader.c:554
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
-#: src/reader.c:500
+#: src/reader.c:557
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
-#: src/reader.c:522 src/reader.c:665
+#: src/reader.c:579 src/reader.c:722
 #, c-format
 msgid "symbol %s redefined"
 msgstr "symbole %s redéfini"
 
 #, c-format
 msgid "symbol %s redefined"
 msgstr "symbole %s redéfini"
 
-#: src/reader.c:532 src/reader.c:611 src/reader.c:672 src/reader.c:1224
+#: src/reader.c:589 src/reader.c:668 src/reader.c:729 src/reader.c:1290
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "redéclaration du type de %s"
 
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "redéclaration du type de %s"
 
-#: src/reader.c:542
+#: src/reader.c:599
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' n'est pas valide dans %s"
 
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' n'est pas valide dans %s"
 
-#: src/reader.c:559 src/reader.c:719
+#: src/reader.c:616 src/reader.c:776
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "multiples déclarations %start"
 
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "multiples déclarations %start"
 
-#: src/reader.c:561 src/reader.c:1202
+#: src/reader.c:618 src/reader.c:1268
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "la déclaration %start n'est pas valide"
 
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "la déclaration %start n'est pas valide"
 
-#: src/reader.c:581
+#: src/reader.c:638
 msgid "%type declaration has no <typename>"
 msgstr "la déclaration %type n'a pas de <nom_de_type>"
 
 msgid "%type declaration has no <typename>"
 msgstr "la déclaration %type n'a pas de <nom_de_type>"
 
-#: src/reader.c:616
+#: src/reader.c:673
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "la déclaration %%type n'est pas valide à cause de l'item: %s"
 
 #, 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:661
+#: src/reader.c:718
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "redéfinition du niveau de priorité de %s"
 
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "redéfinition du niveau de priorité de %s"
 
-#: src/reader.c:685
+#: src/reader.c:742
 #, 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"
 
 #, 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:695
+#: src/reader.c:752
 #, c-format
 msgid "unexpected item: %s"
 msgstr "item inattendu: %s"
 
 #, c-format
 msgid "unexpected item: %s"
 msgstr "item inattendu: %s"
 
-#: src/reader.c:756 src/reader.c:1034 src/reader.c:1104
+#: src/reader.c:813 src/reader.c:1099 src/reader.c:1170
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "accolade ouvrante `{' non appariée"
 
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "accolade ouvrante `{' non appariée"
 
-#: src/reader.c:788
+#: src/reader.c:845
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "le paramètre de %expect n'est pas un entier"
 
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "le paramètre de %expect n'est pas un entier"
 
-#: src/reader.c:835
+#: src/reader.c:892
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "item %s non reconnu, un identificateur est attendu"
 
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "item %s non reconnu, un identificateur est attendu"
 
-#: src/reader.c:859
+#: src/reader.c:916
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "chaîne de caractères constante attendue plutôt que %s"
 
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "chaîne de caractères constante attendue plutôt que %s"
 
-#: src/reader.c:959
+#: src/reader.c:1016
 #, c-format
 msgid "unrecognized: %s"
 msgstr "non reconnu: %s"
 
 #, c-format
 msgid "unrecognized: %s"
 msgstr "non reconnu: %s"
 
-#: src/reader.c:964
+#: src/reader.c:1021
 msgid "no input grammar"
 msgstr "aucune grammaire en entrée"
 
 msgid "no input grammar"
 msgstr "aucune grammaire en entrée"
 
-#: src/reader.c:969
+#: src/reader.c:1026
 #, c-format
 msgid "unknown character: %s"
 msgstr "caractère inconnu: %s"
 
 #, c-format
 msgid "unknown character: %s"
 msgstr "caractère inconnu: %s"
 
-#: src/reader.c:1127
+#: src/reader.c:1193
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "clause %%guard non terminée"
 
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "clause %%guard non terminée"
 
-#: src/reader.c:1289
+#: src/reader.c:1355
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "règle mal formée: le symbole initial n'est pas suivi de `:'"
 
 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:1296
+#: src/reader.c:1362
 msgid "grammar starts with vertical bar"
 msgstr "la grammaire débute par une barre verticale"
 
 msgid "grammar starts with vertical bar"
 msgstr "la grammaire débute par une barre verticale"
 
-#: src/reader.c:1327
+#: src/reader.c:1393
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "la règle pour %s, qui est un terminal"
 
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "la règle pour %s, qui est un terminal"
 
-#: src/reader.c:1429
+#: src/reader.c:1495
 msgid "two @prec's in a row"
 msgstr "deux @prec de suite"
 
 msgid "two @prec's in a row"
 msgstr "deux @prec de suite"
 
-#: src/reader.c:1437
+#: src/reader.c:1503
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%%guard est présent mais %%semantic_parser n'est pas spécifié"
 
 #, 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:1446
+#: src/reader.c:1512
 msgid "two actions at end of one rule"
 msgstr "deux actions à la fin d'une même règle"
 
 msgid "two actions at end of one rule"
 msgstr "deux actions à la fin d'une même règle"
 
-#: src/reader.c:1460
+#: src/reader.c:1526
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "conflit de type (`%s' `%s') pour l'action par défaut"
 
 #, 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:1466
+#: src/reader.c:1532
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "règle vide pour une catégorie typée et aucune action"
 
 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:1510
+#: src/reader.c:1576
 #, c-format
 msgid "invalid input: %s"
 msgstr "entrée non valide: %s"
 
 #, c-format
 msgid "invalid input: %s"
 msgstr "entrée non valide: %s"
 
-#: src/reader.c:1518
+#: src/reader.c:1584
 #, fuzzy, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "trop de symboles (terminaux et catégories); maximum de %s"
 
 #, 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:1521
+#: src/reader.c:1587
 msgid "no rules in the input grammar"
 msgstr "la grammaire n'a pas de règles"
 
 msgid "no rules in the input grammar"
 msgstr "la grammaire n'a pas de règles"
 
-#: src/reader.c:1541
+#: src/reader.c:1608
 #, 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"
 
 #, 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:1646
+#: src/reader.c:1714
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "les priorités pour %s et %s entrent en conflit"
 
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "les priorités pour %s et %s entrent en conflit"
 
-#: src/reader.c:1658
+#: src/reader.c:1726
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "les valeurs d'association de %s et %s entrent en conflit"
 
 #, 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:1709
+#: src/reader.c:1777
 #, 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"
 
 #, 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:1722
+#: src/reader.c:1790
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "le symbole de départ %s n'est pas défini"
 
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "le symbole de départ %s n'est pas défini"
 
-#: src/reader.c:1724
+#: src/reader.c:1792
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "le symbole de départ %s est un terminal"
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "le symbole de départ %s est un terminal"
index c2eb5759fa017142474276889525bfdb7bec9454..e2078880506fc8ab747d5d50d4964e2884f078d6 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU bison 1.28\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU bison 1.28\n"
-"POT-Creation-Date: 2000-10-16 20:27+0200\n"
+"POT-Creation-Date: 2000-11-02 10:14+0100\n"
 "PO-Revision-Date: 1999-09-28 21:10+0900\n"
 "Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
 "PO-Revision-Date: 1999-09-28 21:10+0900\n"
 "Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
@@ -214,7 +214,7 @@ msgstr "%s 
 msgid "unexpected `/' found and ignored"
 msgstr "ͽ´ü¤·¤Ê¤¤ `/' ¤¬¸«¤Ä¤«¤ê¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
 
 msgid "unexpected `/' found and ignored"
 msgstr "ͽ´ü¤·¤Ê¤¤ `/' ¤¬¸«¤Ä¤«¤ê¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
 
-#: src/lex.c:112 src/reader.c:269
+#: src/lex.c:112 src/reader.c:299
 msgid "unterminated comment"
 msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥È¤Ç¤¹"
 
 msgid "unterminated comment"
 msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥È¤Ç¤¹"
 
@@ -263,7 +263,7 @@ msgstr "%s: 
 msgid "Entering set_nullable"
 msgstr "set_nullable ¤ËÆþ¤ê¤Þ¤¹"
 
 msgid "Entering set_nullable"
 msgstr "set_nullable ¤ËÆþ¤ê¤Þ¤¹"
 
-#: src/output.c:983
+#: src/output.c:1026
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º (%s) ¤òĶ¤¨¤Þ¤·¤¿"
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º (%s) ¤òĶ¤¨¤Þ¤·¤¿"
@@ -356,226 +356,226 @@ msgstr " 
 msgid " on right:"
 msgstr " ±¦ÊÕ:"
 
 msgid " on right:"
 msgstr " ±¦ÊÕ:"
 
-#: src/reader.c:80
+#: src/reader.c:81
 msgid "   Skipping to next \\n"
 msgstr "   ¼¡¤Î \\n ¤Ë¥¹¥­¥Ã¥×"
 
 msgid "   Skipping to next \\n"
 msgstr "   ¼¡¤Î \\n ¤Ë¥¹¥­¥Ã¥×"
 
-#: src/reader.c:82
+#: src/reader.c:83
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   ¼¡¤Î %c ¤Ë¥¹¥­¥Ã¥×"
 
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   ¼¡¤Î %c ¤Ë¥¹¥­¥Ã¥×"
 
-#: src/reader.c:133 src/reader.c:145
+#: src/reader.c:134 src/reader.c:146
 msgid "invalid $ value"
 msgstr "̵¸ú¤Ê $ ¤ÎÃÍ"
 
 msgid "invalid $ value"
 msgstr "̵¸ú¤Ê $ ¤ÎÃÍ"
 
-#: src/reader.c:170 src/reader.c:185
+#: src/reader.c:175 src/reader.c:193
 msgid "unterminated string at end of file"
 msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎ󤬥ե¡¥¤¥ëËöÈø¤Ë¤¢¤ê¤Þ¤¹"
 
 msgid "unterminated string at end of file"
 msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎ󤬥ե¡¥¤¥ëËöÈø¤Ë¤¢¤ê¤Þ¤¹"
 
-#: src/reader.c:173
+#: src/reader.c:178
 msgid "unterminated string"
 msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎó"
 
 msgid "unterminated string"
 msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎó"
 
-#: src/reader.c:325 src/reader.c:387
+#: src/reader.c:366 src/reader.c:446
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s ¤Ï̵¸ú¤Ç¤¹"
 
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s ¤Ï̵¸ú¤Ç¤¹"
 
-#: src/reader.c:364
+#: src/reader.c:414
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "`%s' ¤Î $$ ¤ËÀë¸À¤Î¤Ê¤¤·¿¤¬¤¢¤ê¤Þ¤¹"
 
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "`%s' ¤Î $$ ¤ËÀë¸À¤Î¤Ê¤¤·¿¤¬¤¢¤ê¤Þ¤¹"
 
-#: src/reader.c:380
+#: src/reader.c:439
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "`%s' ¤Î $%s ¤ËÀë¸À¤Î¤Ê¤¤·¿¤¬¤¢¤ê¤Þ¤¹"
 
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "`%s' ¤Î $%s ¤ËÀë¸À¤Î¤Ê¤¤·¿¤¬¤¢¤ê¤Þ¤¹"
 
-#: src/reader.c:433
+#: src/reader.c:492
 msgid "unterminated `%{' definition"
 msgstr "`%{' ÄêµÁ ¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
 
 msgid "unterminated `%{' definition"
 msgstr "`%{' ÄêµÁ ¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/reader.c:480 src/reader.c:596 src/reader.c:646
+#: src/reader.c:537 src/reader.c:653 src/reader.c:703
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
-#: src/reader.c:497
+#: src/reader.c:554
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
-#: src/reader.c:500
+#: src/reader.c:557
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
-#: src/reader.c:522 src/reader.c:665
+#: src/reader.c:579 src/reader.c:722
 #, c-format
 msgid "symbol %s redefined"
 msgstr "¥·¥ó¥Ü¥ë %s ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
 
 #, c-format
 msgid "symbol %s redefined"
 msgstr "¥·¥ó¥Ü¥ë %s ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
 
-#: src/reader.c:532 src/reader.c:611 src/reader.c:672 src/reader.c:1224
+#: src/reader.c:589 src/reader.c:668 src/reader.c:729 src/reader.c:1290
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "%s ¤Î·¿¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
 
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "%s ¤Î·¿¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
 
-#: src/reader.c:542
+#: src/reader.c:599
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "%2$s Æâ¤Î `%1$s' ¤Ï̵¸ú¤Ç¤¹"
 
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "%2$s Æâ¤Î `%1$s' ¤Ï̵¸ú¤Ç¤¹"
 
-#: src/reader.c:559 src/reader.c:719
+#: src/reader.c:616 src/reader.c:776
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "Ê£¿ô¤Î %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿"
 
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "Ê£¿ô¤Î %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿"
 
-#: src/reader.c:561 src/reader.c:1202
+#: src/reader.c:618 src/reader.c:1268
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "̵¸ú¤Ê %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿"
 
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "̵¸ú¤Ê %start ¤¬Àë¸À¤µ¤ì¤Þ¤·¤¿"
 
-#: src/reader.c:581
+#: src/reader.c:638
 msgid "%type declaration has no <typename>"
 msgstr "%type Àë¸À¤Ë <¥¿¥¤¥×̾> ¤¬¤¢¤ê¤Þ¤»¤ó"
 
 msgid "%type declaration has no <typename>"
 msgstr "%type Àë¸À¤Ë <¥¿¥¤¥×̾> ¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: src/reader.c:616
+#: src/reader.c:673
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "¥¢¥¤¥Æ¥à¤ËÍ¿¤¨¤é¤ì¤ë¤Ù¤­ %%type Àë¸À¤¬Ìµ¸ú¤Ç¤¹: `%s'"
 
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "¥¢¥¤¥Æ¥à¤ËÍ¿¤¨¤é¤ì¤ë¤Ù¤­ %%type Àë¸À¤¬Ìµ¸ú¤Ç¤¹: `%s'"
 
-#: src/reader.c:661
+#: src/reader.c:718
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "%s ¤ËÀè¹Ô¤·¤¿ºÆÄêµÁ¤Ç¤¹"
 
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "%s ¤ËÀè¹Ô¤·¤¿ºÆÄêµÁ¤Ç¤¹"
 
-#: src/reader.c:685
+#: src/reader.c:742
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "̵¸ú¤Ê¥Æ¥­¥¹¥È (%s) - ¿ôÃͤϼ±Ê̻Ҥθå¤í¤Ë¤¢¤ë¤Ù¤­¤Ç¤¹"
 
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "̵¸ú¤Ê¥Æ¥­¥¹¥È (%s) - ¿ôÃͤϼ±Ê̻Ҥθå¤í¤Ë¤¢¤ë¤Ù¤­¤Ç¤¹"
 
-#: src/reader.c:695
+#: src/reader.c:752
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ͽ´ü¤»¤Ì¥¢¥¤¥Æ¥à: %s"
 
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ͽ´ü¤»¤Ì¥¢¥¤¥Æ¥à: %s"
 
-#: src/reader.c:756 src/reader.c:1034 src/reader.c:1104
+#: src/reader.c:813 src/reader.c:1099 src/reader.c:1170
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "Âбþ¤Î¤Ê¤¤ `{' ¤Ç¤¹"
 
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "Âбþ¤Î¤Ê¤¤ `{' ¤Ç¤¹"
 
-#: src/reader.c:788
+#: src/reader.c:845
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "%expect ¤Î°ú¿ô¤¬À°¿ôÃͤǤϤ¢¤ê¤Þ¤»¤ó"
 
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "%expect ¤Î°ú¿ô¤¬À°¿ôÃͤǤϤ¢¤ê¤Þ¤»¤ó"
 
-#: src/reader.c:835
+#: src/reader.c:892
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥¢¥¤¥Æ¥à %s¡¢¤³¤³¤Ç¤Ï¼±Ê̻Ҥ¬´üÂÔ¤µ¤ì¤Þ¤¹"
 
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥¢¥¤¥Æ¥à %s¡¢¤³¤³¤Ç¤Ï¼±Ê̻Ҥ¬´üÂÔ¤µ¤ì¤Þ¤¹"
 
-#: src/reader.c:859
+#: src/reader.c:916
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "¤³¤³¤Ç¤Ï %s ¤Ç¤Ï¤Ê¤¯Ê¸»úÎóÄê¿ô¤¬´üÂÔ¤µ¤ì¤Þ¤¹"
 
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "¤³¤³¤Ç¤Ï %s ¤Ç¤Ï¤Ê¤¯Ê¸»úÎóÄê¿ô¤¬´üÂÔ¤µ¤ì¤Þ¤¹"
 
-#: src/reader.c:959
+#: src/reader.c:1016
 #, c-format
 msgid "unrecognized: %s"
 msgstr "ǧ¼±¤Ç¤­¤Ê¤¤: %s"
 
 #, c-format
 msgid "unrecognized: %s"
 msgstr "ǧ¼±¤Ç¤­¤Ê¤¤: %s"
 
-#: src/reader.c:964
+#: src/reader.c:1021
 msgid "no input grammar"
 msgstr "ʸˡ¤ÎÆþÎϤ¬Ìµ¤¤"
 
 msgid "no input grammar"
 msgstr "ʸˡ¤ÎÆþÎϤ¬Ìµ¤¤"
 
-#: src/reader.c:969
+#: src/reader.c:1026
 #, c-format
 msgid "unknown character: %s"
 msgstr "̤ÃΤÎʸ»ú: %s"
 
 #, c-format
 msgid "unknown character: %s"
 msgstr "̤ÃΤÎʸ»ú: %s"
 
-#: src/reader.c:1127
+#: src/reader.c:1193
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤ %%guard Àá¤Ç¤¹"
 
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤ %%guard Àá¤Ç¤¹"
 
-#: src/reader.c:1289
+#: src/reader.c:1355
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "¼Ù°­¤Êµ¬Â§: ½é´ü²½¥·¥ó¥Ü¥ë¤Ë¥³¥í¥ó (:) ¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
 
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "¼Ù°­¤Êµ¬Â§: ½é´ü²½¥·¥ó¥Ü¥ë¤Ë¥³¥í¥ó (:) ¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/reader.c:1296
+#: src/reader.c:1362
 msgid "grammar starts with vertical bar"
 msgstr "ʸˡ¤Ï½ÄËÀ (|) ¤Ç»Ï¤á¤Þ¤¹"
 
 msgid "grammar starts with vertical bar"
 msgstr "ʸˡ¤Ï½ÄËÀ (|) ¤Ç»Ï¤á¤Þ¤¹"
 
-#: src/reader.c:1327
+#: src/reader.c:1393
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "%s ¤Ëµ¬Â§¤¬Í¿¤¨¤é¤ì¡¢¤½¤ì¤Ï¥È¡¼¥¯¥ó¤È¤Ê¤ê¤Þ¤¹"
 
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "%s ¤Ëµ¬Â§¤¬Í¿¤¨¤é¤ì¡¢¤½¤ì¤Ï¥È¡¼¥¯¥ó¤È¤Ê¤ê¤Þ¤¹"
 
-#: src/reader.c:1429
+#: src/reader.c:1495
 msgid "two @prec's in a row"
 msgstr "@prec ¤Î¤â¤ÎÆó¤Ä¤¬Æ±Îó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
 
 msgid "two @prec's in a row"
 msgstr "@prec ¤Î¤â¤ÎÆó¤Ä¤¬Æ±Îó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
 
-#: src/reader.c:1437
+#: src/reader.c:1503
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%%guard ¤¬¤¢¤ê¤Þ¤¹¤¬ %%semantic_parser ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%%guard ¤¬¤¢¤ê¤Þ¤¹¤¬ %%semantic_parser ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/reader.c:1446
+#: src/reader.c:1512
 msgid "two actions at end of one rule"
 msgstr "°ì¤Ä¤Îµ¬Â§¤Î½ª¤ê¤ËÆó¤Ä¤ÎÆ°ºî¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
 
 msgid "two actions at end of one rule"
 msgstr "°ì¤Ä¤Îµ¬Â§¤Î½ª¤ê¤ËÆó¤Ä¤ÎÆ°ºî¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
 
-#: src/reader.c:1460
+#: src/reader.c:1526
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "½é´ü¾õÂÖ¤ÎÆ°ºî¤Ç¤Ï·¿ (`%s' `%s') ¤¬¾×Æͤ·¤Þ¤¹"
 
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "½é´ü¾õÂÖ¤ÎÆ°ºî¤Ç¤Ï·¿ (`%s' `%s') ¤¬¾×Æͤ·¤Þ¤¹"
 
-#: src/reader.c:1466
+#: src/reader.c:1532
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "¶õ¤Î·¿ÉÕ¤­Èó½ªÃ¼¥¢¥¤¥Æ¥àÍѵ¬Â§¤Ç¤¢¤ê¡¢Æ°ºî¤¬µ¯¤ê¤Þ¤»¤ó"
 
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "¶õ¤Î·¿ÉÕ¤­Èó½ªÃ¼¥¢¥¤¥Æ¥àÍѵ¬Â§¤Ç¤¢¤ê¡¢Æ°ºî¤¬µ¯¤ê¤Þ¤»¤ó"
 
-#: src/reader.c:1510
+#: src/reader.c:1576
 #, c-format
 msgid "invalid input: %s"
 msgstr "̵¸ú¤ÊÆþÎÏ: %s"
 
 #, c-format
 msgid "invalid input: %s"
 msgstr "̵¸ú¤ÊÆþÎÏ: %s"
 
-#: src/reader.c:1518
+#: src/reader.c:1584
 #, fuzzy, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "¥·¥ó¥Ü¥ë¤¬Â¿¤¹¤®¤Þ¤¹ (¥È¡¼¥¯¥ó¤ÈÈó½ªÃ¼¥¢¥¤¥Æ¥à) -- ºÇÂç %s"
 
 #, fuzzy, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "¥·¥ó¥Ü¥ë¤¬Â¿¤¹¤®¤Þ¤¹ (¥È¡¼¥¯¥ó¤ÈÈó½ªÃ¼¥¢¥¤¥Æ¥à) -- ºÇÂç %s"
 
-#: src/reader.c:1521
+#: src/reader.c:1587
 msgid "no rules in the input grammar"
 msgstr "ÆþÎϤ·¤¿Ê¸Ë¡¤Ëµ¬Â§¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
 msgid "no rules in the input grammar"
 msgstr "ÆþÎϤ·¤¿Ê¸Ë¡¤Ëµ¬Â§¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/reader.c:1541
+#: src/reader.c:1608
 #, c-format
 msgid "symbol %s is used, but is not defined as a token and has no rules"
 msgstr ""
 "¥·¥ó¥Ü¥ë %s "
 "¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¥È¡¼¥¯¥ó¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢µ¬Â§¤ò»ý¤Á¤Þ¤»¤ó"
 
 #, c-format
 msgid "symbol %s is used, but is not defined as a token and has no rules"
 msgstr ""
 "¥·¥ó¥Ü¥ë %s "
 "¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¥È¡¼¥¯¥ó¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢µ¬Â§¤ò»ý¤Á¤Þ¤»¤ó"
 
-#: src/reader.c:1646
+#: src/reader.c:1714
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "Àè¹Ô¤·¤Æ¤¤¤ë %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹"
 
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "Àè¹Ô¤·¤Æ¤¤¤ë %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹"
 
-#: src/reader.c:1658
+#: src/reader.c:1726
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "Èó·ë¹çÃÍ %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹"
 
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "Èó·ë¹çÃÍ %s ¤È %s ¤Ç¶¥¹ç¤¬À¸¤¸¤Æ¤¤¤Þ¤¹"
 
-#: src/reader.c:1709
+#: src/reader.c:1777
 #, fuzzy, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr "¥È¡¼¥¯¥ó %s ¤È %s ¤ÎÁÐÊý¤¬ÈÖ¹æ %s ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤·¤¿"
 
 #, fuzzy, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr "¥È¡¼¥¯¥ó %s ¤È %s ¤ÎÁÐÊý¤¬ÈÖ¹æ %s ¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤·¤¿"
 
-#: src/reader.c:1722
+#: src/reader.c:1790
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/reader.c:1724
+#: src/reader.c:1792
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤Ï¥È¡¼¥¯¥ó¤Ç¤¹"
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "³«»Ï¥·¥ó¥Ü¥ë %s ¤Ï¥È¡¼¥¯¥ó¤Ç¤¹"
index 59048036e6b1c1134e41496e809dd1e4173fa553..5382cde9fa5f056e162b18d18694450438ea07c7 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-10-16 20:27+0200\n"
+"POT-Creation-Date: 2000-11-02 10:14+0100\n"
 "PO-Revision-Date: 1996-08-27 15:34 MET DST\n"
 "Last-Translator: Erick Branderhorst <branderh@debian.org>\n"
 "Language-Team: Dutch <nl@li.org>\n"
 "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"
@@ -214,7 +214,7 @@ msgstr ""
 msgid "unexpected `/' found and ignored"
 msgstr "onverwachte `/' gevonden en genegeerd"
 
 msgid "unexpected `/' found and ignored"
 msgstr "onverwachte `/' gevonden en genegeerd"
 
-#: src/lex.c:112 src/reader.c:269
+#: src/lex.c:112 src/reader.c:299
 msgid "unterminated comment"
 msgstr "ongetermineerd commentaar"
 
 msgid "unterminated comment"
 msgstr "ongetermineerd commentaar"
 
@@ -263,7 +263,7 @@ msgstr "interne fout, %s\n"
 msgid "Entering set_nullable"
 msgstr "Inkomende set nullable"
 
 msgid "Entering set_nullable"
 msgstr "Inkomende set nullable"
 
-#: src/output.c:983
+#: src/output.c:1026
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "maximale tabel grootte (%s) overschreden"
 #, fuzzy, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "maximale tabel grootte (%s) overschreden"
@@ -356,227 +356,227 @@ msgstr " links:"
 msgid " on right:"
 msgstr " rechts:"
 
 msgid " on right:"
 msgstr " rechts:"
 
-#: src/reader.c:80
+#: src/reader.c:81
 msgid "   Skipping to next \\n"
 msgstr "   Verder naar volgende \\n"
 
 msgid "   Skipping to next \\n"
 msgstr "   Verder naar volgende \\n"
 
-#: src/reader.c:82
+#: src/reader.c:83
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Verder naar volgende %c"
 
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   Verder naar volgende %c"
 
-#: src/reader.c:133 src/reader.c:145
+#: src/reader.c:134 src/reader.c:146
 msgid "invalid $ value"
 msgstr "onjuiste $ waarde"
 
 msgid "invalid $ value"
 msgstr "onjuiste $ waarde"
 
-#: src/reader.c:170 src/reader.c:185
+#: src/reader.c:175 src/reader.c:193
 msgid "unterminated string at end of file"
 msgstr "niet getermineerde string aan einde van bestand"
 
 msgid "unterminated string at end of file"
 msgstr "niet getermineerde string aan einde van bestand"
 
-#: src/reader.c:173
+#: src/reader.c:178
 msgid "unterminated string"
 msgstr "niet getermineerde string"
 
 msgid "unterminated string"
 msgstr "niet getermineerde string"
 
-#: src/reader.c:325 src/reader.c:387
+#: src/reader.c:366 src/reader.c:446
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s is onjuist"
 
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "@%s is onjuist"
 
-#: src/reader.c:364
+#: src/reader.c:414
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ van `%s' heeft geen gedeclareerd type"
 
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ van `%s' heeft geen gedeclareerd type"
 
-#: src/reader.c:380
+#: src/reader.c:439
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%s van `%s' heeft geen gedeclareerd type"
 
 #, fuzzy, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%s van `%s' heeft geen gedeclareerd type"
 
-#: src/reader.c:433
+#: src/reader.c:492
 msgid "unterminated `%{' definition"
 msgstr "niet getermineerde `%{' definitie"
 
 msgid "unterminated `%{' definition"
 msgstr "niet getermineerde `%{' definitie"
 
-#: src/reader.c:480 src/reader.c:596 src/reader.c:646
+#: src/reader.c:537 src/reader.c:653 src/reader.c:703
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
 #, c-format
 msgid "Premature EOF after %s"
 msgstr ""
 
-#: src/reader.c:497
+#: src/reader.c:554
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
-#: src/reader.c:500
+#: src/reader.c:557
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
-#: src/reader.c:522 src/reader.c:665
+#: src/reader.c:579 src/reader.c:722
 #, c-format
 msgid "symbol %s redefined"
 msgstr "symbool %s opnieuw gedefinieerd"
 
 #, c-format
 msgid "symbol %s redefined"
 msgstr "symbool %s opnieuw gedefinieerd"
 
-#: src/reader.c:532 src/reader.c:611 src/reader.c:672 src/reader.c:1224
+#: src/reader.c:589 src/reader.c:668 src/reader.c:729 src/reader.c:1290
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "type herdeclaratie voor %s"
 
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "type herdeclaratie voor %s"
 
-#: src/reader.c:542
+#: src/reader.c:599
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' is onjuist in %s"
 
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' is onjuist in %s"
 
-#: src/reader.c:559 src/reader.c:719
+#: src/reader.c:616 src/reader.c:776
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "meerdere %start declaraties"
 
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "meerdere %start declaraties"
 
-#: src/reader.c:561 src/reader.c:1202
+#: src/reader.c:618 src/reader.c:1268
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "onjuiste %start declaratie"
 
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "onjuiste %start declaratie"
 
-#: src/reader.c:581
+#: src/reader.c:638
 msgid "%type declaration has no <typename>"
 msgstr "%type declaratie heeft geen <typenaam>"
 
 msgid "%type declaration has no <typename>"
 msgstr "%type declaratie heeft geen <typenaam>"
 
-#: src/reader.c:616
+#: src/reader.c:673
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "onjuist %%type declaratie door item: `%s'"
 
 #, fuzzy
 msgid "invalid %%type declaration due to item: %s"
 msgstr "onjuist %%type declaratie door item: `%s'"
 
-#: src/reader.c:661
+#: src/reader.c:718
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "herdefinieren voorganger van %s"
 
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "herdefinieren voorganger van %s"
 
-#: src/reader.c:685
+#: src/reader.c:742
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "onjuiste tekst (%s) - nummer hoort na de identifier"
 
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "onjuiste tekst (%s) - nummer hoort na de identifier"
 
-#: src/reader.c:695
+#: src/reader.c:752
 #, c-format
 msgid "unexpected item: %s"
 msgstr "onbekend item: %s"
 
 #, c-format
 msgid "unexpected item: %s"
 msgstr "onbekend item: %s"
 
-#: src/reader.c:756 src/reader.c:1034 src/reader.c:1104
+#: src/reader.c:813 src/reader.c:1099 src/reader.c:1170
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "niet overeenkomstige `{'"
 
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "niet overeenkomstige `{'"
 
-#: src/reader.c:788
+#: src/reader.c:845
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "argument van %expect is niet een integer"
 
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "argument van %expect is niet een integer"
 
-#: src/reader.c:835
+#: src/reader.c:892
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "onbekend item %s, verwacht een identifier"
 
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "onbekend item %s, verwacht een identifier"
 
-#: src/reader.c:859
+#: src/reader.c:916
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "verwacht string constante in plaats van %s"
 
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "verwacht string constante in plaats van %s"
 
-#: src/reader.c:959
+#: src/reader.c:1016
 #, c-format
 msgid "unrecognized: %s"
 msgstr "onbekend: %s"
 
 #, c-format
 msgid "unrecognized: %s"
 msgstr "onbekend: %s"
 
-#: src/reader.c:964
+#: src/reader.c:1021
 msgid "no input grammar"
 msgstr "geen invoer grammatica"
 
 msgid "no input grammar"
 msgstr "geen invoer grammatica"
 
-#: src/reader.c:969
+#: src/reader.c:1026
 #, c-format
 msgid "unknown character: %s"
 msgstr "onbekend karakter: %s"
 
 #, c-format
 msgid "unknown character: %s"
 msgstr "onbekend karakter: %s"
 
-#: src/reader.c:1127
+#: src/reader.c:1193
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "niet getermineerde %%guard voorwaarde"
 
 #, fuzzy, c-format
 msgid "unterminated %guard clause"
 msgstr "niet getermineerde %%guard voorwaarde"
 
-#: src/reader.c:1289
+#: src/reader.c:1355
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr ""
 "slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt"
 
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr ""
 "slecht geformuleerde regel: initieel symbool niet gevolgd door dubbele punt"
 
-#: src/reader.c:1296
+#: src/reader.c:1362
 msgid "grammar starts with vertical bar"
 msgstr "grammatica start met een verticale bar"
 
 msgid "grammar starts with vertical bar"
 msgstr "grammatica start met een verticale bar"
 
-#: src/reader.c:1327
+#: src/reader.c:1393
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "regel geven voor %s, welke een teken is"
 
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "regel geven voor %s, welke een teken is"
 
-#: src/reader.c:1429
+#: src/reader.c:1495
 msgid "two @prec's in a row"
 msgstr "twee @prec's in een regel"
 
 msgid "two @prec's in a row"
 msgstr "twee @prec's in een regel"
 
-#: src/reader.c:1437
+#: src/reader.c:1503
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd"
 
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%%guard aanwezig maar %%semantic_parser niet gespecificeerd"
 
-#: src/reader.c:1446
+#: src/reader.c:1512
 msgid "two actions at end of one rule"
 msgstr "twee akties aan het einde van een regel"
 
 msgid "two actions at end of one rule"
 msgstr "twee akties aan het einde van een regel"
 
-#: src/reader.c:1460
+#: src/reader.c:1526
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "type clash (`%s' `%s') bij standaard aktie"
 
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "type clash (`%s' `%s') bij standaard aktie"
 
-#: src/reader.c:1466
+#: src/reader.c:1532
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "lege regel voor getypte niet terminal, en geen aktie"
 
 msgid "empty rule for typed nonterminal, and no action"
 msgstr "lege regel voor getypte niet terminal, en geen aktie"
 
-#: src/reader.c:1510
+#: src/reader.c:1576
 #, c-format
 msgid "invalid input: %s"
 msgstr "ongeldige invoer: %s"
 
 #, c-format
 msgid "invalid input: %s"
 msgstr "ongeldige invoer: %s"
 
-#: src/reader.c:1518
+#: src/reader.c:1584
 #, fuzzy, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "te veel symbolen (tekens plus nietterminals); maximum %s"
 
 #, fuzzy, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "te veel symbolen (tekens plus nietterminals); maximum %s"
 
-#: src/reader.c:1521
+#: src/reader.c:1587
 msgid "no rules in the input grammar"
 msgstr "geen regels voor invoer grammatica"
 
 msgid "no rules in the input grammar"
 msgstr "geen regels voor invoer grammatica"
 
-#: src/reader.c:1541
+#: src/reader.c:1608
 #, 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"
 
 #, 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:1646
+#: src/reader.c:1714
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "conflictuerende precedentein voor %s en %s"
 
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "conflictuerende precedentein voor %s en %s"
 
-#: src/reader.c:1658
+#: src/reader.c:1726
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "conflictuerende associatieve waarden voor %s en %s"
 
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "conflictuerende associatieve waarden voor %s en %s"
 
-#: src/reader.c:1709
+#: src/reader.c:1777
 #, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr ""
 
 #, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr ""
 
-#: src/reader.c:1722
+#: src/reader.c:1790
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr ""
 
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr ""
 
-#: src/reader.c:1724
+#: src/reader.c:1792
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "het start symbool %s is een token"
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "het start symbool %s is een token"
index 83bdc2e4bc994987d4ce367a01cde1eea209a8c9..d61f186944cb3e863f4243cb95bf82839e366219 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.28a\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: bison 1.28a\n"
-"POT-Creation-Date: 2000-10-16 20:27+0200\n"
+"POT-Creation-Date: 2000-11-02 10:14+0100\n"
 "PO-Revision-Date: 2000-04-12 13:16+04:00\n"
 "Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
 "Language-Team: Russian <ru@li.org>\n"
 "PO-Revision-Date: 2000-04-12 13:16+04:00\n"
 "Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
 "Language-Team: Russian <ru@li.org>\n"
@@ -235,7 +235,7 @@ msgstr "
 msgid "unexpected `/' found and ignored"
 msgstr "×ÓÔÒÅÞÅΠɠÐÒÏÉÇÎÏÒÉÒÏ×ÁΠÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'"
 
 msgid "unexpected `/' found and ignored"
 msgstr "×ÓÔÒÅÞÅΠɠÐÒÏÉÇÎÏÒÉÒÏ×ÁΠÎÅÏÖÉÄÁÎÎÙÊ ÓÉÍ×ÏÌ `/'"
 
-#: src/lex.c:112 src/reader.c:269
+#: src/lex.c:112 src/reader.c:299
 msgid "unterminated comment"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ"
 
 msgid "unterminated comment"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ"
 
@@ -283,7 +283,7 @@ msgstr "%s: 
 msgid "Entering set_nullable"
 msgstr "÷ÈÏÄ × set_nullable"
 
 msgid "Entering set_nullable"
 msgstr "÷ÈÏÄ × set_nullable"
 
-#: src/output.c:983
+#: src/output.c:1026
 #, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "ÐÒÅ×ÙÛÅΠÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
 #, c-format
 msgid "maximum table size (%d) exceeded"
 msgstr "ÐÒÅ×ÙÛÅΠÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ (%d)"
@@ -376,224 +376,224 @@ msgstr " 
 msgid " on right:"
 msgstr " ÎÁÐÒÁ×Ï:"
 
 msgid " on right:"
 msgstr " ÎÁÐÒÁ×Ï:"
 
-#: src/reader.c:80
+#: src/reader.c:81
 msgid "   Skipping to next \\n"
 msgstr "   ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n"
 
 msgid "   Skipping to next \\n"
 msgstr "   ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ \\n"
 
-#: src/reader.c:82
+#: src/reader.c:83
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ %c"
 
 #, c-format
 msgid "   Skipping to next %c"
 msgstr "   ðÒÏÐÕÓË ÄÏ ÓÌÅÄÕÀÝÅÇÏ %c"
 
-#: src/reader.c:133 src/reader.c:145
+#: src/reader.c:134 src/reader.c:146
 msgid "invalid $ value"
 msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ"
 
 msgid "invalid $ value"
 msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ"
 
-#: src/reader.c:170 src/reader.c:185
+#: src/reader.c:175 src/reader.c:193
 msgid "unterminated string at end of file"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ × ËÏÎÃÅ ÆÁÊÌÁ"
 
 msgid "unterminated string at end of file"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ × ËÏÎÃÅ ÆÁÊÌÁ"
 
-#: src/reader.c:173
+#: src/reader.c:178
 msgid "unterminated string"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ"
 
 msgid "unterminated string"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÁÑ ÓÔÒÏËÁ"
 
-#: src/reader.c:325 src/reader.c:387
+#: src/reader.c:366 src/reader.c:446
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË @%s"
 
 #, fuzzy, c-format
 msgid "%s is invalid"
 msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË @%s"
 
-#: src/reader.c:364
+#: src/reader.c:414
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
 
 #, c-format
 msgid "$$ of `%s' has no declared type"
 msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
 
-#: src/reader.c:380
+#: src/reader.c:439
 #, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%d ÉÚ `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
 
 #, c-format
 msgid "$%d of `%s' has no declared type"
 msgstr "$%d ÉÚ `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
 
-#: src/reader.c:433
+#: src/reader.c:492
 msgid "unterminated `%{' definition"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ `%{'"
 
 msgid "unterminated `%{' definition"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ `%{'"
 
-#: src/reader.c:480 src/reader.c:596 src/reader.c:646
+#: src/reader.c:537 src/reader.c:653 src/reader.c:703
 #, c-format
 msgid "Premature EOF after %s"
 msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅàÆÁÊÌÁ ÐÏÓÌÅ %s"
 
 #, c-format
 msgid "Premature EOF after %s"
 msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅàÆÁÊÌÁ ÐÏÓÌÅ %s"
 
-#: src/reader.c:497
+#: src/reader.c:554
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' used more than once as a literal string"
 msgstr ""
 
-#: src/reader.c:500
+#: src/reader.c:557
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' given more than one literal string"
 msgstr ""
 
-#: src/reader.c:522 src/reader.c:665
+#: src/reader.c:579 src/reader.c:722
 #, c-format
 msgid "symbol %s redefined"
 msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
 
 #, c-format
 msgid "symbol %s redefined"
 msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ %s"
 
-#: src/reader.c:532 src/reader.c:611 src/reader.c:672 src/reader.c:1224
+#: src/reader.c:589 src/reader.c:668 src/reader.c:729 src/reader.c:1290
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
 
 #, c-format
 msgid "type redeclaration for %s"
 msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÉÓÁÎÉÅ ÔÉÐÁ ÄÌÑ %s"
 
-#: src/reader.c:542
+#: src/reader.c:599
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' ÎÅ×ÅÒÎÏ × %s"
 
 #, c-format
 msgid "`%s' is invalid in %s"
 msgstr "`%s' ÎÅ×ÅÒÎÏ × %s"
 
-#: src/reader.c:559 src/reader.c:719
+#: src/reader.c:616 src/reader.c:776
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %start"
 
 #, fuzzy, c-format
 msgid "multiple %s declarations"
 msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %start"
 
-#: src/reader.c:561 src/reader.c:1202
+#: src/reader.c:618 src/reader.c:1268
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %start"
 
 #, fuzzy, c-format
 msgid "invalid %s declaration"
 msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %start"
 
-#: src/reader.c:581
+#: src/reader.c:638
 msgid "%type declaration has no <typename>"
 msgstr "ÏÐÉÓÁÎÉÅ %type ÎÅ ÉÍÅÅÔ <ÉÍÑ_ÔÉÐÁ>"
 
 msgid "%type declaration has no <typename>"
 msgstr "ÏÐÉÓÁÎÉÅ %type ÎÅ ÉÍÅÅÔ <ÉÍÑ_ÔÉÐÁ>"
 
-#: src/reader.c:616
+#: src/reader.c:673
 msgid "invalid %%type declaration due to item: %s"
 msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %%type ÉÚ-ÚÁ ÜÌÅÍÅÎÔÁ: %s"
 
 msgid "invalid %%type declaration due to item: %s"
 msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÉÓÁÎÉÅ %%type ÉÚ-ÚÁ ÜÌÅÍÅÎÔÁ: %s"
 
-#: src/reader.c:661
+#: src/reader.c:718
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÏÒÉÔÅÔÁ ÄÌÑ %s"
 
 #, c-format
 msgid "redefining precedence of %s"
 msgstr "ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÏÒÉÔÅÔÁ ÄÌÑ %s"
 
-#: src/reader.c:685
+#: src/reader.c:742
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "ÎÅ×ÅÒÎÙÊ ÔÅËÓÔ (%s) - ÞÉÓÌÏ ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÚÁ ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ"
 
 #, c-format
 msgid "invalid text (%s) - number should be after identifier"
 msgstr "ÎÅ×ÅÒÎÙÊ ÔÅËÓÔ (%s) - ÞÉÓÌÏ ÄÏÌÖÎÏ ÓÌÅÄÏ×ÁÔØ ÚÁ ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ"
 
-#: src/reader.c:695
+#: src/reader.c:752
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
 
 #, c-format
 msgid "unexpected item: %s"
 msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÜÌÅÍÅÎÔ: %s"
 
-#: src/reader.c:756 src/reader.c:1034 src/reader.c:1104
+#: src/reader.c:813 src/reader.c:1099 src/reader.c:1170
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "ÎÅÐÁÒÎÁÑ `{'"
 
 #, fuzzy, c-format
 msgid "unmatched %s"
 msgstr "ÎÅÐÁÒÎÁÑ `{'"
 
-#: src/reader.c:788
+#: src/reader.c:845
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "ÁÒÇÕÍÅÎÔ %expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
 
 #, fuzzy
 msgid "argument of %%expect is not an integer"
 msgstr "ÁÒÇÕÍÅÎÔ %expect ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ"
 
-#: src/reader.c:835
+#: src/reader.c:892
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÜÌÅÍÅÎÔ %s, ÏÖÉÄÁÌÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
 
 #, c-format
 msgid "unrecognized item %s, expected an identifier"
 msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÜÌÅÍÅÎÔ %s, ÏÖÉÄÁÌÓÑ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
 
-#: src/reader.c:859
+#: src/reader.c:916
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
 
 #, c-format
 msgid "expected string constant instead of %s"
 msgstr "×ÍÅÓÔÏ %s ÏÖÉÄÁÌÁÓØ ÓÔÒÏËÏ×ÁÑ ÐÏÓÔÏÑÎÎÁÑ"
 
-#: src/reader.c:959
+#: src/reader.c:1016
 #, c-format
 msgid "unrecognized: %s"
 msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s"
 
 #, c-format
 msgid "unrecognized: %s"
 msgstr "ÎÅÒÁÓÐÏÚÎÁÎÏ: %s"
 
-#: src/reader.c:964
+#: src/reader.c:1021
 msgid "no input grammar"
 msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
 
 msgid "no input grammar"
 msgstr "ÎÅÔ ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÉ"
 
-#: src/reader.c:969
+#: src/reader.c:1026
 #, c-format
 msgid "unknown character: %s"
 msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s"
 
 #, c-format
 msgid "unknown character: %s"
 msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ: %s"
 
-#: src/reader.c:1127
+#: src/reader.c:1193
 #, c-format
 msgid "unterminated %guard clause"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard"
 
 #, c-format
 msgid "unterminated %guard clause"
 msgstr "ÎÅÚÁËÏÎÞÅÎÎÙÊ ÏÐÅÒÁÔÏÒ %guard"
 
-#: src/reader.c:1289
+#: src/reader.c:1355
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
 
 msgid "ill-formed rule: initial symbol not followed by colon"
 msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÁ×ÉÌÏ: Ä×ÏÅÔÏÞÉÅ ÎÅ ÓÌÅÄÕÅÔ ÚÁ ÎÁÞÁÌØÎÙÍ ÓÉÍ×ÏÌÏÍ"
 
-#: src/reader.c:1296
+#: src/reader.c:1362
 msgid "grammar starts with vertical bar"
 msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
 
 msgid "grammar starts with vertical bar"
 msgstr "ÇÒÁÍÍÁÔÉËÁ ÎÁÞÉÎÁÅÔÓÑ Ó ×ÅÒÔÉËÁÌØÎÏÊ ÞÅÒÔÙ"
 
-#: src/reader.c:1327
+#: src/reader.c:1393
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
 
 #, c-format
 msgid "rule given for %s, which is a token"
 msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
 
-#: src/reader.c:1429
+#: src/reader.c:1495
 msgid "two @prec's in a row"
 msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
 
 msgid "two @prec's in a row"
 msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
 
-#: src/reader.c:1437
+#: src/reader.c:1503
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %semantic_parser ÎÅ ÚÁÄÁÎ"
 
 #, fuzzy
 msgid "%%guard present but %%semantic_parser not specified"
 msgstr "%guard ÐÒÉÓÕÔÓÔ×ÕÅÔ, Á %semantic_parser ÎÅ ÚÁÄÁÎ"
 
-#: src/reader.c:1446
+#: src/reader.c:1512
 msgid "two actions at end of one rule"
 msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
 
 msgid "two actions at end of one rule"
 msgstr "Ä×Á ÄÅÊÓÔ×ÉÑ × ËÏÎÃÅ ÏÄÎÏÇÏ ÐÒÁ×ÉÌÁ"
 
-#: src/reader.c:1460
+#: src/reader.c:1526
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
 #, c-format
 msgid "type clash (`%s' `%s') on default action"
 msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
-#: src/reader.c:1466
+#: src/reader.c:1532
 msgid "empty rule for typed nonterminal, and no action"
 msgstr ""
 "ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
 
 msgid "empty rule for typed nonterminal, and no action"
 msgstr ""
 "ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
 
-#: src/reader.c:1510
+#: src/reader.c:1576
 #, c-format
 msgid "invalid input: %s"
 msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s"
 
 #, c-format
 msgid "invalid input: %s"
 msgstr "ÎÅ×ÅÒÎÙÅ ×ÈÏÄÎÙÅ ÄÁÎÎÙÅ: %s"
 
-#: src/reader.c:1518
+#: src/reader.c:1584
 #, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
 
 #, c-format
 msgid "too many symbols (tokens plus nonterminals); maximum %d"
 msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
 
-#: src/reader.c:1521
+#: src/reader.c:1587
 msgid "no rules in the input grammar"
 msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
 
 msgid "no rules in the input grammar"
 msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
 
-#: src/reader.c:1541
+#: src/reader.c:1608
 #, c-format
 msgid "symbol %s is used, but is not defined as a token and has no rules"
 msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅΠËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
 
 #, c-format
 msgid "symbol %s is used, but is not defined as a token and has no rules"
 msgstr "ÓÉÍ×ÏÌ %s ÉÓÐÏÌØÚÕÅÔÓÑ, ÎÏ ÎÅ ÏÐÒÅÄÅÌÅΠËÁË ÌÅËÓÅÍÁ É ÎÅ ÉÍÅÅÔ ÐÒÁ×ÉÌ"
 
-#: src/reader.c:1646
+#: src/reader.c:1714
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
 
 #, c-format
 msgid "conflicting precedences for %s and %s"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÐÒÉÏÒÉÔÅÔÙ ÄÌÑ %s É %s"
 
-#: src/reader.c:1658
+#: src/reader.c:1726
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
 
 #, c-format
 msgid "conflicting assoc values for %s and %s"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ÚÎÁÞÅÎÉÑ ÁÓÓÏÃÉÁÔÉ×ÎÏÓÔÉ ÄÌÑ %s É %s"
 
-#: src/reader.c:1709
+#: src/reader.c:1777
 #, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅΠÎÏÍÅÒ %d"
 
 #, c-format
 msgid "tokens %s and %s both assigned number %d"
 msgstr "ÏÂÅÉÍ ÌÅËÓÅÍÁÍ %s É %s ÐÒÉÓ×ÏÅΠÎÏÍÅÒ %d"
 
-#: src/reader.c:1722
+#: src/reader.c:1790
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
 
 #, c-format
 msgid "the start symbol %s is undefined"
 msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅÏÐÒÅÄÅÌÅÎ"
 
-#: src/reader.c:1724
+#: src/reader.c:1792
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
 #, c-format
 msgid "the start symbol %s is a token"
 msgstr "ÎÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
index 519bfdb033ba81d89bb9a45a25252090f9f39c95..7e0b24a4955f093d2eb0974df3edfacf31019ee3 100644 (file)
 
 FILE *finput = NULL;
 FILE *foutput = NULL;
 
 FILE *finput = NULL;
 FILE *foutput = NULL;
-FILE *fdefines = NULL;
-FILE *ftable = NULL;
 FILE *fguard = NULL;
 FILE *fparser = NULL;
 
 struct obstack action_obstack;
 struct obstack attrs_obstack;
 FILE *fguard = NULL;
 FILE *fparser = NULL;
 
 struct obstack action_obstack;
 struct obstack attrs_obstack;
+struct obstack table_obstack;
+struct obstack defines_obstack;
 
 /* File name specified with -o for the output file, or 0 if no -o.  */
 char *spec_outfile;
 
 /* File name specified with -o for the output file, or 0 if no -o.  */
 char *spec_outfile;
@@ -68,10 +68,7 @@ static char *defsfile;
 static char *tabfile;
 static char *guardfile;
 static char *actfile;
 static char *tabfile;
 static char *guardfile;
 static char *actfile;
-static char *tmptabfile;
-static char *tmpdefsfile;
 
 
-extern char *mktemp ();                /* So the compiler won't complain */
 extern char *getenv ();
 
 extern char *program_name;
 extern char *getenv ();
 
 extern char *program_name;
@@ -189,7 +186,7 @@ open_files (void)
 
   if (spec_outfile)
     {
 
   if (spec_outfile)
     {
-      /* -o was specified.  The precise -o name will be used for ftable.
+      /* -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
          For other output files, remove the ".c" or ".tab.c" suffix.  */
       name_base = spec_outfile;
 #ifdef MSDOS
@@ -291,27 +288,11 @@ open_files (void)
       actfile = stringappend (name_base, short_base_length, ".act");
     }
 
       actfile = stringappend (name_base, short_base_length, ".act");
     }
 
-#ifdef MSDOS
-  tmptabfile = mktemp (stringappend (tmp_base, tmp_len, "taXXXXXX"));
-  tmpdefsfile = mktemp (stringappend (tmp_base, tmp_len, "deXXXXXX"));
-#else
-  tmptabfile = mktemp (stringappend (tmp_base, tmp_len, "tab.XXXXXX"));
-  tmpdefsfile = mktemp (stringappend (tmp_base, tmp_len, "defs.XXXXXX"));
-#endif /* not MSDOS */
-
-  ftable = xfopen (tmptabfile, "w+");
-
   if (defines_flag)
     {
       defsfile = stringappend (name_base, base_length, ".h");
   if (defines_flag)
     {
       defsfile = stringappend (name_base, base_length, ".h");
-      fdefines = xfopen (tmpdefsfile, "w+");
     }
 
     }
 
-#if !(defined (MSDOS) || (defined(_WIN32) && !defined(__CYGWIN32__)))
-  unlink (tmptabfile);
-  unlink (tmpdefsfile);
-#endif /* MSDOS || (_WIN32 && !__CYGWIN32__) */
-
   /* These are opened by `done' or `open_extra_files', if at all */
   if (spec_outfile)
     tabfile = spec_outfile;
   /* These are opened by `done' or `open_extra_files', if at all */
   if (spec_outfile)
     tabfile = spec_outfile;
@@ -334,6 +315,8 @@ open_files (void)
   /* Initialize the obstacks. */
   obstack_init (&action_obstack);
   obstack_init (&attrs_obstack);
   /* Initialize the obstacks. */
   obstack_init (&action_obstack);
   obstack_init (&attrs_obstack);
+  obstack_init (&table_obstack);
+  obstack_init (&defines_obstack);
 }
 
 
 }
 
 
@@ -384,27 +367,21 @@ done (void)
   xfclose (foutput);
 
   /* JF write out the output file */
   xfclose (foutput);
 
   /* JF write out the output file */
-  if (!complain_message_count && ftable)
+  if (!complain_message_count)
     {
     {
-      FILE *ftmp;
-      register int c;
-
-      ftmp = xfopen (tabfile, "w");
-      rewind (ftable);
-      while ((c = getc (ftable)) != EOF)
-       putc (c, ftmp);
-      xfclose (ftmp);
-      xfclose (ftable);
+      /* Output the main file.  */
+      FILE *ftab = xfopen (tabfile, "w");
+      size_t size = obstack_object_size (&table_obstack);
+      fwrite (obstack_finish (&table_obstack), 1, size, ftab);
+      xfclose (ftab);
 
 
+      /* Output the header file is wanted. */
       if (defines_flag)
        {
       if (defines_flag)
        {
-         ftmp = xfopen (defsfile, "w");
-         fflush (fdefines);
-         rewind (fdefines);
-         while ((c = getc (fdefines)) != EOF)
-           putc (c, ftmp);
-         xfclose (ftmp);
-         xfclose (fdefines);
+         FILE *fdefs = xfopen (defsfile, "w");
+         size_t size = obstack_object_size (&defines_obstack);
+         fwrite (obstack_finish (&defines_obstack), 1, size, fdefs);
+         xfclose (fdefs);
        }
     }
 
        }
     }
 
@@ -428,21 +405,6 @@ done (void)
       xfclose (fattrs);
     }
 
       xfclose (fattrs);
     }
 
-#if defined (VMS) & !defined (__VMS_POSIX)
-  if (ftable)
-    delete (tmptabfile);
-/* 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 (tmptabfile)
-    unlink (tmptabfile);
-  if (tmpdefsfile)
-    unlink (tmpdefsfile);
-#endif /* MSDOS || (_WIN32 && !__CYGWIN32__) */
 /* Don't call exit again, we're in atexit ().
   exit (complain_message_count ? 1 : 0); */
 /* Don't call exit again, we're in atexit ().
   exit (complain_message_count ? 1 : 0); */
-#endif /* not VMS, or __VMS_POSIX */
 }
 }
index a6c8875caf103b42a8e28d6145b59f7ef015f4fd..c511ea65ecbc7a63b8ed284a4c0ca135d03c3db3 100644 (file)
@@ -29,9 +29,6 @@
 
 extern FILE *finput;   /* read grammar specifications */
 extern FILE *foutput;  /* optionally output messages describing the actions taken */
 
 extern FILE *finput;   /* read grammar specifications */
 extern FILE *foutput;  /* optionally output messages describing the actions taken */
-extern FILE *fdefines; /* optionally output #define's for token numbers. */
-extern FILE *ftable;   /* output the tables and the parser */
-                      /* and also contains all the %{ ... %} definitions.  */
 extern FILE *fguard;   /* if semantic parser, output yyguard, containing all the guard code */
 extern FILE *fparser;  /* read the parser to copy into ftable */
 
 extern FILE *fguard;   /* if semantic parser, output yyguard, containing all the guard code */
 extern FILE *fparser;  /* read the parser to copy into ftable */
 
@@ -49,6 +46,14 @@ extern struct obstack action_obstack;
 /* If semantic parser, output a .h file that defines YYSTYPE */
 extern struct obstack attrs_obstack;
 
 /* If semantic parser, output a .h file that defines YYSTYPE */
 extern struct obstack attrs_obstack;
 
+/* Output the tables and the parser and also contains all the %{
+   ... %} definitions.  */
+extern struct obstack table_obstack;
+
+/* optionally output #define's for token numbers. */
+extern struct obstack defines_obstack;
+
+
 extern char *infile;
 extern int lineno;
 extern char *outfile;
 extern char *infile;
 extern int lineno;
 extern char *outfile;
index 2ebb2f4e5f376a6174205fc9a66edc690f4cfc7a..8783dbd5b6367dd6571e26033135bf15fb226be3 100644 (file)
@@ -126,7 +126,7 @@ static int high;
 
 
 static inline void
 
 
 static inline void
-output_short_or_char_table (FILE *out,
+output_short_or_char_table (struct obstack *oout,
                            const char *comment,
                            const char *type,
                            const char *table_name,
                            const char *comment,
                            const char *type,
                            const char *table_name,
@@ -137,19 +137,19 @@ output_short_or_char_table (FILE *out,
   int i, j;
 
   if (comment)
   int i, j;
 
   if (comment)
-    fprintf (out, "/* %s. */\n", comment);
+    obstack_fgrow1 (oout, "/* %s. */\n", comment);
 
 
-  fprintf (out, "static const %s %s[] =\n{\n  %6d",
-          type, table_name, first_value);
+  obstack_fgrow3 (oout, "static const %s %s[] =\n{\n  %6d",
+                 type, table_name, first_value);
 
   j = 1;
   for (i = begin; i < end; i++)
     {
 
   j = 1;
   for (i = begin; i < end; i++)
     {
-      putc (',', out);
+      obstack_1grow (oout, ',');
 
       if (j >= 10)
        {
 
       if (j >= 10)
        {
-         fputs ("\n  ", out);
+         obstack_grow_literal_string (oout, "\n  ");
          j = 1;
        }
       else
          j = 1;
        }
       else
@@ -157,22 +157,22 @@ output_short_or_char_table (FILE *out,
          j++;
        }
 
          j++;
        }
 
-      fprintf (out, "%6d", short_table[i]);
+      obstack_fgrow1 (oout, "%6d", short_table[i]);
     }
 
     }
 
-  fprintf (out, "\n};\n");
+  obstack_grow_literal_string (oout, "\n};\n");
 }
 
 
 static inline void
 }
 
 
 static inline void
-output_short_table (FILE *out,
+output_short_table (struct obstack *oout,
                    const char *comment,
                    const char *table_name,
                    short *short_table,
                    short first_value,
                    short begin, short end)
 {
                    const char *comment,
                    const char *table_name,
                    short *short_table,
                    short first_value,
                    short begin, short end)
 {
-  output_short_or_char_table (out, comment, "short", table_name, short_table,
+  output_short_or_char_table (oout, comment, "short", table_name, short_table,
                              first_value, begin, end);
 }
 
                              first_value, begin, end);
 }
 
@@ -265,13 +265,20 @@ output_headers (void)
   /* Rename certain symbols if -p was specified.  */
   if (spec_name_prefix)
     {
   /* Rename certain symbols if -p was specified.  */
   if (spec_name_prefix)
     {
-      fprintf (ftable, "#define yyparse %sparse\n", spec_name_prefix);
-      fprintf (ftable, "#define yylex %slex\n", spec_name_prefix);
-      fprintf (ftable, "#define yyerror %serror\n", spec_name_prefix);
-      fprintf (ftable, "#define yylval %slval\n", spec_name_prefix);
-      fprintf (ftable, "#define yychar %schar\n", spec_name_prefix);
-      fprintf (ftable, "#define yydebug %sdebug\n", spec_name_prefix);
-      fprintf (ftable, "#define yynerrs %snerrs\n", spec_name_prefix);
+      obstack_fgrow1 (&table_obstack,
+                       "#define yyparse %sparse\n", spec_name_prefix);
+      obstack_fgrow1 (&table_obstack,
+                       "#define yylex %slex\n", spec_name_prefix);
+      obstack_fgrow1 (&table_obstack,
+                       "#define yyerror %serror\n", spec_name_prefix);
+      obstack_fgrow1 (&table_obstack,
+                       "#define yylval %slval\n", spec_name_prefix);
+      obstack_fgrow1 (&table_obstack,
+                       "#define yychar %schar\n", spec_name_prefix);
+      obstack_fgrow1 (&table_obstack,
+                       "#define yydebug %sdebug\n", spec_name_prefix);
+      obstack_fgrow1 (&table_obstack,
+                       "#define yynerrs %snerrs\n", spec_name_prefix);
     }
 }
 
     }
 }
 
@@ -305,19 +312,19 @@ output_trailers (void)
 static void
 output_token_translations (void)
 {
 static void
 output_token_translations (void)
 {
-  fputs ("\
+  obstack_grow_literal_string (&table_obstack, "\
 \n\
 \n\
-/* YYRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */\n",
-        ftable);
+/* YYRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */\n");
+
   if (translations)
     {
   if (translations)
     {
-      fprintf (ftable,
+      obstack_fgrow2 (&table_obstack,
       "#define YYTRANSLATE(x) ((unsigned)(x) <= %d ? yytranslate[x] : %d)\
 \n\
 \n",
               max_user_token_number, nsyms);
 
       "#define YYTRANSLATE(x) ((unsigned)(x) <= %d ? yytranslate[x] : %d)\
 \n\
 \n",
               max_user_token_number, nsyms);
 
-      output_short_or_char_table (ftable,
+      output_short_or_char_table (&table_obstack,
             "YYRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX",
                    ntokens < 127 ? "char" : "short",
                    "yytranslate", token_translations,
             "YYRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX",
                    ntokens < 127 ? "char" : "short",
                    "yytranslate", token_translations,
@@ -325,7 +332,8 @@ output_token_translations (void)
     }
   else
     {
     }
   else
     {
-      fprintf (ftable, "\n#define YYTRANSLATE(x) (x)\n");
+      obstack_grow_literal_string (&table_obstack,
+                                  "\n#define YYTRANSLATE(x) (x)\n");
     }
 }
 
     }
 }
 
@@ -337,9 +345,9 @@ output_gram (void)
      yyprhs and yyrhs are needed only for yydebug. */
   /* With the no_parser option, all tables are generated */
   if (!semantic_parser && !no_parser_flag)
      yyprhs and yyrhs are needed only for yydebug. */
   /* With the no_parser option, all tables are generated */
   if (!semantic_parser && !no_parser_flag)
-    fprintf (ftable, "\n#if YYDEBUG != 0\n");
+    obstack_grow_literal_string (&table_obstack, "\n#if YYDEBUG != 0\n");
 
 
-  output_short_table (ftable, NULL, "yyprhs", rrhs,
+  output_short_table (&table_obstack, NULL, "yyprhs", rrhs,
                      0, 1, nrules + 1);
 
   {
                      0, 1, nrules + 1);
 
   {
@@ -354,20 +362,20 @@ output_gram (void)
     for (sp = ritem + 1, i = 1; *sp; ++sp, ++i)
       yyrhs[i] = *sp > 0 ? *sp : 0;
 
     for (sp = ritem + 1, i = 1; *sp; ++sp, ++i)
       yyrhs[i] = *sp > 0 ? *sp : 0;
 
-    output_short_table (ftable, NULL, "yyrhs", yyrhs,
+    output_short_table (&table_obstack, NULL, "yyrhs", yyrhs,
                        ritem[0], 1, yyrhs_size);
     XFREE (yyrhs);
   }
 
   if (!semantic_parser && !no_parser_flag)
                        ritem[0], 1, yyrhs_size);
     XFREE (yyrhs);
   }
 
   if (!semantic_parser && !no_parser_flag)
-    fprintf (ftable, "\n#endif\n");
+    obstack_grow_literal_string (&table_obstack, "\n#endif\n");
 }
 
 
 static void
 output_stos (void)
 {
 }
 
 
 static void
 output_stos (void)
 {
-  output_short_table (ftable, NULL, "yystos", accessing_symbol,
+  output_short_table (&table_obstack, NULL, "yystos", accessing_symbol,
                      0, 1, nstates);
 }
 
                      0, 1, nstates);
 }
 
@@ -379,33 +387,33 @@ output_rule_data (void)
   int j;
   short *short_tab = NULL;
 
   int j;
   short *short_tab = NULL;
 
-  fputs ("\n\
-#if YYDEBUG != 0\n",
-        ftable);
+  obstack_grow_literal_string (&table_obstack, "\n\
+#if YYDEBUG != 0\n");
 
 
-  output_short_table (ftable,
+  output_short_table (&table_obstack,
            "YYRLINE[YYN] -- source line where rule number YYN was defined",
                      "yyrline", rline,
                      0, 1, nrules + 1);
 
            "YYRLINE[YYN] -- source line where rule number YYN was defined",
                      "yyrline", rline,
                      0, 1, nrules + 1);
 
-  fputs ("#endif\n\n", ftable);
+  obstack_grow_literal_string (&table_obstack, "#endif\n\n");
 
   if (token_table_flag || no_parser_flag)
     {
 
   if (token_table_flag || no_parser_flag)
     {
-      fprintf (ftable, "#define YYNTOKENS %d\n", ntokens);
-      fprintf (ftable, "#define YYNNTS %d\n", nvars);
-      fprintf (ftable, "#define YYNRULES %d\n", nrules);
-      fprintf (ftable, "#define YYNSTATES %d\n", nstates);
-      fprintf (ftable, "#define YYMAXUTOK %d\n\n", max_user_token_number);
+      obstack_fgrow1 (&table_obstack, "#define YYNTOKENS %d\n", ntokens);
+      obstack_fgrow1 (&table_obstack, "#define YYNNTS %d\n", nvars);
+      obstack_fgrow1 (&table_obstack, "#define YYNRULES %d\n", nrules);
+      obstack_fgrow1 (&table_obstack, "#define YYNSTATES %d\n", nstates);
+      obstack_fgrow1 (&table_obstack, "#define YYMAXUTOK %d\n\n",
+                     max_user_token_number);
     }
 
   /* Output the table of symbol names.  */
   if (!token_table_flag && !no_parser_flag)
     }
 
   /* Output the table of symbol names.  */
   if (!token_table_flag && !no_parser_flag)
-    fputs ("\n#if YYDEBUG != 0 || defined YYERROR_VERBOSE\n\n", ftable);
-  fputs ("\
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */\n",
-        ftable);
-  fprintf (ftable,
+    obstack_grow_literal_string (&table_obstack,
+                         "\n#if YYDEBUG != 0 || defined YYERROR_VERBOSE\n\n");
+  obstack_grow_literal_string (&table_obstack, "\
+/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */\n");
+  obstack_grow_literal_string (&table_obstack,
           "static const char *const yytname[] =\n{\n  ");
 
   j = 0;
           "static const char *const yytname[] =\n{\n  ");
 
   j = 0;
@@ -429,76 +437,76 @@ output_rule_data (void)
 
       if (j + strsize > 75)
        {
 
       if (j + strsize > 75)
        {
-         fputs ("\n  ", ftable);
+         obstack_grow_literal_string (&table_obstack, "\n  ");
          j = 2;
        }
 
          j = 2;
        }
 
-      putc ('\"', ftable);
+      obstack_1grow (&table_obstack, '\"');
       for (p = tags[i]; p && *p; p++)
        {
          if (*p == '"' || *p == '\\')
            {
       for (p = tags[i]; p && *p; p++)
        {
          if (*p == '"' || *p == '\\')
            {
-             fprintf (ftable, "\\%c", *p);
+             obstack_fgrow1 (&table_obstack, "\\%c", *p);
            }
          else if (*p == '\n')
            {
            }
          else if (*p == '\n')
            {
-             fprintf (ftable, "\\n");
+             obstack_grow_literal_string (&table_obstack, "\\n");
            }
          else if (*p == '\t')
            {
            }
          else if (*p == '\t')
            {
-             fprintf (ftable, "\\t");
+             obstack_grow_literal_string (&table_obstack, "\\t");
            }
          else if (*p == '\b')
            {
            }
          else if (*p == '\b')
            {
-             fprintf (ftable, "\\b");
+             obstack_grow_literal_string (&table_obstack, "\\b");
            }
          else if (*p < 040 || *p >= 0177)
            {
            }
          else if (*p < 040 || *p >= 0177)
            {
-             fprintf (ftable, "\\%03o", *p);
+             obstack_fgrow1 (&table_obstack, "\\%03o", *p);
            }
          else
            {
            }
          else
            {
-             putc (*p, ftable);
+             obstack_1grow (&table_obstack, *p);
            }
        }
 
            }
        }
 
-      fputs ("\", ", ftable);
+      obstack_grow_literal_string (&table_obstack, "\", ");
       j += strsize;
     }
   /* add a NULL entry to list of tokens */
       j += strsize;
     }
   /* add a NULL entry to list of tokens */
-  fprintf (ftable, "NULL\n};\n");
+  obstack_grow_literal_string (&table_obstack, "NULL\n};\n");
 
   if (!token_table_flag && !no_parser_flag)
 
   if (!token_table_flag && !no_parser_flag)
-    fprintf (ftable, "#endif\n\n");
+    obstack_grow_literal_string (&table_obstack, "#endif\n\n");
 
   /* Output YYTOKNUM. */
   if (token_table_flag)
     {
 
   /* Output YYTOKNUM. */
   if (token_table_flag)
     {
-      output_short_table (ftable,
+      output_short_table (&table_obstack,
                  "YYTOKNUM[YYLEX] -- Index in YYTNAME corresponding to YYLEX",
                          "yytoknum", user_toknums,
                          0, 1, ntokens + 1);
     }
 
   /* Output YYR1. */
                  "YYTOKNUM[YYLEX] -- Index in YYTNAME corresponding to YYLEX",
                          "yytoknum", user_toknums,
                          0, 1, ntokens + 1);
     }
 
   /* Output YYR1. */
-  output_short_table (ftable,
+  output_short_table (&table_obstack,
              "YYR1[YYN] -- Symbol number of symbol that rule YYN derives",
                      "yyr1", rlhs,
                      0, 1, nrules + 1);
   XFREE (rlhs + 1);
 
              "YYR1[YYN] -- Symbol number of symbol that rule YYN derives",
                      "yyr1", rlhs,
                      0, 1, nrules + 1);
   XFREE (rlhs + 1);
 
-  putc ('\n', ftable);
+  obstack_1grow (&table_obstack, '\n');
 
   /* Output YYR2. */
   short_tab = XMALLOC (short, nrules + 1);
   for (i = 1; i < nrules; i++)
     short_tab[i] = rrhs[i + 1] - rrhs[i] - 1;
   short_tab[nrules] = nitems - rrhs[nrules] - 1;
 
   /* Output YYR2. */
   short_tab = XMALLOC (short, nrules + 1);
   for (i = 1; i < nrules; i++)
     short_tab[i] = rrhs[i + 1] - rrhs[i] - 1;
   short_tab[nrules] = nitems - rrhs[nrules] - 1;
-  output_short_table (ftable,
+  output_short_table (&table_obstack,
         "YYR2[YYN] -- Number of symbols composing right hand side of rule YYN",
                      "yyr2", short_tab,
                      0, 1, nrules + 1);
         "YYR2[YYN] -- Number of symbols composing right hand side of rule YYN",
                      "yyr2", short_tab,
                      0, 1, nrules + 1);
-  putc ('\n', ftable);
+  obstack_1grow (&table_obstack, '\n');
 
   XFREE (short_tab);
 
 
   XFREE (short_tab);
 
@@ -509,9 +517,9 @@ output_rule_data (void)
 static void
 output_defines (void)
 {
 static void
 output_defines (void)
 {
-  fprintf (ftable, "\n\n#define\tYYFINAL\t\t%d\n", final_state);
-  fprintf (ftable, "#define\tYYFLAG\t\t%d\n", MINSHORT);
-  fprintf (ftable, "#define\tYYNTBASE\t%d\n", ntokens);
+  obstack_fgrow1 (&table_obstack, "\n\n#define\tYYFINAL\t\t%d\n", final_state);
+  obstack_fgrow1 (&table_obstack, "#define\tYYFLAG\t\t%d\n", MINSHORT);
+  obstack_fgrow1 (&table_obstack, "#define\tYYNTBASE\t%d\n", ntokens);
 }
 
 
 }
 
 
@@ -757,13 +765,13 @@ token_actions (void)
     }
   XFREE (actrow);
 
     }
   XFREE (actrow);
 
-  output_short_table (ftable,
+  output_short_table (&table_obstack,
   "YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE\n\
    doesn't specify something else to do.  Zero means the default is an\n\
    error",
                      "yydefact", yydefact,
                      yydefact[0], 1, nstates);
   "YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE\n\
    doesn't specify something else to do.  Zero means the default is an\n\
    error",
                      "yydefact", yydefact,
                      yydefact[0], 1, nstates);
-  putc ('\n', ftable);
+  obstack_1grow (&table_obstack, '\n');
   XFREE (yydefact);
 }
 
   XFREE (yydefact);
 }
 
@@ -901,7 +909,7 @@ goto_actions (void)
       yydefgoto[i - ntokens] = default_state;
     }
 
       yydefgoto[i - ntokens] = default_state;
     }
 
-  output_short_table (ftable, NULL, "yydefgoto", yydefgoto,
+  output_short_table (&table_obstack, NULL, "yydefgoto", yydefgoto,
                      yydefgoto[0], 1, nsyms - ntokens);
 
   XFREE (state_count);
                      yydefgoto[0], 1, nsyms - ntokens);
 
   XFREE (state_count);
@@ -1104,12 +1112,12 @@ pack_table (void)
 static void
 output_base (void)
 {
 static void
 output_base (void)
 {
-  output_short_table (ftable, NULL, "yypact", base,
+  output_short_table (&table_obstack, NULL, "yypact", base,
                      base[0], 1, nstates);
 
                      base[0], 1, nstates);
 
-  putc ('\n', ftable);
+  obstack_1grow (&table_obstack, '\n');
 
 
-  output_short_table (ftable, NULL, "yypgoto", base,
+  output_short_table (&table_obstack, NULL, "yypgoto", base,
                      base[nstates], nstates + 1, nvectors);
 
   XFREE (base);
                      base[nstates], nstates + 1, nvectors);
 
   XFREE (base);
@@ -1119,8 +1127,8 @@ output_base (void)
 static void
 output_table (void)
 {
 static void
 output_table (void)
 {
-  fprintf (ftable, "\n\n#define\tYYLAST\t\t%d\n\n\n", high);
-  output_short_table (ftable, NULL, "yytable", table,
+  obstack_fgrow1 (&table_obstack, "\n\n#define\tYYLAST\t\t%d\n\n\n", high);
+  output_short_table (&table_obstack, NULL, "yytable", table,
                      table[0], 1, high + 1);
   XFREE (table);
 }
                      table[0], 1, high + 1);
   XFREE (table);
 }
@@ -1129,7 +1137,7 @@ output_table (void)
 static void
 output_check (void)
 {
 static void
 output_check (void)
 {
-  output_short_table (ftable, NULL, "yycheck", check,
+  output_short_table (&table_obstack, NULL, "yycheck", check,
                      check[0], 1, high + 1);
   XFREE (check);
 }
                      check[0], 1, high + 1);
   XFREE (check);
 }
@@ -1162,10 +1170,10 @@ output_actions (void)
 
   sort_actions ();
   pack_table ();
 
   sort_actions ();
   pack_table ();
-  putc ('\n', ftable);
+  obstack_1grow (&table_obstack, '\n');
   output_base ();
   output_table ();
   output_base ();
   output_table ();
-  putc ('\n', ftable);
+  obstack_1grow (&table_obstack, '\n');
   output_check ();
 }
 
   output_check ();
 }
 
@@ -1183,7 +1191,7 @@ output_parser (void)
 #endif
 
   if (pure_parser)
 #endif
 
   if (pure_parser)
-    fprintf (ftable, "#define YYPURE 1\n\n");
+    obstack_grow_literal_string (&table_obstack, "#define YYPURE 1\n\n");
 
 #ifdef DONTDEF
   /* JF no longer needed 'cuz open_extra_files changes the currently
 
 #ifdef DONTDEF
   /* JF no longer needed 'cuz open_extra_files changes the currently
@@ -1220,16 +1228,16 @@ output_parser (void)
                        if (c == 'e')
                          write_line = 0;
                        else
                        if (c == 'e')
                          write_line = 0;
                        else
-                         fprintf (ftable, "#lin");
+                         obstack_grow_literal_string (&table_obstack, "#lin");
                      }
                    else
                      }
                    else
-                     fprintf (ftable, "#li");
+                     obstack_grow_literal_string (&table_obstack, "#li");
                  }
                else
                  }
                else
-                 fprintf (ftable, "#l");
+                 obstack_grow_literal_string (&table_obstack, "#l");
              }
            else
              }
            else
-             fprintf (ftable, "#");
+             obstack_grow_literal_string (&table_obstack, "#");
          }
 
       /* now write out the line... */
          }
 
       /* now write out the line... */
@@ -1244,18 +1252,19 @@ output_parser (void)
 
                number_of_dollar_signs++;
                assert (number_of_dollar_signs == 1);
 
                number_of_dollar_signs++;
                assert (number_of_dollar_signs == 1);
-               fwrite (obstack_finish (&action_obstack),
-                       1, size, ftable);
+               obstack_grow (&table_obstack,
+                             obstack_finish (&action_obstack),
+                             size);
 
                /* Skip the end of the line containing `$'. */
                write_line = 0;
              }
            else
 
                /* Skip the end of the line containing `$'. */
                write_line = 0;
              }
            else
-             putc (c, ftable);
+             obstack_1grow (&table_obstack, c);
          }
       if (c == EOF)
        break;
          }
       if (c == EOF)
        break;
-      putc (c, ftable);
+      obstack_1grow (&table_obstack, c);
     }
   assert (number_of_dollar_signs == 1);
 }
     }
   assert (number_of_dollar_signs == 1);
 }
@@ -1266,12 +1275,12 @@ output_program (void)
   int c;
 
   if (!no_lines_flag)
   int c;
 
   if (!no_lines_flag)
-    fprintf (ftable, "#line %d \"%s\"\n", lineno, infile);
+    obstack_fgrow2 (&table_obstack, "#line %d \"%s\"\n", lineno, infile);
 
   c = getc (finput);
   while (c != EOF)
     {
 
   c = getc (finput);
   while (c != EOF)
     {
-      putc (c, ftable);
+      obstack_1grow (&table_obstack, c);
       c = getc (finput);
     }
 }
       c = getc (finput);
     }
 }
@@ -1304,36 +1313,34 @@ output (void)
   /* output_token_defines(ftable);      / * JF put out token defines FIRST */
 
   /* If using a simple parser the definition of YYSTYPE are put into
   /* output_token_defines(ftable);      / * JF put out token defines FIRST */
 
   /* If using a simple parser the definition of YYSTYPE are put into
-     FTABLE.  */
+     TABLE_OBSTACK.  */
   if (!semantic_parser)
     {
       size_t size = obstack_object_size (&attrs_obstack);
   if (!semantic_parser)
     {
       size_t size = obstack_object_size (&attrs_obstack);
-      fwrite (obstack_finish (&attrs_obstack), 1, size, ftable);
+      obstack_grow (&table_obstack, obstack_finish (&attrs_obstack), size);
     }
     }
-  reader_output_yylsp (ftable);
+  reader_output_yylsp (&table_obstack);
   if (debug_flag)
   if (debug_flag)
-    fputs ("\
+    obstack_grow_literal_string (&table_obstack, "\
 #ifndef YYDEBUG\n\
 # define YYDEBUG 1\n\
 #endif\n\
 #ifndef YYDEBUG\n\
 # define YYDEBUG 1\n\
 #endif\n\
-\n",
-          ftable);
+\n");
 
   if (semantic_parser)
 
   if (semantic_parser)
-    fprintf (ftable, "#include \"%s\"\n", attrsfile);
+    obstack_fgrow1 (&table_obstack, "#include \"%s\"\n", attrsfile);
 
   if (!no_parser_flag)
 
   if (!no_parser_flag)
-    fprintf (ftable, "#include <stdio.h>\n\n");
+    obstack_grow_literal_string (&table_obstack, "#include <stdio.h>\n\n");
 
   /* Make "const" do nothing if not in ANSI C.  */
 
   /* Make "const" do nothing if not in ANSI C.  */
-  fputs ("\
+  obstack_grow_literal_string (&table_obstack, "\
 #ifndef __cplusplus\n\
 # ifndef __STDC__\n\
 #  define const\n\
 # endif\n\
 #endif\n\
 #ifndef __cplusplus\n\
 # ifndef __STDC__\n\
 #  define const\n\
 # endif\n\
 #endif\n\
-\n",
-        ftable);
+\n");
 
   free_itemsets ();
   output_defines ();
 
   free_itemsets ();
   output_defines ();
index 388ab5c9c80defb8f196a10ab203680cfaf2e1e4..3ef59350cfc8bcf229515d444a50a9085991c25f 100644 (file)
@@ -219,7 +219,8 @@ copy_string (FILE *fin, FILE *fout, struct obstack *oout, int match)
 `----------------------------------------------------------------*/
 
 static inline void
 `----------------------------------------------------------------*/
 
 static inline void
-copy_comment2 (FILE *fin, FILE *out1, FILE *out2, struct obstack *oout)
+copy_comment2 (FILE *fin, FILE *out1,
+              struct obstack *oout2, struct obstack *oout)
 {
   int cplus_comment;
   int ended;
 {
   int cplus_comment;
   int ended;
@@ -228,10 +229,10 @@ copy_comment2 (FILE *fin, FILE *out1, FILE *out2, struct obstack *oout)
   /* We read a `/', output it. */
   if (out1)
     putc ('/', out1);
   /* We read a `/', output it. */
   if (out1)
     putc ('/', out1);
-  if (out2)
-    putc ('/', out2);
   if (oout)
     obstack_1grow (oout, '/');
   if (oout)
     obstack_1grow (oout, '/');
+  if (oout2)
+    obstack_1grow (oout2, '/');
 
   switch ((c = getc (fin)))
     {
 
   switch ((c = getc (fin)))
     {
@@ -248,10 +249,10 @@ copy_comment2 (FILE *fin, FILE *out1, FILE *out2, struct obstack *oout)
 
   if (out1)
     putc (c, out1);
 
   if (out1)
     putc (c, out1);
-  if (out2)
-    putc (c, out2);
   if (oout)
     obstack_1grow (oout, c);
   if (oout)
     obstack_1grow (oout, c);
+  if (oout2)
+    obstack_1grow (oout2, c);
   c = getc (fin);
 
   ended = 0;
   c = getc (fin);
 
   ended = 0;
@@ -263,10 +264,10 @@ copy_comment2 (FILE *fin, FILE *out1, FILE *out2, struct obstack *oout)
            {
              if (out1)
                putc (c, out1);
            {
              if (out1)
                putc (c, out1);
-             if (out2)
-               putc (c, out2);
              if (oout)
                obstack_1grow (oout, c);
              if (oout)
                obstack_1grow (oout, c);
+             if (oout2)
+               obstack_1grow (oout2, c);
              c = getc (fin);
            }
 
              c = getc (fin);
            }
 
@@ -274,10 +275,10 @@ copy_comment2 (FILE *fin, FILE *out1, FILE *out2, struct obstack *oout)
            {
              if (out1)
                putc (c, out1);
            {
              if (out1)
                putc (c, out1);
-             if (out2)
-               putc (c, out2);
              if (oout)
                obstack_1grow (oout, c);
              if (oout)
                obstack_1grow (oout, c);
+             if (oout2)
+               obstack_1grow (oout2, c);
              ended = 1;
            }
        }
              ended = 1;
            }
        }
@@ -286,10 +287,10 @@ copy_comment2 (FILE *fin, FILE *out1, FILE *out2, struct obstack *oout)
          lineno++;
          if (out1)
            putc (c, out1);
          lineno++;
          if (out1)
            putc (c, out1);
-         if (out2)
-           putc (c, out2);
          if (oout)
            obstack_1grow (oout, c);
          if (oout)
            obstack_1grow (oout, c);
+         if (oout2)
+           obstack_1grow (oout2, c);
          if (cplus_comment)
            ended = 1;
          else
          if (cplus_comment)
            ended = 1;
          else
@@ -301,10 +302,10 @@ copy_comment2 (FILE *fin, FILE *out1, FILE *out2, struct obstack *oout)
        {
          if (out1)
            putc (c, out1);
        {
          if (out1)
            putc (c, out1);
-         if (out2)
-           putc (c, out2);
          if (oout)
            obstack_1grow (oout, c);
          if (oout)
            obstack_1grow (oout, c);
+         if (oout2)
+           obstack_1grow (oout2, c);
          c = getc (fin);
        }
     }
          c = getc (fin);
        }
     }
@@ -783,16 +784,16 @@ parse_union_decl (void)
     obstack_1grow (&attrs_obstack, '\n');
 
   obstack_grow_literal_string (&attrs_obstack, "typedef union");
     obstack_1grow (&attrs_obstack, '\n');
 
   obstack_grow_literal_string (&attrs_obstack, "typedef union");
-  if (fdefines)
-    fprintf (fdefines, "typedef union");
+  if (defines_flag)
+    obstack_grow_literal_string (&defines_obstack, "typedef union");
 
   c = getc (finput);
 
   while (c != EOF)
     {
       obstack_1grow (&attrs_obstack, c);
 
   c = getc (finput);
 
   while (c != EOF)
     {
       obstack_1grow (&attrs_obstack, c);
-      if (fdefines)
-       putc (c, fdefines);
+      if (defines_flag)
+       obstack_grow_literal_string (&defines_obstack, c);
 
       switch (c)
        {
 
       switch (c)
        {
@@ -801,7 +802,7 @@ parse_union_decl (void)
          break;
 
        case '/':
          break;
 
        case '/':
-         copy_comment2 (finput, 0, fdefines, &attrs_obstack);
+         copy_comment2 (finput, 0, &defines_obstack, &attrs_obstack);
          break;
 
        case '{':
          break;
 
        case '{':
@@ -815,8 +816,8 @@ parse_union_decl (void)
          if (count <= 0)
            {
              obstack_grow_literal_string (&attrs_obstack, " YYSTYPE;\n");
          if (count <= 0)
            {
              obstack_grow_literal_string (&attrs_obstack, " YYSTYPE;\n");
-             if (fdefines)
-               fprintf (fdefines, " YYSTYPE;\n");
+             if (defines_flag)
+               obstack_grow_literal_string (&defines_obstack, " YYSTYPE;\n");
              /* JF don't choke on trailing semi */
              c = skip_white_space ();
              if (c != ';')
              /* JF don't choke on trailing semi */
              c = skip_white_space ();
              if (c != ';')
@@ -1595,8 +1596,11 @@ readgram (void)
          Most programs should declare their own type anyway.  */
       obstack_grow_literal_string (&attrs_obstack,
                            "#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n");
          Most programs should declare their own type anyway.  */
       obstack_grow_literal_string (&attrs_obstack,
                            "#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n");
-      if (fdefines)
-       fprintf (fdefines, "#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n");
+      if (defines_flag)
+       obstack_grow_literal_string (&defines_obstack, "\
+#ifndef YYSTYPE\n\
+# define YYSTYPE int\n\
+#endif\n");
     }
 
   /* Report any undefined symbols and consider them nonterminals.  */
     }
 
   /* Report any undefined symbols and consider them nonterminals.  */
@@ -1620,7 +1624,7 @@ readgram (void)
 `--------------------------------------------------------------*/
 
 static void
 `--------------------------------------------------------------*/
 
 static void
-output_token_defines (FILE *file)
+output_token_defines (struct obstack *oout)
 {
   bucket *bp;
   char *cp, *symbol;
 {
   bucket *bp;
   char *cp, *symbol;
@@ -1653,14 +1657,15 @@ output_token_defines (FILE *file)
       if (c != '\0')
        continue;
 
       if (c != '\0')
        continue;
 
-      fprintf (file, "#define\t%s\t%d\n", symbol,
-              ((translations && !raw_flag)
-               ? bp->user_token_number : bp->value));
+      obstack_fgrow2 (oout, "#define\t%s\t%d\n",
+                     symbol,
+                     ((translations && !raw_flag)
+                      ? bp->user_token_number : bp->value));
       if (semantic_parser)
       if (semantic_parser)
-       fprintf (file, "#define\tT%s\t%d\n", symbol, bp->value);
+       obstack_fgrow2 (oout, "#define\tT%s\t%d\n", symbol, bp->value);
     }
 
     }
 
-  putc ('\n', file);
+  obstack_1grow (oout, '\n');
 }
 
 
 }
 
 
@@ -1783,7 +1788,7 @@ packsymbols (void)
   error_token_number = errtoken->value;
 
   if (!no_parser_flag)
   error_token_number = errtoken->value;
 
   if (!no_parser_flag)
-    output_token_defines (ftable);
+    output_token_defines (&table_obstack);
 
   if (startval->class == unknown_sym)
     fatal (_("the start symbol %s is undefined"), startval->tag);
 
   if (startval->class == unknown_sym)
     fatal (_("the start symbol %s is undefined"), startval->tag);
@@ -1794,15 +1799,16 @@ packsymbols (void)
 
   if (defines_flag)
     {
 
   if (defines_flag)
     {
-      output_token_defines (fdefines);
+      output_token_defines (&defines_obstack);
 
       if (!pure_parser)
        {
          if (spec_name_prefix)
 
       if (!pure_parser)
        {
          if (spec_name_prefix)
-           fprintf (fdefines, "\nextern YYSTYPE %slval;\n",
-                    spec_name_prefix);
+           obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n",
+                           spec_name_prefix);
          else
          else
-           fprintf (fdefines, "\nextern YYSTYPE yylval;\n");
+           obstack_grow_literal_string (&defines_obstack,
+                                        "\nextern YYSTYPE yylval;\n");
        }
 
       if (semantic_parser)
        }
 
       if (semantic_parser)
@@ -1810,7 +1816,8 @@ packsymbols (void)
          {
            /* don't make these for dummy nonterminals made by gensym.  */
            if (*tags[i] != '@')
          {
            /* don't make these for dummy nonterminals made by gensym.  */
            if (*tags[i] != '@')
-             fprintf (fdefines, "#define\tNT%s\t%d\n", tags[i], i);
+              obstack_fgrow2 (&defines_obstack,
+                              "#define\tNT%s\t%d\n", tags[i], i);
          }
 #if 0
       /* `fdefines' is now a temporary file, so we need to copy its
          }
 #if 0
       /* `fdefines' is now a temporary file, so we need to copy its
@@ -1942,16 +1949,19 @@ reader (void)
   undeftoken->class = token_sym;
   undeftoken->user_token_number = 2;
 
   undeftoken->class = token_sym;
   undeftoken->user_token_number = 2;
 
-  /* Read the declaration section.  Copy %{ ... %} groups to FTABLE
-     and FDEFINES file.  Also notice any %token, %left, etc. found
-     there.  */
-  putc ('\n', ftable);
-  fprintf (ftable, "\
+  /* Read the declaration section.  Copy %{ ... %} groups to
+     TABLE_OBSTACK and FDEFINES file.  Also notice any %token, %left,
+     etc. found there.  */
+  obstack_1grow (&table_obstack, '\n');
+  obstack_fgrow3 (&table_obstack, "\
 /* %s, made from %s\n\
    by GNU bison %s.  */\n\
 /* %s, made from %s\n\
    by GNU bison %s.  */\n\
-\n", no_parser_flag ? "Bison-generated parse tables" : "A Bison parser", infile, VERSION);
+\n",
+                 no_parser_flag ? "Bison-generated parse tables" : "A Bison parser",
+                 infile, VERSION);
 
 
-  fputs ("#define YYBISON 1  /* Identify Bison output.  */\n\n", ftable);
+  obstack_grow_literal_string (&table_obstack,
+                      "#define YYBISON 1  /* Identify Bison output.  */\n\n");
   read_declarations ();
   /* Start writing the guard and action files, if they are needed.  */
   output_headers ();
   read_declarations ();
   /* Start writing the guard and action files, if they are needed.  */
   output_headers ();
@@ -1960,12 +1970,12 @@ reader (void)
   readgram ();
   /* Now we know whether we need the line-number stack.  If we do,
      write its type into the .tab.h file.  */
   readgram ();
   /* Now we know whether we need the line-number stack.  If we do,
      write its type into the .tab.h file.  */
-  if (fdefines)
-    reader_output_yylsp (fdefines);
+  if (defines_flag)
+    reader_output_yylsp (&defines_obstack);
   /* Write closing delimiters for actions and guards.  */
   output_trailers ();
   if (locations_flag)
   /* Write closing delimiters for actions and guards.  */
   output_trailers ();
   if (locations_flag)
-    fputs ("#define YYLSP_NEEDED\n\n", ftable);
+    obstack_grow_literal_string (&table_obstack, "#define YYLSP_NEEDED\n\n");
   /* Assign the symbols their symbol numbers.  Write #defines for the
      token symbols into FDEFINES if requested.  */
   packsymbols ();
   /* Assign the symbols their symbol numbers.  Write #defines for the
      token symbols into FDEFINES if requested.  */
   packsymbols ();
@@ -1978,10 +1988,10 @@ reader (void)
 
 
 void
 
 
 void
-reader_output_yylsp (FILE *f)
+reader_output_yylsp (struct obstack *oout)
 {
   if (locations_flag)
 {
   if (locations_flag)
-    fputs ("\
+    obstack_grow_literal_string (oout, "\
 \n\
 #ifndef YYLTYPE\n\
 typedef struct yyltype\n\
 \n\
 #ifndef YYLTYPE\n\
 typedef struct yyltype\n\
@@ -1997,6 +2007,5 @@ typedef struct yyltype\n\
 \n\
 # define YYLTYPE yyltype\n\
 #endif\n\
 \n\
 # define YYLTYPE yyltype\n\
 #endif\n\
-\n",
-          f);
+\n");
 }
 }
index cf97a456e04da9dc0c3692445f2d66e15b098883..c298891173e244a4c43e74ac25882c58b7702401 100644 (file)
@@ -1,5 +1,5 @@
 /* Input parser for bison
 /* Input parser for bison
-   Copyright (C) 2000 Free Software Foundation, Inc.
+   Copyright 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.
 
@@ -30,7 +30,7 @@
 extern void reader PARAMS ((void));
 
 
 extern void reader PARAMS ((void));
 
 
-extern void reader_output_yylsp PARAMS ((FILE *));
+extern void reader_output_yylsp PARAMS ((struct obstack *));
 
 extern int lineno;
 extern char **tags;
 
 extern int lineno;
 extern char **tags;
index 23d577710872ce199ee2c8eb226083ccd36c1146..dfa287bb92d2329e51974b8a59607c7773576a68 100644 (file)
@@ -187,3 +187,10 @@ do {                                               \
   sprintf (buf, Format, Arg1, Arg2);           \
   obstack_grow (Obs, buf, strlen (buf));       \
 } while (0)
   sprintf (buf, Format, Arg1, Arg2);           \
   obstack_grow (Obs, buf, strlen (buf));       \
 } while (0)
+
+#define obstack_fgrow3(Obs, Format, Arg1, Arg2, Arg3)  \
+do {                                                   \
+  char buf[4096];                                      \
+  sprintf (buf, Format, Arg1, Arg2, Arg3);             \
+  obstack_grow (Obs, buf, strlen (buf));               \
+} while (0)