Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
<Заголовок функции>::= Function<Имя функции>[( <Список формальных аргументов>)]: <Скалярный тип>;
<Описание меток>::= Label<Список меток>;
<Список меток>::= <Имя метки> [, <Список меток>]
<Имя метки>::= <Идентификатор>
<Тело функции>::= Begin<Составной оператор> End;
<Составной оператор>::= [<Имя метки>:] <Оператор> [; <Составной оператор>]
<Оператор>::= {<Оператор присваивания> | <Оператор ветвления> | <Оператор цикла> | <Оператор перехода> | <Операторные скобки>}
<Оператор присваивания>::= <Допустимое имя переменной> =<Выражение>
<Оператор ветвления>::= If<Логическое выражение> Then<Оператор> [Else<Оператор>]
<Оператор цикла>::= { <Цикл For> | <Цикл While> }
<Цикл For>::= For<Имя переменной> = <Целочисленное выражение> To<Целочисленное выражение> [By<Целочисленное выражение>] Do <Оператор>
<Цикл While>::= While<Логическое выражение> Do <Оператор>
<Оператор перехода>::= GoTo <Имя метки>
<Операторные скобки>::= Begin<Составной оператор> End
<Функция типа Тип > — функция, возвращающая величину типа Тип.
<Допустимое имя переменной> — допустимой переменной являются все переменные, описанные в данной функции или в данном процедурном блоке, глобальные переменные данного компонента. Для возвращения значения функции, в левой части оператора присваивания должно стоять имя функции.
Синтаксические конструкции описания выражений:
<Выражение>::= { <Выражение типа Long> | <Выражение типа Real> | <Выражение типа Integer> | <Выражение типа Color> | <Выражение типа Logic> | <Выражение типа String>|<Выражение типа Pointer>}
<Целочисленное выражение>::= { <Выражение типа Long> | <Выражение типа Integer>}
<Выражение типа Тип>::= [<Префиксная операция типа Тип>] <Операнд типа Тип> [<Операция типа Тип> <Операнд типа Тип>]
<Операция типа Long>::= {+| —| *|Div| Mod| And| Or| Xor}
<Операция типа Real>::= {+| —| *|/| RMod }
<Операция типа Integer>::= {+| —| *|Div| Mod| And| Or| Xor}
<Операция типа Color>::= {COr| CAnd| CXor}
<Операция типа Logic>::= {And| Or| Xor}
<Операция типа String>::= +
<Префиксная операция типа Long>::= { —| Not }
<Префиксная операция типа Real>::= —
<Префиксная операция типа Integer>::= { —| Not }
<Префиксная операция типа Color>::= CNot
<Префиксная операция типа Logic>::= Not
<Операнд типа Logic>::=::= {<Результат сравнения> | <Выражение типа Logic> | ( <Выражение типа Logic>) | <Константа типа Logic> | <Переменная типа Logic> | <Аргумент типа Logic> | <Вызов функции типа Logic>}
<Результат сравнения типов Long, Integer, Real>::= ( <Выражение типаLong, Integer, Real> {> | < | >= | <= | = | <>} <Выражение типаLong, Integer, Real> )
<Результат сравнения типаColor>::= ( <Выражение типа Color> {CEqual | CIn | CInclude | CExclude | CIntersect} <Выражение типа Color> )
<Результат сравнения типа String>::= ( <Выражение типаString> {= | <>} <Выражение типаString> )
<Операнд типа Тип>::= {<Выражение типа Тип> | ( <Выражение типа Тип>) | <Константа типа Тип> | <Переменная типа Тип> | <Аргумент типа Тип> | <Вызов функции типа Тип>}
<Вызов функции типа Тип>::= <Имя функции типа Тип> [( <Список фактических аргументов>)]
<Список фактических аргументов>::= <Выражение> [,<Список фактических аргументов>]
<Константное выражение типа Тип> — <Выражение типа Тип> в операндах которого не могут фигурировать переменные и функции, описанные пользователем.
<Числовое выражение>::= { <Выражение типа Long> | <Выражение типа Real> | <Выражение типа Integer>}
Синтаксические конструкции задания значений статическим переменным
Эта конструкция служит для задания значений параметрам (статическим переменным) компонентов. Для компонента сеть она может встречаться не только при описании главной сети, но и при описании любой составной подсети. В специальных выражениях типа Тип могут участвовать только стандартные функции и аргументы той структурной единицы, в которой находится блок задания значений статическим переменным. При этом специальное выражение, задающее значение параметра должно иметь тип, совместимый с типом статической переменной, которой присваивается это значение.
<Установление параметровСтруктурной единицы>::= <Однозначное имя Структурной единицы> [[ [<Переменная цикла>:] <Начальный номер> [..<Конечный номер> [:<Шаг>]]]] SetParameters <Список значений параметров>
<Переменная цикла>::= <Идентификатор>
<Начальный номер>::= <Константное выражение типа Long>
<Конечный номер>::= <Константное выражение типа Long>
<Шаг>::= <Константное выражение типа Long>
<Список значений параметров>::= <Значение параметра> [,<Список значений параметров>]
<Значение параметра>::= <Специальное выражение типа Тип>
<Специальное выражение типа Тип>::= [<Префиксная операция типа Тип>] <Специальный операнд типа Тип> [<Операция типа Тип> <Специальный операнд типа Тип>]
<Специальный операнд типа Тип >::= {<Специальное выражение типа Тип >|<Константатипа Тип>|<Переменная цикла>|(<Специальное выражение типа Тип >|<Аргумент типа Тип> | <Вызов функции типа Тип>)>
Синтаксические конструкции описания распределения сигналов или параметров:
Данная конструкция имеет четыре аргумента, имеющих следующий смысл:
Данное — сигнал или параметр.
Объект — предобработчик, интерпретатор, оценка, сеть.
Подобъект— частный предобработчик, частный интерпретатор, частная оценка, подсеть.
<Идентификатор данных>— одно из ключевых слов signals, parameters, data, insignals, outsignals.
<Описание распределения Данных, Объекта, Подобъекта,<Идентификатор данных>>::= Connections<Описание групп соответствийДанных>
<Описание групп соответствийДанных>::= <Описание группы соответствийДанных> [;<Описание групп соответствийДанных>]