- Multi-language architecture enables you to use a number of languages
(at present moment PascalScript, C++Script, BasicScript, JScript).
You can add any procedural language (language grammar is stored in
XML format).
- Standard language set: variables, constants, procedures, functions
(nested functions allowed) with var/const/default parameters, all
the standard operators and statements (including case,
try/finally/except, with), types (int, float, bool, char, string,
multidimensional array, enum, variant), classes (with methods,
events, properties, indices and default properties).
- Types compatibility checking.
- Access to any object inside your application. Standard libraries for
the access to the base classes, controls, forms and BD. Easily
expandable library architecture.
- Small footprint - 90-150Kb, depending on used modules.
- Can be used in multi-thread environment.
- No type declarations (records, classes) in the script; no records,
no pointers, no sets (but you can use 'IN' operator - "a in
['a'..'c','d']"), no shortstrings, no GOTO statement.
- C++Script: no octal constants; no 'break' in the SWITCH operator
(SWITCH works like Pascal CASE); '++' and '--' operators are
possible only after the variables, that is '++i' is not allowed;
'--', '++' and '=' operators do not return a value, that is
'if(i++)' is not allowed; all the identifiers are case-insensitive;
NULL constant is the Pascal Null - use nil instead of NULL.
- JScript and BasicScript: see syntax diagrams.