<инструкция возобновления>::=REPEAT <идентификатор>;
<инструкция выхода>::=REPENT <идентификатор>;
<Инструкция возобновления> вызывает возврат управления на начало объемлющего тела инструкции, помеченной <идентификатором>. Выполнение всех промежуточных объемлющих тел сегментов и инструкций, частями которых эти тела являются, завершается, как если бы произошел нормальный выход из них. Вся связанная с ними память разрушается. <Метка>, на которую выполняется переход, должна принадлежать той же процедуре, что и <инструкция возобновления>. Если не существует объемлющей инструкции с указанной меткой, <инструкция возобновления> рассматривается как семантически ошибочная. Семантика <инструкции выхода> аналогична, с той лишь разницей, что управление передается не на начало помеченной инструкции, а в точку, непосредственно следующую за помеченной объемлющей инструкцией. Заметим, что <инструкция возобновления> вызывает повторное выполнение инструкции, на начало которой передается управление.
<инструкция ввода>::= INPUT <список ввода>;
<список ввода> ::= <переменная>
|<список ввода>, переменная>
<инструкция вывода>::== OUTPUT <список вывода>;
<список вывода>::= <выражение>
|<список вывода> <выражение>
<Инструкция ввода> вызывает передачу элементов данных из входного потока в <переменные> <списка ввода>. Вводимые элементы должны иметь базовый тип, совпадающий с типом соответствующей переменной. Вводимый элемент представляется так же, как константа этого типа. Элементы входного потока необходимо разделять литерами пробела или конца записи. Аналогично <инструкция вывода> вызывает передачу <выражений> из <списка вывода> в выходной поток. <Выражения> должны иметь базовый тип. Точный формат выходного потока определяется при реализации; требуется лишь, чтобы выводимая информация годилась для последующего ввода. Каждая <инструкция вывода> в конце своей работы выдает литеру конца записи.
<пустая инструкция>::=;
<метка>::=<идентификатор>:
<Пустая инструкция> не вызывает никаких действий. <Метка> — это <идентификатор>, который декларируется своим использованием и в данном <теле сегмента> не может декларироваться или определяться иначе, как имя поля.
<выражение>::= <выражение один>
|<выражение>
| <выражение один>
|<выражение> XOR <выражение один>
<выражение один>::= <выражение два>
|<выражение один> & <выражение два>
<выражение два> ::= <выражение три>
| NOT <выражение три>
<выражение три> ::= <выражение четыре>
|<выражение три> <отношение> <выражение четыре>
<выражение четыре>::= <выражение пять>
|<выражение четыре> || <выражение пять>
<выражение пять>::= <выражение шесть>
|<выражение пять> <аддитивный оператор> <выражение шесть>
|<аддитивный оператор> <выражение шесть>
<выражение шесть>::= <выражение семь>
|<выражение шесть> <мультипликативный оператор> <выражение семь>
<выражение семь>::= FLOOR (<выражение>)
|LENGTH (<выражение>)
|SUBSTR (<выражение>, <выражение>, <выражение>)
|CHARACTER (<выражение>)
|NUMBER (<выражение>)
|FLOAT (<выражение>)
|FIX (<выражение>)
|<выражение восемь>
<выражение восемь>::= <переменная>|
<константа>
|<вызов функции>
|(<выражение>)
Выражения трактуются совершенно стандартным образом. Операнды операторов ||, XOR (исключающее или), & и NOT должны иметь тип BOOLEAN. Два произвольных элемента одного типа можно сравнить посредством <отношения> равенства и неравенства. Цепочки литер можно сравнить посредством любого <отношения>. Две цепочки равны тогда и только тогда, когда они в точности одинаковы. Цепочка А меньше цепочки В, если начало А равно началу В и в А больше нет литер или очередная литера А предшествует очередной литере В в алфавитной упорядоченности. Два любых целых или вещественных числа можно сравнивать посредством любого <отношения>; если целое сравнивается с вещественным, оно неявно преобразуется в вещественное. Результат любого сравнения имеет тип BOOLEAN.
Операндами <аддитивных операторов> и <мультипликативных операторов> могут быть только целые и вещественные значения. Если целые операнды сочетаются с вещественными, перед выполнением операции целые преобразуются в вещественные. В операции MOD нельзя использовать вещественные числа; при выполнении операций MOD и деления целых чисел частное выбирается так, чтобы остаток был неотрицательным. Операндами оператора конкатенации || обычно служат цепочки литер; результат также является цепочкой. Операнды других базовых типов перед выполнением конкатенации преобразуются в цепочки, соответствующие их представлению при выводе.