internal IokeObject Pop() { if(head != null) { while(Message.IsTerminator(head) && Message.GetNext(head) != null) { head = Message.GetNext(head); Message.SetPrev(head, null); } } IokeObject headToReturn = head; head = chains.head; last = chains.last; chains = chains.parent; return headToReturn; }
internal void Push(int precedence, IokeObject op, Level.Type type) { currentLevel = new Level(precedence, op, currentLevel, type); chains = new BufferedChain(chains, last, head); last = head = null; }