1. Расположение текста

Каждая продукция, используемая в настоящем стандарте, пред­варяется пустой строкой; за продукцией также следует пустая стро­ка. Внутри продукции пустые строки отсутствуют. Продукция мо­жет либо состоять из одной строки, либо быть разбитой на не­сколько строк. Расположению текста продукции не придается ка­кого-либо значения.

  1. Рекурсия

Продукции, используемые в настоящем стандарте, часто явля­ются рекурсивными. Рекурсивные продукции применяются неогра­ниченное число раз до тех пор, пока не будут исчерпаны все порож­даемые ими последовательности.

Примечание. Во многих случаях такое повторное применение продукции приводит к неограниченной совокупности разрешенных последовательностей, не­которые из которых сами могут быть неограниченными. Это не является ошиб­кой

.Таблица 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. Ссылки на совокупность последователь­ностей

В настоящем стандарте ссылки на совокупность последователь­ностей (часть нотации АСН.1) осуществляются указанием первого имени в продукции (перед знаками «: : если ссылка на имя

не является частью продукции, то имя обрамляется знаками «ка­вычки», с тем чтобы отличить его от остального текста на естест­венном языке.

  1. Ссылкинаэлемент

В настоящем стандарте ссылки на элемент осуществляются указанием имени элемента; если имя не является частью продук­ции, то оно обрамляется знаками «кавычки», с тем чтобы отличить его от остального текста на естественном языке.

  1. Теги

Тег задается указанием его класса и номера в классе. Опреде­лены следующие классы тегов:

универсальный (univesal);

прикладной (application);

пользовательский (private);

контекстно-зависимый (context-spesific).

Номер задается в виде неотрицательного целого числа в деся­тичной системе счисления.

Ограничения на теги, присваиваемые пользователем АСН.1, определены в разд. 24.

Теги универсального класса назначаются таким образом, что­бы для структурированных типов по тегу можно было определить

Л Зак. 1720

структуру верхнего уровня, а для простых типов тег ПОЛНОСТЬЮ’ определял тип. В табл. 1 перечисляются теги универсального класса.

Примечание. Для дополнений к настоящему стандарту резервируется дополнительное множество тегов.

  1. ИСПОЛЬЗОВАНИЕ НОТАЦИИ АСН.1

    1. Обозначения нотации АСН.1 для определения типа опреде­ляются продукцией «Тип» (п. 12.1).

    2. Обозначения нотации АСН.1 для определения значения ти­па определяются продукцией «Значение» (п. 12.6).

Примечание. Невозможно интерпретировать значение, не зная типа,, к которому оно относится.

    1. Обозначения нотации АСН.1 для присвоения типа ссылке на тип определяется продукцией «Присвоение Типа» (п. 11.1).

    2. Обозначения нотации АСН.1 для присвоения значения ссы­лочному имени значения определяются продукцией «Присвоение Значения» (п. 11.2).

    3. Обозначения вида «ПрисвоениеТипа» и «ПрисвоениеЗна- чения» должны использоваться только внутри обозначения вида. «ОпределениеМодуля» (п. 9.1).

  1. НАБОР ЗНАКОВ НОТАЦИИ АСН 1

    1. Каждый элемент АСН.1 состоит из последовательности зна­ков, перечисленных в табл. 2, за исключением случаев, описанных в пп. 7.2 и 7.3.

Таблица 2

Набор знаков АСН.1

От А до Z
от а до z
От 0 до 9

І : = ,{}<•

I()[]-’>

Примечания:

  1. Дополнительно к знакам, перечисленным в табл. 2, в макронотации ис­пользуются знаки «I» и «>».

  2. Настоящим стандартом допускается присутствие знаков, перечисленных в табл. 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. При использовании нотации для определения значения ти­па «строка знаков» в обозначение нотации АСН.1 могут входить все знаки заданного знакового набора, обрамленные знаками «ка­вычки» (п. 8.11).

    2. Дополнительные символы (не включенные в табл. 2) могут входить в состав элемента «комментарий» (п. 8.6).

    3. Не следует придавать ни какого-либо значения типограф­скому стилю, размеру, цвету, яркости и другим характеристикам знаков нотации, связанным со способом их отображения.

    4. Строчные и прописные буквы следует рассматривать как различные знаки.

  1. ЭЛЕМЕНТЫ АСН.1

    1. Общие правила

      1. В следующих подразделах определяется, с помощью ка­ких знаков образуются элементы АСН.1. В каждом случае дается имя элемента и определение знаковых последовательностей, из ко­торых может состоять элемент.

Примечание. В приложении 1 определяются дополнительные элемен­ты, использующиеся в макронотации.

    1. Каждый из элементов, определяемых в последующих под­разделах, должен располагаться в пределах одной строки и (за исключением элемента «комментарий») не дблжен содержать пробелов.

    2. Длина строки не ограничивается.

    3. Элементы в последовательностях, определяемых насто­ящим стандартом (в обозначениях нотации АСН.1), могут распо­лагаться на одной или на нескольких строках и могут разделяться одним или несколькими пробелами или пустыми строками.

    4. Всякий элемент должен отделяться от следующего за ним элемента пробелом или помещением его на следующую стро­ку, если начальный знак (или знаки) следующего элемента явля­ются разрешенными для включения в конец последовательности знаков предыдущего элемента.

  1. Ссылки на тип

Имя элемента — СсылкаНаТип.

  1. Элемент «СсылкаНаТип» должен состоять из произволь­ного количества (большего или равного единице) букв, цифр и дефисов. Начальный знак должен быть прописной буквой. Послед­ний знак не должен быть дефисом. Два дефиса не должны следо­вать друг за другом.

Примечание. Правила, относящиеся к использованию дефиса, вводят­ся для избежания неоднозначности, которая могла бы быть вызвана наличием комментария, следующего за элементом.

    1. Элемент «СсылкаНаТип» не должен совпадать с одной из зарезервированных знаковых последовательностей, перечислен­ных в табл. 4.

  1. Идентификаторы

Наименование элемента — Идентификатор.

Элемент «Идентификатор» должен состоять из произвольного количества (большего или равного единице) букв, цифр и дефи­сов. Начальный знак должен быть строчной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом.

Примечание. Правила, относящиеся к использованию дефиса, вводятся для избежания неоднозначности, которая могла бы быть вызвана наличием ком:- ментария, следующего за элементом.

Таблица 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) определены другие последова­тельности знаков, зарезервированные при использовании в тексте макроопре­делений.

  1. Ссылки на значение

