mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
* src/lalr.h (LA): New macro to access to the variable LA.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c: * src/lalr.c: Adjust.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2001-11-19 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/lalr.h (LA): New macro to access to the variable LA.
|
||||
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
|
||||
* src/lalr.c: Adjust.
|
||||
|
||||
2001-11-19 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/lalr.c (initialize_LA): Only initialize LA. Let...
|
||||
|
||||
@@ -97,7 +97,7 @@ resolve_sr_conflict (int state, int lookaheadnum)
|
||||
redprec = rprec[LAruleno[lookaheadnum]];
|
||||
|
||||
mask = 1;
|
||||
fp1 = LA + lookaheadnum * tokensetsize;
|
||||
fp1 = LA (lookaheadnum);
|
||||
fp2 = lookaheadset;
|
||||
for (i = 0; i < ntokens; i++)
|
||||
{
|
||||
@@ -219,7 +219,7 @@ set_conflicts (int state)
|
||||
for (i = state_table[state].lookaheads; i < k; i++)
|
||||
if (rprec[LAruleno[i]])
|
||||
{
|
||||
fp1 = LA + i * tokensetsize;
|
||||
fp1 = LA (i);
|
||||
fp2 = fp1;
|
||||
fp3 = lookaheadset;
|
||||
|
||||
@@ -238,7 +238,7 @@ set_conflicts (int state)
|
||||
for conflicts not resolved above. */
|
||||
for (i = state_table[state].lookaheads; i < k; i++)
|
||||
{
|
||||
fp1 = LA + i * tokensetsize;
|
||||
fp1 = LA (i);
|
||||
fp2 = fp1;
|
||||
fp3 = lookaheadset;
|
||||
|
||||
@@ -314,7 +314,7 @@ count_sr_conflicts (int state)
|
||||
|
||||
for (i = state_table[state].lookaheads; i < k; i++)
|
||||
{
|
||||
fp1 = LA + i * tokensetsize;
|
||||
fp1 = LA (i);
|
||||
fp2 = lookaheadset;
|
||||
|
||||
while (fp2 < fp3)
|
||||
@@ -366,7 +366,7 @@ count_rr_conflicts (int state)
|
||||
return 0;
|
||||
|
||||
mask = 1;
|
||||
baseword = LA + m * tokensetsize;
|
||||
baseword = LA (m);
|
||||
for (i = 0; i < ntokens; i++)
|
||||
{
|
||||
unsigned *wordp = baseword;
|
||||
@@ -572,7 +572,7 @@ print_reductions (FILE *out, int state)
|
||||
{
|
||||
default_rule = LAruleno[m];
|
||||
|
||||
fp1 = LA + m * tokensetsize;
|
||||
fp1 = LA (m);
|
||||
fp2 = shiftset;
|
||||
fp3 = lookaheadset;
|
||||
fp4 = lookaheadset + tokensetsize;
|
||||
@@ -609,7 +609,7 @@ print_reductions (FILE *out, int state)
|
||||
if (!nodefault)
|
||||
for (i = m; i < n; i++)
|
||||
{
|
||||
fp1 = LA + i * tokensetsize;
|
||||
fp1 = LA (i);
|
||||
fp2 = shiftset;
|
||||
fp3 = lookaheadset;
|
||||
|
||||
@@ -664,7 +664,7 @@ print_reductions (FILE *out, int state)
|
||||
}
|
||||
|
||||
mask = 1;
|
||||
fp1 = LA + m * tokensetsize;
|
||||
fp1 = LA (m);
|
||||
fp2 = shiftset;
|
||||
for (i = 0; i < ntokens; i++)
|
||||
{
|
||||
|
||||
13
src/lalr.c
13
src/lalr.c
@@ -141,6 +141,11 @@ digraph (short **relation)
|
||||
XFREE (VERTICES);
|
||||
}
|
||||
|
||||
|
||||
/*--------------------.
|
||||
| Build STATE_TABLE. |
|
||||
`--------------------*/
|
||||
|
||||
static void
|
||||
set_state_table (void)
|
||||
{
|
||||
@@ -643,22 +648,18 @@ compute_lookaheads (void)
|
||||
unsigned *fp2;
|
||||
unsigned *fp3;
|
||||
shorts *sp;
|
||||
unsigned *rowp;
|
||||
shorts *sptmp; /* JF */
|
||||
|
||||
rowp = LA;
|
||||
for (i = 0; i < state_table[nstates].lookaheads; i++)
|
||||
{
|
||||
fp3 = rowp + tokensetsize;
|
||||
fp3 = LA (i + 1);
|
||||
for (sp = lookback[i]; sp; sp = sp->next)
|
||||
{
|
||||
fp1 = rowp;
|
||||
fp1 = LA (i);
|
||||
fp2 = F + tokensetsize * sp->value;
|
||||
while (fp1 < fp3)
|
||||
*fp1++ |= *fp2++;
|
||||
}
|
||||
|
||||
rowp = fp3;
|
||||
}
|
||||
|
||||
for (i = 0; i < state_table[nstates].lookaheads; i++)
|
||||
|
||||
@@ -66,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. */
|
||||
|
||||
@@ -354,7 +354,7 @@ action_row (int state)
|
||||
for (i = n - 1; i >= m; i--)
|
||||
{
|
||||
rule = -LAruleno[i];
|
||||
wordp = LA + i * tokensetsize;
|
||||
wordp = LA (i);
|
||||
mask = 1;
|
||||
|
||||
/* and find each token which the rule finds acceptable
|
||||
|
||||
Reference in New Issue
Block a user