aboutsummaryrefslogtreecommitdiff
path: root/devel/sfsexp/pkg-descr
blob: f5a802a8111543c54503e865ef2981836ddbfb5d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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