Skip to content

Commit 4d2f9ac

Browse files
author
Janosch Machowinski
committed
Made Enums work again (this time recursive)
1 parent d49626b commit 4d2f9ac

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

tools/tlbBuilder/TypelibBuilder.cpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)