Pascal Script for Delphi
Pascal Script is a free scripting engine that allows you to use most of the Object
Pascal language within your Delphi or Free Pascal projects at runtime. Written completely
in Delphi, it is composed of a set of units that can be compiled into your executable,
eliminating the need to distribute any external files. Pascal Script started out
as a need for a good working script, when there were none available at the time.
Why use a scripting engine?
A scripting engine allows an end user to customize an application to his or her
needs without having to recompile it. In addition, you can update your applications
by just sending a new script file that could even be compiled to byte code, which
cannot easily be transformed back to source code.
Pascal Script includes the following features:
-
Variables, Constants
-
Standard language constructs:
-
Begin/End
-
If/Then/Else
-
For/To/Downto/Do
-
Case x Of
-
Repeat/Until
-
While
-
Uses
-
Exit
-
Continue
-
Break
-
Functions inside the script
-
Calling any external DLL function (no special function headers required)
-
Calling registered external methods
-
All common types like Byte, Shortint, Char, Word, SmallInt, Cardinal, Longint,
Integer, String, Real, Double, Single, Extended, Boolean, Array, Record, Enumerations,
Variants
-
Allows the importing and use of classes, with events, properties, methods and
constructors
-
Allows the importing and use of interface and their members
-
Allows IDispatch dynamic method invocation through Variant
-
Assignment of script functions to Delphi events
-
Uses byte code as an intermediate format and allows storing and reloading compiled
scripts
-
Easy to use component version
-
Support for include files
-
Support for compiler defines
-
Capability to call RemObjects SDK Services from within scripts
-
Pascal Script includes a tool to create headers for importing classes and interfaces
History
Pascal Script started out in 2001 with CajScript 1.0, which was soon superseded
by CajScript 2.0 (Later called Innerfuse Pascal Script 2.0). Version 2.0 interpreted
scripts while it ran them, which had the disadvantage that every piece of code had
to be reparsed every time the script engine went over it. With Pascal Script 3.0,
this was changed to a new model, where the compiler and runtime were completely
separated from each other and used a custom byte code format to represent the compiled
script. This compiled script only contained the bare minimum that was required to
execute the code. Later, when Carlo Kok joined RemObjects, it was renamed RemObjects
Pascal Script and is now being maintained by RemObjects Software.
One prominent use of Pascal Script is the Open Source InnoSetup
project. InnoSetup is a widely used setup engine that uses Pascal Script as scripting
engine to provide advanced scripting abilities during installation and uninstallation.
Using Pascal Script, users can customize almost all parts of the setup, add new
wizard pages, call into dlls to add advanced features and provide custom behavior
and install conditions.
PascalScript is also leveraged extensively by our own Data Abstract
for Delphi to provide business rules scripting.
Links
Read more about using Pascal Script, here
and an article on how to import new classes into the script engine here.
Download Now
Pascal Script 3 is free and comes with full source code. Download a copy now, form
our Free Downloads page.
You can also access the latest version of PS directly in our open-source SVN version
control system, at code.remobjects.com.
Note that this option is for advanced users only; we recommend that you use the
installable distribution available at the link above. That said, all the latest
changes are available through SVN first, so SVN is a good option to stay on the
cutting edge.
Supported Tools and Platforms
Pascal Script supports Delphi 4 through 7 and Delphi 2006 through 2009, as
well as the latest Free Pascal 2.x.
Supported Platforms are Win32 Ansi and
Unicode (Delphi + FPC), Win64 (FPC), Linux x86 (FPC) and Linux x64
(FPC).