Skip to content

iDeboy/redgrep

 
 

Repository files navigation

redgrep

About

redgrep is a grep based on regular expression derivatives. That is, it uses regular expression derivatives to construct the DFA. It then uses LLVM to JIT the DFA.

Since regular expression derivatives permit the three basic Boolean operations of disjunction (|), conjunction (&) and complement (!), redgrep enables you to write very powerful regular expressions very easily and guarantees to match them in linear time.

Building

You must have Bazel, GNU bison and either GCC or Clang.

redgrep attempts to keep up with LLVM development, so you should get the source code and build LLVM. (Debian and Ubuntu users might prefer to install the nightly packages instead.)

If llvm-config-16 is in your path, add the following to your WORKSPACE file:

load("@com_github_google_redgrep//:redgrep_configure.bzl", "redgrep_configure")
redgrep_configure(name = "local_config_redgrep")

Otherwise, add the following to your WORKSPACE file and specify the path to llvm-config-16:

load("@com_github_google_redgrep//:redgrep_configure.bzl", "redgrep_configure")
redgrep_configure(name = "local_config_redgrep", llvm_config = "/path/to/llvm-config-16")

Contact

[email protected]

Disclaimer

This is not an official Google product.

About

♥ Janusz Brzozowski

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 90.7%
  • Yacc 5.5%
  • Starlark 3.8%