int NextState() {
if (chr == ScanBuff.EOF)
return (state <= maxAccept && state != currentStart ? currentStart : eofNum);
else {
int rslt;
int idx = Map(chr) - NxS[state].min;
if (idx < 0) idx += 31;
if ((uint)idx >= (uint)NxS[state].rng) rslt = NxS[state].dflt;
else rslt = NxS[state].nxt[idx];
return (rslt == goStart ? currentStart : rslt);
}
}
#endregion