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.