-//===- Support/Tree.h - Generic n-way tree structure -------------*- C++ -*--=//
+//===- llvm/ADT/Tree.h - Generic n-way tree structure -----------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
//
// This class defines a generic N way tree node structure. The tree structure
// is immutable after creation, but the payload contained within it is not.
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_SUPPORT_TREE_H
-#define LLVM_SUPPORT_TREE_H
+#ifndef LLVM_ADT_TREE_H
+#define LLVM_ADT_TREE_H
#include <vector>
-#include <assert.h>
+namespace llvm {
template<class ConcreteTreeNode, class Payload>
class Tree {
ConcreteTreeNode *par) : Children(children), Parent(par) {}
inline Tree(const std::vector<ConcreteTreeNode*> &children,
- ConcreteTreeNode *par, const Payload &data)
- : Children(children), Parent(parent), Data(data) {}
+ ConcreteTreeNode *par, const Payload &data)
+ : Children(children), Parent(par), Data(data) {}
// Tree dtor - Free all children
inline ~Tree() {
inline const Payload &getTreeData() const { return Data; }
};
+} // End llvm namespace
#endif