Contents | Prev | Next | Index
A record type is a structure consisting of a fixed number of elements, called fields, with possibly different types. In a record type declaration, for each field the name and type is specified. The scope of the field identifiers extends from the point of their declaration to the end of the record type. They are also visible within within designators refering to fields of record variables.
A record field list consists of a fixed part, variant part, or both. The first field of a variant part is called the tag field. Its value indicates which variant is assumed by the variant part. Individual variant structures are identified by case labels. These labels are constants of the type indicated by the tag field.
In the following grammar specification for record types, Java specific language extensions for Pascal are shown in red color. They include the Java modifier and Java name directives.
record_type ::= record field_seq END record ::= modifier RECORD field_seq ::= fixed_part ::= fixed_part ; variant_part ::= variant_part ::= fixed_part ; ::= fixed_part ; variant_part ; ::= variant_part ; ::= <empty> fixed_part ::= fixed_part ; field_list ::= field_list field_list ::= modifier field_id_list : type field_id_list ::= field_id_list , field_name ::= field_name field_name ::= member_id ::= member_id java_name variant_part ::= CASE tag OF variant_list tag ::= qualident ::= field_name : qualident variant_list ::= variant_list ; variant ::= variant variant ::= variant_label_list : ( field_seq ) variant_label_list ::= variant_label_list , variant_labels ::= variant_labels variant_labels ::= const_expr |
This compiler always maps record types and variants to Java classes. Notice that in this compiler, unlike other Pascal implementations, it is not possible to use variants for accessing the same data with different types.
The following are examples of record types:
RECORD
day, month, year : INTEGER;
END
RECORD
name, firstname : ARRAY [0..31] OF CHAR;
age : INTEGER;
salary : REAL
END
Contents | Prev | Next | Index
Canterbury Pascal for JVM (Last documentation update
Sep 02, 2004)
Copyright © 1999-2004 J.Neuhoff - mhccorp.com
. All rights reserved.
Please send any comments or corrections to
neuhoff@mhccorp.com