Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Арсенальная башня
  
Содержание



 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  04:54[Войти] | [Зарегистрироваться]

Краткое описание Innerfuse Pascal Script

Николай Васильев
дата публикации 17-10-2001 14:34

КАТЕГОРИЯИнтерпретаторы/скриптовые утилиты
ПРОДУКТInnerfuse Pascal Script
АВТОРCarlo Kok
URLhttp://www.carlo-kok.com/ifps3.php
ПОДДЕРЖИВАЕМЫЕ IDE


Innerfuse Pascal Script — встраиваемый в приложение "движок" для выполнения скриптов непосредственно в программе.

Поддерживает:
  1. стандартные типы: Byte, Shortint, Char, Word, SmallInt, Cardinal, Longint, Integer, String, Real, Double, Single, Extended, Comp, Boolean, Array, Record, Variant;
  2. классы (также объявленные во внешнем скрипте);
  3. переменные, константы;
  4. библиотеки для работы с DLL, вызова функций Delphi, преобразований типов, работы с визуальными объектами;
  5. стандартные выражения: Begin/End, If/Then/Else, For/To/Downto/Do, Case x Of, Repeat/Until, While, With, Uses, Try/Except/Finally Exit, Continue, Break;
  6. функции, процедуры, параметры Array of Const, Var;
  7. позволяет одновременно в одном приложении запускать несколько экземпляров PascalScript и при этом каждый из них могут между собой иметь интерфейс.
Как пишет автор, синтаксис Innerfuse Pascal Script является практически тем же, что и в Delphi Object Pascal за исключением указателей, которые в данном продукте не поддерживаются.

Сам "движок" не является компонентом, это - набор модулей (ifspas (основной), ifs_utl, ifs_var, ifs_obj). Чтобы его использовать в своём приложении, нужно:
uses
  ifspas, ifs_utl, ifs_var;

var
  ScriptEngine: TIFPasScript;

//В событии onCreate формы:
  ScriptEngine := TIfPasScript.Create(nil);
//В событии OnDestroy формы:
  ScriptEngine.Free;
//В  событии,  по  котоорому  запускается  скрипт  (исключая редактор,
//который содержит текст скрипта):
  ScriptEngine.SetText(memo1.text);
  Scriptengine.RunScript;
//Теперь можно осуществлять проверку ошибок

Наличествует обработка ошибок с помощью типа TIFSError. TIFSError используется для запоминания текущей ошибки, выданной при работе скрипта.
TIFSError = record
   ErrorCode: TIfPasScriptError;
   ErrorPosition: Longint;
   ErrorParam: String;
   ErrorModule: string;
end;
TIfPasScriptError - тип, содержащий коды ошибок. Имеется возможность "отлавливать" целый набор ошибок, таких как:
"Compile Time" Errors:
ENoError - нет ошибки
ECanNotReadProperty
ECanNotWriteProperty
EUnknownIdentifier
EIdentifierExpected
ESemicolonExpected
EBeginExpected
EDuplicateIdentifier
EUnexpectedEndOfFile
EColonExpected
ESyntaxError
EStringError
EErrorInStatement
EAssignmentExpected
ETypeMismatch
EErrorInExpression
ERoundOpenExpected
ERoundCloseExpected
EVariableExpected
ECommaExpected
EThenExpected
EPeriodExpected
EParameterError (RunScriptProc)
EToExpected
EDoExpected
EOfExpected
EEndExpected
EOpenBlockExpected
ECloseBlockExpected
EConstantExpected
EIsExpected
EIntegerExpected
ECloseRoundExpected
EUntilExpected
EClassNotAllowedHere
EClassTypeExpected
ECanNotOverride
EUnsatisfiedForward
EConstructorExpected
ENoInheritedAllowedHere
ECanNotReadOrWriteProperty
EObjectExpected
ECommentError
ECharError
EExceptExpected
EStringExpected
EUnitNotFound
ENotSupported
"Runtime" Errrors
EClassNotCreated
EOutOfRange
EDivideByZero
EExitCommand
EClassAlreadyFreed
EClassReferenceNotAssigned
EVariantIsNil
ECustomError
EOutOfMemoryError	
Имеется возможность выполнения основных математических операций, набор функций преобразований типов и работы со строками, классы, подобые TList и TStringList.

При работе с классами поддерживаются свойства, наследование, полиморфизм.

Очень многие возможности продемонстрированы в демо-проекте, имеется довольно подробный файл помощи, содержащий описание основных модулей и типов.

Резюме: довольно мощный инструмент для приложений, в которых необходимо выполнять программирование "на лету". По всей видимости, вполне способен устранить необходимость использования в своих приложениях MS Script Control для подобных действий. Проект постоянно развивается, периодически выходят обновления с исправлениями обнаруженных ошибок, а также с добавлениями новых возможностей.


Недостатки
При беглом обзоре возможностей продукта явных недостатков обнаружено не было, если не считать мелких недочётов в демо-скриптах (в некоторых пропущены строки, из-за чего скрипт не работал, а выдавал сообщение об ошибке, но эти недочёты в принципе очевидны, поэтому без труда устраняются).


Инструменты из этой же категории
  • FastScript


    Смотрите также материалы по темам:
    [TList] [TStringList] [Обработка текста] [Использование Active Script]

     Обсуждение материала [ 07-06-2011 03:07 ] 4 сообщения
  •   
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования