|
|||
Пустая инструкция. Синтаксис. Семантика. Инструкция-выражение. Синтаксис. Семантика. Инструкция if. Синтаксис. Семантика12.3 Пустая инструкция Синтаксис ПустаяИнструкция : ; Семантика Значение нетерминала ПустаяИнструкция : ; вычисляется по следующей схеме: 1. Вернуть (normal, empty, empty). 12.4 Инструкция-выражение Синтаксис ИнструкцияВыражение : [предпросмотр ∉ {{, function}] Выражение ; Заметим, что ИнструкцияВыражение не может начаться с открывающей фигурной скобки, т.к. тогда оно было бы неотличимо от Блока. Также ИнструкцияВыражение не может начинаться с ключевого слова function, т.к. тогда оно было бы неотличимо от ОбъявленияФункции. Семантика Значение нетерминала ИнструкцияВыражение : [предпросмотр ∉ {{, function}] Выражение; вычисляется по следующей схеме: 1. Вычислить значение Выражения. 2. Вызвать ПолучитьЗначение(Результата(1)). 3. Вернуть (normal, Результат(2), empty). 12.5 Инструкция if Синтаксис ИнструкцияIf : if ( Выражение ) Инструкция else Инструкция Каждое ключевое слово else, для которого выбор соответствующего ему if неоднозначен, должно считаться относящимся к ближайшему if, для которого нет соответствующего ему else. Семантика Значение нетерминала ИнструкцияIf : if ( Выражение ) Инструкция else Инструкция вычисляется по следующей схеме: 1. Вычислить значение Выражения. 2. Вызвать ПолучитьЗначение(Результата(1)). 3. Вызвать ToBoolean(Результат(2)). 4. Если Результат(3) равен false - переход на шаг 7. 5. Вычислить значение первой Инструкции. 6. Вернуть Результат(5). 7. Вычислить значение второй Инструкции. 8.Вернуть Результат(7). Значение нетерминала ИнструкцияIf : if ( Выражение ) Инструкция вычисляется по следующей схеме: 1. Вычислить значение Выражения. 2. Вызвать ПолучитьЗначение(Результата(1)). 3. Вызвать ToBoolean(Результат(2)). 4. Если Результат(3) равен false - вернуть (normal, empty, empty). 5. Вычислить значение Инструкции. 6. Вернуть Результат(5).
|
|||
|