As described in this paper, you can use an pre-computed automaton to speed up an Earley parse. I'm not interested in the rigorous proof of this, but just how the basic algorithm works so that I can implement it. Understanding this paper on my own would take a long long time, and I don't think it's justified for this algorithm because it seems simple enough, but the paper is accademic and is required to be over my head, so they didn't write it for a reader like me.
For instance, what does a transition labeled with a variable in the automaton mean? How does this thing work?