[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

A LIST defines a group very much like CAT  but it also gives a scope for
PROPs (see below).  And unlike CATs, LISTs should not be merged without
understanding their contents.

Structurally, a LIST is a chunk with ckID "LIST" containing a "contents
type" ID, optional shared properties, and the nested contents (FORMs,
LISTs, and CAT s), in that order.  The ckSize of each contained chunk is a
relative pointer to the next one.  A LIST is not an arbitrary linked
list - the cells are simply concatenated.

    LIST         ::= "LIST" #{ ContentsType PROP* (FORM | LIST | CAT)* }
    ContentsType ::= ID