\ 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