语法中的属性名称检查

为了准确地对属性名称执行语法验证,会部分计算需要属性名称的函数,以查看是否存在属性名称不是文字,而是某个函数的结果的少数情况。

请考虑以下示例:

  • 公式 PropValue(Concat(Core.Abbrev)) 有效,但是必须计算 Concat 函数(不仅仅验证语法)以核实属性名称。

  • 公式 PropValue(If(NodeIsLeaf(),Core.Abbrev,Custom.Label)) 有效,但是必须计算 If 函数以核实属性名称。

如果所涉及的属性名称只是公式的一部分,则仅计算需要确定属性名称的部分。例如,在公式 Add(PropValue(Concat(Core.,I,D)),If(NodeIsLeaf(),0,1) 中,为验证语法而计算的公式部分只有 Concat 函数及其参数。

在诸如 PropValue(PropValue(NodeType)) 等情况中,计算这些公式部分变得很重要。对于该公式,除非为 Custom.NodeType 属性提供值,否则语法验证将失败。