sexp

S-expression swiss knife
README

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:

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)
...
Install
Sources
sexp-v0.15.0.tar.gz
sha256=7c0bc2f04bf7abda23ccf02ce10cf90cd9e60124736ffa6501388693f2f30ac0
Dependencies
dune
>= "2.0.0"
sexplib
>= "v0.15" & < "v0.16"
sexp_select
>= "v0.15" & < "v0.16"
sexp_pretty
>= "v0.15" & < "v0.16"
sexp_macro
>= "v0.15" & < "v0.16"
sexp_diff
>= "v0.15" & < "v0.16"
re2
>= "v0.15" & < "v0.16"
ppx_jane
>= "v0.15" & < "v0.16"
jsonaf
>= "v0.15" & < "v0.16"
csvfields
>= "v0.15" & < "v0.16"
core_unix
>= "v0.15" & < "v0.16"
core_kernel
>= "v0.15" & < "v0.16"
core
>= "v0.15" & < "v0.16"
async
>= "v0.15" & < "v0.16"
ocaml
>= "4.08.0"
Reverse Dependencies