LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
fwd.hh
Go to the documentation of this file.
1 
6 #ifndef TREE_FWD_HH
7 # define TREE_FWD_HH
8 
9 # include <list>
10 
11 # include <misc/fwd.hh>
12 # include <misc/ref.hh>
13 
14 namespace tree
15 {
16 #define DECLARE(What) \
17  class What; \
18  typedef misc::ref< What > r ## What;
19 
20  DECLARE(Tree)
21  DECLARE(Binop)
22  DECLARE(Call)
23  DECLARE(Cjump)
24  DECLARE(Const)
25  DECLARE(Eseq)
26  DECLARE(Exp)
27  DECLARE(Jump)
28  DECLARE(Label)
29  DECLARE(Mem)
30  DECLARE(Move)
31  DECLARE(Name)
32  DECLARE(Seq)
33  DECLARE(Stm)
34  DECLARE(Sxp)
35  DECLARE(Temp)
36 
37 #undef DECLARE
38 
39  // Arguably we could include this typedef in the class Tree.
40  typedef std::list<rTree> tree_list_type;
41 
42  // From fragment.hh.
43  class Fragment;
44  class ProcFrag;
45  class DataFrag;
46 
47  // From fragments.hh.
48  class Fragments;
49 
50  // From visitor.hh.
51  template <template <typename> class Const>
52  class GenVisitor;
53  // FIXME: Ought to be _type.
56 
57 }
58 
59 #endif // !TREE_FWD_HH