2.10.1. СИНТАКСИС
$ Тропа =
$ Условие | Присваивание | Поиск | Перестройка |
$ Хвост | Источник.
$ Условие =
$ Источник Хвост.
$ Присваивание =
$ Источник "::" ЖесткоеВыражение [ Хвост ].
$ Поиск =
$ Источник "$iter" Источник
$ [ "::" ЖесткоеВыражение ] [ Хвост ].
$ Перестройка =
$ Источник ":" Образец [ Хвост ].
$ Хвост =
$ ОгражденнаяТропа | ОтрицаниеУсловия |
$ Забор | Отсечение |
$ Тупик | ПраваяЧасть | Авария |
$ ПерехватАварий.
$ ОгражденнаяТропа =
$ "," Тропа.
$ ОтрицаниеУсловия =
$ "#" Источник [ Хвост ].
$ Забор =
$ "\?" Тропа.
$ Отсечение =
$ "\!" Тропа.
$ Тупик =
$ "$fail".
$ ПраваяЧасть =
$ "=" Тропа.
$ Авария =
$ "$error" Тропа.
$ ПерехватАварий =
$ "$trap" Тропа "$with" ОбразцовоеРаспутье.
$ Источник =
$ Распутье | Выбор | РезультатноеВыражение.
$ Распутье =
$ "\{" ПослТроп "}" |
$ "{" ПослТроп "}".
$ Выбор =
$ Источник ":" ОбразцовоеРаспутье.
$ ОбразцовоеРаспутье =
$ "\{" ПослПредложений "}" |
$ " {" ПослПредложений "}" |
$ ПослТроп = { Тропа ";" }.
$ ПослПредложений =
$ { Предложение ";" }.
$ Предложение = Образец [ Хвост ].
В дальнейшем мы будем обозначать тропы через Q, хвосты - через R, источники - через S, образцовые распутья - через Palt, а предложения - через Snt. Синтаксис троп выглядит несколько запутанным. Это вызвано стремлением избавить пользователя от необходимости писать лишние разделители в тех случаях, когда в этом нет реальной необходимости. Для этого особо выделяются два частных случая троп: "хвосты" и "источники", обладающие полезными синтаксическими свойствами. Хвосты начинаются с легко распознаваемых ключевых слов и не могут "склеиться" с предшествующими результатными выражениями и образцами, а источники не содержат запятую на нулевом уровне фигурных скобок, благодаря чему они однозначно отделяются от последующих конструкций.