When you start the Automatic Programming Server, it creates a window containing an input area and a command menu. Click the mouse in the input area, then enter the description of your data; the input editor is an Emacs subset. After the description of your data structure is complete, click the mouse outside the input area; the system will respond with a confirming message. Repeat the process as needed to define other data types.
If the desired type is a basic type, only the basic type name needs to be specified. The basic types are:
integer
real
string
boolean
anything
avl-tree
is selected when the
user type is a basic type, the system will define an appropriate carrier
record containing that type as its contents.
A record is described by the form:
(
name   fields)
where a field is (
name   type)
.
A pointer to a type is denoted
(^
    type)
An example data declaration for a person
data structure
that could be viewed as a linked list is:
(person (name string) (age integer) (salary real) (friend (^ person)))
(
name   type)
A type is either a type name or a structuring operator applied to types. The basic types are:
integer
real
number
(any number type in Lisp)
string
symbol
boolean
anything
The structuring operators are:
(cons
type1   type2
)
(list
type1   ...  
typen)
(symbol (proplist
prop1   ...  
propn))
where each propi is (
name   type
)
(^  
type)
(pointer to a named type)
(listof
type)
(arrayof
type)
An example data declaration for a person
data structure
in Lisp is:
(person (list (name string) (age integer) (salary real) (friend (^ person))))