Noms de propriété dans la vérification de la syntaxe

Afin de réaliser une validation de syntaxe précise sur les noms de propriété, les fonctions nécessitant des noms de propriété sont partiellement évaluées pour les rares cas où un nom de propriété n'est pas un littéral mais le résultat d'une fonction.

Prenons les exemples suivants :

  • La formule PropValue(Concat(Core.Abbrev)) est valide, mais la fonction Concat doit être évaluée (pas seulement validée quant à la syntaxe) pour vérifier le nom de la propriété.

  • La formule PropValue(If(NodeIsLeaf(),Core.Abbrev,Custom.Label)) est valide, mais la fonction If doit être évaluée pour vérifier le nom de la propriété.

Si le nom de la propriété en question comprend uniquement une partie de la formule, seules les parties nécessaires pour déterminer les noms de propriété sont évaluées. Par exemple, dans la formule Add(PropValue(Concat(Core.,I,D)),If(NodeIsLeaf(),0,1), la seule partie de la formule qui est évaluée pour la validation de syntaxe est la fonction Concat et ses paramètres.

Le fait que ces parties de formule soient évaluées devient significatif dans des cas comme PropValue(PropValue(NodeType)). Pour cette formule, la validation de syntaxe échoue, sauf si une valeur est fournie pour la propriété Custom.NodeType.