[gforth] / gforth / mini-oof.fs  

gforth: gforth/mini-oof.fs

File: [gforth] / gforth / mini-oof.fs (download)
Revision: 1.5, Tue Feb 16 06:32:28 1999 UTC (14 years, 3 months ago) by crook
Branch: MAIN
Changes since 1.4: +32 -10 lines
-Added my name to the ToDo file under documentation
-Glossed the oof files
-Minor glossary additions elsewhere
-Another set of changes to gforth.ds; mainly the addition of material
 to the introductory chapter. Also, re-organised stuff in the oof
 sections and made a typo pass over a few other bits.

: method ( m v -- m' v ) \ mini-oof
    \G Define a method.
    Create  over , swap cell+ swap
  DOES> ( ... o -- ... ) @ over @ + @ execute ;

: var ( m v size -- m v' ) \ mini-oof
    \G Define a variable with @var{size} bytes.
    Create  over , +
  DOES> ( o -- addr ) @ + ;

: class ( class -- class methods vars ) \ mini-oof
    \G Start the definition of a class.
    dup 2@ ;

: end-class  ( class methods vars -- ) \ mini-oof
    \G End the definition of a class.
    Create  here >r , dup , 2 cells ?DO ['] noop , 1 cells +LOOP
    cell+ dup cell+ r> rot @ 2 cells /string move ;

: defines ( xt class "name" -- ) \ mini-oof
    \G Bind @var{xt} to the method @var{name} in class @var{class}.
    ' >body @ + ! ;

: new ( class -- o ) \ mini-oof
    \G Create a new incarnation of the class @var{class}.
    here over @ allot swap over ! ;

: :: ( class "name" -- ) \ mini-oof colon-colon
    \G Compile the method @var{name} of the class @var{class} (not immediate!).
    ' >body @ + @ compile, ;

Create object ( -- a-addr ) \ mini-oof
1 cells , 2 cells ,
\G @var{object} is the base class of all objects.

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help