119 lines
2.8 KiB
C#
119 lines
2.8 KiB
C#
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Microsoft Research Singularity
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
using System;
|
||
|
|
||
|
namespace Microsoft.SingSharp.Reflection{
|
||
|
public class AttributePatternAttribute : Attribute {
|
||
|
Object type;
|
||
|
public Object Type {
|
||
|
get { return type; }
|
||
|
set { type = value; }
|
||
|
}
|
||
|
|
||
|
object[] expressions;
|
||
|
public object[] Expressions{
|
||
|
get { return expressions; }
|
||
|
set { expressions = value; }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public class ForAllStatementIndex : Attribute {
|
||
|
public ForAllStatementIndex(int index) {}
|
||
|
}
|
||
|
|
||
|
public class ForAllSummaryAttribute : Attribute {
|
||
|
public ForAllSummaryAttribute(string summary){}
|
||
|
}
|
||
|
|
||
|
public class ReflectionAttribute : Attribute {
|
||
|
public enum Type {
|
||
|
None,
|
||
|
Index,
|
||
|
IndexMap,
|
||
|
Generate,
|
||
|
Implement,
|
||
|
Container,
|
||
|
NodeMap,
|
||
|
Pattern,
|
||
|
Subtype,
|
||
|
Shadow,
|
||
|
Reflective,
|
||
|
ExpressionBinding,
|
||
|
Scope,
|
||
|
}
|
||
|
public ReflectionAttribute(Type type){}
|
||
|
|
||
|
uint flags;
|
||
|
public uint Flags {
|
||
|
get {return flags; }
|
||
|
set {flags = value; }
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
#region parameter attributes
|
||
|
[AttributeUsage(AttributeTargets.Parameter)]
|
||
|
public class ParameterPatternAttribute : Attribute {
|
||
|
string type;
|
||
|
public string Type{
|
||
|
get {return type; }
|
||
|
set {type = value; }
|
||
|
}
|
||
|
bool typeIsVariable;
|
||
|
public bool TypeIsVariable {
|
||
|
get {return typeIsVariable; }
|
||
|
set {typeIsVariable = value; }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[AttributeUsage(AttributeTargets.Parameter)]
|
||
|
public class StarParameterPatternAttribute : ParameterPatternAttribute {}
|
||
|
#endregion
|
||
|
|
||
|
[AttributeUsage(AttributeTargets.Module | AttributeTargets.Assembly,
|
||
|
AllowMultiple=true)]
|
||
|
public class TransformAttribute : Attribute {
|
||
|
public Type Transform;
|
||
|
public TransformAttribute(Type transformToRun) {
|
||
|
this.Transform = transformToRun;
|
||
|
}
|
||
|
|
||
|
string[] namespaces;
|
||
|
public string[] Namespaces {
|
||
|
get { return namespaces; }
|
||
|
set { namespaces = value; }
|
||
|
}
|
||
|
string [] files;
|
||
|
public string[] Files {
|
||
|
get { return files; }
|
||
|
set { files = value; }
|
||
|
}
|
||
|
|
||
|
Type[] types;
|
||
|
public Type[] Types {
|
||
|
get { return types; }
|
||
|
set { types = Types; }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
#if CCINamespace
|
||
|
namespace Microsoft.Cci.TypeExtensions {
|
||
|
#else
|
||
|
namespace System.Compiler.TypeExtensions {
|
||
|
#endif
|
||
|
public interface IReflectionTransform {}
|
||
|
// scope pattern
|
||
|
public interface IReflectionScopePattern { }
|
||
|
// end scope pattern
|
||
|
public interface IReflectionContainer {}
|
||
|
public interface IReflectionTypeVariable {}
|
||
|
}
|