Синтаксис языка CLIPS можно разбить на три основных группы элементов, предназначенных для написания программ:
Ø примитивные типы данных;
Ø функции, использующиеся для обработки данных;
Ø конструкторы, предназначенные для создания таких структур языка, как факты, правила, классы и т. д.
Рассмотрим каждую из этих трех групп более подробно.
Типы данных
CLIPS поддерживает 8 примитивных типов данных: float, integer, symbol, string, external-address, fact-address, instance-name, instance-address.
Для хранения численной информации предназначаются типы float и integer, для символической — symbol и string.
Число в CLIPS может состоять только из символов цифр (0—9), десятичной точки (.), знака (+ или -) и экспоненциального символа (е) с соответствующим знаком, в случае представления числа в экспоненциальной форме. Ниже приведены примеры допустимых в CLIPS представлений целых и вещественных типов:
Пример 4.1. Представление чисел в CLIPS
Целые: 237 15 +12 -32
Вещественные: 237еЗ 15.09 +12.0 -32.3е-7
Определение целого значения можно представить таким образом:
|
|
Определение 4.1. Представление целого числа
<целое>::= [+ | -] <цифра>+
<цифра>::= 0 | 1 │ 2 | 3 | 4 │ 5 │ 6 | 7 | 8 | 9
Вещественное значение имеет следующий синтаксис:
Определение 4.2. Представление вещественного числа
<вещественное>::= <целое> <экспонента> |
<целое>. [экспонента] |
<беззнаковое-целое> [экспонента] |
<целое>. <беззнаковое-целое> [экспонента]
<беззнаковое-целое>::= <цифра>+
<экспонента>:: = е | E <целое>
Если последовательность символов не соответствует приведенным выше определениям целого или вещественного числа, то данная последовательность воспринимается CLIPS как значение типа symbol.
Значением типа symbol может быть любая последовательность символов, начинающаяся с любого не управляющего ASCII-символа. Значение типа symbol заканчивается ограничителем. Ограничителями являются любые неотображаемые символы (например, пробел, символ табуляции или перехода на другую строку), двойные кавычки, открывающая или закрывающая круглая скобка, символы &, |, < и ~. Точка с запятой (;) является символом начала комментариев и также может ограничивать значение типа symbol. Символы-ограничители не могут содержаться в значении symbol, за исключением <, который может быть первым символом значения. Значение типа symbol не может начинаться с символа? или $?, но может содержать эти символы. CLIPS является языком, чувствительным к регистру.