version 1.2, 1998/07/05 20:49:59
|
version 1.8, 2012/05/26 10:20:01
|
Line 1
|
Line 1
|
: method ( m v -- m' v ) Create over , swap cell+ swap |
\ Mini-OOF 12apr98py |
|
: method ( m v "name" -- m' v ) Create over , swap cell+ swap |
DOES> ( ... o -- ... ) @ over @ + @ execute ; |
DOES> ( ... o -- ... ) @ over @ + @ execute ; |
: var ( m v size -- m v' ) Create over , + |
: var ( m v size "name" -- m v' ) Create over , + |
DOES> ( o -- addr ) @ + ; |
DOES> ( o -- addr ) @ + ; |
: class ( class -- class methods vars ) dup 2@ ; |
: class ( class -- class methods vars ) dup 2@ ; |
: end-class ( class methods vars -- ) |
: end-class ( class methods vars "name" -- ) |
Create here >r , dup , 2 cells ?DO ['] noop , 1 cells +LOOP |
Create here >r , dup , 2 cells ?DO ['] noop , 1 cells +LOOP |
cell+ dup cell+ swap @ 2 - cells r> 2 cells + swap move ; |
cell+ dup cell+ r> rot @ 2 cells /string move ; |
: defines ( xt class "name" -- ) ' >body @ + ! ; |
: >vt ( class "name" -- addr ) ' >body @ + ; |
|
: bind ( class "name" -- xt ) >vt @ ; |
|
: defines ( xt class "name" -- ) >vt ! ; |
: new ( class -- o ) here over @ allot swap over ! ; |
: new ( class -- o ) here over @ allot swap over ! ; |
: :: ( class "name" -- ) ' >body @ + @ compile, ; |
: :: ( class "name" -- ) bind compile, ; |
Create object 1 cells , 2 cells , |
Create object 1 cells , 2 cells , |