/* Compute look-ahead criteria for bison,
- Copyright (C) 1984, 1986, 1989 Free Software Foundation, Inc.
+ Copyright 1984, 1986, 1989, 2000 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
#ifndef LALR_H_
# define LALR_H_
+
+/* Import the definition of CORE, SHIFTS and REDUCTIONS. */
+# include "state.h"
+
+
/* Compute how to make the finite state machine deterministic; find
which rules need lookahead in each state, and which lookahead
tokens they accept. */
/* lalr() builds these data structures. */
-/* goto_map, from_state and to_state --record each shift transition
+/* GOTO_MAP, FROM_STATE and TO_STATE -- record each shift transition
which accepts a variable (a nonterminal).
- from_state[t] is the state number which a transition leads from and
- to_state[t] is the state number it leads to. All the transitions
- that accept a particular variable are grouped together and
- goto_map[i - ntokens] is the index in from_state and to_state of
- the first of them. */
+ FROM_STATE[T] -- state number which a transition leads from.
+ TO_STATE[T] -- state number it leads to.
+
+ All the transitions that accept a particular variable are grouped
+ together and GOTO_MAP[I - NTOKENS] is the index in FROM_STATE and
+ TO_STATE of the first of them. */
extern short *goto_map;
extern short *from_state;
extern short *to_state;
-/* CONSISTENT[S] is nonzero if no lookahead is needed to decide what
- to do in state S. */
-
-extern char *consistent;
-
-
/* LARULENO is a vector which records the rules that need lookahead in
various states. The elements of LARULENO that apply to state S are
those from LOOKAHEADS[S] through LOOKAHEADS[S+1]-1. Each element
it is a conflict. */
extern unsigned *LA;
+#define LA(Rule) (LA + (Rule) * tokensetsize)
-extern int tokensetsize;
-extern short *lookaheads;
-extern short *accessing_symbol;
-extern core **state_table;
-extern shifts **shift_table;
-extern reductions **reduction_table;
-
+/* All the states, indexed by the state number. */
+extern state_t **states;
+extern int tokensetsize;
#endif /* !LALR_H_ */