Синтаксис
- Программа :
- ЭлементыИсходногоКода
- ЭлементыИсходногоКода :
- ЭлементИсходногоКода
ЭлементыИсходногоКода ЭлементИсходногоКода
- ЭлементИсходногоКода :
- Инструкция
ОбъявлениеФункции
Семантика
Значение нетерминала Программа : ЭлементыИсходногоКода вычисляется по следующей схеме:
1. Обработать объявления функций в ЭлементахИсходногоКода.
2. Вычислить значение ЭлементовИсходногоКода.
3. Вернуть Результат(2).
Нетерминал ЭлементыИсходногоКода : ЭлементИсходногоКода обрабатывается для получения объявлений функций следующим образом:
1. Обработать объявления функций в ЭлементеИсходногоКода.
Значение нетерминала ЭлементыИсходногоКода : ЭлементИсходногоКода вычисляется по следующей схеме:
1. Вычислить значение ЭлементаИсходногоКода.
2. Вернуть Результат(1).
Нетерминал ЭлементыИсходногоКода : ЭлементыИсходногоКода ЭлементИсходногоКода обрабатывается для получения объявлений функций следующим образом:
1. Обработать объявления функций в ЭлементахИсходногоКода.
2. Обработать объявления функций в ЭлементеИсходногоКода.
Значение нетерминала ЭлементыИсходногоКода : ЭлементыИсходногоКода ЭлементИсходногоКода вычисляется по следующей схеме:
1. Вычислить значение ЭлементовИсходногоКода.
2. Если Результат(1) является неожиданным завершением, вернуть Результат(1).
3. Вычислить значение ЭлементаИсходногоКода.
4. Вернуть Результат(3).
Нетерминал ЭлементИсходногоКода : Инструкция никак не обрабатывается для получения объявлений функций.
Значение нетерминала ЭлементИсходногоКода : Инструкция вычисляется по следующей схеме:
1. Вычислить значение Инструкции.
2. Вернуть Результат(1).
Нетерминал ЭлементИсходногоКода : ОбъявлениеФункции обрабатывается для получения объявлений функций следующим образом:
1. Обработать ОбъявлениеФункции для получения объявлений функций (см. раздел 13).
Значение нетерминала ЭлементИсходногоКода : ОбъявлениеФункции вычисляется по следующей схеме:
1. Вернуть (normal, empty, empty).