#ifndef CLANG_AST_TABLEGEN_H
#define CLANG_AST_TABLEGEN_H
#include "llvm/TableGen/Record.h"
#include "llvm/ADT/STLExtras.h"
#include <optional>
#define HasPropertiesClassName …
#define ASTNodeClassName …
#define BaseFieldName …
#define AbstractFieldName …
#define CommentNodeClassName …
#define DeclNodeClassName …
#define DeclContextNodeClassName …
#define StmtNodeClassName …
#define TypeNodeClassName …
#define AlwaysDependentClassName …
#define NeverCanonicalClassName …
#define NeverCanonicalUnlessDependentClassName …
#define LeafTypeClassName …
#define TypeKindClassName …
#define KindTypeFieldName …
#define KindPropertyNameFieldName …
#define TypeCaseClassName …
#define PropertyClassName …
#define ClassFieldName …
#define NameFieldName …
#define TypeFieldName …
#define ReadFieldName …
#define PropertyTypeClassName …
#define CXXTypeNameFieldName …
#define PassByReferenceFieldName …
#define ConstWhenWritingFieldName …
#define ConditionalCodeFieldName …
#define PackOptionalCodeFieldName …
#define UnpackOptionalCodeFieldName …
#define BufferElementTypesFieldName …
#define ArrayTypeClassName …
#define ArrayElementTypeFieldName …
#define OptionalTypeClassName …
#define OptionalElementTypeFieldName …
#define SubclassPropertyTypeClassName …
#define SubclassBaseTypeFieldName …
#define SubclassClassNameFieldName …
#define EnumPropertyTypeClassName …
#define ReadHelperRuleClassName …
#define HelperCodeFieldName …
#define CreationRuleClassName …
#define CreateFieldName …
#define OverrideRuleClassName …
#define IgnoredPropertiesFieldName …
namespace clang {
namespace tblgen {
class WrappedRecord { … };
class HasProperties : public WrappedRecord { … };
class ASTNode : public HasProperties { … };
class DeclNode : public ASTNode { … };
class TypeNode : public ASTNode { … };
class StmtNode : public ASTNode { … };
class PropertyType : public WrappedRecord { … };
class TypeKindRule : public WrappedRecord { … };
class TypeCase : public HasProperties { … };
class Property : public WrappedRecord { … };
class ReadHelperRule : public WrappedRecord { … };
class CreationRule : public WrappedRecord { … };
class OverrideRule : public WrappedRecord { … };
ASTNodeHierarchyVisitor;
void visitASTNodeHierarchyImpl(llvm::RecordKeeper &records,
llvm::StringRef nodeClassName,
ASTNodeHierarchyVisitor<ASTNode> visit);
template <class NodeClass>
void visitASTNodeHierarchy(llvm::RecordKeeper &records,
ASTNodeHierarchyVisitor<NodeClass> visit) { … }
}
}
#endif