Ада-95. Компилятор GNAT
66ac8edd

Конструкция "case"


Конструкция case используется внутри файла проекта с целью обеспечения условного поведения. Типичным примером может служить следующее:

project MyProj is

type OS_Type is ("Linux", "Unix", "NT", "VMS");

OS : OS_Type := external ("OS", "Linux");

package Compiler is

case OS is

when "Linux" | "Unix" => for Default_Switches ("Ada") use ("-gnath"); when "NT" => for Default_Switches ("Ada") use ("-gnatP"); when others => end case; end Compiler; end MyProj;

Синтаксис конструкции case основан на синтаксисе инструкции выбора case языка Ада (хотя, в данном случае, не существует конструкции null для пустых альтернатив).

Следом за зарезервированным словом case указывается переменная выбора (типированная строковая переменная), далее - зарезервированное слово is, а затем последовательность из одной и/или более альтернатив выбора.

Каждая альтернатива выбора состоит из зарезервированного слова when

в сопровождении списка строковых литералов (разделяемых символом '|'), или зарезервированного слова others; далее следует лексема "=>".

Каждый строковый литерал должен принадлежать к строковому типу переменной выбора.

При наличии альтернативы others, она должна быть последней в перечне альтернатив.

Завершителем конструкции case

служит последовательность "end case;".

После каждой лексемы "=>" присутствует нуль или более конструкций. Внутри конструкции case допускается использовать только другие конструкции case и описания атрибутов.

Описания строковых типов, описания переменных и пакетов являются недопустимыми.

Достаточно часто значение переменной выбора указывается как значение внешней ссылки (внешней переменной).



Содержание раздела