sp1 = sp = ritem + sitems[i];
- while (*sp > 0)
+ while (*sp >= 0)
sp++;
rule = -(*sp);
fputc ('.', out);
- for (/* Nothing */; *sp > 0; ++sp)
+ for (/* Nothing */; *sp >= 0; ++sp)
fprintf (out, " %s", escape (tags[*sp]));
- fprintf (out, _(" (rule %d)"), rule);
+ fprintf (out, _(" (rule %d)"), rule - 1);
fputc ('\n', out);
}
int rule = redp->rules[0];
int symbol = rule_table[rule].lhs;
fprintf (out, _(" $default\treduce using rule %d (%s)\n\n"),
- rule, escape (tags[symbol]));
+ rule - 1, escape (tags[symbol]));
return;
}
for (i = 0; i < ntokens; i++)
if (BITISSET (lookaheadset, i))
fprintf (out, _(" %-4s\t[reduce using rule %d (%s)]\n"),
- escape (tags[i]), default_rule,
+ escape (tags[i]), default_rule - 1,
escape2 (tags[rule_table[default_rule].lhs]));
fprintf (out, _(" $default\treduce using rule %d (%s)\n\n"),
- default_rule, escape (tags[rule_table[default_rule].lhs]));
+ default_rule - 1, escape (tags[rule_table[default_rule].lhs]));
}
else if (state->nlookaheads >= 1)
{
fprintf (out,
_(" %-4s\treduce using rule %d (%s)\n"),
escape (tags[i]),
- LAruleno[state->lookaheadsp + j],
+ LAruleno[state->lookaheadsp + j] - 1,
escape2 (tags[rule_table[LAruleno[state->lookaheadsp + j]].lhs]));
else
defaulted = 1;
fprintf (out,
_(" %-4s\treduce using rule %d (%s)\n"),
escape (tags[i]),
- LAruleno[default_LA],
+ LAruleno[default_LA] - 1,
escape2 (tags[rule_table[LAruleno[default_LA]].lhs]));
defaulted = 0;
fprintf (out,
_(" %-4s\t[reduce using rule %d (%s)]\n"),
escape (tags[i]),
- LAruleno[state->lookaheadsp + j],
+ LAruleno[state->lookaheadsp + j] - 1,
escape2 (tags[rule_table[LAruleno[state->lookaheadsp + j]].lhs]));
}
}
if (default_LA >= 0)
fprintf (out, _(" $default\treduce using rule %d (%s)\n"),
- default_rule, escape (tags[rule_table[default_rule].lhs]));
+ default_rule - 1,
+ escape (tags[rule_table[default_rule].lhs]));
}
}
if (shiftp->nshifts == 0 && redp->nreds == 0)
{
if (final_state == state->number)
- fprintf (out, _(" $default\taccept\n"));
+ fprintf (out, _(" $default\taccept\n"));
else
- fprintf (out, _(" NO ACTIONS\n"));
+ fprintf (out, _(" NO ACTIONS\n"));
return;
}
if (rule_table[i].useful)
{
fprintf (out, _(" %3d %3d %s ->"),
- i, rule_table[i].line, escape (tags[rule_table[i].lhs]));
+ i - 1, rule_table[i].line, escape (tags[rule_table[i].lhs]));
rule = &ritem[rule_table[i].rhs];
- if (*rule > 0)
- while (*rule > 0)
+ if (*rule >= 0)
+ while (*rule >= 0)
fprintf (out, " %s", escape (tags[*rule++]));
else
fprintf (out, " /* %s */", _("empty"));
sprintf (buffer, " (%d)", i);
for (j = 1; j <= nrules; j++)
- for (rule = &ritem[rule_table[j].rhs]; *rule > 0; rule++)
+ for (rule = &ritem[rule_table[j].rhs]; *rule >= 0; rule++)
if (*rule == token_translations[i])
{
END_TEST (65);
- sprintf (buffer + strlen (buffer), " %d", j);
+ sprintf (buffer + strlen (buffer), " %d", j - 1);
break;
}
fprintf (out, "%s\n", buffer);
{
if (rule_table[j].lhs == i)
left_count++;
- for (rule = &ritem[rule_table[j].rhs]; *rule > 0; rule++)
+ for (rule = &ritem[rule_table[j].rhs]; *rule >= 0; rule++)
if (*rule == i)
{
right_count++;
{
END_TEST (65);
if (rule_table[j].lhs == i)
- sprintf (buffer + strlen (buffer), " %d", j);
+ sprintf (buffer + strlen (buffer), " %d", j - 1);
}
}
sprintf (buffer + strlen (buffer), _(" on right:"));
for (j = 1; j <= nrules; j++)
{
- for (rule = &ritem[rule_table[j].rhs]; *rule > 0; rule++)
+ for (rule = &ritem[rule_table[j].rhs]; *rule >= 0; rule++)
if (*rule == i)
{
END_TEST (65);
- sprintf (buffer + strlen (buffer), " %d", j);
+ sprintf (buffer + strlen (buffer), " %d", j - 1);
break;
}
}
only its kernel. Requires to run closure, which need memory
allocation/deallocation. */
if (trace_flag)
- new_closure (nitems);
+ new_closure (nritems);
/* Storage for print_reductions. */
shiftset = XCALLOC (unsigned, tokensetsize);
lookaheadset = XCALLOC (unsigned, tokensetsize);