public virtual ATN Deserialize(char[] data)
{
Reset (data);
CheckVersion ();
CheckUUID ();
ATN atn = ReadATN ();
ReadStates (atn);
ReadRules (atn);
ReadModes (atn);
IList<IntervalSet> sets = ReadSets (atn);
ReadEdges (atn, sets);
ReadDecisions (atn);
ReadLexerActions (atn);
MarkPrecedenceDecisions(atn);
if (deserializationOptions.VerifyAtn) {
VerifyATN (atn);
}
if (deserializationOptions.GenerateRuleBypassTransitions && atn.grammarType == ATNType.Parser) {
GenerateRuleBypassTransitions (atn);
}
if (deserializationOptions.Optimize)
{
OptimizeATN (atn);
}
IdentifyTailCalls(atn);
return atn;
}