private void Switch(Rules.SwitchInfo info) { for (int i = 0; i < info.pops; i++) { stack.Pop(); } if (info.next != null) { stack.Add(info.next); } }
private Rules.SwitchInfo GetSwitchInfo(string text) { string contextName; int pops; ParseSwitch(text, out pops, out contextName); Rules.SwitchInfo info = new Rules.SwitchInfo(); info.pops = pops; if (contextName != null) { contextOf.TryGetValue(contextName.ToLowerInvariant(), out info.next); } else { info.next = null; } return(info); }