[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
26-fyi-set-fderives.patch
From: |
Akim Demaille |
Subject: |
26-fyi-set-fderives.patch |
Date: |
Wed, 05 Dec 2001 08:26:12 +0100 |
Index: ChangeLog
from Akim Demaille <address@hidden>
* src/closure.c (set_fderives): De-obfuscate.
Index: src/closure.c
--- src/closure.c Mon, 03 Dec 2001 19:36:09 +0100 akim
+++ src/closure.c Mon, 03 Dec 2001 19:42:06 +0100 akim
@@ -128,10 +128,7 @@
{
int symbol = ritem[rule_table[derives[i][j]].rhs];
if (ISVAR (symbol))
- {
- symbol -= ntokens;
- SETBIT (FIRSTS (i - ntokens), symbol);
- }
+ SETBIT (FIRSTS (i - ntokens), symbol - ntokens);
}
RTC (firsts, nvars);
@@ -153,46 +150,17 @@
static void
set_fderives (void)
{
- unsigned *rrow;
- unsigned *vrow;
- int j;
- unsigned cword;
- short *rp;
- int b;
-
- int ruleno;
- int i;
+ int i, j, k;
fderives = XCALLOC (unsigned, nvars * rulesetsize) - ntokens * rulesetsize;
set_firsts ();
- rrow = FDERIVES (ntokens);
-
- for (i = ntokens; i < nsyms; i++)
- {
- vrow = FIRSTS (i - ntokens);
- cword = *vrow++;
- b = 0;
- for (j = ntokens; j < nsyms; j++)
- {
- if (cword & (1 << b))
- {
- rp = derives[j];
- while ((ruleno = *rp++) > 0)
- SETBIT (rrow, ruleno);
- }
-
- b++;
- if (b >= BITS_PER_WORD && j + 1 < nsyms)
- {
- cword = *vrow++;
- b = 0;
- }
- }
-
- rrow += rulesetsize;
- }
+ for (i = ntokens; i < nsyms; ++i)
+ for (j = ntokens; j < nsyms; ++j)
+ if (BITISSET (FIRSTS (i - ntokens), j - ntokens))
+ for (k = 0; derives[j][k] > 0; ++k)
+ SETBIT (FDERIVES (i), derives[j][k]);
if (trace_flag)
print_fderives ();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 26-fyi-set-fderives.patch,
Akim Demaille <=