@@ -32,6 +32,10 @@ void TypelibBuilder::registerNamedDecl(const clang::TypeDecl* decl)
3232 std::cout << " TypeClassName " << typeForDecl->getTypeClassName () << std::endl;;
3333 std::cout << " DeclName " << decl->getNameAsString () << std::endl;;
3434
35+ typeName = collonCollonToSlash (typeName);
36+
37+ std::cout << " Typelib name " << typeName << std::endl;
38+
3539 registerType (typeName, typeForDecl, decl->getASTContext ());
3640/*
3741 switch(typeForDecl->getTypeClass())
@@ -163,15 +167,16 @@ bool TypelibBuilder::registerType(const std::string& canonicalTypeName, const cl
163167 addRecord (canonicalTypeName, recordDecl);
164168 }
165169 break ;
166- // case clang::Type::Enum:
167- // {
168- // const clang::EnumDecl *enumDecl = dynamic_cast<const clang::EnumDecl *>(decl);
169- // assert(enumDecl);
170- // addEnum(typeName, enumDecl);
171- // }
172- // break;
173- // default:
174- // std::cout << "Found unknown type " << typeName << std::endl;
170+ case clang::Type::Enum:
171+ {
172+ const clang::EnumType *enumType = static_cast <const clang::EnumType *>(type);
173+ const clang::EnumDecl *enumDecl = enumType->getDecl ();
174+ assert (enumDecl);
175+ addEnum (canonicalTypeName, enumDecl);
176+ }
177+ break ;
178+ default :
179+ std::cout << " Found unknown type " << canonicalTypeName << std::endl;
175180 break ;
176181 }
177182 return true ;
@@ -252,6 +257,7 @@ void TypelibBuilder::addRecord(const std::string &canonicalTypeName, const clang
252257
253258 std::cout << " Parent of " << canonicalFieldTypeName << " is " << fit->getParent ()->getQualifiedNameAsString () << std::endl;
254259
260+ canonicalFieldTypeName = collonCollonToSlash (canonicalFieldTypeName);
255261
256262 if (!registry.has (canonicalFieldTypeName))
257263 {
0 commit comments