LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
basic-block.hh
Go to the documentation of this file.
1 
6 #ifndef CANON_BASIC_BLOCK_HH
7 # define CANON_BASIC_BLOCK_HH
8 
9 # include <iterator>
10 # include <algorithm>
11 # include <iosfwd>
12 
13 # include <temp/fwd.hh>
14 # include <tree/fwd.hh>
15 # include <temp/label.hh>
16 
17 namespace canon
18 {
19 
26  class BasicBlock
27  {
28  public:
29  typedef tree::rTree rTree;
31 
33  BasicBlock(tree_list_type::iterator begin, tree_list_type::iterator end);
34 
36  const BasicBlock* push_back(const rTree& tree);
37 
39  temp::Label label_in_get() const;
40 
43 
46 
48  std::ostream& dump(std::ostream& ostr) const;
49 
50  private:
53  };
54 
56  std::ostream&
57  operator<<(std::ostream& ostr, const BasicBlock& block);
58 
59 }
60 
61 # include <canon/basic-block.hxx>
62 
63 #endif // !CANON_BASIC_BLOCK_HH