ГОСТ Р 59791—2021
вать UTF-8 (см. [6], приложение Г). Чтобы при необходимости иметь возможность закодировать язык в виде тексто вой
строки ASCII, в CLIF отдельно зарезервированы символы из подмножества US-ASCII. В настоящем стандарте
используют символы ASCII. Символы Юникода за пределами диапазона ASCII представлены в тексте CLIF ASCII в
виде кодирующей последовательности символов
\unnnn
или \11
пппппп,
где
п
— шестнадцатеричный цифровой
символ. При преобразовании текстовой строки ASCII в полнозначную кодировку символов, а также при печати или
ином отображении текста для обеспечения максимальной читаемости такую последовательность можно заменить
соответствующей прямой кодировкой символа или соответствующего глифа. Более того, если такие кодирующие
последовательности встречают в строках в кавычках (см. ниже), считают, что они обозначают соответствующий
символ Юникода.
Синтаксис определяют в терминах непересекающихся блоков символов, называемых лексическими токена
ми (в соответствии ГОСТ 33707 о лексических токенах). Поток символов можно преобразовать в поток лексических
токенов с помощью простого процесса лексикализации, в ходе которого идет проверка наличия небольшого
коли чества символов-разделителей, которые указывают на завершение одного лексического токена и,
возможно, на чало следующего лексического токена. Последовательности пробелов выступают в качестве
разделителей между лексическими токенами (кроме строк и имен в кавычках; см. ниже). Некоторые символы
зарезервированы для использования в качестве первого символа в лексической единице. Символ двойной
кавычки (U+0022) принято ставить в начале и конце имен, которые содержат символы-разделители, символ
одинарной кавычки (апостроф, U+002C) принято ставить в начале и конце строк в кавычках, которые также
являются лексическими единицами, способными содержать символы-разделители, а знак равенства, если он
стоит в самом начале лексической едини цы, должен выступать в качестве отдельной единицы.
Для символа обратной косой черты \ (U+005C) зарезервирована отдельная функция. Если за ним следует
буква и или U и четырех- или шестизначный шестнадцатеричный код, соответственно, его используют для рас
шифровки символов Юникода, которые не относятся кASCII, в потоке символов ASCII, как описано выше. При об
работке строки ASCII любая строка такой формы играет в CL ту же синтаксическую роль, что и отдельный обычный
символ. Комбинацию V(U+005C, U+002C) используют для кодирования одинарной кавычки внутри заключенной в
кавычки строки CL, а комбинация \" (U+005C, U+0022) обозначает двойную кавычку в строке выделенного имени,
заключенной в двойные кавычки. В обоих случаях обратную косую черту обозначают двумя обратными косыми
чертами \\ (U+005C, U+005C). Любое другое применение обратной косой черты является ошибкой. Эти внутренние
соглашения о кавычках применяют при обработке строк как в кодировке ASCII, так и в Юникоде.
А.2.2 Лексический синтаксис
А.2.2.1 Общие положения
Для удобства разделения презентации на две части различают лексические и синтаксические конструкции.
Этот подпункт может помочь разработчикам в определении логических маркеров, составляющих синтаксические
выражения, как показано в А.2.3. Данные характеристики не являются обязательными при реализации.
А.2.2.2 Пробел
white = space U+0032 | tab U+0009 | line U+0010 | page U+0012 | return U+0013;
A.2.2.3 Разделители
Одиночные кавычки (апостроф) используют для разделения строк в кавычках, а двойные кавычки — для раз
деления выделенных имен, которые следуют специальным правилам лексикализации. Строки в кавычках и выде
ленные имена — единственные лексические элементы CLIF, которые могут содержать пробелы и круглые скобки.
Круглые скобки в других местах являются самоограничивающими, их считают самостоятельными лексическими
лексемами. Круглые скобки — это основное средство группировки в синтаксисе CLIF.
open = ‘(‘ ;
close = ’)’ ;
stringquote =;
namequote= "";
_____
backslash= ‘V;____________________________________________________________________________________
А.2.2.4 Символы
char
— это все оставшиеся неуправляющие символы ASCII, которые можно использовать для формирования
лексических токенов (с учетом некоторых ограничений, связанных с первым символом лексического токена). Сюда
входят все буквенно-цифровые символы.
25