Thorium is a FreePascal based scripting language for embedded use. It is not intended to run stand alone but to integrate well into a host environment like a gaming engine.
To accomplish that integration, it makes a big use of RTTI information to allow the easy integration of host classes.
- Variables, constants, functions/procedures
- The usual control structures (if, case, while, do-while, for)
- Break and return instructions
- Complex and nested expressions (limitation is set at engine compile-time and depends on the kind of the expression)
- Virtual registers
- Basic types: String, integers and floating point numbers
- Post-compilation optimization
- Evaluation of constant expressions at script compile time
- Use of host environment classes and types
- Stable and probably free of memleaks
- Virtual registers (the amount is set at engine compile time)
- Import classes from the host environment for use in Thorium with various features (like fake inheritance)
- Wrapperless (NativeCall) import of functions and fake functions (methods with constant (hidden) object parameter ("self")) from the host environment
- Calling script functions (hah, would be fairly useless without…)
- Import of record/struct types from the host environment
- This is only available on processor architectures supporting Little Endian (this includes i386-i686 and x86_64). It allows the direct call of a native function from within the script without the need of a wrapper function.