606 |
} |
} |
607 |
|
|
608 |
|
|
609 |
|
/*----------------------------------------. |
610 |
|
| Output the symbol destructors to OOUT. | |
611 |
|
`----------------------------------------*/ |
612 |
|
|
613 |
|
static void |
614 |
|
symbol_destructors_output (FILE *out) |
615 |
|
{ |
616 |
|
int i; |
617 |
|
int first = 1; |
618 |
|
|
619 |
|
fputs ("m4_define([b4_symbol_destructors], \n[", out); |
620 |
|
for (i = 0; i < nsyms; ++i) |
621 |
|
if (symbols[i]->destructor) |
622 |
|
{ |
623 |
|
symbol_t *symbol = symbols[i]; |
624 |
|
|
625 |
|
/* Symbol-number, destructor. */ |
626 |
|
fprintf (out, "%s[[[%d]], [[%s]], [[%s]]]", |
627 |
|
first ? "" : ",\n", |
628 |
|
symbol->number, symbol->destructor, symbol->type_name); |
629 |
|
|
630 |
|
first = 0; |
631 |
|
} |
632 |
|
fputs ("])\n\n", out); |
633 |
|
} |
634 |
|
|
635 |
|
|
636 |
static void |
static void |
637 |
save_column (int symbol, int default_state) |
save_column (int symbol, int default_state) |
638 |
{ |
{ |
1046 |
|
|
1047 |
actions_output (out); |
actions_output (out); |
1048 |
token_definitions_output (out); |
token_definitions_output (out); |
1049 |
|
symbol_destructors_output (out); |
1050 |
|
|
1051 |
muscles_m4_output (out); |
muscles_m4_output (out); |
1052 |
|
|