X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/93337ac41c0a1e950477457a8121c3ad9a60a7fa..e89a22bfab22e4d2ee73be49dcb66b51f8d0e892:/src/lalr.h diff --git a/src/lalr.h b/src/lalr.h index c803edd2..55e01d8f 100644 --- a/src/lalr.h +++ b/src/lalr.h @@ -49,12 +49,6 @@ 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 @@ -72,6 +66,7 @@ extern short *LAruleno; it is a conflict. */ extern unsigned *LA; +#define LA(Rule) (LA + (Rule) * tokensetsize) /* A structure decorating a state, with additional information. */ @@ -82,6 +77,16 @@ typedef struct state_s /* Its accessing symbol. */ short accessing_symbol; + + shifts *shifts; + reductions *reductions; + errs *errs; + + /* Nonzero if no lookahead is needed to decide what to do in state + S. */ + char consistent; + + short lookaheads; } state_t; /* All the decorated states, indexed by the state number. Warning: @@ -90,10 +95,7 @@ typedef struct state_s extern state_t *state_table; extern int tokensetsize; -extern short *lookaheads; -extern shifts **shift_table; -extern reductions **reduction_table; - - +/* The number of lookaheads. */ +extern size_t nlookaheads; #endif /* !LALR_H_ */