* src/derives.h: New file.

* src/main.c, src/derives.h: Use it.
Formatting changes.
* src/Makefile.am (noinst_HEADERS): Adjust.
This commit is contained in:
Akim Demaille
2000-09-20 13:14:11 +00:00
parent db5b3a89b4
commit cc84fd5dc7
12 changed files with 158 additions and 133 deletions

View File

@@ -1,3 +1,10 @@
2000-09-20 Akim Demaille <akim@epita.fr>
* src/derives.h: New file.
* src/main.c, src/derives.h: Use it.
Formatting changes.
* src/Makefile.am (noinst_HEADERS): Adjust.
2000-09-20 Akim Demaille <akim@epita.fr>
* tests/atgeneral.m4: Update from Autoconf.

View File

@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-09-19 20:18+0200\n"
"POT-Creation-Date: 2000-09-20 14:50+0200\n"
"PO-Revision-Date: 1996-10-10 17:54 MET DST\n"
"Last-Translator: Ulrich Drepper <drepper@gnu.ai.mit.edu>\n"
"Language-Team: German <de@li.org>\n"
@@ -112,7 +112,7 @@ msgstr " %-4s\treduziere mit Tegel %d (%s)\n"
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\treduziere mit Regel %d (%s)\n"
#: src/derives.c:108
#: src/derives.c:42
msgid ""
"\n"
"\n"
@@ -121,7 +121,7 @@ msgid ""
"\n"
msgstr ""
#: src/derives.c:112
#: src/derives.c:46
#, c-format
msgid "%s derives"
msgstr "%s leitet ab"
@@ -253,7 +253,7 @@ msgstr "unerwarteter Typname am Ende der Datei"
msgid "unterminated type name"
msgstr "unerwarteter Typname"
#: src/main.c:141
#: src/main.c:139
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interner Fehler, %s\n"

View File

@@ -30,7 +30,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.25\n"
"POT-Creation-Date: 2000-09-19 20:18+0200\n"
"POT-Creation-Date: 2000-09-20 14:50+0200\n"
"PO-Revision-Date: 1998-09-21 10:19+0200\n"
"Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -163,7 +163,7 @@ msgstr " %-4s\treduce usando la regla %d (%s)\n"
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\treduce usando la regla %d (%s)\n"
#: src/derives.c:108
#: src/derives.c:42
msgid ""
"\n"
"\n"
@@ -176,7 +176,7 @@ msgstr ""
"\n"
"DERIVACIONES\n"
#: src/derives.c:112
#: src/derives.c:46
#, c-format
msgid "%s derives"
msgstr "%s deriva"
@@ -313,7 +313,7 @@ msgstr "nombre de tipo sin terminar al final del fichero"
msgid "unterminated type name"
msgstr "nombre de tipo sin terminar"
#: src/main.c:141
#: src/main.c:139
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "error interno, %s\n"

View File

@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-09-19 20:18+0200\n"
"POT-Creation-Date: 2000-09-20 14:50+0200\n"
"PO-Revision-Date: 2000-04-11 22:19+02:00\n"
"Last-Translator: Toomas Soome <tsoome@ut.ee>\n"
"Language-Team: Estonian <et@li.org>\n"
@@ -112,7 +112,7 @@ msgstr " %-4s\tredutseerin kasutades reeglit %d (%s)\n"
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\tredutseerin kasutades reeglit %d (%s)\n"
#: src/derives.c:108
#: src/derives.c:42
msgid ""
"\n"
"\n"
@@ -126,7 +126,7 @@ msgstr ""
"DERIVES\n"
"\n"
#: src/derives.c:112
#: src/derives.c:46
#, c-format
msgid "%s derives"
msgstr "%s derives"
@@ -274,7 +274,7 @@ msgstr "l
msgid "unterminated type name"
msgstr "lõpetamata tüübinimi"
#: src/main.c:141
#: src/main.c:139
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: sisemine viga: %s\n"

View File

