| 1661 | } |
| 1662 | |
| 1663 | void pack_names() |
| 1664 | { |
| 1665 | register bucket *bp; |
| 1666 | register char *p, *s, *t; |
| 1667 | |
| 1668 | name_pool_size = 13; /* 13 == sizeof("$end") + sizeof("$accept") */ |
| 1669 | for (bp = first_symbol; bp; bp = bp->next) |
| 1670 | name_pool_size += strlen(bp->name) + 1; |
| 1671 | name_pool = MALLOC(name_pool_size); |
| 1672 | if (name_pool == 0) no_space(); |
| 1673 | |
| 1674 | strcpy(name_pool, "$accept"); |
| 1675 | strcpy(name_pool+8, "$end"); |
| 1676 | t = name_pool + 13; |
| 1677 | for (bp = first_symbol; bp; bp = bp->next) { |
| 1678 | p = t; |
| 1679 | s = bp->name; |
| 1680 | while ((*t++ = *s++)) continue; |
| 1681 | FREE(bp->name); |
| 1682 | bp->name = p; } |
| 1683 | } |
| 1684 | |
| 1685 | void check_symbols() |
| 1686 | { |