package sexp
S-expression swiss knife
Install
Dune Dependency
Authors
Maintainers
Sources
v0.17.0.tar.gz
sha256=c0ad559a13c4eed11f25446016fc776ea147527d186d5b713fcc8d201d26ce6b
Description
A suite of tools for working with s-expressions from the command line. It contains subcommands for pretty printing, querying, and modifying sexps, as well as some conversions to and from other formats.
Published: 26 May 2024
README
Sexp - The s-expression toolkit
A suite of tools for working with s-expressions from the command line. It contains subcommands for pretty printing, querying, and modifying sexps, as well as some conversions to and from other formats.
See also:
$ sexp -help
the s-expression toolkit
sexp SUBCOMMAND
=== subcommands ===
assemble Assemble a lists of parts into sexps. Sexp part lists are
separated by newlines.
change transform an s-expression
flatten Flatten a list of sexp into its parts. Each part on its own
line.
get extract parts of an s-expression
of-xml convert XML from stdin into an s-expression
pp Pretty print S expressions in a human-friendly way.
print pretty-print an s-expression
query query an s-expression
resolve-macros resolve macros in a sexp
restructure recover structure of an s-expression
select Use CSS-style selectors to traverse sexp trees
to-csv converts a list of record s-expressions into CSV format
validate validate a sequence of s-expressions on stdin
version print version information
help explain a given subcommand (perhaps recursively)
Examples
Colorize the output of ocamlc -dlambda
:
$ ocamlc -dlambda -c fact.ml 2>&1 | sexp pp -color (setglobal Fact! ( letrec (fact/1008 ( function n/1009 ( if (== n/1009 0) 1 (* n/1009 (apply fact/1008 (- n/1009 1)))))) (makeblock 0 fact/1008)))
Extract the list of command run by jenga:
$ cat query.sexp
(pipe
(variant Job_started 1)
(index 1)
(wrap (cat (field prog) (pipe (field args) each)))
)
$ sexp query -file query.sexp < .jenga/.jenga.debug
(ocamlc -c foo.mli)
(ocamlc -c foo.ml)
...
Dependencies (16)
-
dune
>= "3.11.0"
-
shell
>= "v0.17" & < "v0.18"
-
sexplib
>= "v0.17" & < "v0.18"
-
sexp_select
>= "v0.17" & < "v0.18"
-
sexp_pretty
>= "v0.17" & < "v0.18"
-
sexp_macro
>= "v0.17" & < "v0.18"
-
sexp_diff
>= "v0.17" & < "v0.18"
-
re2
>= "v0.17" & < "v0.18"
-
ppx_jane
>= "v0.17" & < "v0.18"
-
jsonaf
>= "v0.17" & < "v0.18"
-
csvfields
>= "v0.17" & < "v0.18"
-
core_unix
>= "v0.17" & < "v0.18"
-
core_kernel
>= "v0.17" & < "v0.18"
-
core
>= "v0.17" & < "v0.18"
-
async
>= "v0.17" & < "v0.18"
-
ocaml
>= "5.1.0"
Dev Dependencies
None
Used by
None
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page