@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-09-19 20:18+0200\n"
"POT-Creation-Date: 2000-09-20 14:50+0200\n"
"PO-Revision-Date: 1996-03-19 20:05 EST\n"
"Last-Translator: Dominique Boucher <boucherd@IRO.UMontreal.CA>\n"
"Language-Team: French <fr@li.org>\n"
@@ -113,7 +113,7 @@ msgstr " %-4s\tr
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $défaut\tréduction par la règle %d (%s)\n"
#: src/derives.c:108
#: src/derives.c:42
msgid ""
"\n"
"\n"
@@ -127,7 +127,7 @@ msgstr ""
"DERIVES\n"
"\n"
#: src/derives.c:112
#: src/derives.c:46
#, c-format
msgid "%s derives"
msgstr "%s dérive"
@@ -258,7 +258,7 @@ msgstr "le nom de type ne se termine pas avant la fin de fichier"
msgid "unterminated type name"
msgstr "le nom de type ne se termine pas"
#: src/main.c:141
#: src/main.c:139
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "erreur interne, %s\n"

View File

@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.28\n"
"POT-Creation-Date: 2000-09-19 20:18+0200\n"
"POT-Creation-Date: 2000-09-20 14:50+0200\n"
"PO-Revision-Date: 1999-09-28 21:10+0900\n"
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
@@ -112,7 +112,7 @@ msgstr " %-4s\t
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\t規則 %d を利用して還元 (%s)\n"
#: src/derives.c:108
#: src/derives.c:42
msgid ""
"\n"
"\n"
@@ -126,7 +126,7 @@ msgstr ""
"DERIVES\n"
"\n"
#: src/derives.c:112
#: src/derives.c:46
#, c-format
msgid "%s derives"
msgstr "%s は以下から派生"
@@ -257,7 +257,7 @@ msgstr "
msgid "unterminated type name"
msgstr "閉じられていないタイプ名があります"
#: src/main.c:141
#: src/main.c:139
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: 内部エラー: %s\n"

View File

@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
"POT-Creation-Date: 2000-09-19 20:18+0200\n"
"POT-Creation-Date: 2000-09-20 14:50+0200\n"
"PO-Revision-Date: 1996-08-27 15:34 MET DST\n"
"Last-Translator: Erick Branderhorst <branderh@debian.org>\n"
"Language-Team: Dutch <nl@li.org>\n"
@@ -112,7 +112,7 @@ msgstr ""
msgid " $default\treduce using rule %d (%s)\n"
msgstr ""
#: src/derives.c:108
#: src/derives.c:42
msgid ""
"\n"
"\n"
@@ -126,7 +126,7 @@ msgstr ""
"AFGELEIDEN\n"
"\n"
#: src/derives.c:112
#: src/derives.c:46
#, c-format
msgid "%s derives"
msgstr "%s afgeleiden"
@@ -257,7 +257,7 @@ msgstr "niet getermineerd type naam aan het einde van bestand"
msgid "unterminated type name"
msgstr "niet getermineerd type naam"
#: src/main.c:141
#: src/main.c:139
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interne fout, %s\n"

View File

@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: bison 1.28a\n"
"POT-Creation-Date: 2000-09-19 20:18+0200\n"
"POT-Creation-Date: 2000-09-20 14:50+0200\n"
"PO-Revision-Date: 2000-04-12 13:16+04:00\n"
"Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
"Language-Team: Russian <ru@li.org>\n"
@@ -113,7 +113,7 @@ msgstr " %-4s\t
msgid " $default\treduce using rule %d (%s)\n"
msgstr " $default\t×Ù×ÏÄ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÁ×ÉÌÁ %d (%s)\n"
#: src/derives.c:108
#: src/derives.c:42
msgid ""
"\n"
"\n"
@@ -127,7 +127,7 @@ msgstr ""
"DERIVES\n"
"\n"
#: src/derives.c:112
#: src/derives.c:46
#, c-format
msgid "%s derives"
msgstr "%s ×Ù×ÏÄÉÔ"
@@ -276,7 +276,7 @@ msgstr "
msgid "unterminated type name"
msgstr "ÎÅÚÁËÏÎÞÅÎÎÏÅ ÉÍÑ ÔÉÐÁ"
#: src/main.c:141
#: src/main.c:139
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n"

View File

@@ -19,7 +19,7 @@ bison_SOURCES = LR0.c allocate.c closure.c complain.c conflicts.c \
EXTRA_bison_SOURCES = vmsgetargs.c
noinst_HEADERS = alloc.h complain.h files.h getargs.h gram.h lex.h \
state.h \
derives.h state.h \
symtab.h system.h types.h
data_DATA = bison.simple bison.hairy

View File

