A record declaration has a form such as:
record field1, ... , fieldn : type1 ; ... end
Such a declaration is processed as follows:
- Initialize offset within the record to be 0.
- For each entry group,
- Find the symbol table entry for the type .
- Allocate storage within the record using the storage
allocation algorithm and size of type .
- Make a symbol table entry for each field, filling in its
print name, type, offset in the record, and size.
- Link the entries for the fields to an entry for the record.
- The size of the record is the total size given by the storage
allocation algorithm, rounded up to whole words, e.g. multiple of 8.
- Variant records simply restart the storage allocation at the
place where the variant part begins. Total size is the maximum size
of the variants.