21 |
#ifndef LALR_H_ |
#ifndef LALR_H_ |
22 |
# define LALR_H_ |
# define LALR_H_ |
23 |
|
|
24 |
#include "bitset.h" |
# include "bitset.h" |
25 |
#include "bitsetv.h" |
# include "bitsetv.h" |
26 |
|
|
27 |
/* Import the definition of CORE, TRANSITIONS and REDUCTIONS. */ |
/* Import the definition of CORE, TRANSITIONS and REDUCTIONS. */ |
28 |
# include "state.h" |
# include "state.h" |
36 |
|
|
37 |
void lalr PARAMS ((void)); |
void lalr PARAMS ((void)); |
38 |
|
|
39 |
|
/* Release the information related to lookaheads. Can be performed |
40 |
|
once the action tables are computed. */ |
41 |
|
|
42 |
|
void lalr_free PARAMS ((void)); |
43 |
|
|
44 |
|
|
45 |
/* lalr() builds these data structures. */ |
/* lalr() builds these data structures. */ |
46 |
|
|
61 |
extern state_number_t *from_state; |
extern state_number_t *from_state; |
62 |
extern state_number_t *to_state; |
extern state_number_t *to_state; |
63 |
|
|
|
/* LARULE is a vector which records the rules that need lookahead in |
|
|
various states. The elements of LARULE that apply to state S are |
|
|
those from LOOKAHEADS[S] through LOOKAHEADS[S+1]-1. |
|
|
|
|
|
If LR is the length of LArule, then a number from 0 to LR-1 can |
|
|
specify both a rule and a state where the rule might be applied. |
|
|
*/ |
|
|
|
|
|
extern rule_t **LArule; |
|
|
|
|
|
/* LA is a LR by NTOKENS matrix of bits. LA[l, i] is 1 if the rule |
|
|
LAruleno[l] is applicable in the appropriate state when the next |
|
|
token is symbol i. If LA[l, i] and LA[l, j] are both 1 for i != j, |
|
|
it is a conflict. */ |
|
|
|
|
|
extern bitsetv LA; |
|
|
|
|
64 |
|
|
65 |
#endif /* !LALR_H_ */ |
#endif /* !LALR_H_ */ |