Clank
Clank is a fully stand-alone C++ front-end based on LLVM’s clang compiler.
It has been heavily modified and de-coupled from LLVM to be a stand alone library with only the C++ standard libraries as dependencies.
Planned Support
The clang front-end can parse many languages, but clank is mainly focused on C and C++, however work is eventually planned to support most if not all of the languages that clang does as well. The table below shows the status of each language.
There is also the possibility of adding support for D lang and also possibly Fortran but those would be left until after the MVP of supporting C and C++ has been met.
Language | Standard | Status | Extensions |
---|---|---|---|
C++ | 99 | 🚧 In Progress 🚧 | GNU |
11 | 🚧 In Progress 🚧 | GNU | |
14 | 🚧 In Progress 🚧 | GNU | |
17 | 🚧 In Progress 🚧 | GNU | |
20 | 🚧 In Progress 🚧 | GNU | |
2b | 🚧 In Progress 🚧 | GNU | |
C | 99 | ⏳ Planned ⏳ | GNU |
11 | ⏳ Planned ⏳ | GNU | |
14 | ⏳ Planned ⏳ | GNU | |
17 | ⏳ Planned ⏳ | GNU | |
2x | ⏳ Planned ⏳ | GNU | |
ObjC | ❔ | ⏳ Planned ⏳ | None |
ObjC++ | ❔ | ⏳ Planned ⏳ | None |
OpenCL | ❔ | ⏳ Planned ⏳ | None |
License
Clank is under the Apache 2.0 license with LLVM exceptions, just like the original clang. The full text of the license can be found in the LICENSE
file.