RECORD <fieldDecl> { ";" <fieldDecl> ... } END ";" where <fieldDecl> = <id> [ ":" <type> ] [ ":=" <constant expr> ]
Record types group related data items together in a unified data structure. Each data item, or field, has a name, a type, and an optional constant initializer. If you supply the constant initializer, you can omit the type; it will be inferred from the constant. Here are some examples:
TYPE (* Record type with uninitialized fields *) Rec1 = RECORD x, y: INTEGER; name: TEXT END; (* Record type with initialized fields *) Rec2 = RECORD x, y := 0; (* Type is INTEGER *) name := "" (* Type is TEXT *) END;