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