1.3.5.ТРОПЫ, ХВОСТЫ И ИСТОЧНИКИ

Из результатных выражений и образцов строятся более крупные синтаксические единицы - тропы. Если результатные выражения можно считать аналогом арифметических выражений, то тропы представляют собой аналог операторов, таких как, например, оператор присваивания, оператор цикла и др.

Вычисление тропы выполняется в некоторой среде и приводит к получению некоторого значения.

В Рефале Плюс весьма экономно используются ключевые слова и разделители, в связи с чем могут возникать синтаксические проблемы. Так, например, тропы могут начинаться с результатных выражений. Пусть Q - одна из таких троп, а Re - некоторое результатное выражение. Попробуем записать Q сразу вслед за Re. В результате получается двусмысленная конструкция Re Q в которой невозможно понять, где кончается Re и где начинается Q.

Чтобы преодолеть эту трудность, мы можем потребовать, чтобы во всех сомнительных случаях тропа отделялась от предшествующего результатного выражения каким-то разделителем (например - запятой) следующим образом:

Re , Q

Это, конечно, устраняет неоднозначнось, но может приводить к загромождению программы, поскольку, в большинстве случаев, Q все же может быть однозначно отделено от предшествующей конструкции и без дополнительных разделителей.

Таким образом, среди всех троп нужно выделить подкласс "хороших" троп, которые легко отделяются от предшествующих конструкций. Такие тропы мы называем хвостами.

Другим важным подклассом троп являются источники. Одним из основных синтаксических свойств источника является то, что он заведомо не может содержать запятую на нулевом уровне фигурных скобок.

В дальнейшем, при описании Рефала Плюс, мы будем обозначать тропы через Q, хвосты - через R, а источники - через S.

В следующих разделах мы пока ограничимся рассмотрением только нескольких простейших примеров троп, хвостов и источников.