diff options
Diffstat (limited to 'include/clang/AST/StmtGraphTraits.h')
-rw-r--r-- | include/clang/AST/StmtGraphTraits.h | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/include/clang/AST/StmtGraphTraits.h b/include/clang/AST/StmtGraphTraits.h deleted file mode 100644 index ab636a5..0000000 --- a/include/clang/AST/StmtGraphTraits.h +++ /dev/null @@ -1,83 +0,0 @@ -//===--- StmtGraphTraits.h - Graph Traits for the class Stmt ----*- 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 a template specialization of llvm::GraphTraits to -// treat ASTs (Stmt*) as graphs -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_AST_STMTGRAPHTRAITS_H -#define LLVM_CLANG_AST_STMTGRAPHTRAITS_H - -#include "clang/AST/Stmt.h" -#include "llvm/ADT/DepthFirstIterator.h" -#include "llvm/ADT/GraphTraits.h" - -namespace llvm { - -//template <typename T> struct GraphTraits; - - -template <> struct GraphTraits<clang::Stmt*> { - typedef clang::Stmt NodeType; - typedef clang::Stmt::child_iterator ChildIteratorType; - typedef llvm::df_iterator<clang::Stmt*> nodes_iterator; - - static NodeType* getEntryNode(clang::Stmt* S) { return S; } - - static inline ChildIteratorType child_begin(NodeType* N) { - if (N) return N->child_begin(); - else return ChildIteratorType(); - } - - static inline ChildIteratorType child_end(NodeType* N) { - if (N) return N->child_end(); - else return ChildIteratorType(); - } - - static nodes_iterator nodes_begin(clang::Stmt* S) { - return df_begin(S); - } - - static nodes_iterator nodes_end(clang::Stmt* S) { - return df_end(S); - } -}; - - -template <> struct GraphTraits<const clang::Stmt*> { - typedef const clang::Stmt NodeType; - typedef clang::Stmt::const_child_iterator ChildIteratorType; - typedef llvm::df_iterator<const clang::Stmt*> nodes_iterator; - - static NodeType* getEntryNode(const clang::Stmt* S) { return S; } - - static inline ChildIteratorType child_begin(NodeType* N) { - if (N) return N->child_begin(); - else return ChildIteratorType(); - } - - static inline ChildIteratorType child_end(NodeType* N) { - if (N) return N->child_end(); - else return ChildIteratorType(); - } - - static nodes_iterator nodes_begin(const clang::Stmt* S) { - return df_begin(S); - } - - static nodes_iterator nodes_end(const clang::Stmt* S) { - return df_end(S); - } -}; - - -} // end namespace llvm - -#endif |