public override void ExitDecision(int decisionNumber)
{
DecisionEvent d = decisionStack.Pop();
d.stopTime = DateTime.Now;
int lastTokenIndex = lastRealTokenTouchedInDecision.TokenIndex;
int numHidden = GetNumberOfHiddenTokens(d.startIndex, lastTokenIndex);
int depth = lastTokenIndex - d.startIndex - numHidden + 1; // +1 counts consuming start token as 1
d.k = depth;
d.decision.maxk = Math.Max(d.decision.maxk, depth);
if (dump)
{
Console.WriteLine("exitDecision " + decisionNumber + " in " + d.decision.ruleName +
" lookahead " + d.k + " max token " + lastRealTokenTouchedInDecision);
}
decisionEvents.Add(d); // done with decision; track all
}