[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
15-fyi-LA.patch
From: |
Akim Demaille |
Subject: |
15-fyi-LA.patch |
Date: |
Mon, 19 Nov 2001 10:02:52 +0100 |
Index: ChangeLog
from Akim Demaille <address@hidden>
* 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.
Index: src/conflicts.c
--- src/conflicts.c Thu, 15 Nov 2001 23:25:10 +0100 akim
+++ src/conflicts.c Thu, 15 Nov 2001 23:48:02 +0100 akim
@@ -97,7 +97,7 @@
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 @@
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 @@
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 @@
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 @@
return 0;
mask = 1;
- baseword = LA + m * tokensetsize;
+ baseword = LA (m);
for (i = 0; i < ntokens; i++)
{
unsigned *wordp = baseword;
@@ -572,7 +572,7 @@
{
default_rule = LAruleno[m];
- fp1 = LA + m * tokensetsize;
+ fp1 = LA (m);
fp2 = shiftset;
fp3 = lookaheadset;
fp4 = lookaheadset + tokensetsize;
@@ -609,7 +609,7 @@
if (!nodefault)
for (i = m; i < n; i++)
{
- fp1 = LA + i * tokensetsize;
+ fp1 = LA (i);
fp2 = shiftset;
fp3 = lookaheadset;
@@ -664,7 +664,7 @@
}
mask = 1;
- fp1 = LA + m * tokensetsize;
+ fp1 = LA (m);
fp2 = shiftset;
for (i = 0; i < ntokens; i++)
{
Index: src/lalr.c
--- src/lalr.c Thu, 15 Nov 2001 23:33:35 +0100 akim
+++ src/lalr.c Thu, 15 Nov 2001 23:50:50 +0100 akim
@@ -141,6 +141,11 @@
XFREE (VERTICES);
}
+
+/*--------------------.
+| Build STATE_TABLE. |
+`--------------------*/
+
static void
set_state_table (void)
{
@@ -643,22 +648,18 @@
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++)
Index: src/lalr.h
--- src/lalr.h Thu, 15 Nov 2001 23:25:10 +0100 akim
+++ src/lalr.h Thu, 15 Nov 2001 23:45:34 +0100 akim
@@ -66,6 +66,7 @@
it is a conflict. */
extern unsigned *LA;
+#define LA(Rule) (LA + (Rule) * tokensetsize)
/* A structure decorating a state, with additional information. */
Index: src/output.c
--- src/output.c Thu, 15 Nov 2001 23:25:10 +0100 akim
+++ src/output.c Thu, 15 Nov 2001 23:45:49 +0100 akim
@@ -546,7 +546,7 @@
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 15-fyi-LA.patch,
Akim Demaille <=