JDK DFA states
It's an NFA not a DFA
Parser rules, partially derived at runtime
Change rule field name to better reflect what it represents