add a submodule for c metaprogramming