Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2389-EpsLexicase/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Symbols/Mono.Cecil.Pdb/Microsoft.Cci.Pdb/Interfaces.cs

Last change on this file was 11700, checked in by jkarder, 10 years ago

#2077: created branch and added first version

File size: 2.4 KB
Line 
1using System;
2using System.Collections.Generic;
3
4namespace Microsoft.Cci {
5
6  /// <summary>
7  /// A range of CLR IL operations that comprise a lexical scope, specified as an IL offset and a length.
8  /// </summary>
9  public interface ILocalScope {
10    /// <summary>
11    /// The offset of the first operation in the scope.
12    /// </summary>
13    uint Offset { get; }
14
15    /// <summary>
16    /// The length of the scope. Offset+Length equals the offset of the first operation outside the scope, or equals the method body length.
17    /// </summary>
18    uint Length { get; }
19  }
20
21  /// <summary>
22  /// A description of the lexical scope in which a namespace type has been nested. This scope is tied to a particular
23  /// method body, so that partial types can be accommodated.
24  /// </summary>
25  public interface INamespaceScope {
26
27    /// <summary>
28    /// Zero or more used namespaces. These correspond to using clauses in C#.
29    /// </summary>
30    IEnumerable<IUsedNamespace> UsedNamespaces { get; }
31
32  }
33
34
35  /// <summary>
36  /// A namespace that is used (imported) inside a namespace scope.
37  /// </summary>
38  public interface IUsedNamespace {
39    /// <summary>
40    /// An alias for a namespace. For example the "x" of "using x = y.z;" in C#. Empty if no alias is present.
41    /// </summary>
42    IName Alias { get; }
43
44    /// <summary>
45    /// The name of a namepace that has been aliased.  For example the "y.z" of "using x = y.z;" or "using y.z" in C#.
46    /// </summary>
47    IName NamespaceName { get; }
48  }
49
50  /// <summary>
51  /// The name of an entity. Typically name instances come from a common pool. Within the pool no two distinct instances will have the same Value or UniqueKey.
52  /// </summary>
53  public interface IName {
54    /// <summary>
55    /// An integer that is unique within the pool from which the name instance has been allocated. Useful as a hashtable key.
56    /// </summary>
57    int UniqueKey {
58      get;
59        //^ ensures result > 0;
60    }
61
62    /// <summary>
63    /// An integer that is unique within the pool from which the name instance has been allocated. Useful as a hashtable key.
64    /// All name instances in the pool that have the same string value when ignoring the case of the characters in the string
65    /// will have the same key value.
66    /// </summary>
67    int UniqueKeyIgnoringCase {
68      get;
69      //^ ensures result > 0;
70    }
71
72    /// <summary>
73    /// The string value corresponding to this name.
74    /// </summary>
75    string Value { get; }
76  }
77}
Note: See TracBrowser for help on using the repository browser.