Примечание. В макронотаипи не поддерживается различие между идентификаторами и ссылками, отличающимися только тем, является ли их первая буква строчной или заглавной. Это вызвано требованием совместимости с рекомендацией МККТТ Х.409.

Таблица 8

Классы последовательностей, задаваемые элементами

Имя элемеігга

Ратцсл, содержащий определение

«string» «identifier» «number» «empty»

Произвольная последовательность знаков

8.3 — Идентификаторы

8.8 — Число

8.7 — Пустой элемент



  1. Дополнительные элементы — клЮчеьые слова

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

TYPE

NOTATION

VALUE value ~ type

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

Элементы, определяемые в пп. 1,2.2—1.2.4 приложения 1 включительно, не должны совпадать с какой-либо последовательностью знаков из п. 1.2.9 прило­жения 1, за исключением, случаев, оговоренных нлже.

Ключевое слово «MACRO» должно использоваться для того, чтобы обозна­чить начало макроопределения. Ключевое слово «TYPE NOTATION» должно использоваться в качестве имени продукции, определяющей новые обозначения типа. Ключевое слово «VALUE NOTATION» должно использоваться в качестве имени продукции, определяющей новые обозначения значения. Ключевое слово «VALUE» должно использоваться в качестве «ЛокальнОйСсылкнНаЭначейие», которой присваивается получаемое в результате значение. Ключевое слово «value» должно использоваться для указания того, что в каждом применений новых обозначений в этом месте должно содержаться значение (записанное А обозначениях АСН.1) некоторого типа (задаваемого макроопределением). Клю­чевое слово «type» должно использоваться для указания того, что в каждом применении новых обозначений в этом месте должно содержаться обозначение вида «Тип» (в обозначениях АСН.1).

  1. Обозначения для записи макроопределений

    1. Макросредство должно быть определено с использованием обозначе­ний вида «Макроопределение»:

Макроопределение : : — макроссылка

MACRO

BEGIN

ТелоМацро

END

Те.юМакро : : = ПродукцияТипа

Продукпи'їЗначения

ВспомогательныеПродукции

ПродукцияТипа : :

TYPE NOTATION

« : ; =я»

СписокВариантовМакро

ЛродукцияЗначения : : ==

VALUE NOTATION < : :

СписокВариантовМакро

ВспомогагелыіыеПродукццЙ : ;.я» .

СішсокПродуКпнй I :

empty '

СписокПродукций : : —

Продукция I

СписокПродукпий Продукция

Продукция : : = Сй^лкаЙаПродукцйю

СписокВариантовМакро

  1. Каждая «СсылкаНаПродукцйю», присутствующая в «ОпределенииСни- волаз (п.1.3.6 приложения І), должна, присутствовать одні; раз в качестве пер­вого элемента некоторой «Продукции».

  2. Каждый случай использования макрообозиачеиия типа должен начи­наться с последовательности знаков «Макросрылка», за которЪй Следует одна .из последовательностей знаков, удовлетворяющих продукции «ТУРЕ NOTATION» ■после применения Всех продукций; заданных в макроопределении. ■

1.3:4. Каждый случай использования иакронотацин для записи значення должен быть некоторой последовательностью Знаков яз множества, описанного продукцией «VALUE NOTATION* после применения всех продукций, заданных в лакроопрдделенни.

  1. Множество последовательностей знаков, описываемое продукцией «ТУРЕ NOTATION* или «VALUE NOTATION», определяется соответствующим -«СпискомВариантовМакро», имеющим'вид:

СписокВариантовМакро : : =

, ЙариантМакро !

СпйебкВариантонМакро

