See the usage documentation.
A short example below shows how comby simplifies matching and rewriting compared to regex approaches like sed.
brew install comby
-
bash <(curl -sL get-comby.netlify.app) -
Other Linux distributions: Releases up to 1.8.1 dynamically link the PCRE library, which newer distributions no longer ship. For those releases, consider building from source instead. Comby no longer depends on PCRE as of this source tree.
- Install the Windows Subsystem for Linux and install Ubuntu. Then run
bash <(curl -sL get.comby.dev)
docker pull comby/comby
click to expand an example invocation for the docker image
Running with docker on stdin:
docker run -a stdin -a stdout -a stderr -i comby/comby '(:[emoji] hi)' 'bye :[emoji]' lisp -stdin <<< '(👋 hi)'Or try it live.
Sometimes, yes. But often, small changes and refactorings are complicated by nested expressions, comments, or strings. Consider the following C-like snippet. Say the challenge is to rewrite the two if conditions to the value 1. Can you write a regular expression that matches the contents of the two if condition expressions, and only those two? Feel free to share your pattern with @rvtond on Twitter.
if (fgets(line, 128, file_pointer) == Null) // 1) if (...) returns 0
return 0;
...
if (scanf("%d) %d", &x, &y) == 2) // 2) if (scanf("%d) %d", &x, &y) == 2) returns 0
return 0;To match these with comby, all you need to write is if (:[condition]), and specify one flag that this language is C-like. The replacement is if (1). See the live example.
-
Install opam. TL;DR do
sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) -
Run this if you don't have an OCaml 5 switch installed (it bootstraps the OCaml compiler):
opam init
opam switch create 5.1.0 5.1.0
-
Run
eval $(opam env) -
Install OS dependencies:
-
Linux:
sudo apt-get install autoconf pkg-config zlib1g-dev m4 libgmp-dev libev4 libsqlite3-dev -
Mac:
brew install pkg-config gmp libev
-
-
Then install the library dependencies:
git clone https://github.com/comby-tools/comby
cd comby
opam install . --deps-only
- Build and test
make
make test
- Install
combyon yourPATHby running
make install