Our description of Hoof files is now complete except for the description of the type specifications given to fields. While the specifications themselves are fairly simple, there are a number of predefined suif types for which the semantics must be understood in order to fully understand Hoof file type declarations.
The syntax is:
<type_specification> ::= <type_spec> | <type_spec> * <pointer_qual>
<type_spec> ::= <identifier> <template_part>
<template_part> ::= "<" <type_specifications> ">" |
<pointer_qual> ::= owner | reference
A type specification is either a simple identifier, a template type, or a pointer to either of these. In the case of a pointer type, the is followed by either owner or reference to denote whether the object pointed to by this field is owned by this object.