Ingo Ruhnke 4d8096c223 Remove obsolete .appveyor.yml | hai 5 meses | |
---|---|---|
benchmarks | %!s(int64=5) %!d(string=hai) anos | |
external | hai 1 ano | |
include | %!s(int64=3) %!d(string=hai) anos | |
mk | hai 1 ano | |
pkgconfig | %!s(int64=5) %!d(string=hai) anos | |
src | hai 1 ano | |
tests | hai 1 ano | |
.clang-tidy | %!s(int64=4) %!d(string=hai) anos | |
.gitattributes | %!s(int64=2) %!d(string=hai) anos | |
.gitignore | %!s(int64=2) %!d(string=hai) anos | |
.gitmodules | %!s(int64=2) %!d(string=hai) anos | |
CMakeLists.txt | hai 1 ano | |
LICENSE.txt | %!s(int64=9) %!d(string=hai) anos | |
README.md | %!s(int64=9) %!d(string=hai) anos | |
VERSION | %!s(int64=2) %!d(string=hai) anos | |
flake.lock | hai 5 meses | |
flake.nix | hai 5 meses | |
logo.png | %!s(int64=9) %!d(string=hai) anos | |
logo.svg | %!s(int64=9) %!d(string=hai) anos | |
sexp-config.cmake.in | %!s(int64=2) %!d(string=hai) anos | |
sexpcpp.nix | %!s(int64=2) %!d(string=hai) anos |
SExp is an S-Expression parser for C++.
Example Code:
sexp::Value value = sexp::Parser::from_string("(1 2 3 4 5)")
sexpr::Value const& head = value.get_car();
sexpr::Value const& tail = value.get_cdr();
if (head.is_integer())
{
std::cout << head.as_int() << std::endl;
}
When dealing with large amounts of data the classic Scheme list comes with quite abit of a performance penentaly, for this reason SExp allows you to interpret all list as arrays:
sexp::Parser::from_stream(fin, sexp::Parser::USE_ARRAYS);
If C++ locales are used in your code, compile with:
cmake -DSEXP_USE_LOCALE=ON
Otherwise the input and output functions will produce incorrect results (i.e. "1,5" instead of "1.5").