SASGIS

Веб-картография и навигация

Типы переменных в GetUrlScript.txt

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Типы переменных в GetUrlScript.txt

Сообщение Tolik » 07 фев 2012, 08:47

Уточните, пожалуйста, какие типы переменных можно использовать в паскальскриптах.
И какие макс. значения для integer и т.п.
Мне кажется, не все паскатевские типы поддерживаются, поэтому спрашиваю.

Также я добавил типы в вики описание паскаль скриптов, посмотрите, правильно ли.

P.S. Какой вообще компилятор используется для этих скриптов? Наверно ж не сами писали, а взяли какой-то готовый? Где к нему документация? Хочу добавить в вики полный список встроенных функций, типов и т.п.
Tolik
Гуру
 
Сообщения: 2603
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 277 раз.
Поблагодарили: 515 раз.

Re: Типы переменных в GetUrlScript.txt

Сообщение vdemidov » 07 фев 2012, 11:29

Понятия не имею какие типы переменных можно использовать.
Используется RemObjects PascalScript
http://code.remobjects.com/svn/pascalscript
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: Типы переменных в GetUrlScript.txt

Сообщение vasketsov » 07 фев 2012, 12:26

Tolik писал(а):Хочу добавить в вики полный список встроенных функций, типов и т.п.

Крайне неблагодарная работа, да и не по адресу.
Дело в том, что компилятор этот сам по себе имеет кучу встроенных функций, типов и т.п.
В сасе только с десяток своих добавляется.
Так что "полый список" не надо, ссылки на исходный проект + описание местных функций - будет достаточно.

В общем-то всё самое интересное находится в файлах u_TileDownloadRequestBuilderFactoryPascalScript и u_TileDownloadRequestBuilderPascalScript.

В первом файле - внутри функции ScriptOnUses определяются доступные:
а) типы (типа TDoublePoint);
б) интерфейсы (там где толпой попёрло RegisterMethod);
в) переменные (через AddUsedVariable, первый параметр - имя, второй параметр - тип, который определяется чуть выше, например для 'Converter' будет 'ICoordConverter');
г) функции (через AddDelphiFunction - указывается ТОЛЬКО прототип).

Во втором файле - внури TTileDownloadRequestBuilderPascalScript.PreparePascalScript определяется, как это всё хозяйство будет маппиться на РЕАЛЬНЫЕ типы, переменные и функции внутри саса:
а) строка типа FExec.RegisterDelphiFunction(@RoundEx, 'RoundEx', cdRegister) означает, что когда в скрипте зовут 'RoundEx', надо выполнить функцию по адресу @RoundEx с соглашением о вызовах cdRegister (имена реальных функций не всегда соответствуют прототипам, например Rand доступна как 'Random');
б) как маппятся переменные, тут не особо важно, они всё равно живут только внутри компилятора.

За это сообщение автора vasketsov поблагодарили: 2
Tolik (07 фев 2012, 12:58) • vdemidov (07 фев 2012, 12:39)
Рейтинг: 10.53%
 
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.


Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1