birmaga.ru
добавить свой файл

1 2 ... 19 20



FastScript 1.9

Библиотека скриптов

Руководство разработчика


Copyright (c) 1998-2005 by Fast Reports Inc.
Author: Alexander Tzyganenko

e-mail: tz@fast-report.com

home page: http://www.fastreport.ru

http://www.fast-report.com

Введение



Что такое FastScript

Быстрый старт

Реализованные и нереализованные особенности

Описание языка

Структура скрипта

Типы данных

Классы

Функции

События

Перечисления и множества

Массивы

Что такое FastScript



FastScript - библиотека для выполнения скриптов. Она будет полезна разработчикам, желающим добавить возможности исполнения скриптовых программ в свои проекты.
FastScript написан полностью на 100% Object Pascal и может быть установлен в Borland Delphi 4-7
/2005/2006, Borland C++Builder 4-6 и Borland Kylix 1-3.
Уникальные возможности FastScript - возможность одновременного использования нескольких языков (в настоящее время - PascalScript
, C++Script, BasicScript и JScript), вы можете писать скрипты, используя ваш любимый язык программирования. FastScript не использует Microsoft Scripting Host, а потому может использоваться как в Windows, так и в Linux.

FastScript объединяет в себе кросс-платформенность, быстрое выполнение кода, компактность, богатый выбор возможностей и великолепную масштабируемость. Сделайте ваши приложения максимально гибкими и мощными с FastScript!



Быстрый старт



Вот пример кода, который демонстрирует простейший способ использования FastScript. Для корректной работы примера положите на форму компоненты fsScript1: TfsScript и fsPascal1: TfsPascal.
uses FS_iInterpreter;
procedure TForm1.Button1Click(Sender: TObject);

begin

fsScript1.Clear; // надо очищать компонент, если он используется для запуска нескольких скриптов

fsScript1.Lines.Text := 'begin ShowMessage(''Hello!'') end.';

fsScript1.Parent := fsGlobalUnit;

fsScript1.SyntaxType := 'PascalScript';

if fsScript1.Compile then

fsScript1.Execute else

ShowMessage(fsScript1.ErrorMsg);

end;
Как видите, здесь нет ничего сложного. Мы заполняем свойство fsScript1.Lines текстом скрипта. Затем мы указываем, что наш скрипт будет использовать стандартные типы и функции, определенные в глобальном модуле fsGlobalUnit. После этого мы компилируем скрипт, используя язык PascalScript. Если компиляция успешна, метод Compile возвратит True и мы можем выполнить (Execute) скрипт. Иначе будет выведено сообщение об ошибке.

Реализованные и нереализованные особенности

Реализованные особенности


- мультиязычная архитектура, позволяющая использовать множество языков (в настоящее время - PascalScript и C++Script). Можете добавлять любые другие процедурно-ориентированные языки (их описание хранится в XML-формате)

- стандартный языковой набор: переменные, константы, процедуры, функции (с возможностью вложенности) с переменными/постоянными/умалчиваемыми параметрами, все стандартные операторы и объявления (включая case, try/finally/except, with), типы (целый, дробный, логический, символьный, строковый, многомерные массивы, множество, variant), классы (с методами, событиями, свойствами, индексами и свойствами по умолчанию).
- проверка совместимости типов.
- доступ к любому объекту вашего приложения. Стандартные библиотеки для доступа к базовым классам, контролам, формам и БД. Легко расширяемая архитектура библиотеки.
- Компактность -
90-150Кб в зависимости от используемых модулей.

Нереализованные особенности



- Отсутствуют объявления типов (records, classes) в скрипте; нет записей (records), указателей (pointers), множеств (sets) (однако возможно использование оператора 'IN' - "a in ['a'..'c','d']"), нет типа shortstrings, нет безусловного перехода (GOTO).

- C++Script: нет восьмеричных констант; нет 'break' в операторе SWITCH (SWITCH работает подобно Pascal CASE); операторы '++' и '--' возможны только после переменных, т.е. '++i' не будет работать; операторы '--', '++' и '=' ничего не возвращают, т.е. 'if(i++)' не будет работать; все идентификаторы не чувствительны к регистру; Константа NULL это Null из Pascal- используйте nil вместо NULL.

- JScript и BasicScript: см. синтаксические диаграммы.



следующая страница >>