Основные конструкции языка
Литеры - кириллица, латынь, цифры, знаки.
<текстовая строка>::= <“символы в кавычках” | без кавычек>
Если отсутствие кавычек не может изменить суть, их опускают. Нельзя опускать кавычки, когда внутреннее содержание строки может быть истолковано как инструкция.
Числа:
-переменные в Пилоте - двусторонний односвязный список. Значений у переменной может быть много. Каждое значение - текстовая строка. Переменная состоит из имени
Знаки указывают:
1)с какого конца осуществляетсяся доступ;
2)запись или чтение;
3)происходит ли замещение или наращивание списка.
1)>< имя переменной > = < НЗ >
НЗ 1 2 ..
2)< имя переменной >< = < НЗ >
n n-1 НЗ ..
3)>>< имя переменной > = < новое значение >
НЗ 2 3 …
4)< имя переменной > << = < новое значение >
1 … n-1 НЗ
Это принимающая переменная. Если из переменной извлекаются или копируются значения, то это отдающая переменная (скобки направлены в др. сторону). Когда скобка одна - значение копируется, когда две - значение копируется и удаляется.
$ - переменная $< имя переменной >
В отличие от 0- и n- переменных эта локальная и временная, возникает при сопоставлении какого-либо значения с образцом (фактически это результат пробного означивания, хранится в спец. буфере).
Пробные значения могут использоваться в этой же самой продукции.
Арифметическое выражение - строка, созданная знач. арифметических операций и не заключается в кавычки.
Составная строка - из нескольких компонентов.
< компонента > :: < строка | число | 0-переменная | арифметическое выражение | наследование | вызов программы/подпрограммы >
Все компоненты, в том числе и программы, к моменту образования составной строки д.б. известны и возвратить строку. М/у компонентами ставится точки : «АВС».<P1. «DE».PR3
< Наследование > :: [< имя факта > : < имя слота >]
Фактически эта запись реализует косвенную адресацию любой глубины : [[F1 : S4] : S15]
Берётся значение 4-го слота 1-го факта, истолковывается как имя факта, у которого считается значение 15-го слота.