2 // tree.cs: keeps a tree representation of the generated code
4 // Author: Miguel de Icaza (miguel@gnu.org)
6 // Licensed under the terms of the GNU GPL
8 // (C) 2001 Ximian, Inc (http://www.ximian.com)
13 using System.Collections;
14 using System.Reflection;
15 using System.Reflection.Emit;
21 public interface ITreeDump {
22 int Dump (Tree tree, StreamWriter output);
23 void ParseOptions (string options);
28 // We store here all the toplevel types that we have parsed,
29 // this is the root of all information we have parsed.
34 TypeContainer root_types;
37 // Keeps track of the interfaces defined in the source code
42 // Keeps track of the structs defined in the source code
47 // Keeps track of the classes defined in the source code
53 public Tree (RootContext rc)
55 root_types = new TypeContainer (rc, null, "");
60 public void RecordInterface (string name, Interface iface)
63 ifaces = new Hashtable ();
65 ifaces.Add (name, iface);
68 public void RecordStruct (string name, Struct s)
71 structs = new Hashtable ();
73 structs.Add (name, s);
76 public void RecordClass (string name, Class c)
79 classes = new Hashtable ();
81 classes.Add (name, c);
84 public TypeContainer Types {
90 public Hashtable Interfaces {
96 public Hashtable Classes {
102 public Hashtable Structs {