nlookaheads is a new member.
Adjust all users.
* src/lalr.h (nlookaheads): Remove this orphan declaration.
* src/lalr.c (initialize_lookaheads): Set nlookaheads for each
state.
+2001-12-17 Akim Demaille <akim@epita.fr>
+
+ * src/state.h (state_t): Rename lookaheads as lookaheadsp.
+ nlookaheads is a new member.
+ Adjust all users.
+ * src/lalr.h (nlookaheads): Remove this orphan declaration.
+ * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
+ state.
+
+
2001-12-17 Akim Demaille <akim@epita.fr>
* src/files.h, src/files.c (open_files, close_files): Remove.
/* Loop over all rules which require lookahead in this state. First
check for shift-reduce conflict, and try to resolve using
precedence */
- for (i = state_table[state]->lookaheads;
- i < state_table[state + 1]->lookaheads;
+ for (i = state_table[state]->lookaheadsp;
+ i < state_table[state + 1]->lookaheadsp;
++i)
if (rule_table[LAruleno[i]].prec)
for (j = 0; j < tokensetsize; ++j)
/* Loop over all rules which require lookahead in this state. Check
for conflicts not resolved above. */
- for (i = state_table[state]->lookaheads;
- i < state_table[state + 1]->lookaheads;
+ for (i = state_table[state]->lookaheadsp;
+ i < state_table[state + 1]->lookaheadsp;
++i)
{
for (j = 0; j < tokensetsize; ++j)
if (!SHIFT_IS_DISABLED (shiftp, i))
SETBIT (shiftset, SHIFT_SYMBOL (shiftp, i));
- for (i = state_table[state]->lookaheads;
- i < state_table[state + 1]->lookaheads;
+ for (i = state_table[state]->lookaheadsp;
+ i < state_table[state + 1]->lookaheadsp;
++i)
for (k = 0; k < tokensetsize; ++k)
lookaheadset[k] |= LA (i)[k];
int i;
int rrc_count = 0;
- int m = state_table[state]->lookaheads;
- int n = state_table[state + 1]->lookaheads;
+ int m = state_table[state]->lookaheadsp;
+ int n = state_table[state + 1]->lookaheadsp;
if (n - m < 2)
return 0;
{
int i;
int j;
- int m = state_table[state]->lookaheads;
- int n = state_table[state + 1]->lookaheads;
+ int m = state_table[state]->lookaheadsp;
+ int n = state_table[state + 1]->lookaheadsp;
shifts *shiftp = state_table[state]->shifts;
errs *errp = state_table[state]->errs;
int nodefault = 0;
short *np;
reductions *rp;
- size_t nLA = state_table[nstates]->lookaheads;
+ size_t nLA = state_table[nstates]->lookaheadsp;
if (!nLA)
nLA = 1;
int found;
shorts *sp;
- i = state_table[stateno]->lookaheads;
- k = state_table[stateno + 1]->lookaheads;
+ i = state_table[stateno]->lookaheadsp;
+ k = state_table[stateno + 1]->lookaheadsp;
found = 0;
while (!found && i < k)
{
int i;
shorts *sp;
- for (i = 0; i < state_table[nstates]->lookaheads; i++)
+ for (i = 0; i < state_table[nstates]->lookaheadsp; i++)
for (sp = lookback[i]; sp; sp = sp->next)
{
int size = LA (i + 1) - LA (i);
}
/* Free LOOKBACK. */
- for (i = 0; i < state_table[nstates]->lookaheads; i++)
+ for (i = 0; i < state_table[nstates]->lookaheadsp; i++)
LIST_FREE (shorts, lookback[i]);
XFREE (lookback);
for (i = 0; i < nstates; i++)
{
int k;
+ int nlookaheads = 0;
reductions *rp = state_table[i]->reductions;
shifts *sp = state_table[i]->shifts;
- state_table[i]->lookaheads = count;
-
if (rp
&& (rp->nreds > 1 || (sp->nshifts && SHIFT_IS_SHIFT (sp, 0))))
- count += rp->nreds;
+ nlookaheads += rp->nreds;
else
state_table[i]->consistent = 1;
state_table[i]->consistent = 0;
break;
}
+
+ state_table[i]->nlookaheads = nlookaheads;
+ state_table[i]->lookaheadsp = count;
+ count += nlookaheads;
}
/* Seems to be needed by conflicts.c. */
state_table[nstates] = STATE_ALLOC (0);
- state_table[nstates]->lookaheads = count;
+ state_table[nstates]->lookaheadsp = count;
}
void
extern int tokensetsize;
-/* The number of lookaheads. */
-extern size_t nlookaheads;
#endif /* !LALR_H_ */
int j;
/* loop over all the rules available here which require
lookahead */
- m = state_table[state]->lookaheads;
- n = state_table[state + 1]->lookaheads;
+ m = state_table[state]->lookaheadsp;
+ n = state_table[state + 1]->lookaheadsp;
for (i = n - 1; i >= m; i--)
/* and find each token which the rule finds acceptable
char consistent;
/* Used in LALR, not LR(0). */
- short lookaheads;
+ /* Pseudo pointer into LA. */
+ short lookaheadsp;
+ int nlookaheads;
/* Its items. */
short nitems;