2002-03-23 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mcs / class / Mono.CSharp.Debugger / IMonoSymbolWriter.cs
1 //
2 // System.Diagnostics.SymbolStore/IMonoSymbolWriter.cs
3 //
4 // Author:
5 //   Martin Baulig (martin@gnome.org)
6 //
7 // This interface is derived from System.Diagnostics.SymbolStore.ISymbolWriter.
8 //
9 // (C) 2002 Ximian, Inc.  http://www.ximian.com
10 //
11
12 using System;
13 using System.Reflection;
14 using System.Reflection.Emit;
15 using System.Diagnostics.SymbolStore;
16 using System.Collections;
17 using System.IO;
18         
19 namespace Mono.CSharp.Debugger
20 {
21         public interface IMonoSymbolWriter : ISymbolWriter
22         { }
23
24         public interface ISourceFile
25         {
26                 string FileName {
27                         get;
28                 }
29
30                 ISourceMethod[] Methods {
31                         get;
32                 }
33
34                 void AddMethod (ISourceMethod method);
35         }
36
37         public interface ISourceMethod
38         {
39                 ISourceLine[] Lines {
40                         get;
41                 }
42
43                 void AddLine (ISourceLine line);
44
45                 ISourceBlock[] Blocks {
46                         get;
47                 }
48
49                 ILocalVariable[] Locals {
50                         get;
51                 }
52
53                 void AddLocal (ILocalVariable local);
54
55
56                 ISourceLine Start {
57                         get;
58                 }
59
60                 ISourceLine End {
61                         get;
62                 }
63
64                 int Token {
65                         get;
66                 }
67
68                 MethodInfo MethodInfo {
69                         get;
70                 }
71
72                 ISourceFile SourceFile {
73                         get;
74                 }
75         }
76
77         public interface ISourceBlock
78         {
79                 ISourceMethod SourceMethod {
80                         get;
81                 }
82
83                 ILocalVariable[] Locals {
84                         get;
85                 }
86
87                 void AddLocal (ILocalVariable local);
88
89                 ISourceLine Start {
90                         get;
91                 }
92
93                 ISourceLine End {
94                         get;
95                 }
96
97                 int ID {
98                         get;
99                 }
100         }
101
102         public enum SourceOffsetType
103         {
104                 OFFSET_NONE,
105                 OFFSET_IL,
106                 OFFSET_LOCAL,
107                 OFFSET_PARAMETER
108         }
109
110         public interface ISourceLine
111         {
112                 SourceOffsetType OffsetType {
113                         get;
114                 }
115
116                 int Offset {
117                         get;
118                 }
119
120                 int Row {
121                         get;
122                 }
123
124                 int Column {
125                         get;
126                 }
127         }
128
129         public interface IVariable
130         {
131                 string Name {
132                         get;
133                 }
134
135                 ISourceLine Line {
136                         get;
137                 }
138
139                 byte[] Signature {
140                         get;
141                 }
142
143                 Type Type {
144                         get;
145                 }
146
147                 int Token {
148                         get;
149                 }
150
151                 int Index {
152                         get;
153                 }
154         }
155
156         public interface ILocalVariable : IVariable
157         { }
158
159         public interface IMethodParameter : IVariable
160         { }
161 }