Even if you can easily parse C++,[1] there are a lot of practical impediments to binding to C++ libraries. If an API exposes templates, or relies on constructors&#x2F;destructors, it&#x27;s very hard to call that from non-C++ code. For example, SpiderMonkey wraps JS pointers in C++ objects and uses RAII to register roots being held by C++ code with the JS garbage collector. Handy, but more or less impossible to call from non-C++ code without writing a shim by hand.<p>[1] You young-uns and your Clang. I did a C++ binding generator for my GSoC project, and back then (&#x27;05) GCC was the only open-source thing that could parse C++, and you could only get at the parse tree by patching it to dump XML.