Hey Akim,
> I also think changing the hash maps to bitset vectors is fine; I
> initially didn’t want to since I knew they could be pretty sparse.
>
> Then, instead of a bitsetv, a table of malloced bitsets should do it. It
> might be sparse, but on a quite compact range, isn't it?
>
I realized this afternoon that it would probably be fine to put all of
these edges in the state-items themselves:
struct state_item
{
...
struct state_item *transition;
bitset productions;
bitset revs;
};
The edges being in separate data structures is a holdover from the CUP
implementation, and I'm not sure if it makes sense to do this anymore.
~Vincent