Примечание. В макронотаипи не поддерживается различие между идентификаторами и ссылками, отличающимися только тем, является ли их первая буква строчной или заглавной. Это вызвано требованием совместимости с рекомендацией МККТТ Х.409.
Таблица 8
Классы последовательностей, задаваемые элементами
Имя элемеігга |
Ратцсл, содержащий определение |
«string» «identifier» «number» «empty» |
Произвольная последовательность знаков 8.3 — Идентификаторы 8.8 — Число 8.7 — Пустой элемент |
Дополнительные элементы — клЮчеьые слова
Имена элементов— 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).
Обозначения для записи макроопределений
Макросредство должно быть определено с использованием обозначений вида «Макроопределение»:
Макроопределение : : — макроссылка
MACRO
BEGIN
ТелоМацро
END
Те.юМакро : : = ПродукцияТипа
Продукпи'їЗначения
ВспомогательныеПродукции
ПродукцияТипа : :
TYPE NOTATION
« : ; =я»
СписокВариантовМакро
ЛродукцияЗначения : : ==
VALUE NOTATION < : :
СписокВариантовМакро
ВспомогагелыіыеПродукццЙ : ;.я» .
СішсокПродуКпнй I :
empty '
СписокПродукций : : —
Продукция I
СписокПродукпий Продукция
Продукция : : = Сй^лкаЙаПродукцйю
СписокВариантовМакро
Каждая «СсылкаНаПродукцйю», присутствующая в «ОпределенииСни- волаз (п.1.3.6 приложения І), должна, присутствовать одні; раз в качестве первого элемента некоторой «Продукции».
Каждый случай использования макрообозиачеиия типа должен начинаться с последовательности знаков «Макросрылка», за которЪй Следует одна .из последовательностей знаков, удовлетворяющих продукции «ТУРЕ NOTATION» ■после применения Всех продукций; заданных в макроопределении. ■
1.3:4. Каждый случай использования иакронотацин для записи значення должен быть некоторой последовательностью Знаков яз множества, описанного продукцией «VALUE NOTATION* после применения всех продукций, заданных в лакроопрдделенни.
Множество последовательностей знаков, описываемое продукцией «ТУРЕ 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 требуется выражение «Тип».
Множество последовательностей знаков, описываемое продукцией «ВариантМакро», образуется последовательным соединением любой из строк знаков, описываемой первой последовательностью «ОпределениеСимвола», с любой из строк знаков, описываемой второй последовательностью «ОпределениеСимвола», и так далее, вплоть до последнего «ОпределенияСимвола» из «СпискаСимволов».
Примечание. «ВложенныеОпределения», если они присутствуют, не играют явной роли при определении множества допустимых строк.
Элемент («а-строка») описывает последовательности знаков, составляющие «a-строку», без обрамляющей пары кавычек (»).
Элемент «СсылкаНаПродукцию» описывает произвольную последовательность знаков, задаваемых «Продукцией», идентифицируемой данной ссылкой.
Последовательности знаков, описываемые следующими четырьмя вариантами продукции «ОпределениеСимвола», задаются табл. 8.
Примечание. Последовательности знаков, описываемые вариантом «string», должны заканчиваться в использовании макрообозначения появлением последовательности, описываемой очередным выражением «ОпределениеСимвола» в «СпискеСимволов».
Вариант «type» описывает последовательности знаков, образующие обозначение вида «Тип», соответствующее определению в п. 12.1.
Примечание. Выражение «ОпределенныйТип» в определении из п. 12.1 может в данном случае содержать «ЛокальнуюСсылкуНаТип», служащую для обозначения типа, определенного с помощью макроопределения.
Вариант «type (ЛокальнаяСсылкаНаТип)» описывает последовательности знаков, образующие выражение «Тип», соответствующее определению из п. 12.1, и, кроме того, присваивает этот тип «ЛокальнойСсылкеНаТип».
Вариант «value (МакроТип)» описывает последовательности знаков. образующие выражение «Значение», соответствующее определению из п. 12.6, того типа, который задан выражением «Макротип».
Выражение «value (ЛокальнаяСсылкаНаЗначение МакроТип)» описывает последовательности знаков, образующих выражение «Значение», соответствующее определению из п. 12.6, того типа, который задан выражением «МакроТип», и, кроме того, присваивает этот тип «ЛокальнойСсылкеНаТип». Впоследствии той же «ЛокальнойСсылкеНаТип» может быть присвоен другой тип.
Вариант «value (VALUE МакроТип)» описывает последовательности знаков, образующих выражение «Значение» (соответствующее определению из п. 12.6), того типа, который задан выражением «МакроТип», но, кроме, того, возвращает данное значение в качестве значения, заданного данным использованием макрообозначений. Тип возвращаемого значения задается выражением «МакроТип».
При синтаксическом анализе любого правильного использования макрообозначений должно осуществиться в точности одно присвоение значения выражению «VALUE» (описанному в пп. 1.3.14 или 1.3.16 приложения 1).
Выражение «ВложенныеОпределения» определяется следующими продукциями:
ВложенноеОпределение : : =
<СписокВложенныхОпределений >
СписокВложенныхОпределений : : =
ВложенноеОпределение :
СписокВложенныхОпределений I
ВложенноеОпределение
ВложенноеОпределение : : =
ЛокальноеПрисвоениеТипа I
ЛокальноеПрисвоениеЗначения
ЛокальноеПрисвоениеТипа : : =
ЛокальнаяСсылкаНаТ ип « : : =» МакроТип
ЛокальноеПрисвоениеЗначения : : =
ЛокальнаяСсылкаНаЗначение
МакроТип «::==» МакроЗначение МакроЗначение : : = Значение I ЛокальнаяСсылкаНаЗначение Присвоение «МакроТипа» «ЛокальнойСсылкеНаТип», а также «МакроЗна- чения» «ЛокальнойСсылкеНаЗначение» во «ВложенныхОпределениях» осуществляется при синтаксическом анализе использования макрообозначения при обработке «ВложенныхОпределений» и сохраняется до переопределения «Локаль- нойСсылкиНаТип» или «ЛокальнойСсылкиНаЗначение».Примечания;
Использование связанной «ЛокальнонСсылкиНаТип» или «ЛокальнойСсыл- киНаЗначение» в другом месте того же варианта возможно только при определенных предположениях' относительно алгоритма синтаксического разбора. Эти предположения должны быть описаны в комментарии. Например использование «ЛокальнойСсылкиНаТип», текстуально следующей за «ВложепныМнОпрёде.пениями*, возможно только.йр.н .Сйнтакснческры-раэборе сл^а направо-.;
«ЛокальнойСсылкеНаТип», заданной как «VALUE* может быть присвоено значение Как с помощью Конструкции «value (VALUE МакроТип)», так и с помощью вложенного определения. В обоих случаях присвоенное значение, явля- зется возвращаемым значением в соответствии с п. 1.3.14 приложения 1.
4. И с п о л ьз о в а н не новой нотации
Использование обозначения типа Или значения, определенного с помощью макроопределения в том же модуле, допускается во всех случаях, где требуется обозначение вида «Тип» или «Значение».
Приме ч а Н ий:
Описываемое в этом приложении расширение нотации АСН.1 не используется в основном тексте настоящего стандарта.
Возможно построение модулей, содержащих последовательности присвоения типа и макроопределения, приводящих к сколь угодно сложному синтаксическому разбору значений, заданных с использованием ключевого слова DEFAULT
.ПРИЛОЖЕНИЕ 2 Обязательное
ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER,
ОПРЕДЕЛЯЕМЫЕ ИСО
Из корневой вершины дерева идентификаторов объектов выходят три ребра. Присвоенные им значения и идентификаторы, а также службы, ответственные за присвоение значений следующих компонентов, таковы:
З
Служба, отвечающая за
присвоение следующих
компонентов
MKKtT ИСО См. приложение 1
начение Идентификатор0 ccitt
1 iso
2 joint-iso-ccj 11
Примечание. В остальной части этого приложения рассматривается присвоение значений, осуществляемое К'СО.
Каждый из идентификаторов «ссШ», «iso» и «joint-iso-ccitt», определен пых выше, может использоваться В качестве выражения «Именнаяфор.ма».
Из вершины, проидейтифинйрованной «iso», выходят четыре ребра. Присвоенные им значення it идентификаторы таковы:
Значение Идентификатор Служба, отвечающая за
присвоение следующих
компонентов
0 standard см. п. ІЇ2 ■
r.egistrationautliority см н. 112.5
rtientber-body см. н. П2.о
kleiiliikd-organiaation см. п. П2.7
Зги идентификаторы могут использоваться в качестве выражения «Имен? наяФорми».
2.1. Каждому из ребер, выходящих из вершины «стандарт» («standard»), должно быть присвоено значение, равное номеру некоторого стандарта. Если стандарт состоит из нескольких частей, то из соотвегстнуюгщ-й ему вершины должны исходите ребра, соответствующие номерам частей, если в тексте стандарта инно не указано иначе. Последующим рёбрам должны быть присвоены зііз"сння, < нре.ш.іщ-мне в этом стандарте,' ,
1! р it м е ч а и и е. Если в некотором стандарте, состоящем из одной части, были лрисноены значения некоторым идентификаторам объектов, После Лего стандарт был преобразован и стал состоять из нескольких частей, то после преобразования присвоение значений идентификаторов объектов должно Про- -л лж, , ,i > ток, как если бы стандарт состоял из одной части.
.л. »'е(>ра выходящие из вершины;«регистрационная служба» («registration ч.,г;іу.; (•'.•нервируются для последующего ОПрс.Н'.'.ШИЯ н дополнении к нестандарту, которое будет разрабагыидтося параллельно а опредей^ .. 'viijp д-ія'идентификации .различных реестр анионных служб „ззанмо- 'Ыіыл систем. - і
■ „ и<-брам, выходящим из вершины, в которую ведет ре<»р-> «комитет — ч . Нг.п.. («member-body»), должйы быть присвоены значении грекэначного тоф; іода страны, .этот код идентифицирует нашкча.'. -той комитет — член ИСО (см. примечание). «ИменнаяФорма» этого компонента идентификатора объекта не допускается. Ребра, следующие за «кодом страны», не определяются в настоящем стандарте.
Примечания:
Наличие кода страны необязательно означает, что действительно существует комитет — член ИСО, представляющий эту страну, или что в сферу деятельности этого комитета входит схема выделения компонентов идентификаторов объектов.
СССР имеет трехзначный код 810, Белорусская ССР —- 112 и Украинская ССР — 804. Организация, ведающая присвоением компонентов идентификаторов объектов в рамках СССР, пока еще не сформирована.
7. Ребрам, выходящим из вершины, в которую ведет ребро «зарегистрированная организация» («identified-organization»), должны быть присвоены значения международного кодового определителя (International Code Designator — ICD), которые назначаются регистрационной службой, ICD идентифицирует организацию — источник кодов, зарегистрированную вышеупомянутой регистрационной службой в качестве источника компонентов идентификаторов объектов (примечания 1 и 2). Ребрам, непосредственно следующим за ICD, должны быть присвоены значения вида «код организации», которые выделяются организацией — источником кодов. Ребра, следующие за «кодом организации», в настоящем стандарте не определяются.
Примечания:
Гарантия того, что коды организаций, используемые как цифровые значения идентификаторов объектов и назначенные организациями, присваивающими коды, будут соответствовать требованиям настоящего стандарта, обеспечивается требованием регистрации этих организаций регистрационной службой.
Упоминание того, что коды, назначенные организациям, используются в качестве компонентов идентификаторов объекта, не исключает возможности их использования также для других целей.
Предполагается, что организации, идентифицируемые с помощью «кода организации», будут определять следующие ребра таким образом, чтобы гарантировать неповторяемость соответствующих значений.