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

Here's a regular expression summary of the FORM 8SVX syntax.  This could
be an IFF file or part of one.

    8SVX     ::= "FORM" #{  "8SVX" VHDR [NAME] [Copyright] [AUTH] ANNO*
                            [ATAK] [RLSE] BODY }

    VHDR     ::= "VHDR" #{ Voice8Header     }
    NAME     ::= "NAME" #{ CHAR*    } [0]
    Copyright::= "(c) " #{ CHAR*    } [0]
    AUTH     ::= "AUTH" #{ CHAR*    } [0]
    ANNO     ::= "ANNO" #{ CHAR*    } [0]

    ATAK     ::= "ATAK" #{ EGPoint* }
    RLSE     ::= "RLSE" #{ EGPoint* }
    BODY     ::= "FORM" #{ BYTE*    } [0]

The token "#" represents a ckSize LONG count of the following {braced}
data bytes.  E.g., a VHDR's "#" should equal sizeof(Voice8Header).
Literal items are shown in "quotes", [square bracket items] are optional,
and "*" means 0 or more replications.  A sometimes-needed pad byte is
shown as "[0]".

Actually, the order of chunks in a FORM 8SVX is not as strict as this
regular expression indicates.  The property chunks VHDR, NAME, Copyright,
and AUTH may actually appear in any order as long as they all precede the
BODY chunk.  The optional data chunks ANNO, ATAK, and RLSE don't have to
precede the BODY chunk.  And of course, new kinds of chunks may appear
inside a FORM 8SVX in the future.