Имя элемента — СсылкаНаЗначение.

Элемент «СсылкаНаЗначение» должен состоять из последова­тельности знаков, удовлетворяющей определению элемента «Иден­тификатор» в п. 8.3. Отличие элемента «СсылкаНаЗначение» от элемента «Идентификатор» при анализе конкретного использова­ния настоящей нотации достигается различием контекстов, в ко­торых появляются эти элементы.

  1. Ссылка на модуль

Имя элемента — СсылкаНаМодуль.

Элемент «СсылкаНаМодуль» должен состоять из последова­тельности знаков, удовлетворяющей определению элемента «Ссыл- каНаТип» в п. 8.2. Отличие элемента «СсылкаНаМодуль» от эле­мента «СсылкаНаТип» при анализе конкретного использования на­стоящей нотации обеспечивается различием контекстов, в кото­рых появляются эти элементы.

  1. Комментарий

Имя элемента — Комментарий.

    1. Ссылки на «Комментарий» не используются в рамках оп­ределения нотации АСН.1. «Комментарий», тем не менее, может присутствовать в любом месте между другими элементами нота­ции АСН.1, формально не имея никакого значения.

    2. «Комментарий» начинается с пары следующих друг за другом дефисов и заканчивается другой парой следующих друг за другом дефисов, либо концом текущей строки, в зависимости от того, что последует раньше. Комментарий не может содержать в себе пару следующих друг за другом дефисов, кроме той, с ко­торой он начинается и, если она имеется, той, которая его завер­шает. Комментарий может содержать знаки, не являющиеся эле­ментами знакового набора, определенного в п. 7.1 (п. 7.3).

  1. Пустой элемент

