--- gforth/mini-oof.fs 1998/04/12 21:49:13 1.1 +++ gforth/mini-oof.fs 1998/08/24 20:17:28 1.3 @@ -1,13 +1,12 @@ -1 cells Constant cell : method ( m v -- m' v ) Create over , swap cell+ swap DOES> ( ... o -- ... ) @ over @ + @ execute ; : var ( m v size -- m v' ) Create over , + DOES> ( o -- addr ) @ + ; : class ( class -- class methods vars ) dup 2@ ; : end-class ( class methods vars -- ) - Create here >r , dup , 2 cells ?DO ['] noop , cell +LOOP - cell+ dup cell+ swap @ 2 - cells r> 2 cells + swap move ; -: defines ( xt class -- ) ' >body @ + ! ; + Create here >r , dup , 2 cells ?DO ['] noop , 1 cells +LOOP + cell+ dup cell+ swap @ 2 cells - r> 2 cells + swap move ; +: defines ( xt class "name" -- ) ' >body @ + ! ; : new ( class -- o ) here over @ allot swap over ! ; : :: ( class "name" -- ) ' >body @ + @ compile, ; Create object 1 cells , 2 cells ,