ГОСТ Р ИСО 10303-11 — 2009
Приложение А
(обязательное)
Синтаксис языка EXPRESS
В настоящем приложении определены лексические элементы языка и грамматические правила, которым
данные элементы должны подчиняться.
П р и м е ч а н и е — Прямое применение данного определения синтаксиса приведет к неоднозначности при
построении синтаксических анализаторов. Даннов определение разработано для представления информации,
относящейся к использованию идентификаторов. Интерпретированные идентификаторы определяют лексичес
кие элементы, являющиеся ссылками на объявленные идентификаторы, и поэтому не должны трактоваться как
простые идентификаторы
(simple id).
Разработчик синтаксического анализатора должен создать таблицу соот
ветствия или что-то подобное ей с тем. чтобы обеспечить разрешение ссылок на идентификаторы и получение
требуемого ссылочного лексического элемента для проверки грамматических правил. Такой подход был приме
нен. чтобы помочь разработчикам синтаксических анализаторов обеспечить отсутствие неоднозначности при
использовании идентификаторов.
А.1 Лексические элементы
Приведенные ниже правила определяют лексические элементы, используемые в языке EXPRESS. За
исключением случаев, когда это явно установлено в синтаксических правилах, никакие пробелы или комментарии не
должны присутствовать в тексте, относящемся к отдельному синтаксическому правилу, представленному в А.1.1
— А. 1.3 иА. 1.5.
А.1.1 Ключевые слова
В настоящем подразделе установлены правила, используемые для представления ключевых слов языка
EXPRESS.
П р и м е ч а н и е — Здесь используется соглашение, установленное в 6.1, по которому каждое ключевое
слово представляется синтаксическим правилом, содержащим в левой части данное ключевое слово, записанное с
использованием символов верхнего регистра (прописныхбукв). Поскольку строковые литералы в синтаксических
правилах являются независящими от регистра, данные ключевые слова могут задаваться в формальных специ
фикациях с использованием символов верхнего, нижнего или обоих регистров.
0ABS = ’ abs’.
1ABSTRACT = ’ abstract-.
2ACOS = ’acos*.
3AGGREGATE = ’ aggregate ’.
4ALIAS = "alias’.
5AND = ’and’.
6ANDOR = 1andor1.
7ARRAY = ’array’.
8AS = ’as’.
9ASIN = ’asin’.
10ATAN = ’atan’.
11BAG = ’ bag ’.
12BASED_ON = ’ based.on •
13BEGIN = ’ begin ’.
14BINARY = ’binary’.
15BLENGTH = ’ blength *.
16BOOLEAN = ’ boolean ’.
17BY = ’by’.
18CASE = ’case’.
19CONSTANT = ’ constant’.
20CONST_E = ’ const_e’.
21COS = Tcos’.
22DERIVE = ’derive’.
23DIV = ’div’.
24ELSE = ’ else ’.
25END = ’end’.
26 END_ALIAS = ’ end_alias ’.
27 END_CASE = ’end_case\
113