For details on the distinction between two kinds of memory access, see Dynamic and static access.
Record myRecordPart01 type basicRecord myString STRING; myRecordVar02 myRecordPart02; end Record myRecordPart02 type basicRecord myString02 STRING; myRecordVar03 myRecordPart03; myDictionary Dictionary { empnum=0005, lastName="Twain", firstName="Mark", birthday="021460" }; end Record myRecordPart03 type basicRecord myInt INT; myDictionary Dictionary { customerNum=0005, lastName="Clemens" }; end
Assume that a function uses the record part myRecordPart01 as the type when declaring a variable named myRecordVar01.
myRecordVar01.myRecordVar02.myRecordVar03[3].myInt
myRecordVar01.myRecordVar02.myDictionary.lastName
The presence of a field named myDictionary in two different record parts does not pose a problem because each same-named field is referenced in relation to its own, enclosing record.
myLib.myConstant
The syntax requires that you place the variable, constant, or literal inside a pair of hard brackets( [ ] ). The content-filled brackets are equivalent to a dot followed by a valid identifier, and you can mix the two syntaxes. However, the beginning of a reference must be an identifier.
For examples, see Bracket syntax for dynamic access.
An abbreviated syntax can be valid in relation to fixed structures only if you set the property allowUnqualifiedItemReferences to yes. That property is a characteristic of generatable logic parts like programs, libraries, and pageHandlers; and the default value is no.
For details, see Abbreviated syntax for static access.
Related concepts
Abbreviated syntax for referencing fixed structures
Bracket syntax for dynamic access
Dynamic and static access
Enumerations in EGL
Function part
Parts
Program part
References to parts
Scoping rules and "this" in EGL
Fixed structure
Typedef
Related tasks
Declaring variables and constants in EGL