package sexp
S-expression swiss knife
Install
Dune Dependency
Authors
Maintainers
Sources
sexp-v0.14.0.tar.gz
sha256=5f0714f11a0e09e7b80cbb5f41c4f62a0fbca5a771700bc4f8357fefc586f9af
md5=88a7673bc1e4fb9a12a97070bb88f9f7
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: 31 May 2020
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 (13)
-
dune
>= "2.0.0"
-
sexplib
>= "v0.14" & < "v0.15"
-
sexp_select
>= "v0.14" & < "v0.15"
-
sexp_pretty
>= "v0.14" & < "v0.15"
-
sexp_macro
>= "v0.14" & < "v0.15"
-
sexp_diff_kernel
>= "v0.14" & < "v0.15"
-
re2
>= "v0.14" & < "v0.15"
-
ppx_jane
>= "v0.14" & < "v0.15"
-
csvfields
>= "v0.14" & < "v0.15"
-
core_kernel
>= "v0.14" & < "v0.15"
-
core
>= "v0.14" & < "v0.15"
-
async
>= "v0.14" & < "v0.15"
-
ocaml
>= "4.08.0"
Dev Dependencies
None
Used by
None
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page