 
 
 
 
 
 
 
 
 
 
(
                   Extended Data Objects for Forth.
                      Written by George Hawkins
                 Moderator of the "Fifth" Conference
                    On the East Coast Forth Board
           Modified by R. J. Brown, Elijah Laboratories Inc.
   Modified to be compatible with ANS X3/J14-TC BASIS6, and also to permit
more flexibility in structure declarations, especially with regard to
vectors.
)
: DEF ( type -- ) \ C			   \ Define a scalar type.
      \ <type> \ 
      ( -- type ) \ R
      CONSTANT ;
: S{ ( -- offset )			   \ Initiate a structure definition.
     0 ;
: :: ( old-offset type -- new-offset ) \ C \ Define a structure component.
     \ <component> \
     ( -- new-offset ) \ R
     CREATE OVER , + 
     DOES> @ + ;
: }S ( offset -- type )  		   \ End a structure definition.
     ; 
: [*] ( object-definition -- ) \ C	   \ Define a vector operator.
      \ <vector-operator> \
      ( index base-addr -- element-addr ) \ R
      DUP CREATE ,             
      DOES> @ ROT * + ;        
: DEF[] ( element-type #elements -- ) \ C  \ Define a vector.
        \ <vector-type> \
        ( -- vector-type ) \ R
        * CONSTANT ;