This is a library defining a generic AST to factorize similar analysis on different programming languages (e.g., naming, semantic code highlighting, semgrep matching).
Right now this generic AST is mostly the factorized union of the ASTs of:
- Python, Ruby, Lua, Julia, Elixir
- PHP, Hack
- Java, CSharp, Kotlin
- C, C++
- OCaml, Scala, Rust
- Clojure, Lisp, Scheme
- Bash, Docker
- JSON, YAML, HCL, Jsonnet
This is a core library used by Semgrep but which can be of use in other projects. This AST is also specified using ATD and so can be leveraged from other programming languages such as Typescript, Java, Scala, and the other programming languages supported by atdgen.