Расположение текста
Каждая продукция, используемая в настоящем стандарте, предваряется пустой строкой; за продукцией также следует пустая строка. Внутри продукции пустые строки отсутствуют. Продукция может либо состоять из одной строки, либо быть разбитой на несколько строк. Расположению текста продукции не придается какого-либо значения.
Рекурсия
Продукции, используемые в настоящем стандарте, часто являются рекурсивными. Рекурсивные продукции применяются неограниченное число раз до тех пор, пока не будут исчерпаны все порождаемые ими последовательности.
Примечание. Во многих случаях такое повторное применение продукции приводит к неограниченной совокупности разрешенных последовательностей, некоторые из которых сами могут быть неограниченными. Это не является ошибкой
.Таблица 1
Присвоение тегов универсального класса
UNIVERSAL 1 |
Булевский тип |
UNIVERSAL 2 |
Целочисленный тип |
UNIVERSAL 3 |
Тип «строка битов» |
UNIVERSAL 4 |
Тип «строка октетов» |
UNIVERSAL 5 |
Вырожденный тип |
UNIVERSAL 6 |
Тип «идентификатор объекта» |
UNIVERSAL 7 |
Тип «описатель объекта» |
UNIVERSAL 8 |
Внешний тип |
UNIVERSAL 9—16 |
Зарезервированы для дополнений к настоящему стандарту |
UNIVERSAL 16 |
Типы «последовательность» и «последовательность из» |
UNIVERSAL 17 |
Типы «множество» и «множество из» |
UNIVERSAL ;18— 22, 25—27 |
Типы «строка знаков» |
UNIVERSAL 2&—24 |
Типы «время» |
UNIVERSAL 218- ... |
Зарезервированы для дополнений к настоящему стандарту |
Ссылки на совокупность последовательностей
В настоящем стандарте ссылки на совокупность последовательностей (часть нотации АСН.1) осуществляются указанием первого имени в продукции (перед знаками «: : если ссылка на имя
не является частью продукции, то имя обрамляется знаками «кавычки», с тем чтобы отличить его от остального текста на естественном языке.
Ссылкинаэлемент
В настоящем стандарте ссылки на элемент осуществляются указанием имени элемента; если имя не является частью продукции, то оно обрамляется знаками «кавычки», с тем чтобы отличить его от остального текста на естественном языке.
Теги
Тег задается указанием его класса и номера в классе. Определены следующие классы тегов:
универсальный (univesal);
прикладной (application);
пользовательский (private);
контекстно-зависимый (context-spesific).
Номер задается в виде неотрицательного целого числа в десятичной системе счисления.
Ограничения на теги, присваиваемые пользователем АСН.1, определены в разд. 24.
Теги универсального класса назначаются таким образом, чтобы для структурированных типов по тегу можно было определить
Л Зак. 1720
структуру верхнего уровня, а для простых типов тег ПОЛНОСТЬЮ’ определял тип. В табл. 1 перечисляются теги универсального класса.
Примечание. Для дополнений к настоящему стандарту резервируется дополнительное множество тегов.
ИСПОЛЬЗОВАНИЕ НОТАЦИИ АСН.1
Обозначения нотации АСН.1 для определения типа определяются продукцией «Тип» (п. 12.1).
Обозначения нотации АСН.1 для определения значения типа определяются продукцией «Значение» (п. 12.6).
Примечание. Невозможно интерпретировать значение, не зная типа,, к которому оно относится.
Обозначения нотации АСН.1 для присвоения типа ссылке на тип определяется продукцией «Присвоение Типа» (п. 11.1).
Обозначения нотации АСН.1 для присвоения значения ссылочному имени значения определяются продукцией «Присвоение Значения» (п. 11.2).
Обозначения вида «ПрисвоениеТипа» и «ПрисвоениеЗна- чения» должны использоваться только внутри обозначения вида. «ОпределениеМодуля» (п. 9.1).
НАБОР ЗНАКОВ НОТАЦИИ АСН 1
Каждый элемент АСН.1 состоит из последовательности знаков, перечисленных в табл. 2, за исключением случаев, описанных в пп. 7.2 и 7.3.
Таблица 2
Набор знаков АСН.1
От А до Z
от а до z
От 0 до 9
І : = ,{}<•
I()[]-’>
Примечания:
Дополнительно к знакам, перечисленным в табл. 2, в макронотации используются знаки «I» и «>».
Настоящим стандартом допускается присутствие знаков, перечисленных в табл. 3, в следующих элементах (пять последних элементов определяются' в приложении 1):
СсылкаНаТип (п. 8.2.1);
Идентификатор (п. 8.3);
СсылкаНаЗначение (п. 8.4);
СсылкаНаМодуль (п. 8.5);
Макроссылка (п. 1.2.1);
СсылкаНаПродукцию (п. 1.2.2);
ЛокальнаяСсылкаНаТип (п. 1.2.3);
Локальная ссылка на Значение (п. 1.2.4); a-строка (п. 1.2.7).
Таблица 3
Дополнительный набор знаков АСН.1
От А до Я
От а до я
При использовании нотации для определения значения типа «строка знаков» в обозначение нотации АСН.1 могут входить все знаки заданного знакового набора, обрамленные знаками «кавычки» (п. 8.11).
Дополнительные символы (не включенные в табл. 2) могут входить в состав элемента «комментарий» (п. 8.6).
Не следует придавать ни какого-либо значения типографскому стилю, размеру, цвету, яркости и другим характеристикам знаков нотации, связанным со способом их отображения.
Строчные и прописные буквы следует рассматривать как различные знаки.
ЭЛЕМЕНТЫ АСН.1
Общие правила
В следующих подразделах определяется, с помощью каких знаков образуются элементы АСН.1. В каждом случае дается имя элемента и определение знаковых последовательностей, из которых может состоять элемент.
Примечание. В приложении 1 определяются дополнительные элементы, использующиеся в макронотации.
Каждый из элементов, определяемых в последующих подразделах, должен располагаться в пределах одной строки и (за исключением элемента «комментарий») не дблжен содержать пробелов.
Длина строки не ограничивается.
Элементы в последовательностях, определяемых настоящим стандартом (в обозначениях нотации АСН.1), могут располагаться на одной или на нескольких строках и могут разделяться одним или несколькими пробелами или пустыми строками.
Всякий элемент должен отделяться от следующего за ним элемента пробелом или помещением его на следующую строку, если начальный знак (или знаки) следующего элемента являются разрешенными для включения в конец последовательности знаков предыдущего элемента.
Ссылки на тип
Имя элемента — СсылкаНаТип.
Элемент «СсылкаНаТип» должен состоять из произвольного количества (большего или равного единице) букв, цифр и дефисов. Начальный знак должен быть прописной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом.
Примечание. Правила, относящиеся к использованию дефиса, вводятся для избежания неоднозначности, которая могла бы быть вызвана наличием комментария, следующего за элементом.
Элемент «СсылкаНаТип» не должен совпадать с одной из зарезервированных знаковых последовательностей, перечисленных в табл. 4.
Идентификаторы
Наименование элемента — Идентификатор.
Элемент «Идентификатор» должен состоять из произвольного количества (большего или равного единице) букв, цифр и дефисов. Начальный знак должен быть строчной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом.
Примечание. Правила, относящиеся к использованию дефиса, вводятся для избежания неоднозначности, которая могла бы быть вызвана наличием ком:- ментария, следующего за элементом.
Таблица 4
Зарезервированные последовательности знаков
BOOLEAN INTEGER BIT STRING OCTET NULL SEQUENCE OF SET IMPLICIT CHOICE ANY EXTERNAL OBJECT IDENTIFIER OPTIONAL DEFAULT COMPONENTS TRUE FALSE BEGIN END
Примечание. В приложении 1 (п. 1.2.9) определены другие последовательности знаков, зарезервированные при использовании в тексте макроопределений.
Ссылки на значение
Имя элемента — СсылкаНаЗначение.
Элемент «СсылкаНаЗначение» должен состоять из последовательности знаков, удовлетворяющей определению элемента «Идентификатор» в п. 8.3. Отличие элемента «СсылкаНаЗначение» от элемента «Идентификатор» при анализе конкретного использования настоящей нотации достигается различием контекстов, в которых появляются эти элементы.
Ссылка на модуль
Имя элемента — СсылкаНаМодуль.
Элемент «СсылкаНаМодуль» должен состоять из последовательности знаков, удовлетворяющей определению элемента «Ссыл- каНаТип» в п. 8.2. Отличие элемента «СсылкаНаМодуль» от элемента «СсылкаНаТип» при анализе конкретного использования настоящей нотации обеспечивается различием контекстов, в которых появляются эти элементы.
Комментарий
Имя элемента — Комментарий.
Ссылки на «Комментарий» не используются в рамках определения нотации АСН.1. «Комментарий», тем не менее, может присутствовать в любом месте между другими элементами нотации АСН.1, формально не имея никакого значения.
«Комментарий» начинается с пары следующих друг за другом дефисов и заканчивается другой парой следующих друг за другом дефисов, либо концом текущей строки, в зависимости от того, что последует раньше. Комментарий не может содержать в себе пару следующих друг за другом дефисов, кроме той, с которой он начинается и, если она имеется, той, которая его завершает. Комментарий может содержать знаки, не являющиеся элементами знакового набора, определенного в п. 7.1 (п. 7.3).
Пустой элемент
Имя элемента — Пусто.
Элемент «Пусто» не содержит никаких знаков. Он используется при задании совокупностей-вариантов в тех случаях, когда требуется указать, что возможно отсутствие всех приведенных альтернатив.
Элемент «ч и с л о»
Имя элемента — Число.
Элемент «Число» состоит из одной или более цифр. Первая цифра не может быть нулем, за исключением случая, когда «Число» состоит из одной цифры.
Элемент «двоичная строка»
Имя элемента — Ь-строка.
Элемент «двоичная строка» состоит из произвольного количества (от нуля и более) нулей и единиц, перед которыми следует знак «'» и за которыми следует пара знаков:
'В
Пример.'01101100'В.
Элемент «шестнадцатеричная строка».
Имя элемента— h-строка.
Элемент «шестнадцатеричная строка» состоит из произвольного количества (от нуля и более) знаков:
ABCDEF012345678 9,
перед которыми следует знак «.'» и за которыми следует пара знаков:
'Н
Пример. 'АВ0186'Н
Каждый знак используется для обозначения значения полуоктета в шестнадцатеричном представлении.
Элемент «строка знаков»
Имя элемента —с-строка.
Элемент «с-строка» состоит из произвольного количества (от нуля и более) знаков из набора знаков, который определяется типом рассматриваемой строки знаков, перед которыми и вслед за которыми следует знак ("). Если набор знаков содержит знак ("), то он представляется в элементе «с-строка» парой знаков ("). Набор знаков, о котором идет речь, совсем необязательно ограничивается знаками, перечисленными в табл. 2, он определяется типом рассматриваемого элемента «с-строка» (типом, для которого «СтрокаЗнаков» является значением) (см. п. 7.2).
Пример. " "
Элемент «присвоение»
Имя элемента — « : : = »
Этот элемент состоит из последовательности знаков: : : =
Примечание, Эта последовательность не содержит пробелов (см. п. 8.1.2і).
Элементы, состоящие из одного знака
Имена элементов —{
}
- (дефис)
Элемент имеющий имя, входящее в приведенный выше перечень состоит из одного символа, образующего это имя.
Э л е м е н т ы— ключевые слова
Имена элементов:
BOOLEAN
INTEGER
BIT
STRING
OCTET
NULL
SEQUENCE
OF
SET
IMPLICIT
CHOICE
ANY
EXTERNAL
OBJECT
IDENTIFIER
OPTIONAL
DEFAULT
COMPONENTS
UNIVERSAL
APPLICATION
PRIVATE
TRUE
FALSE
BEGIN
END
DEFINITIONS
Элементы с именем, входящим в приведенный выше перечень, состоят из последовательности знаков, составляющей это имя.
Примечания:
В приведенных выше последовательностях знаков отсутствуют пробелы.
Последовательности из этого перечня, не являющиеся зарезервированными (перечисленными в п. 8.2.2), могут быть отличны от других элементов, содержащих такие же знаки, с помощью контекста, в котором они присутствуют.
ОПРЕДЕЛЕНИЕ МОДУЛЯ
«ОпределениеМодуля» задается следующими продукциями: ОпределениеМодуля : : = СсылкаНаМодуль
DEFINITIONS
« : : = » BEGIN ТелоМодуля END
ТелоМодуля : : = СписокПрисвоений I
Пусто
СписокПрисвоений : : = Присвоение I
СписокПрисвоений Присвоение
Присвоение : : = ПрисвоениеТипа I
ПрисвоениеЗначения
Примечания:
В приложении 1 определяются последовательности вида «Макроопределение», которые также могут присутствовать в последовательности вида «Список Присвоений». Выражения, определяемые с помощью макроопределений, могут быть приведены как до, так и после самого макроопределения, в рамках того же модуля.
В отдельных (исключительных) случаях для использования в качестве примеров, а также для определения типов с тегами универсального класса последовательность вида «Тело-Модуля» может использоваться самостоятельно, а не как часть последовательности «Определение Модуля».
Продукции «ПрисвоениеТипа» и «ПрисвоениеЗначения» определяются в разд. 11.
Объединение типов данных, описываемых с помощью нотации АСН.1, в модули необязательно определяет способ формирования из значений представляемых данных поименованных абстрактных синтаксисов в целях определения контекста представления.