Un breve ejemplo a continuación muestra cómo comby simplifica la coincidencia y la reescritura en comparación con enfoques de expresiones regulares como sed
.
brew install comby
bash <(curl -sL get-comby.netlify.app)
Otras distribuciones de Linux : la biblioteca PCRE está vinculada dinámicamente en el binario de Ubuntu. Para otras distribuciones como Arch Linux, se necesita una solución: sudo ln -s /usr/lib/libpcre.so /usr/lib/libpcre.so.3
. En Fedora, use sudo ln -s /usr/lib64/libpcre.so /usr/lib64/libpcre.so.3
. Alternativamente, considere construir desde la fuente.
bash <(curl -sL get.comby.dev)
docker pull comby/comby
Ejecutando con Docker en stdin
:
docker run -a stdin -a stdout -a stderr -i comby/comby ' (:[emoji] hi) ' ' bye :[emoji] ' lisp -stdin <<< ' ( hi) '
A veces sí. Pero a menudo, los pequeños cambios y refactorizaciones se complican con expresiones, comentarios o cadenas anidadas. Considere el siguiente fragmento tipo C. Digamos que el desafío es reescribir las dos condiciones if
al valor 1
. ¿Puedes escribir una expresión regular que coincida con el contenido de las dos expresiones de condición if, y solo esas dos? No dudes en compartir tu patrón con @rvtond en 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 ;
Para hacer coincidir estos con comby, todo lo que necesita escribir es if (:[condition])
y especificar un indicador de que este lenguaje es similar a C. El reemplazo es if (1)
. Vea el ejemplo en vivo.
Instalar opam. TL;DR hacer sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)
Ejecute esto si no tiene OCaml instalado (arranca el compilador OCaml):
opam init
opam switch create 4.11.0 4.11.0
Ejecutar eval $(opam env)
Instalar dependencias del sistema operativo:
Linux: sudo apt-get install autoconf libpcre3-dev pkg-config zlib1g-dev m4 libgmp-dev libev4 libsqlite3-dev
Mac: brew install pkg-config gmp pcre libev
Luego instale las dependencias de la biblioteca:
git clone https://github.com/comby-tools/comby
cd comby
opam install . --deps-only
make
make test
comby
en su PATH
ejecutando make install