* src/reader.c (readgram): Remove dead code, an strip useless

braces.
(get_type): Remove, unused.
This commit is contained in:
Akim Demaille
2001-12-13 11:01:36 +00:00
parent 9b53a24f31
commit 107f7dfbd0
2 changed files with 224 additions and 304 deletions

View File

@@ -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> 2001-12-12 Akim Demaille <akim@epita.fr>
* src/complain.h, src/complain.c: Remove error_one_per_line, rely * src/complain.h, src/complain.c: Remove error_one_per_line, rely

View File

@@ -1327,60 +1327,8 @@ gensym (void)
sym->value = nvars++; sym->value = nvars++;
return sym; 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 | | Parse the input grammar into a one symbol_list structure. Each |
| rule is represented by a sequence of symbols: the left hand side | | rule is represented by a sequence of symbols: the left hand side |
| followed by the contents of the right hand side, followed by a | | 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, | | All guards and actions are copied out to the appropriate files, |
| labelled by the rule number they apply to. | | 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 static void
readgram (void) readgram (void)
{ {
token_t t; token_t t;
bucket *lhs = NULL; bucket *lhs = NULL;
symbol_list *p; symbol_list *p = NULL;
symbol_list *p1; symbol_list *p1 = NULL;
bucket *bp; bucket *bp;
/* Points to first symbol_list of current rule. its symbol is the /* Points to first symbol_list of current rule. its symbol is the
lhs of the rule. */ lhs of the rule. */
symbol_list *crule; symbol_list *crule = NULL;
/* Points to the symbol_list preceding crule. */ /* Points to the symbol_list preceding crule. */
symbol_list *crule1; symbol_list *crule1 = NULL;
p1 = NULL;
t = lex (); t = lex ();
while (t != tok_two_percents && t != tok_eof) while (t != tok_two_percents && t != tok_eof)
{
if (t == tok_identifier || t == tok_bar) if (t == tok_identifier || t == tok_bar)
{ {
int action_flag = 0; int action_flag = 0;
@@ -1609,50 +1561,12 @@ readgram (void)
if (t == tok_semicolon) if (t == tok_semicolon)
t = lex (); 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 else
{ {
complain (_("invalid input: %s"), quote (token_buffer)); complain (_("invalid input: %s"), quote (token_buffer));
t = lex (); t = lex ();
} }
}
/* grammar has been read. Do some checking */ /* grammar has been read. Do some checking */