All structures in these documents, unless otherwise mentioned, are sub-types of a single structure, named zodiac:zodiac. This structure has the form
zodiac (origin start finish)
where origin is an zodiac:origin struct, while start and finish are zodiac:location structs. The origin field is currently unused, and the zodiac:origin struct is correspondingly unspecified. Locations are represented as a tuple of the line number, column number, file offset and file name:
location (line column offset file)
The line and column fields contain positive integers starting at 1, while offset contains a non-negative integer that starts at 0. The type of file is left unspecified. The zodiac:period struct provides the location of periods in improper lists:
period (location)
Note that zodiac:origin, zodiac:location and zodiac:period are not sub-types of zodiac:zodiac.