In dependency order:
- tree-sitter: the core
tree-sitter project, provides commands such as
tree-sitter generate
that turn a grammar specification into a C parser. - tree-sitter-ruby, tree-sitter-typescript, etc.: grammars for various programming languages. Some of these repositories provide support for several dialects of the same language.
- ocaml-tree-sitter: this repo. Generates OCaml-friendly interfaces from tree-sitter grammar specifications.
- semgrep-ruby, semgrep-typescript, etc.: parsers generated by tree-sitter and ocaml-tree-sitter from the ocaml-tree-sitter repo.
- semgrep: uses the semgrep-LANG libraries for parsing programs and for parsing the patterns to be matched against those programs.