The file “llvm.stl/libcxxabi/src/cxa_demangler.cpp” implement the interface “__cxa_demangle()” defined in the C++ABI. It decoded the mangled string into the demangled one, that is, “string → string”. Inside it, it is implemented by “string → AST → string”. However, someone might need the internal AST instead of the demangled string to do the further analysis for the mangled string. Do we have any plan not to hide the AST inside the cxa_demangler.cpp, but public it into the cxa_demangle.h ? Thank you.
No plans as of yet! I never planned to export the AST in this way, doing so would probably require some surgery (ie, make all the identifiers it uses reserved). I very recently landed r329951, which provides a simple opaque API to the AST for the copy of the demangler in llvm. Maybe this is enough for your use case? What kind of analysis are you planning on performing?