EEL Features
- Designed for hard real time applications
- Implemented in portable C with very few dependencies
- C-like syntax
- Automatic memory management
- Dynamic typing
- Functions are objects (Can be passed by reference)
- Generic argument multiplexing, even inside expressions
- Loop constructs support break, continue and repeat
- Named loop bodies for break, continue and repeat
- Variable length argument lists...
- Required arguments
- Optional arguments
- Tuple arguments
- Exception handling...
- try..except statements
- untry to debug code inside try blocks
- except blocks are optional
- throw statement that can throw any object
- retry statement to re-run try block
- Built-in high level types...
- string (Pooled constant "Pascal strings")
- dstring (Dynamic "Pascal string")
- array (Array of dynamic typed values)
- vectors (Fast, compact arrays of numeric types)
- table (Table of <key, value> tuples)
- file and memfile (Disk and memory files)
- directory (Disk file directory)
- Modules:
- Modules are objects
- Imported modules can be wrapped in namespaces
- EEL modules...
- Can be imported at compile time
- Can be loaded dynamically at run time
- Native (C) modules...
- Can be injected by host applications
- Taste just like (in fact, are) EEL modules
- Integrated compiler with comprehensive error messages
- EEL code can generate and compile EEL code at run time
- Fast, register based, variable instruction size VM
- Light weight interface to call C functions
- Simple interface to call EEL functions from C
- True data types can be added at run time
- Low cost of entering and leaving the VM
- Comes with EELBox, a binding to SDL with some add-ons
|
|
|
|
|
|