TypeInfo CompilerUtils::typeDescription(TypeSpecifierAST *type_specifier, DeclaratorAST *declarator, Binder *binder) { TypeCompiler type_cc(binder); DeclaratorCompiler decl_cc(binder); type_cc.run(type_specifier); decl_cc.run(declarator); TypeInfo typeInfo; typeInfo.setQualifiedName(type_cc.qualifiedName()); typeInfo.setConstant(type_cc.isConstant()); typeInfo.setVolatile(type_cc.isVolatile()); typeInfo.setReference(decl_cc.isReference()); typeInfo.setIndirections(decl_cc.indirection()); typeInfo.setArrayElements(decl_cc.arrayElements()); return typeInfo; }