23 lines
1.3 KiB
Text
23 lines
1.3 KiB
Text
The sfsexp library is intended for developers who wish to manipulate
|
|
(read, parse, modify, and create) symbolic expressions from C or C++
|
|
programs. A symbolic expression, or s-expression, is essentially a
|
|
LISP-like expression such as (a (b c)). S-expressions are able to
|
|
represent complex, structured data without requiring additional
|
|
meta-data describing the structure. They are recursively defined: an
|
|
s-expression is a list of either atoms or s-expressions. In the example
|
|
above, the expression contains an atom "a" and an s-expression, which in
|
|
turn contains two atoms, "b" and "c". They are simple, useful, and well
|
|
understood.
|
|
|
|
This library is designed to provide a minimal set of functions and data
|
|
structures for the four functions listed above: reading s-expressions
|
|
(I/O), parsing strings containing them into an AST equivalent, modifying
|
|
the AST representation, and converting the AST back into a well
|
|
formatted string. The primary goals are efficiency and simplicity. This
|
|
library forms the basis of the data representation and transmission
|
|
protocol for the Supermon high-speed cluster monitoring system from the
|
|
LANL Advanced Computing Laboratory. The usefulness and lack of choice in
|
|
available, open source s-expression libraries around 2003 motivated the
|
|
independent (from supermon) release of this library.
|
|
|
|
WWW: https://github.com/mjsottile/sfsexp
|