mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-28 05:33:03 +00:00
* src/reader.c (readgram): Remove dead code, an strip useless
braces. (get_type): Remove, unused.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2001-12-13 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/reader.c (readgram): Remove dead code, an strip useless
|
||||
braces.
|
||||
(get_type): Remove, unused.
|
||||
|
||||
2001-12-12 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/complain.h, src/complain.c: Remove error_one_per_line, rely
|
||||
|
||||
114
src/reader.c
114
src/reader.c
@@ -1327,60 +1327,8 @@ gensym (void)
|
||||
sym->value = nvars++;
|
||||
return sym;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*------------------------------------------------------------------.
|
||||
| read in a %type declaration and record its information for |
|
||||
| get_type_name to access. This is unused. It is only called from |
|
||||
| the #if 0 part of readgram |
|
||||
`------------------------------------------------------------------*/
|
||||
|
||||
static int
|
||||
get_type (void)
|
||||
{
|
||||
int k;
|
||||
token_t token;
|
||||
char *name;
|
||||
|
||||
token = lex ();
|
||||
|
||||
if (token != tok_typename)
|
||||
{
|
||||
complain (_("invalid %s declaration"), "%type");
|
||||
return t;
|
||||
}
|
||||
|
||||
name = xstrdup (token_buffer);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
token = lex ();
|
||||
|
||||
switch (token)
|
||||
{
|
||||
case tok_semicolon:
|
||||
return lex ();
|
||||
|
||||
case tok_comma:
|
||||
break;
|
||||
|
||||
case tok_identifier:
|
||||
if (symval->type_name == NULL)
|
||||
symval->type_name = name;
|
||||
else if (strcmp (name, symval->type_name) != 0)
|
||||
complain (_("type redeclaration for %s"), symval->tag);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return token;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*------------------------------------------------------------------.
|
||||
/*-------------------------------------------------------------------.
|
||||
| Parse the input grammar into a one symbol_list structure. Each |
|
||||
| rule is represented by a sequence of symbols: the left hand side |
|
||||
| followed by the contents of the right hand side, followed by a |
|
||||
@@ -1389,29 +1337,33 @@ get_type (void)
|
||||
| |
|
||||
| All guards and actions are copied out to the appropriate files, |
|
||||
| labelled by the rule number they apply to. |
|
||||
`------------------------------------------------------------------*/
|
||||
| |
|
||||
| Bison used to allow some %directives in the rules sections, but |
|
||||
| this is no longer consider appropriate: (i) the documented grammar |
|
||||
| doesn't claim it, (ii), it would promote bad style, (iii), error |
|
||||
| recovery for %directives consists in skipping the junk until a `%' |
|
||||
| is seen and helrp synchronizing. This scheme is definitely wrong |
|
||||
| in the rules section. |
|
||||
`-------------------------------------------------------------------*/
|
||||
|
||||
static void
|
||||
readgram (void)
|
||||
{
|
||||
token_t t;
|
||||
bucket *lhs = NULL;
|
||||
symbol_list *p;
|
||||
symbol_list *p1;
|
||||
symbol_list *p = NULL;
|
||||
symbol_list *p1 = NULL;
|
||||
bucket *bp;
|
||||
|
||||
/* Points to first symbol_list of current rule. its symbol is the
|
||||
lhs of the rule. */
|
||||
symbol_list *crule;
|
||||
symbol_list *crule = NULL;
|
||||
/* Points to the symbol_list preceding crule. */
|
||||
symbol_list *crule1;
|
||||
|
||||
p1 = NULL;
|
||||
symbol_list *crule1 = NULL;
|
||||
|
||||
t = lex ();
|
||||
|
||||
while (t != tok_two_percents && t != tok_eof)
|
||||
{
|
||||
if (t == tok_identifier || t == tok_bar)
|
||||
{
|
||||
int action_flag = 0;
|
||||
@@ -1609,50 +1561,12 @@ readgram (void)
|
||||
if (t == tok_semicolon)
|
||||
t = lex ();
|
||||
}
|
||||
#if 0
|
||||
/* these things can appear as alternatives to rules. */
|
||||
/* NO, they cannot.
|
||||
a) none of the documentation allows them
|
||||
b) most of them scan forward until finding a next %
|
||||
thus they may swallow lots of intervening rules
|
||||
*/
|
||||
else if (t == tok_token)
|
||||
{
|
||||
parse_token_decl (token_sym, nterm_sym);
|
||||
t = lex ();
|
||||
}
|
||||
else if (t == tok_nterm)
|
||||
{
|
||||
parse_token_decl (nterm_sym, token_sym);
|
||||
t = lex ();
|
||||
}
|
||||
else if (t == tok_type)
|
||||
{
|
||||
t = get_type ();
|
||||
}
|
||||
else if (t == tok_union)
|
||||
{
|
||||
parse_union_decl ();
|
||||
t = lex ();
|
||||
}
|
||||
else if (t == tok_expect)
|
||||
{
|
||||
parse_expect_decl ();
|
||||
t = lex ();
|
||||
}
|
||||
else if (t == tok_start)
|
||||
{
|
||||
parse_start_decl ();
|
||||
t = lex ();
|
||||
}
|
||||
#endif
|
||||
|
||||
else
|
||||
{
|
||||
complain (_("invalid input: %s"), quote (token_buffer));
|
||||
t = lex ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* grammar has been read. Do some checking */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user