Cтраница 2
Условное именующее выражение может быть элементом переключательного списка в описании переключателя. [16]
Из определения следует, что в простейшем случае переключательный список представляет собой последовательность меток, отделяемых друг от друга запятыми. [17]
Произвести вычисление именующего выражения, содержащегося в выбранном элементе переключательного списка, пользуясь при этом каждой глобальной переменной и элементами состояния внутренней памяти, уровни которых по сравнению с максимальными уровнями одноименных элементов уменьшены на целое число k или равны собственному уровню блока, содержащего описание переключателя. [18]
В этом примере процесс определения метки значительно упростился за счет того, что переключательный список был составлен только из меток. Все может значительно усложниться, если именующим выражением в переключательном списке будет, например, опять указатель переключателя, но уже другой, в описании которого опять встречаются именующие выражения. Но такие случаи не часты. В конце концов этот рекурсивный процесс определения метки, каким бы сложным он ни был, выполняется по описанным правилам и всегда заканчивается выбором конкретной метки. На практике переключательный список чаще всего состоит из меток. [19]
Может оказаться, что при вычислении значения индексного выражения его величина превысит число членов соответствующего переключательного списка или станет меньше единицы. Очевидно, указателю переключателя не будет соответствовать ни одно именующее выражение переключательного списка. В соответствии с синтаксисом эталонного языка в этом случае переключатель не производит никакого действия и выполняется следующий за ним оператор. [20]
Согласно определению, описание переключателя состоит из описателя switch, за которым следует идентификатор, и переключательного списка, отделенного от левой части знаком присваивания. Переключательный список представляет собой последовательность именующих выражений, разделенных запятыми. Следовательно, в переключательном списке могут быть метки, условные именующие выражения и указатели переключателя. [21]
При генерировании машинных команд операция switch формирует таблицу переходов, каждая запись которой соответствует одному элементу переключательного списка и представляет собой команду безусловного перехода на метку, указанную в переключательном списке, или на подпрограмму, вычисляющую соответствующее именующее выражение. [22]
Согласно определению, описание переключателя состоит из описателя switch, за которым следует идентификатор, и переключательного списка, отделенного от левой части знаком присваивания. Переключательный список представляет собой последовательность именующих выражений, разделенных запятыми. Следовательно, в переключательном списке могут быть метки, условные именующие выражения и указатели переключателя. [23]
Описание переключателя представляет собой последовательность символов, состоящую из описателя переключатель, идентификатора переключателя, разделителя: и переключательного списка, состоящего из именующих выражений, отделенных друг от друга запятыми. [24]
Описание переключателя записывается в виде следующей последовательности: основной символ переключатель, основной символ: ( присвоить), переключательный список. [25]
Описание переключателя представляет собой последовательность символов, состоящую из описателя switch, идентификатора переключателя, разделителя Ц: и переключательного списка, состоящего из именующих выражений, отделенных друг от друга запятыми. [26]
При обращении к описанию переключателя с помощью указателя переключателя Р [ i ], где Isgisgn, из его переключательного списка выбирается te именующее выражение, значение которого присваивается указателю переключателя. Выбранное из переключательного списка именующее выражение в свою очередь может оказаться указателем переключателя. Таким образом, вычисление значения указателя переключателя может представлять собой рекурсивный процесс. [27]
Семантика описания переключателя состоит в следующем: поскольку именующее выражение либо является меткой, либо имеет своим значением метку, то переключательный список фактически представляет собой список меток. [28]
Оператор перехода с указателем описанного переключателя считается неопределенным и пропускается как пустой оператор, если значение его индексного выражения меньше единицы или лревзойдет число членов переключательного списка. [29]
Если значение индексного выражения в указателе переключателя не может быть вычислено ( в результате того, что некоторым переменным еще не присвоены значения) или если это вычисление приводит к числу, не являющемуся номером никакого элемента переключательного списка, то оператор перехода не выполняется и сразу осуществляется выполнение следующего за ним оператора. [30]