Значения 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>