* src/closure.c (set_fderives): De-obfuscate.

This commit is contained in:
Akim Demaille
2001-12-05 09:40:00 +00:00
parent 841822701a
commit 1cbcf2e795
2 changed files with 12 additions and 39 deletions

View File

@@ -1,3 +1,8 @@
2001-12-05 Akim Demaille <akim@epita.fr>
* src/closure.c (set_fderives): De-obfuscate.
2001-12-05 Akim Demaille <akim@epita.fr>
* src/closure.c (print_firsts, print_fderives): De-obfuscate.

View File

@@ -128,10 +128,7 @@ set_firsts (void)
{
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 @@ set_firsts (void)
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 ();