HELP LISTREAD                                       Aaron Sloman  Dec 1978

    listread() -> <list>

This procedure of no arguments reads a list from the current input stream
(i.e. *PROGLIST). The list may extend over several lines, but it must have
properly nested list-brackets; for example:

    vars list;
    listread() -> list;
    [a [a b [c] d] a b]

    list =>
    ** [a [a b [c] d] a b]

Special symbols (such as '%' and '^') which are handled specially by the
compiler when found in lists are merely included as list elements when read by
LISTREAD; for example

    vars x y;
    "cats" -> x;
    "dogs" -> y;

    [^x hate ^y] =>
    ** [cats hate dogs]

    listread() -> list;
    [^x hate ^y]

    list =>
    ** [^ x hate ^ y]

Unlike READLINE, LISTREAD makes nested lists. Also, LISTREAD requires the
brackets to be in the input stream, whereas READLINE makes a list of whatever
it finds.

See also HELP
    *READLINE    - to read in other types of items
    *REQUESTLINE - similar to READLINE, but its argument is used as prompt
    *GETLINE     - prints a line of text, then uses READLINE to read a line
    *READTILL    - reads from input stream until a specified item is read
