Tolik писал(а):Хочу добавить в вики полный список встроенных функций, типов и т.п.
Крайне неблагодарная работа, да и не по адресу.
Дело в том, что компилятор этот сам по себе имеет кучу встроенных функций, типов и т.п.
В сасе только с десяток своих добавляется.
Так что "полый список" не надо, ссылки на исходный проект + описание местных функций - будет достаточно.
В общем-то всё самое интересное находится в файлах u_TileDownloadRequestBuilderFactoryPascalScript и u_TileDownloadRequestBuilderPascalScript.
В первом файле - внутри функции ScriptOnUses определяются доступные:
а) типы (типа TDoublePoint);
б) интерфейсы (там где толпой попёрло RegisterMethod);
в) переменные (через AddUsedVariable, первый параметр - имя, второй параметр - тип, который определяется чуть выше, например для 'Converter' будет 'ICoordConverter');
г) функции (через AddDelphiFunction - указывается ТОЛЬКО прототип).
Во втором файле - внури TTileDownloadRequestBuilderPascalScript.PreparePascalScript определяется, как это всё хозяйство будет маппиться на РЕАЛЬНЫЕ типы, переменные и функции внутри саса:
а) строка типа FExec.RegisterDelphiFunction(@RoundEx, 'RoundEx', cdRegister) означает, что когда в скрипте зовут 'RoundEx', надо выполнить функцию по адресу @RoundEx с соглашением о вызовах cdRegister (имена реальных функций не всегда соответствуют прототипам, например Rand доступна как 'Random');
б) как маппятся переменные, тут не особо важно, они всё равно живут только внутри компилятора.