Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций 28.3.doc
Скачиваний:
34
Добавлен:
24.09.2019
Размер:
1.47 Mб
Скачать

2.4 Разделители лексем (знаков)

Разделителем лексемы является элементом, который разделяет две лексемы. Разделителем лексем является пробел. Несколько пробелов считаются как один.

Комментарий пишется между знаками косая черта звездочка “/*”. Например, /* комментарий */. Комментарии не могут быть вложены. Любые графические символы, появляющиеся внутри комментария, не имеют значения для структуры обмена и предназначены только для чтения людьми.

3. Лексемы

Лексема является специальным ключевым словом или кодом простого типа данных.

3.1 Специальные лексемы

Для открытия структуры обмена должна быть использована специальная лексема “ISO-10303-21;”, а для закрытия структуры обмена лексема “END-ISO-10303-21;”.

Для того чтобы открыть заголовочную секцию структуры обмена должна быть использована специальная лексема “HEADER”, а для закрытия “ENDSEC”.

Для открытия секции данных используется лексема “DATA”, для закрытия “ENDSEC”

Для того чтобы открыть структуру области применения должна быть использована лексема “&SCOPE”. Для закрытия “ENDSCOPE”.

Специальная лексема знак доллара (“$”) используется для представления объекта, чье значение не представлено в структуре обмена.

Звездочка (“*”) используется для представления объекта, значение которого не представлено в структуре обмена, но может быть выведено из других величин в соответствии с правилами. Данными в EXPRESS-схеме.

Знаки точка с запятой (“;”), скобки (“(,)”)), запятая (“,”) и косая черта (“/”) используются как знаки препинания в структуре обмена.

3.2 Ключевые слова

Ключевые слова, которые не начинаются с восклицательного знака, являются определенными в схеме ключевыми словами, т.е. стандартными. Ключевые слова, начинающиеся с восклицательного знака, являются определенные пользователем ключевыми словами.

3.3 Кодирование простых типов данных

В структуре обмена используется кодирование шести простых типов данных: целое, вещественное, строка, имя экземпляра объекта, перечисление и двоичное.

3.3.1 Целое

Кодируется в виде 18, +12, -398, 0012 (12), 00(0).

3.3.2 Вещественное

Вещественное кодируется в виде +0.0Е0 (0), -0.0Е0 (0), 1.5, -3245Е-12, 2., 5.0, 0.25Е5 и.т.д.

3.3.3 Строка

Строка должна быть закодирована как апостроф “’”, за которым следует нуль или несколько 9-битных байтов и заканчиваться апострофом “’”. Косая черта, апостроф и кавычки должны быть закодированы в виде ’’’’(’), \\(‘/’), )) (‘)’) - скобка, потому что они являются метасимволами СНВ.

3.3.3.1 Кодирование полного алфавита по стандартам ИСО 8859 внутри строки

В стандартах серии ИСО 8859 G(x/y) является обозначением символа в “колонке” х, “столбце” у, т.е. значение кода (16*х)+у в таблице кодов. Каждая часть стандартов серии ИСО 8859-1. . .8859-9 включает в себя основной алфавит для включения в строку символов расширенного алфавита требуется использование управляющих директив.

Управляющая директива PAGE – \S\ СHARACTER (см. табл.4) – используется в строке для того, чтобы позволить символу основного алфавита представлять в соответствующей строке символ расширенного алфавита.

3.3.4 Имена экземпляров объектов

Имена экземпляров объектов должны быть закодированы как знак номера #, за которым следует целое без знака. Предшествующие нули не имеют значения.

Пример, #12, #023.

3.3.5 Перечисляемые значения

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

Пример

.STEEL. – показывает значение STEEL

4 Структурирование типов данных

Единственным структурированным типом данных является LIST(список), как это определено в таблице3. Список начинается с левой скобки и заканчивается правой скобкой. Экземпляры разделяются запятой. Список может быть вложенным на любую глубину.

Пример

Список целых (0,1,2,3,7,8,2,4)

Список строк (‘CAT’,’HELLO’)

Список списков вещественных ((1,3),(3,2,0,4,2),())

5 Заголовочная секция

