ACAV f0ba4b7c9529
Abstract Syntax Tree (AST) visualization tool for C, C++, and Objective-C
Loading...
Searching...
No Matches
acav::TypeInfoExtractor Class Reference

Helper class for extracting rich type information from Clang types. More...

#include <AcavAstBuilder.h>

Public Member Functions

 TypeInfoExtractor (clang::ASTContext &ctx)
void extractTypeInfo (clang::QualType qt, AcavJson &properties) const
 Extract comprehensive type information into JSON.
void extractTypeLocInfo (clang::TypeLoc tl, AcavJson &properties) const
 Extract TypeLoc-specific information.
void extractTemplateArgs (const clang::TemplateArgumentList *args, AcavJson &properties) const
 Extract template argument information.
AcavJson extractTemplateArg (const clang::TemplateArgument &arg) const
 Extract single template argument details.

Detailed Description

Helper class for extracting rich type information from Clang types.

Definition at line 56 of file AcavAstBuilder.h.

Constructor & Destructor Documentation

◆ TypeInfoExtractor()

acav::TypeInfoExtractor::TypeInfoExtractor ( clang::ASTContext & ctx)
explicit

Definition at line 207 of file AcavAstBuilder.cpp.

Member Function Documentation

◆ extractTemplateArg()

AcavJson acav::TypeInfoExtractor::extractTemplateArg ( const clang::TemplateArgument & arg) const

Extract single template argument details.

Definition at line 373 of file AcavAstBuilder.cpp.

References extractTemplateArg().

Referenced by extractTemplateArg(), and extractTemplateArgs().

◆ extractTemplateArgs()

void acav::TypeInfoExtractor::extractTemplateArgs ( const clang::TemplateArgumentList * args,
AcavJson & properties ) const

Extract template argument information.

Adds:

  • "templateArgs": Array of template argument details

Definition at line 357 of file AcavAstBuilder.cpp.

References extractTemplateArg(), and extractTemplateArgs().

Referenced by extractTemplateArgs().

◆ extractTypeInfo()

void acav::TypeInfoExtractor::extractTypeInfo ( clang::QualType qt,
AcavJson & properties ) const

Extract comprehensive type information into JSON.

Adds the following properties:

  • "spelledType": Type as written in source
  • "canonicalType": Canonical type for comparisons
  • "desugaredType": Type with typedefs/using expanded
  • "isConst": Has const qualifier
  • "isVolatile": Has volatile qualifier
  • "isRestrict": Has restrict qualifier

Definition at line 218 of file AcavAstBuilder.cpp.

References extractTypeInfo().

Referenced by extractTypeInfo().

◆ extractTypeLocInfo()

void acav::TypeInfoExtractor::extractTypeLocInfo ( clang::TypeLoc tl,
AcavJson & properties ) const

Extract TypeLoc-specific information.

Adds:

  • "typeLocClass": TypeLoc class name
  • "hasLocalSourceRange": Whether TypeLoc has valid range

Definition at line 340 of file AcavAstBuilder.cpp.

References extractTypeLocInfo().

Referenced by extractTypeLocInfo().


The documentation for this class was generated from the following files: