 
 
 
 
 
 
 
 
 
 
\ Defining word and methods for stacks.
  CONSULT ANS       \ ANS Forth X3J14 BASIS6 compatibility.
: Stack CREATE ( size -- ) \ stack \
           HERE CELL+ , CELLS ALLOT
           DOES> ;             ( -- ^sp )
: Push ( w stack -- )      \ push a word onto a stack
       DUP >R @            \ fetch sp
       cell +              \ pre-increment sp
       DUP R> !            \ save new sp
       ! ;                 \ store word in stack
: Pop ( stack -- w )       \ pop a word from a stack
      DUP >R @             \ fetch sp
      DUP @                \ fetch word from stack
      SWAP cell -          \ post-decrement sp
      R> ! ;               \ save new sp
: Top ( stack -- w )       \ fetch top of stack
      @ @ ;                \ fetch the word the pointer points to
: Empty? ( stack -- flag ) \ test for an empty stack
         DUP @ = ;         \ its empty if pointer points to its self