Type = TypeName | ArrayType | PackedType | EnumType | ObjectType | ProcedureType | RecordType | RefType | SetType | SubrangeType | "(" Type ")". ArrayType = ARRAY [Type {"," Type}] OF Type. PackedType = BITS ConstExpr FOR Type. EnumType = "{" [IdList] "}". ObjectType = [TypeName | ObjectType] [Brand] OBJECT Fields [METHODS Methods] [OVERRIDES Overrides] END. ProcedureType = PROCEDURE Signature. RecordType = RECORD Fields END. RefType = [UNTRACED] [Brand] REF Type. SetType = SET OF Type. SubrangeType = "[" ConstExpr ".." ConstExpr "]". Brand = BRANDED [ConstExpr]. Fields = [ Field {";" Field} [";"] ]. Field = IdList (":" Type & ":=" ConstExpr). Methods = [ Method {";" Method} [";"] ]. Method = Id Signature [":=" ConstExpr]. Overrides = [ Override {";" Override} [";"] ]. Override = Id ":=" ConstExpr .