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))))