Заголовочная секция содержит информацию, которая относится ко всей структуре обмена и должна быть представлена в каждой структуре обмена. Секция должна начинаться словами “HEADER” и заканчиваться “ENDSEC”.

5.1 Объекты заголовочной секции

Определены три объекта заголовочной секции: file_difinition, file_name и file_schema и они должны располагаться в этой последовательности. Если имеются экземпляры, определенные пользователем объектов заголовочной секции, то они должны появляться после обязательных экземпляров объектов заголовочной секции и могут появляться в произвольном порядке.

5.2 Схема заголовочной секции

Объекты заголовочной секции передают информацию об изделии с использованием структуры обмена.

5.2.1 file_descriptionопределяет версию настоящего стандарта, использованную для создания структуры обмена и ее содержание и должен содержать description - неформальное описание содержимого структуры обмена и implementation_lebel – указывает на принадлежность классам соответствия в структуре обмена. Для класса соответствия 1, должно быть значение 2;1. Для класса соответствия 2 – 2;2.

5.2.2 file_nameпредоставляет информацию о структуре обмена и содержит следующие пункты:

  • name – наименование структуры обмена

  • time_stampдату и время создания структуры обмена

  • autorимя и почтовый адрес лица, ответственного за создание структуры обмена.

  • Organization - группа или организация с которой связан автор.

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

  • Origination_systemсистема, из которой выданы данные в эту структуру обмена.

  • Authorization - имя и почтовый адрес лица, уполномоченного посылать структуру обмена.

5.2.3 file_schemaуказывает EXPRESS-схемы, в которых определены экземпляры объектов в секции данных. Атрибут schema_identifiers должен состоять из списка строк, каждая из которых должна содержать имя схемы, за которым следует необязательный идентификатор объекта, присвоенный этой схеме и должен содержать строго одно schema_name.

В строке schema_name должны быть только прописные буквы.

5.3 Объекты заголовочной секции определенные пользователем

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

  1. Секция данных

Секция данных содержит данные об изделии, которые должны быть переданы через структуру обмена. Секция данных содержит экземпляры типов данных объекта, определенные EXPRESS-схемой, управляющей структурой обмена, как определено в заголовочной секции. Секция данных начинается с лексемы “DATA”, за которой должны следовать экземпляры объектов и заканчиваться “ENDSEC”.

6.1 Экземпляры объектов секции данных

Каждый экземпляр объекта должен отображаться на конструкцию ENTITY_INSTANCE (см. таблицу 3) в секции данных, как определено в 3.2.

6.2 Структура области применения (SCOPE)

(SCOPE)внутри экземпляров объектов является механизмом для обеспечения области применения ссылок и для определения существующих взаимоотношений между экземплярами объектов.

6.2.1 Синтаксис

Система SCOPE начинается сразу после знака = с &SCOPE и заканчивается ENDSCOPE.

6.2.2 Ссылки на экземпляры объектов в структуре SCOPE

Экземпляр объекта определенный в структуре SCOPE, может быть найден по ссылке на него другим экземпляром объекта из той же структуры SCOPE или как атрибут объекта. Объекты могут экспортироваться из SCOPE.

6.2.3 Поведение

Экземпляр объекта описанный в ENTITY_INSTANCE, в котором появляется структура SCOPE, называется “собственником” области применения собственника, а все экземпляры объектов, определенные внутри структуры SCOPE, должны быть зависимо-существующим от собственники, т.е. существуют только тогда, когда существует собственник. Структура SCOPE должна содержать все экземпляры объектов, зависимо-существующих от экземпляра собственника.

Пример.

#1=SCOPE

#2=POINT(0.0,0.0,0.0);

#3=POINT(0.0,1.0,0.0);

#4=POINT(3.0,1.0,0.0);

#5=LINE(#2,#3);

#6=LINE(#3,#4);

#7=LINE(#4,#2);

ENDSCOPE TRIANG(#5,#6,#7);

Экземпляр TRIAGN(треугольник) определяется тремя экземплярами LINE (прямая). Поскольку LINE находятся внутри #1=SCOPE, то они зависимо-существующие от экземпляра #1, и от него зависит их существование. POINT находятся в SCOPE вместе с LINE, поэтому они доступны для ссылок из LINE.