@@ -1,5 +1,5 @@
/* Match rules with nonterminals for bison,
Copyright (C) 1984, 1989 Free Software Foundation, Inc.
Copyright (C) 1984, 1989, 2000 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -19,22 +19,41 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* set_derives finds, for each variable (nonterminal), which rules can derive it.
It sets up the value of derives so that
derives[i - ntokens] points to a vector of rule numbers,
terminated with -1. */
/* set_derives finds, for each variable (nonterminal), which rules can
derive it. It sets up the value of derives so that derives[i -
ntokens] points to a vector of rule numbers, terminated with -1.
*/
#include "system.h"
#include "alloc.h"
#include "types.h"
#include "gram.h"
extern void set_derives PARAMS((void));
extern void free_derives PARAMS((void));
#include "derives.h"
#if DEBUG
static void print_derives PARAMS((void));
extern char **tags;
static void
print_derives (void)
{
register int i;
register short *sp;
printf (_("\n\n\nDERIVES\n\n"));
for (i = ntokens; i < nsyms; i++)
{
printf (_("%s derives"), tags[i]);
for (sp = derives[i]; *sp > 0; sp++)
{
printf (" %d", *sp);
}
putchar ('\n');
}
putchar ('\n');
}
#endif
short **derives;
@@ -80,7 +99,7 @@ set_derives (void)
*q++ = -1;
}
#ifdef DEBUG
#if DEBUG
print_derives ();
#endif
@@ -94,30 +113,3 @@ free_derives (void)
FREE (derives[ntokens]);
FREE (derives + ntokens);
}
#ifdef DEBUG
static void
print_derives (void)
{
register int i;
register short *sp;
printf(_("\n\n\nDERIVES\n\n"));
for (i = ntokens; i < nsyms; i++)
{
printf(_("%s derives"), tags[i]);
for (sp = derives[i]; *sp > 0; sp++)
{
printf(" %d", *sp);
}
putchar('\n');
}
putchar('\n');
}
#endif

28
src/derives.h Normal file
View File

@@ -0,0 +1,28 @@
/* Match rules with nonterminals for bison,
Copyright (C) 1984, 1989, 2000 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
Bison is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Bison is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Bison; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* set_derives finds, for each variable (nonterminal), which rules can
derive it. It sets up the value of derives so that derives[i -
ntokens] points to a vector of rule numbers, terminated with -1.
*/
void set_derives PARAMS((void));
void free_derives PARAMS((void));

View File

@@ -24,6 +24,7 @@
#include "getargs.h"
#include "files.h"
#include "complain.h"
#include "derives.h"
#if 0 /* XXX currently unused. */
/* Nonzero means failure has been detected; don't write a parser file. */
@@ -39,8 +40,6 @@ extern void berror PARAMS((const char *));
extern void openfiles PARAMS ((void));
extern void reader PARAMS ((void));
extern void reduce_grammar PARAMS ((void));
extern void set_derives PARAMS((void));
extern void free_derives PARAMS((void));
extern void set_nullable PARAMS ((void));
extern void free_nullable PARAMS ((void));
extern void generate_states PARAMS ((void));
@@ -70,9 +69,9 @@ main (int argc, char *argv[])
openfiles ();
/* read the input. Copy some parts of it to fguard, faction, ftable and fattrs.
In file reader.c.
The other parts are recorded in the grammar; see gram.h. */
/* Read the input. Copy some parts of it to FGUARD, FACTION, FTABLE
and FATTRS. In file reader.c. The other parts are recorded in
the grammar; see gram.h. */
reader ();
if (complain_message_count)
exit (1);
@@ -92,18 +91,20 @@ main (int argc, char *argv[])
/* make it deterministic. In file lalr. */
lalr ();
/* Find and record any conflicts: places where one token of lookahead is not
enough to disambiguate the parsing. In file conflicts.
Also resolve s/r conflicts based on precedence declarations. */
/* Find and record any conflicts: places where one token of
lookahead is not enough to disambiguate the parsing. In file
conflicts. Also resolve s/r conflicts based on precedence
declarations. */
initialize_conflicts ();
/* print information about results, if requested. In file print. */
/* Print information about results, if requested. In file print.
*/
if (verboseflag)
verbose ();
else
terse ();
/* output the tables and the parser to ftable. In file output. */
/* Output the tables and the parser to ftable. In file output. */
output ();
finalize_conflicts ();
@@ -113,9 +114,6 @@ main (int argc, char *argv[])
exit (complain_message_count ? 1 : 0);
}
/* functions to report errors which prevent a parser from being generated */
/* Return a string containing a printable version of C:
either C itself, or the corresponding \DDD code. */