libklel

The KoreLogic Expression Language Library (libklel) is a C library that provides a simple expression language that can be embedded in other programs. It does not implement a full programming language, but rather a simpler expression language called KL-EL that is designed to provide arithmetic and logic operations in situations where embedding a full programming language would be overkill. KL-EL can access functions and variables exported from the embedding program, and is statically and strongly typed, which helps ensure that expressions are valid before they are executed. The embedding API is easy to use, and the library itself is very small.

Recent releases

Release Notes: This release reworks the error-reporting APIs for better consistency. It adds interfaces to retrieve additional version information at runtime. It adds several 'abort' functions to the KL-EL standard library that make it possible for expressions to generate runtime errors, which are also useful for testing purposes. The guts of several routines have been relocated to reduce the number of opportunities for memory allocation errors once an expression has been compiled. This release fixes a bug in the interpreter that could cause a crash if the actual argument to a function produces a runtime error.

Release Notes: This is the first production release. The parser was completely rewritten to be faster. The standard library was extended and enhanced. A full set of manual pages is now provided (currently only in English). Numerous other bugfixes and enhancements have been made. The code has been tested using a variety of code verification tools for correctness.