Revert broken changes.
[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                 ISourceBlock[] Blocks {
90                         get;
91                 }
92
93                 void AddBlock (ISourceBlock block);
94
95                 ISourceLine Start {
96                         get;
97                 }
98
99                 ISourceLine End {
100                         get;
101                 }
102
103                 int ID {
104                         get;
105                 }
106         }
107
108         public enum SourceOffsetType
109         {
110                 OFFSET_NONE,
111                 OFFSET_IL,
112                 OFFSET_LOCAL,
113                 OFFSET_PARAMETER
114         }
115
116         public interface ISourceLine
117         {
118                 SourceOffsetType OffsetType {
119                         get;
120                 }
121
122                 int Offset {
123                         get;
124                 }
125
126                 int Row {
127                         get;
128                 }
129
130                 int Column {
131                         get;
132                 }
133         }
134
135         public interface IVariable
136         {
137                 string Name {
138                         get;
139                 }
140
141                 ISourceLine Line {
142                         get;
143                 }
144
145                 byte[] Signature {
146                         get;
147                 }
148
149                 Type Type {
150                         get;
151                 }
152
153                 int Token {
154                         get;
155                 }
156
157                 int Index {
158                         get;
159                 }
160         }
161
162         public interface ILocalVariable : IVariable
163         { }
164
165         public interface IMethodParameter : IVariable
166         { }
167 }