| //===-- DocumentXML.def - Metadata about Document XML nodes -----*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file defines the XML root database structure as written in |
| // an AST XML document. |
| // The following macros are used: |
| // |
| // NODE_XML( CLASS, NAME ) - A node of name NAME denotes a concrete |
| // statement of class CLASS where CLASS is a class name used internally by clang. |
| // After a NODE_XML the definition of all (optional) attributes of that statement |
| // node and possible sub-nodes follows. |
| // |
| // END_NODE_XML - Closes the attribute definition of the current node. |
| // |
| // ID_ATTRIBUTE_XML - Some nodes have an "id" attribute containing a |
| // string, which value uniquely identify the entity represented by that node. |
| // Other nodes may refer by reference attributes to this value. |
| // |
| // ATTRIBUTE_SPECIAL_XML( FN, NAME ) - An attribute named NAME which deserves |
| // a special handling. See the appropriate documentations. |
| // |
| // SUB_NODE_XML( CLASS ) - A mandatory sub-node of class CLASS or its sub-classes. |
| // |
| // SUB_NODE_SEQUENCE_XML( CLASS ) - Zero or more sub-nodes of class CLASS or |
| // its sub-classes. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| ROOT_NODE_XML("CLANG_XML") |
| ATTRIBUTE_SPECIAL_XML(ignore, "version") // special retrieving needed |
| SUB_NODE_XML("TranslationUnit") |
| SUB_NODE_XML("ReferenceSection") |
| END_NODE_XML |
| |
| NODE_XML("TranslationUnit") |
| SUB_NODE_SEQUENCE_XML(Decl) |
| END_NODE_XML |
| |
| NODE_XML("ReferenceSection") |
| SUB_NODE_XML("Types") |
| SUB_NODE_XML("Contexts") |
| SUB_NODE_XML("Files") |
| END_NODE_XML |
| |
| NODE_XML("Types") |
| SUB_NODE_SEQUENCE_XML(Type) |
| END_NODE_XML |
| |
| NODE_XML("Contexts") |
| SUB_NODE_SEQUENCE_XML(DeclContext) |
| END_NODE_XML |
| |
| NODE_XML("Files") |
| SUB_NODE_SEQUENCE_XML("File") |
| END_NODE_XML |
| |
| NODE_XML("File") |
| ID_ATTRIBUTE_XML |
| ATTRIBUTE_SPECIAL_XML(ignore, "name") // special retrieving needed, denotes the source file name |
| END_NODE_XML |
| |
| |
| //===----------------------------------------------------------------------===// |
| #undef NODE_XML |
| #undef ID_ATTRIBUTE_XML |
| #undef ATTRIBUTE_SPECIAL_XML |
| #undef END_NODE_XML |
| #undef SUB_NODE_XML |
| #undef SUB_NODE_SEQUENCE_XML |