| java.lang.Object org.antlr.tool.FASerializer
FASerializer | public class FASerializer (Code) | | An aspect of FA (finite automata) that knows how to dump them to serialized
strings.
|
Field Summary | |
protected Grammar | grammar | protected Set | markedStates To prevent infinite recursion when walking state machines, record
which states we've visited. | protected int | stateCounter Each state we walk will get a new state number for serialization
purposes. | protected Map | stateNumberTranslator Rather than add a new instance variable to NFA and DFA just for
serializing machines, map old state numbers to new state numbers
by a State object -> Integer new state number HashMap. |
markedStates | protected Set markedStates(Code) | | To prevent infinite recursion when walking state machines, record
which states we've visited. Make a new set every time you start
walking in case you reuse this object. Multiple threads will trash
this shared variable. Use a different FASerializer per thread.
|
stateCounter | protected int stateCounter(Code) | | Each state we walk will get a new state number for serialization
purposes. This is the variable that tracks state numbers.
|
stateNumberTranslator | protected Map stateNumberTranslator(Code) | | Rather than add a new instance variable to NFA and DFA just for
serializing machines, map old state numbers to new state numbers
by a State object -> Integer new state number HashMap.
|
FASerializer | public FASerializer(Grammar grammar)(Code) | | This aspect is associated with a grammar; used to get token names
|
serialize | public String serialize(State s, boolean renumber)(Code) | | Return a string representation of a state machine. Two identical
NFAs or DFAs will have identical serialized representations. The
state numbers inside the state are not used; instead, a new number
is computed and because the serialization will walk the two
machines using the same specific algorithm, then the state numbers
will be identical. Accept states are distinguished from regular
states.
|
walkFANormalizingStateNumbers | protected void walkFANormalizingStateNumbers(State s)(Code) | | In stateNumberTranslator, get a map from State to new, normalized
state number. Used by walkSerializingFA to make sure any two
identical state machines will serialize the same way.
|
walkSerializingFA | protected void walkSerializingFA(List lines, State s)(Code) | | |
|
|