365 |
/* rule # : LHS -> RHS */ |
/* rule # : LHS -> RHS */ |
366 |
fprintf (out, "%s\n\n", _("Grammar")); |
fprintf (out, "%s\n\n", _("Grammar")); |
367 |
fprintf (out, " %s\n", _("Number, Line, Rule")); |
fprintf (out, " %s\n", _("Number, Line, Rule")); |
368 |
for (i = 1; i <= nrules; i++) |
for (i = 1; i < nrules + 1; i++) |
369 |
/* Don't print rules disabled in reduce_grammar_tables. */ |
/* Don't print rules disabled in reduce_grammar_tables. */ |
370 |
if (rules[i].useful) |
if (rules[i].useful) |
371 |
{ |
{ |
384 |
|
|
385 |
/* TERMINAL (type #) : rule #s terminal is on RHS */ |
/* TERMINAL (type #) : rule #s terminal is on RHS */ |
386 |
fprintf (out, "%s\n\n", _("Terminals, with rules where they appear")); |
fprintf (out, "%s\n\n", _("Terminals, with rules where they appear")); |
387 |
for (i = 0; i <= max_user_token_number; i++) |
for (i = 0; i < max_user_token_number + 1; i++) |
388 |
if (token_translations[i] != 2) |
if (token_translations[i] != 2) |
389 |
{ |
{ |
390 |
buffer[0] = 0; |
buffer[0] = 0; |
393 |
END_TEST (50); |
END_TEST (50); |
394 |
sprintf (buffer, " (%d)", i); |
sprintf (buffer, " (%d)", i); |
395 |
|
|
396 |
for (j = 1; j <= nrules; j++) |
for (j = 1; j < nrules + 1; j++) |
397 |
for (rule = rules[j].rhs; *rule >= 0; rule++) |
for (rule = rules[j].rhs; *rule >= 0; rule++) |
398 |
if (*rule == token_translations[i]) |
if (*rule == token_translations[i]) |
399 |
{ |
{ |
407 |
|
|
408 |
|
|
409 |
fprintf (out, "%s\n\n", _("Nonterminals, with rules where they appear")); |
fprintf (out, "%s\n\n", _("Nonterminals, with rules where they appear")); |
410 |
for (i = ntokens; i <= nsyms - 1; i++) |
for (i = ntokens; i < nsyms; i++) |
411 |
{ |
{ |
412 |
int left_count = 0, right_count = 0; |
int left_count = 0, right_count = 0; |
413 |
|
|
414 |
for (j = 1; j <= nrules; j++) |
for (j = 1; j < nrules + 1; j++) |
415 |
{ |
{ |
416 |
if (rules[j].lhs == i) |
if (rules[j].lhs == i) |
417 |
left_count++; |
left_count++; |
434 |
END_TEST (50); |
END_TEST (50); |
435 |
sprintf (buffer + strlen (buffer), _(" on left:")); |
sprintf (buffer + strlen (buffer), _(" on left:")); |
436 |
|
|
437 |
for (j = 1; j <= nrules; j++) |
for (j = 1; j < nrules + 1; j++) |
438 |
{ |
{ |
439 |
END_TEST (65); |
END_TEST (65); |
440 |
if (rules[j].lhs == i) |
if (rules[j].lhs == i) |
448 |
sprintf (buffer + strlen (buffer), ","); |
sprintf (buffer + strlen (buffer), ","); |
449 |
END_TEST (50); |
END_TEST (50); |
450 |
sprintf (buffer + strlen (buffer), _(" on right:")); |
sprintf (buffer + strlen (buffer), _(" on right:")); |
451 |
for (j = 1; j <= nrules; j++) |
for (j = 1; j < nrules + 1; j++) |
452 |
{ |
{ |
453 |
for (rule = rules[j].rhs; *rule >= 0; rule++) |
for (rule = rules[j].rhs; *rule >= 0; rule++) |
454 |
if (*rule == i) |
if (*rule == i) |