ТОМ: язык программирования: различия между версиями

Материал из IFВики
Перейти к навигации Перейти к поиску
м (Обработка событий)
м (Предопределенные свойства объектов)
Строка 199: Строка 199:
  
 
====.pos / .поз====
 
====.pos / .поз====
 +
''(только для чтения)''
 +
 
====.cls / .класс====
 
====.cls / .класс====
 
Синтаксис: O.cls
 
Синтаксис: O.cls
Строка 233: Строка 235:
  
 
====.str / .строка====
 
====.str / .строка====
 +
''(только для чтения)''
 +
 
====.num / .число====
 
====.num / .число====
 +
''(только для чтения)''
 +
 
====.obj / .объект====
 
====.obj / .объект====
 +
''(только для чтения)''
 +
 
====.key / .ключ====
 
====.key / .ключ====
 +
''(только для чтения)''
 +
 
====.syn / .синоним====
 
====.syn / .синоним====
 +
''(только для чтения)''
  
 
====.title / .наименование====
 
====.title / .наименование====
 
====.description / .описание====
 
====.description / .описание====
 
====.lex / .лексема====
 
====.lex / .лексема====
 +
''(только для записи)''
 +
 
====.pat / .шаблон====
 
====.pat / .шаблон====
 +
''(только для записи)''
 +
 
====.menu_name / .заголовок_меню====
 
====.menu_name / .заголовок_меню====
  

Версия 14:34, 30 сентября 2008

Справочник по языку программирования платформы ТОМ.

страничка в разработке...

Содержание

Типы данных

Основные типы

Значения основных типов данных могут участвовать в выражениях и присваиваться переменным и свойствам объектов.

number

Число. Числовым типом может быть представлено любое целое число. Над данными числового типа действуют основные арифметические операции.

bool

Логический тип данных. Может принимать значение "да" (true) или "нет" (false). Над данными логического типа действуют операции булевой алгебры.

object

Объект. Объектным типом может быть представлен любой существующий объект. Значения этого типа предоставляют доступ к свойствам и методам объекта.

string

Строка. Строковым типом может быть представлена любая последовательность символов, в том числе и пустая. В выражениях строка заключается в двойные кавычки - "это строка".

key

Лингвистический ключ - строка специального формата

lexeme

Лексема - строка специального формата

null

Пустое значение. Обращение к несуществующим свойствам и функциям всегда возвращает null. В операциях сравнения любого значения с null всегда получается false. Остальные операции с null всегда возвращают null.

Производные типы

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

object.form

Объект с указанными аспектом и формой

object.item

Группа объектов, принадлежащих другому объекту, с указанными аспектом и формой

Преобразование типов

Операторы

=

Оператор "=" используется:


  • Для присвоения значений:

Синтаксис: A = Б

где: A - переменная или свойство, Б - значение или вычисляемое выражение

результат: переменной (свойству) А присваивается значение Б.


  • Для определения строчных синонимов:

Синтаксис: "А" = "Б" = "В"

где: А, Б, В - строки, не содержащие пробелов

результат: при парсинге строки Б и В подменяются строкой А


  • Для определения объектов-синонимов:

Синтаксис: A = Б

где: А и Б - объекты

результат: объект Б становится синонимом объекта А.

+, -, *, /

Математические операторы


==, !=-<>, >, <, >=, <=

Операторы сравнения значений


&-and-и, |-or-или, !-не

Логические операторы


~, *, :

Лингвистические операторы

Конструкции языка

if-else / если-иначе

for / цикл

while / пока

switch-case / выбор-случай

Команды языка

debug / отладка

  • debug on / отладка вкл - включает режим отладки;
  • debug off / отладка выкл - выключает режим отладки;
  • debug "message" / отладка "сообщение" - в режиме отладки выводит сообщение на экран.

run / запустить

  • run "file name" / запустить "имя файла" - запускает на исполнение указанный файл.

При этом происходит потеря всех текущих данных.

include / загрузить

  • include "file name" / загрузить "имя файла" - загружает и выполняет указанный файл.

Используется при модульной организации кода.

break / прервать

continue / продолжить

return / возврат

Константы

null / пусто

  • Используется в выражениях. Возвращает пустое значение.

true, yes / истина, да

  • Используется в выражениях. Возвращает логическое значение "да".

false, no / ложь, нет

  • Используется в выражениях. Возвращает логическое значение "нет".

Категории объектов

location / локация

unique / уникальное

class / класс

counting / счетное

mental / мыслимое

action / действие

Предопределенные объекты

global / глобал

global - системный объект. Используется для хранения глобальных переменных и функций. Создается при старте системы.

global.title содержит наименование системы "ТОМ"

global.description - номер версии и прочую информацию.

Свойства и методы global доступны в контексте других объектов как глобальные функции и переменные.

pers / перс

pers - системная переменная, указывающая на объект, управляемый игроком.

Персонажем может быть только уникальный объект.

При старте системы pers == global


Управление персонажем:

unique GG //создаем уникальный объект

pers = GG //передаем управление на объект GG

pers.title = "главный герой" //меняем свойство GG

this / это

Во время выполнения метода this указывает на объект, которому принадлежит выполняемый метод.

actor / актер

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

act / акт

act указывает на объект категории action и соответствует действию, выполняемому в данный момент. act имеет смысл в методах, вызываемых парсером и после парсера. Во всех остальных случаях значение act равно null.

Свойства объектов

Предопределенные свойства объектов

.name / имя

Возвращает программное имя объекта.

(только для чтения)

.loc / .лок

Возвращает локацию, в которой находится объект.

Для уникальных объектов локация всегда определена. Для прочих категорий - зависит от обстоятельств.

(только для чтения)

.pos / .поз

(только для чтения)

.cls / .класс

Синтаксис: O.cls

Где: O - любой объект.

Возвращает объект, являющийся классом для объекта O.

Если класс не задан, O.cls возвращает null.

Для смены класса, свойству объекта .cls необходимо присвоить новое значение:

O.cls = С

Где: C - объект категории class.

.typ / .тип

Синтаксис: X.typ

Где: X - любое значение.

Возвращает строковое значение соответстующее типу значение X.

(только для чтения)

.ctg / .категория

Синтаксис: O.ctg

Где: O - любой объект.

Возвращает строковое значение соответстующее категории объекта O.

(только для чтения)

.str / .строка

(только для чтения)

.num / .число

(только для чтения)

.obj / .объект

(только для чтения)

.key / .ключ

(только для чтения)

.syn / .синоним

(только для чтения)

.title / .наименование

.description / .описание

.lex / .лексема

(только для записи)

.pat / .шаблон

(только для записи)

.menu_name / .заголовок_меню

Обработка событий

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

.ChkMoveObj( ) / .ПроверкаПеремещенияОбъекта( )

Метод вызывается перед попыткой перемещения объекта. В этом методе можно разместить проверки на возможность перемещения. Если метод возвратит true, перемещение выполняется, если false - отменяется.

.BefMoveObj( ) / .ПередПеремещениемОбъекта( )

Метод вызывается перед перемещением объекта.

.AftMoveObj( ) / .ПослеПеремещенияОбъекта( )

Метод вызывается после перемещения объекта.

.background( ) / ФоновыеДействия( )

Метод используется для описания фоновых действий.

После каждого хода вызывается для объекта global, локации, в которой находится pers, и для всех объектов, находящихся в той же локации что и pers, за исключением самого объекта pers.

.persbackground( ) / ФоновыеДействияПерсонажа( )

Метод используется для описания фоновых действий объекта pers.

После каждого хода вызывается только для объекта pers.

Переменные

var / переменная

Функции

rnd() / шанс()