@ operator

The @ operator indicates that the name following the operator refers to a property and not a field. This is necessary because you can use a set-value block (see Set-value blocks) to set values both for properties and for fields within a record.

Complex properties contain one or more property fields. Complex properties require the @ operator to distinguish them from the property fields (see Properties). Otherwise this operator is rarely used. If there is no field in the same set-value block with a conflicting name, EGL does not need the @ operator to recognize a property name.

Example

An EGL Dictionary part is a list of name-value pairs. Use a set-value block to assign those name-value pairs; you can use the same set-value block to assign values to properties of the dictionary itself. The following statement declares a new dictionary variable:
myRef Dictionary {
   displayName = "myNewDictionary"
   };
Because of part resolution rules (see EGL part resolution rules), EGL assumes that displayName = "myNewDictionary" is a name-value pair in the new dictionary. If you want to assign a value to the displayName property for the dictionary, you must use an @ operator, as in the following example:
myRef Dictionary {
   @displayName {"myNewDictionary"}
   };

Feedback