|<инструкция выбора>
|<инструкция возобновления>
|<инструкция выхода>
|<инструкция ввода>
|<инструкция вывода>
|<пустая инструкция>
Поскольку используются принятые в Алголе 68 условные инструкции и инструкции цикла, нет нужды разбивать их на несколько отдельных синтаксических классов. Все инструкции должны завершаться точкой с запятой.
<инструкция присваивания>::= SET <список целей> <выражение>;
<список целей>::=<цель>
|<список целей> <цель>
<цель> ::=<переменная> <заменить на>
<заменить на>::—:=
В <инструкции присваивания> <тип> всех <целей> и <тип> присваиваемого <выражения> должен быть одним и тем же. <Цели> обрабатываются слева направо, чтобы определить адреса в памяти, и только затем вычисляется выражение, чтобы найти запоминаемое значение. Структуры и массивы можно присваивать в случае совпадения <типов>. Использование ключевого слова SET служит примером многословности Мини. Данная избыточность помогает исправлению, когда неправильно записано другое ключе вое слово (распространенная ошибка).
<инструкция вызова>::= CALL <обращение к процедуре>;
<обращение к процедуре> ::= <идентификатор процедура>
|<идентификатор процедуры> <список фактических параметров>
<идентификатор процедуры>::= <идентификатор>
<список фактических параметров> ::= <заголовок фактических параметров>)
<заголовок фактических параметров>::=(<<выражение>
|<заголовок фактических параметров>, <выражение>
Можно вызывать только процедуры, получившие определения а областью действия, содержащей <инструкцию вызова>. Количество, порядок и типы фактических и формальных параметров должны совпадать. После того как в вызываемой процедуре выполнится <инструкция возврата>, управление будет передано на следующую за вызовом инструкцию. Ключевое слово CALL используется по тем же соображениям, что и SET в <инструкции присваивания>.
<инструкция возврата> ::= RETURN;
| RETURN <выражение>;
<Инструкция возврата> может употребляться только в процедуре. Она возвращает управление в вызывающую инструкцию, В конце подпрограммы имеется неявная <инструкция возврата>. При возврате из подпрограммы значение указывать нельзя. При возврате из функции значение указывать обязательно. Оно должно иметь тот же тип, что и функция.
<инструкция завершения>::= EXIT;
Данная инструкция вызывает нормальное завершение всей программы и возврат в супервизор. Она должна быть последней выполненной (не обязательно последней написанной) инструкцией <программы>.
<условная инструкция> ::= <простая условная инструкция>
|<метка> <простая условная инструкция>
<простая условная инструкция>::= <спецификация условия> <истинная ветвь> FI;
|<спецификация условия> <истинная ветвь> <ложная ветвь> FI;
<спецификация условия> ::= IF <выражение>
<истинная ветвь>::=THEN <тело условной инструкции>
<ложная ветвь> ::= <иначе> <тело условной инструкции>
<иначе>::= ELSE
<тело условной инструкции> ::= <тело сегмента>
В <условной инструкции> выбирается и выполняется <истинная ветвь> или <ложная ветвь> в зависимости от истинности <выражения> типа BOOLEAN. Каждая ветвь представляет собой <тело сегмента> и может содержать все необходимые определения, декларации и инструкции без дополнительных скобок. После выполнения выбранной ветви управление передается на инструкцию, следующую за условной.
<составная инструкция> ::=<простая составная инструкция>
|<метка> <простая составная инструкция>
<простая составная инструкция>::<заголовок составной инструкции> <тело составной инструкции> <конец составной инструкции>
<заголовок составной инструкции>::= BEGIN
<тело составной инструкции> ::= <тело сегмента>
<конец составной инструкции> ::= END;
|END <идентификатор>;
Другие возможности, заложенные в синтаксисе Мини, делают <составные инструкции> не особенно необходимыми. Однако <составные инструкции> полезны в сочетании с инструкциями REPEAT и REPENT. В начало составной инструкции можно поместить декларации и определения. Если после END записан <идентификатор>, он должен быть <меткой>, причем <метка> и <идентификатор> обязаны совпадать.