pike.git / lib / modules / ADT.pmod / Stack.pike

version» Context lines:

pike.git/lib/modules/ADT.pmod/Stack.pike:1:   #pike __REAL_VERSION__    - // $Id: Stack.pike,v 1.8 2002/06/14 00:56:33 nilsson Exp $ + // $Id: Stack.pike,v 1.9 2002/11/29 00:30:03 nilsson Exp $      //! This class implements a simple stack. Instead of adding and removing   //! elements to an array, and thus making it vary in size for every push   //! and pop operation, this stack tries to keep the stack size constant.   //! If however the stack risks to overflow, it will allocate double its   //! current size, i.e. pushing an element on an full 32 slot stack will   //! result in a 64 slot stack with 33 elements.      int ptr;   array arr;
pike.git/lib/modules/ADT.pmod/Stack.pike:124:   //! a third stack will all the stack elements from   //! the two first stacks.   this_program `+(this_program s) {    array elem = arr[..ptr-1]+values(s);    this_program ns = this_program(1);    ns->set_stack(elem);    return ns;   }      string _sprintf(int t) { -  if(t=='t') return "ADT.Stack"; -  if(t=='O') return sprintf("ADT.Stack%O", _values()); -  error("Can't display ADT.Stack as %c.", t); +  return t=='O' && sprintf("%O%O", this_program, _values());   }