/* Type definitions for nondeterministic finite state machine for Bison.
- Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software
+ Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
-
+#include <config.h>
#include "system.h"
#include <hash.h>
transitions_to (transitions *shifts, symbol_number sym)
{
int j;
- for (j = 0; j < shifts->num; j++)
- if (TRANSITION_SYMBOL (shifts, j) == sym)
- return shifts->states[j];
- abort ();
+ for (j = 0; ; j++)
+ {
+ assert (j < shifts->num);
+ if (TRANSITION_SYMBOL (shifts, j) == sym)
+ return shifts->states[j];
+ }
}
state *res;
size_t items_size = nitems * sizeof *core;
- if (STATE_NUMBER_MAXIMUM <= nstates)
- abort ();
+ assert (nstates < STATE_NUMBER_MAXIMUM);
res = xmalloc (offsetof (state, items) + items_size);
res->number = nstates++;
void
state_transitions_set (state *s, int num, state **trans)
{
- if (s->transitions)
- abort ();
+ assert (!s->transitions);
s->transitions = transitions_new (num, trans);
}
void
state_reductions_set (state *s, int num, rule **reds)
{
- if (s->reductions)
- abort ();
+ assert (!s->reductions);
s->reductions = reductions_new (num, reds);
}
void
state_errs_set (state *s, int num, symbol **tokens)
{
- if (s->errs)
- abort ();
+ assert (!s->errs);
s->errs = errs_new (num, tokens);
}
bitset_iterator biter;
int k;
char const *sep = "";
- fputs (" [", out);
+ fprintf (out, " [");
BITSET_FOR_EACH (biter, reds->look_ahead_tokens[red], k, 0)
{
fprintf (out, "%s%s", sep, symbols[k]->tag);
sep = ", ";
}
- fputc (']', out);
+ fprintf (out, "]");
}
}
-/*----------------------.
+/*---------------------.
| A state hash table. |
-`----------------------*/
+`---------------------*/
/* Initial capacity of states hash table. */
#define HT_INITIAL_CAPACITY 257