Property Names in the Syntax Check

In order to accurately perform a syntax validation on property names, functions that require property names are partially evaluated for those rare cases in which a property name is not a literal but is the result of a function.

Consider these examples:

  • The formula PropValue(Concat(Core.Abbrev)) is valid, but the Concat function has to be evaluated (not just validated for syntax) to verify the property name.

  • The formula PropValue(If(NodeIsLeaf(),Core.Abbrev,Custom.Label)) is valid, but the If function has to be evaluated to verify the property name.

If the property name in question comprises only part of the formula, only the parts needed to determine property names are evaluated. For example, in the formula Add(PropValue(Concat(Core.,I,D)),If(NodeIsLeaf(),0,1), the only part of the formula evaluated for the syntax validation is the Concat function and its parameters.

The fact that these formula parts are evaluated becomes significant in cases such as PropValue(PropValue(NodeType)). For this formula, the syntax validation fails unless a value is supplied for the Custom.NodeType property.