diff options
Diffstat (limited to 'lib/Frontend/TypeXML.cpp')
-rw-r--r-- | lib/Frontend/TypeXML.cpp | 72 |
1 files changed, 32 insertions, 40 deletions
diff --git a/lib/Frontend/TypeXML.cpp b/lib/Frontend/TypeXML.cpp index f32fbbd241..8bd05443a7 100644 --- a/lib/Frontend/TypeXML.cpp +++ b/lib/Frontend/TypeXML.cpp @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// // -// This file implements the XML document class, which provides the means to +// This file implements the XML document class, which provides the means to // dump out the AST in a XML form that exposes type details and other fields. // //===----------------------------------------------------------------------===// @@ -21,38 +21,36 @@ namespace clang { namespace XML { namespace { -//--------------------------------------------------------- -class TypeWriter : public TypeVisitor<TypeWriter> -{ +//--------------------------------------------------------- +class TypeWriter : public TypeVisitor<TypeWriter> { DocumentXML& Doc; public: TypeWriter(DocumentXML& doc) : Doc(doc) {} #define NODE_XML( CLASS, NAME ) \ - void Visit##CLASS(CLASS* T) \ - { \ - Doc.addSubNode(NAME); + void Visit##CLASS(CLASS* T) { \ + Doc.addSubNode(NAME); #define ID_ATTRIBUTE_XML // done by the Document class itself -#define ATTRIBUTE_XML( FN, NAME ) Doc.addAttribute(NAME, T->FN); +#define ATTRIBUTE_XML( FN, NAME ) Doc.addAttribute(NAME, T->FN); #define TYPE_ATTRIBUTE_XML( FN ) ATTRIBUTE_XML(FN, "type") #define CONTEXT_ATTRIBUTE_XML( FN ) ATTRIBUTE_XML(FN, "context") -#define ATTRIBUTE_OPT_XML( FN, NAME ) Doc.addAttributeOptional(NAME, T->FN); +#define ATTRIBUTE_OPT_XML( FN, NAME ) Doc.addAttributeOptional(NAME, T->FN); #define ATTRIBUTE_ENUM_XML( FN, NAME ) \ { \ const char* pAttributeName = NAME; \ const bool optional = false; \ switch (T->FN) { \ - default: assert(0 && "unknown enum value"); + default: assert(0 && "unknown enum value"); #define ATTRIBUTE_ENUM_OPT_XML( FN, NAME ) \ { \ const char* pAttributeName = NAME; \ const bool optional = true; \ switch (T->FN) { \ - default: assert(0 && "unknown enum value"); + default: assert(0 && "unknown enum value"); #define ENUM_XML( VALUE, NAME ) case VALUE: if ((!optional) || NAME[0]) Doc.addAttribute(pAttributeName, NAME); break; #define END_ENUM_XML } } @@ -62,22 +60,19 @@ public: }; -//--------------------------------------------------------- +//--------------------------------------------------------- } // anon clang } // NS XML -//--------------------------------------------------------- -class DocumentXML::TypeAdder : public TypeVisitor<DocumentXML::TypeAdder> -{ +//--------------------------------------------------------- +class DocumentXML::TypeAdder : public TypeVisitor<DocumentXML::TypeAdder> { DocumentXML& Doc; - void addIfType(const Type* pType) - { + void addIfType(const Type* pType) { Doc.addTypeRecursively(pType); } - void addIfType(const QualType& pType) - { + void addIfType(const QualType& pType) { Doc.addTypeRecursively(pType); } @@ -88,40 +83,37 @@ public: #define NODE_XML( CLASS, NAME ) \ void Visit##CLASS(CLASS* T) \ - { - -#define ID_ATTRIBUTE_XML -#define TYPE_ATTRIBUTE_XML( FN ) Doc.addTypeRecursively(T->FN); -#define CONTEXT_ATTRIBUTE_XML( FN ) -#define ATTRIBUTE_XML( FN, NAME ) addIfType(T->FN); -#define ATTRIBUTE_OPT_XML( FN, NAME ) -#define ATTRIBUTE_ENUM_XML( FN, NAME ) -#define ATTRIBUTE_ENUM_OPT_XML( FN, NAME ) -#define ENUM_XML( VALUE, NAME ) -#define END_ENUM_XML + { + +#define ID_ATTRIBUTE_XML +#define TYPE_ATTRIBUTE_XML( FN ) Doc.addTypeRecursively(T->FN); +#define CONTEXT_ATTRIBUTE_XML( FN ) +#define ATTRIBUTE_XML( FN, NAME ) addIfType(T->FN); +#define ATTRIBUTE_OPT_XML( FN, NAME ) +#define ATTRIBUTE_ENUM_XML( FN, NAME ) +#define ATTRIBUTE_ENUM_OPT_XML( FN, NAME ) +#define ENUM_XML( VALUE, NAME ) +#define END_ENUM_XML #define END_NODE_XML } #include "clang/Frontend/TypeXML.def" }; -//--------------------------------------------------------- -void DocumentXML::addParentTypes(const Type* pType) -{ +//--------------------------------------------------------- +void DocumentXML::addParentTypes(const Type* pType) { TypeAdder(*this).Visit(const_cast<Type*>(pType)); } -//--------------------------------------------------------- -void DocumentXML::writeTypeToXML(const Type* pType) -{ +//--------------------------------------------------------- +void DocumentXML::writeTypeToXML(const Type* pType) { XML::TypeWriter(*this).Visit(const_cast<Type*>(pType)); } -//--------------------------------------------------------- -void DocumentXML::writeTypeToXML(const QualType& pType) -{ +//--------------------------------------------------------- +void DocumentXML::writeTypeToXML(const QualType& pType) { XML::TypeWriter(*this).VisitQualType(const_cast<QualType*>(&pType)); } -//--------------------------------------------------------- +//--------------------------------------------------------- } // NS clang |