«[.»

ВариантМакро

Множество последовательное!ей знаков, «-.і.чек.t- tejiw продукцией «Список­ВариантовМакро», состоит из множеств последов-шлыюстей знаков, описывае­мых продукциями «ВариантМакро*, входящими в «СлисокВарйайіговМакро».

Обозначения для записи последовательности «ВариантыМакро» в мак­роопределении определяются следующим образам- ■ВариантМакро : : = СписокСимволов СписокСимволов : : =

Символьный Элемент I

СписокСимволов Символьный Элемент

Символьный Элемент : : =

ОпределениеСимвола 1

ВложенноеОпределение

МакроТип : : = ЛокальнаяСсылкаНаТип I Тип

ОпределениеСимвола : : =

—а-строка» I

СсылкаНаПродукцию 1

«string» I

«identifier» I

«number» I

«empty» I

type I

type (ЛокальнаяСсылкаНаТип) I

value (МакроТип) 1

value (ЛокальнаяСсылкаНаЗначение МакроТип) I

value (VALUE МакроТип)

Примечание. В макроопределении выражение «МакроТип», определен­ное в этом же макроопределении, может присутствовать в любом месте, где в соответствии с правилами нотации АСН.1 требуется выражение «Тип».

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

Примечание. «ВложенныеОпределения», если они присутствуют, не играют явной роли при определении множества допустимых строк.

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

  2. Элемент «СсылкаНаПродукцию» описывает произвольную последова­тельность знаков, задаваемых «Продукцией», идентифицируемой данной ссыл­кой.

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

Примечание. Последовательности знаков, описываемые вариантом «string», должны заканчиваться в использовании макрообозначения появлением последовательности, описываемой очередным выражением «ОпределениеСимвола» в «СпискеСимволов».

  1. Вариант «type» описывает последовательности знаков, образующие обозначение вида «Тип», соответствующее определению в п. 12.1.

Примечание. Выражение «ОпределенныйТип» в определении из п. 12.1 может в данном случае содержать «ЛокальнуюСсылкуНаТип», служащую для обозначения типа, определенного с помощью макроопределения.

  1. Вариант «type (ЛокальнаяСсылкаНаТип)» описывает последователь­ности знаков, образующие выражение «Тип», соответствующее определению из п. 12.1, и, кроме того, присваивает этот тип «ЛокальнойСсылкеНаТип».

  2. Вариант «value (МакроТип)» описывает последовательности знаков. образующие выражение «Значение», соответствующее определению из п. 12.6, того типа, который задан выражением «Макротип».

  3. Выражение «value (ЛокальнаяСсылкаНаЗначение МакроТип)» опи­сывает последовательности знаков, образующих выражение «Значение», соот­ветствующее определению из п. 12.6, того типа, который задан выражением «МакроТип», и, кроме того, присваивает этот тип «ЛокальнойСсылкеНаТип». Впоследствии той же «ЛокальнойСсылкеНаТип» может быть присвоен другой тип.

  4. Вариант «value (VALUE МакроТип)» описывает последовательности знаков, образующих выражение «Значение» (соответствующее определению из п. 12.6), того типа, который задан выражением «МакроТип», но, кроме, того, возвращает данное значение в качестве значения, заданного данным использо­ванием макрообозначений. Тип возвращаемого значения задается выражением «МакроТип».

  5. При синтаксическом анализе любого правильного использования мак­рообозначений должно осуществиться в точности одно присвоение значения выражению «VALUE» (описанному в пп. 1.3.14 или 1.3.16 приложения 1).

  6. Выражение «ВложенныеОпределения» определяется следующими продукциями:

ВложенноеОпределение : : =

<СписокВложенныхОпределений >

СписокВложенныхОпределений : : =

ВложенноеОпределение :

СписокВложенныхОпределений I

ВложенноеОпределение

ВложенноеОпределение : : =

ЛокальноеПрисвоениеТипа I

ЛокальноеПрисвоениеЗначения

ЛокальноеПрисвоениеТипа : : =

ЛокальнаяСсылкаНаТ ип « : : =» МакроТип

ЛокальноеПрисвоениеЗначения : : =

ЛокальнаяСсылкаНаЗначение

МакроТип «::==» МакроЗначение МакроЗначение : : = Значение I ЛокальнаяСсылкаНаЗначение Присвоение «МакроТипа» «ЛокальнойСсылкеНаТип», а также «МакроЗна- чения» «ЛокальнойСсылкеНаЗначение» во «ВложенныхОпределениях» осущест­вляется при синтаксическом анализе использования макрообозначения при об­работке «ВложенныхОпределений» и сохраняется до переопределения «Локаль- нойСсылкиНаТип» или «ЛокальнойСсылкиНаЗначение».Примечания;

  1. Использование связанной «ЛокальнонСсылкиНаТип» или «ЛокальнойСсыл- киНаЗначение» в другом месте того же варианта возможно только при опреде­ленных предположениях' относительно алгоритма синтаксического разбора. Эти предположения должны быть описаны в комментарии. Например использование «ЛокальнойСсылкиНаТип», текстуально следующей за «ВложепныМнОпрёде.пе­ниями*, возможно только.йр.н .Сйнтакснческры-раэборе сл^а направо-.;

  2. «ЛокальнойСсылкеНаТип», заданной как «VALUE* может быть присвоено значение Как с помощью Конструкции «value (VALUE МакроТип)», так и с по­мощью вложенного определения. В обоих случаях присвоенное значение, явля- зется возвращаемым значением в соответствии с п. 1.3.14 приложения 1.

  3. 4. И с п о л ьз о в а н не новой нотации

Использование обозначения типа Или значения, определенного с помощью макроопределения в том же модуле, допускается во всех случаях, где требу­ется обозначение вида «Тип» или «Значение».

Приме ч а Н ий:

  1. Описываемое в этом приложении расширение нотации АСН.1 не исполь­зуется в основном тексте настоящего стандарта.

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

.ПРИЛОЖЕНИЕ 2 Обязательное

ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER,
ОПРЕДЕЛЯЕМЫЕ ИСО

  1. Из корневой вершины дерева идентификаторов объектов выходят три ребра. Присвоенные им значения и идентификаторы, а также службы, ответст­венные за присвоение значений следующих компонентов, таковы:

З

Служба, отвечающая за
присвоение следующих
компонентов

MKKtT ИСО См. приложение 1

начение Идентификатор

0 ccitt

1 iso

2 joint-iso-ccj 11

Примечание. В остальной части этого приложения рассматривается присвоение значений, осуществляемое К'СО.

  1. Каждый из идентификаторов «ссШ», «iso» и «joint-iso-ccitt», определен пых выше, может использоваться В качестве выражения «Именнаяфор.ма».

  2. Из вершины, проидейтифинйрованной «iso», выходят четыре ребра. Присвоенные им значення it идентификаторы таковы:

Значение Идентификатор Служба, отвечающая за

присвоение следующих
компонентов

0 standard см. п. ІЇ2 ■

  1. r.egistrationautliority см н. 112.5

  2. rtientber-body см. н. П2.о

  3. kleiiliikd-organiaation см. п. П2.7

Зги идентификаторы могут использоваться в качестве выражения «Имен? наяФорми».

2.1. Каждому из ребер, выходящих из вершины «стандарт» («standard»), должно быть присвоено значение, равное номеру некоторого стандарта. Если стандарт состоит из нескольких частей, то из соотвегстнуюгщ-й ему вершины должны исходите ребра, соответствующие номерам частей, если в тексте стан­дарта инно не указано иначе. Последующим рёбрам должны быть присвоены зііз"сння, < нре.ш.іщ-мне в этом стандарте,' ,

1! р it м е ч а и и е. Если в некотором стандарте, состоящем из одной части, были лрисноены значения некоторым идентификаторам объектов, После Лего стандарт был преобразован и стал состоять из нескольких частей, то после преобразования присвоение значений идентификаторов объектов должно Про- -л лж, , ,i > ток, как если бы стандарт состоял из одной части.

.л. »'е(>ра выходящие из вершины;«регистрационная служба» («registration ч.,г;іу.; (•'.•нервируются для последующего ОПрс.Н'.'.ШИЯ н дополнении к не­стандарту, которое будет разрабагыидтося параллельно а опредей^ .. 'viijp д-ія'идентификации .различных реестр анионных служб „ззанмо- 'Ыіыл систем. - і

■ „ и<-брам, выходящим из вершины, в которую ведет ре<»р-> «комитет — ч . Нг.п.. («member-body»), должйы быть присвоены значении грекэначного тоф; іода страны, .этот код идентифицирует нашкча.'. -той комитет — член ИСО (см. примечание). «ИменнаяФорма» этого компонента идентификато­ра объекта не допускается. Ребра, следующие за «кодом страны», не опреде­ляются в настоящем стандарте.

Примечания:

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

  2. СССР имеет трехзначный код 810, Белорусская ССР —- 112 и Украин­ская ССР — 804. Организация, ведающая присвоением компонентов идентифи­каторов объектов в рамках СССР, пока еще не сформирована.

  3. 7. Ребрам, выходящим из вершины, в которую ведет ребро «зарегистри­рованная организация» («identified-organization»), должны быть присвоены зна­чения международного кодового определителя (International Code Designator — ICD), которые назначаются регистрационной службой, ICD идентифицирует организацию — источник кодов, зарегистрированную вышеупомянутой регистра­ционной службой в качестве источника компонентов идентификаторов объектов (примечания 1 и 2). Ребрам, непосредственно следующим за ICD, должны быть присвоены значения вида «код организации», которые выделяются организаци­ей — источником кодов. Ребра, следующие за «кодом организации», в настоя­щем стандарте не определяются.

Примечания:

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

  2. Упоминание того, что коды, назначенные организациям, используются в качестве компонентов идентификаторов объекта, не исключает возможности их использования также для других целей.

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