GDL 值

GDL 值是一个字符串,以 GDL 属性中的第一个非空格字符开头,该字符在冒号分隔符之后找到,通常在达到换行序列或构造分隔符时结束。

当换行序列或构造分隔符不终止值时,有几个 GDL 上下文 。 这些特殊上下文包括以下情况:

  • 构造分隔符字符作为注释的一部分出现。

  • 终止字符作为带引号的字符串的一部分出现。

  • 终止字符出现在 嵌套上下文中。

  • 终止字符出现在 任意值内。

一个值可以包含零个、一个或多个这些特殊上下文。 单个上下文类型可以在一个值中多次出现。 上述任何特殊上下文也可以显示在任何其他上下文之外。 某些上下文可能会出现在另一个上下文中;每个上下文的说明中都记录了这些情况。 必须先退出所有上下文,然后值才能由换行序列或构造分隔符终止。

终止换行序列或构造分隔符不被视为值的一部分。

GDL 属性中的值是可选的。

值宏引用 可能会出现在允许使用非文本空格的 GDL 值中的任何位置;这些引用以等号 (=) 开头。 当等号用于此类上下文并且它不打算引入值宏引用时,该等号后必须跟一个非符号字符 (,例如空格) 。 有关值宏的详细信息,请参阅 GDL 值宏

有关 GDL 上下文的详细信息,请参阅 GDL 上下文

以下代码示例显示了 GDL 分析程序可接受的值。

*Value: *%  Null Value - only a comment

*Value: "Quoted String"

*Value: "Quoted String with Hex substring: <48 65 78> see?"

*Value: "Hex substring with comment and macro reference <48 *% comment
65 78 =MacroRef > see?"   *% note continuation linebreak was automatically assumed

*Value: tokens (parenthesis context) [followed by square brackets context] "ending in quoted string"

*Value: tokens (parenthesis context {with nested curly braces context})

*Value:  tokens <BeginValue:anything> no special characters or contexts recognized within an arbitrary value context.  " } ) * % < > anything goes, sorry  =MacroRefs not recognized
*Keyword:  looks like a new entry but its still within the Arbitrary Value context.
+  not continuation chars, *% this is not a comment  <EndValue:anything>