* 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:
Akim Demaille
2001-11-19 10:08:54 +00:00
parent a845a69707
commit bb527fc271
5 changed files with 23 additions and 15 deletions

View File

@@ -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...

View File

@@ -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++)
{

View File

@@ -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++)

View File

@@ -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. */

View File

@@ -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