Имя элемента — Пусто.

Элемент «Пусто» не содержит никаких знаков. Он использует­ся при задании совокупностей-вариантов в тех случаях, когда тре­буется указать, что возможно отсутствие всех приведенных аль­тернатив.

  1. Элемент «ч и с л о»

Имя элемента — Число.

Элемент «Число» состоит из одной или более цифр. Первая цифра не может быть нулем, за исключением случая, когда «Чис­ло» состоит из одной цифры.

  1. Элемент «двоичная строка»

Имя элемента — Ь-строка.

Элемент «двоичная строка» состоит из произвольного количе­ства (от нуля и более) нулей и единиц, перед которыми следует знак «'» и за которыми следует пара знаков:

Пример.'01101100'В.

  1. Элемент «шестнадцатеричная строка».

Имя элемента— h-строка.

  1. Элемент «шестнадцатеричная строка» состоит из произ­вольного количества (от нуля и более) знаков:

ABCDEF012345678 9,

перед которыми следует знак «.'» и за которыми следует пара зна­ков:

Пример. 'АВ0186'Н

    1. Каждый знак используется для обозначения значения полуоктета в шестнадцатеричном представлении.

  1. Элемент «строка знаков»

Имя элемента —с-строка.

Элемент «с-строка» состоит из произвольного количества (от нуля и более) знаков из набора знаков, который определяется ти­пом рассматриваемой строки знаков, перед которыми и вслед за которыми следует знак ("). Если набор знаков содержит знак ("), то он представляется в элементе «с-строка» парой знаков ("). Набор знаков, о котором идет речь, совсем необязательно ограничивается знаками, перечисленными в табл. 2, он определя­ется типом рассматриваемого элемента «с-строка» (типом, для ко­торого «СтрокаЗнаков» является значением) (см. п. 7.2).

Пример. " "

  1. Элемент «присвоение»

Имя элемента — « : : = »

Этот элемент состоит из последовательности знаков: : : =

Примечание, Эта последовательность не содержит пробелов (см. п. 8.1.2і).

  1. Элементы, состоящие из одного знака

Имена элементов —{

}

- (дефис)

Элемент имеющий имя, входящее в приведенный выше пере­чень состоит из одного символа, образующего это имя.

  1. Э л е м е н т ы— ключевые слова

Имена элементов:

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

Элементы с именем, входящим в приведенный выше перечень, состоят из последовательности знаков, составляющей это имя.

Примечания:

  1. В приведенных выше последовательностях знаков отсутствуют пробелы.

  2. Последовательности из этого перечня, не являющиеся зарезервированны­ми (перечисленными в п. 8.2.2), могут быть отличны от других элементов, со­держащих такие же знаки, с помощью контекста, в котором они присутствуют.

  1. ОПРЕДЕЛЕНИЕ МОДУЛЯ

    1. «ОпределениеМодуля» задается следующими продукциями: ОпределениеМодуля : : = СсылкаНаМодуль

DEFINITIONS

« : : = » BEGIN ТелоМодуля END

ТелоМодуля : : = СписокПрисвоений I

Пусто

СписокПрисвоений : : = Присвоение I

СписокПрисвоений Присвоение

Присвоение : : = ПрисвоениеТипа I

ПрисвоениеЗначения

Примечания:

  1. В приложении 1 определяются последовательности вида «Макроопределе­ние», которые также могут присутствовать в последовательности вида «Список Присвоений». Выражения, определяемые с помощью макроопределений, могут быть приведены как до, так и после самого макроопределения, в рамках того же модуля.

  2. В отдельных (исключительных) случаях для использования в качестве примеров, а также для определения типов с тегами универсального класса по­следовательность вида «Тело-Модуля» может использоваться самостоятельно, а не как часть последовательности «Определение Модуля».

  3. Продукции «ПрисвоениеТипа» и «ПрисвоениеЗначения» определяются в разд. 11.

  4. Объединение типов данных, описываемых с помощью нотации АСН.1, в модули необязательно определяет способ формирования из значений представ­ляемых данных поименованных абстрактных синтаксисов в целях определения контекста представления.