public CoreField(CoreType declaringClass, string fldName) { Contract.ThrowIfNull(declaringClass); Contract.ThrowIfNull(fldName); this.DeclaringClass = declaringClass; this.FieldName = fldName; }
CoreType CreateFromFullName(string fullName) { var type = new CoreType(fullName); _table.Add(fullName, type); return(type); }
public CoreProperty(CoreType declaringClass, string propertyName) { Contract.ThrowIfNull(declaringClass); Contract.ThrowIfNull(propertyName); this.DeclaringClass = declaringClass; this.PropertyName = propertyName; }
public CoreMethod(CoreType declaringClass, string methodName, params CoreType[] ptypes) { Contract.ThrowIfNull(declaringClass); Contract.ThrowIfNull(methodName); this.DeclaringClass = declaringClass; this.MethodName = methodName; _ptypes = ptypes; }
public CoreTypes(PhpCompilation compilation) { Contract.ThrowIfNull(compilation); _compilation = compilation; _table = new Dictionary <string, CoreType>(); Void = Create(SpecialType.System_Void); Object = Create(SpecialType.System_Object); Int32 = Create(SpecialType.System_Int32); Long = Create(SpecialType.System_Int64); Double = Create(SpecialType.System_Double); Boolean = Create(SpecialType.System_Boolean); String = Create(SpecialType.System_String); Exception = CreateFromFullName(WellKnownTypes.GetMetadataName(WellKnownType.System_Exception)); RuntimeTypeHandle = Create(SpecialType.System_RuntimeTypeHandle); RuntimeMethodHandle = Create(SpecialType.System_RuntimeMethodHandle); PhpNumber = Create("PhpNumber"); PhpAlias = Create("PhpAlias"); PhpValue = Create("PhpValue"); PhpString = Create("PhpString"); PhpArray = Create("PhpArray"); PhpResource = Create("PhpResource"); IPhpArray = Create("IPhpArray"); IPhpEnumerable = Create("IPhpEnumerable"); IPhpCallable = Create("IPhpCallable"); IPhpConvertible = Create("IPhpConvertible"); IntStringKey = Create("IntStringKey"); PhpHashtable = Create("PhpHashtable"); ScriptDiedException = Create("ScriptDiedException"); Context = Create("Context"); Operators = Create("Operators"); Comparison = Create("Comparison"); StrictComparison = Create("StrictComparison"); Convert = Create("Convert"); ScriptAttribute = Create("ScriptAttribute"); PhpTraitAttribute = Create("PhpTraitAttribute"); PhpHiddenAttribute = Create("PhpHiddenAttribute"); PhpFieldsOnlyCtorAttribute = CreateFromFullName(PhpFieldsOnlyCtorAttributeName); IStaticInit = Create("IStaticInit"); RoutineInfo = Create("Reflection.RoutineInfo"); stdClass = CreateFromFullName("stdClass"); ArrayAccess = CreateFromFullName("ArrayAccess"); CallBinderFactory = Create("Dynamic.CallBinderFactory"); GetClassConstBinder = Create("Dynamic.GetClassConstBinder"); GetFieldBinder = Create("Dynamic.GetFieldBinder"); SetFieldBinder = Create("Dynamic.SetFieldBinder"); AccessFlags = Create("Dynamic.AccessFlags"); PhpTypeInfoExtension = Create("Reflection.PhpTypeInfoExtension"); PhpTypeInfo = Create("Reflection.PhpTypeInfo"); }
public CoreTypes(PhpCompilation compilation) { Contract.ThrowIfNull(compilation); _compilation = compilation; _table = new Dictionary <string, CoreType>(); Void = Create(SpecialType.System_Void); Object = Create(SpecialType.System_Object); Int32 = Create(SpecialType.System_Int32); Long = Create(SpecialType.System_Int64); Double = Create(SpecialType.System_Double); Boolean = Create(SpecialType.System_Boolean); String = Create(SpecialType.System_String); Exception = CreateFromFullName(WellKnownTypes.GetMetadataName(WellKnownType.System_Exception)); RuntimeTypeHandle = Create(SpecialType.System_RuntimeTypeHandle); RuntimeMethodHandle = Create(SpecialType.System_RuntimeMethodHandle); PhpNumber = Create("PhpNumber"); PhpAlias = Create("PhpAlias"); PhpValue = Create("PhpValue"); PhpString = Create("PhpString"); PhpArray = Create("PhpArray"); PhpResource = Create("PhpResource"); IPhpArray = Create("IPhpArray"); IPhpEnumerable = Create("IPhpEnumerable"); IPhpCallable = Create("IPhpCallable"); IPhpConvertible = Create("IPhpConvertible"); PhpString_Blob = Create("PhpString+Blob"); IntStringKey = Create("IntStringKey"); PhpHashtable = Create("PhpHashtable"); ScriptDiedException = Create("ScriptDiedException"); Context = Create("Context"); Operators = Create("Operators"); Comparison = Create("Comparison"); StrictComparison = Create("StrictComparison"); Convert = Create("Convert"); PhpException = Create("PhpException"); ScriptAttribute = Create("ScriptAttribute"); PhpTraitAttribute = Create(PhpTraitAttributeName); PhpTypeAttribute = Create("PhpTypeAttribute"); PhpHiddenAttribute = Create("PhpHiddenAttribute"); PhpFieldsOnlyCtorAttribute = Create(PhpFieldsOnlyCtorAttributeName); NotNullAttribute = Create("NotNullAttribute"); PhpMemberVisibilityAttribute = Create(PhpMemberVisibilityAttributeName); IStaticInit = Create("IStaticInit"); RoutineInfo = Create("Reflection.RoutineInfo"); stdClass = CreateFromFullName("stdClass"); ArrayAccess = CreateFromFullName("ArrayAccess"); Closure = CreateFromFullName("Closure"); BinderFactory = Create("Dynamic.BinderFactory"); GetClassConstBinder = Create("Dynamic.GetClassConstBinder"); GetFieldBinder = Create("Dynamic.GetFieldBinder"); SetFieldBinder = Create("Dynamic.SetFieldBinder"); AccessMask = CreateFromFullName("Pchp.CodeAnalysis.Semantics.AccessMask"); Dynamic_NameParam_T = Create("Dynamic.NameParam`1"); Dynamic_TargetTypeParam = Create("Dynamic.TargetTypeParam"); Dynamic_CallerTypeParam = Create("Dynamic.CallerTypeParam"); Dynamic_UnpackingParam_T = Create("Dynamic.UnpackingParam`1"); PhpTypeInfoExtension = Create("Reflection.PhpTypeInfoExtension"); PhpTypeInfo = Create("Reflection.PhpTypeInfo"); CommonPhpArrayKeys = Create("CommonPhpArrayKeys"); Iterator = CreateFromFullName("Iterator"); Generator = CreateFromFullName("Generator"); GeneratorStateMachineDelegate = CreateFromFullName("GeneratorStateMachineDelegate"); IntPtr = CreateFromFullName("System.IntPtr"); }
public static CoreConstructor Ctor(this CoreType type, params CoreType[] ptypes) => new CoreConstructor(type, ptypes);
public static CoreOperator Operator(this CoreType type, string name, params CoreType[] ptypes) => new CoreOperator(type, name, ptypes);
public static CoreField Field(this CoreType type, string name) => new CoreField(type, name);
public static CoreProperty Property(this CoreType type, string name) => new CoreProperty(type, name);
public static CoreMethod Method(this CoreType type, string name, params CoreType[] ptypes) => new CoreMethod(type, name, ptypes);
public static CoreCast CastImplicit(this CoreType type, CoreType target) => new CoreCast(type, target, false);
public CoreExplicitCast(CoreType declaringClass, CoreType castTo) : base(declaringClass, WellKnownMemberNames.ExplicitConversionName, declaringClass) { _castTo = castTo; }
/// <summary> /// Creates the descriptor. /// </summary> /// <param name="declaringClass">Containing class.</param> /// <param name="name">Operator name, without <c>op_</c> prefix.</param> /// <param name="ptypes">CLR parameters.</param> public CoreOperator(CoreType declaringClass, string name, params CoreType[] ptypes) : base(declaringClass, name, ptypes) { Debug.Assert(name.StartsWith("op_")); }
public CoreConstructor(CoreType declaringClass, params CoreType[] ptypes) : base(declaringClass, ".ctor", ptypes) { }
public CoreTypes(PhpCompilation compilation) { Contract.ThrowIfNull(compilation); _compilation = compilation; _table = new Dictionary <string, CoreType>(); Void = Create(SpecialType.System_Void); Object = Create(SpecialType.System_Object); Byte = Create(SpecialType.System_Byte); Int32 = Create(SpecialType.System_Int32); Long = Create(SpecialType.System_Int64); Double = Create(SpecialType.System_Double); Boolean = Create(SpecialType.System_Boolean); String = Create(SpecialType.System_String); Exception = CreateFromFullName(WellKnownTypes.GetMetadataName(WellKnownType.System_Exception)); RuntimeTypeHandle = Create(SpecialType.System_RuntimeTypeHandle); RuntimeMethodHandle = Create(SpecialType.System_RuntimeMethodHandle); PhpNumber = Create("PhpNumber"); PhpAlias = Create("PhpAlias"); PhpValue = Create("PhpValue"); PhpString = Create("PhpString"); PhpArray = Create("PhpArray"); PhpResource = Create("PhpResource"); IPhpArray = Create("IPhpArray"); IPhpEnumerable = Create("IPhpEnumerable"); IPhpCallable = Create("IPhpCallable"); IPhpConvertible = Create("IPhpConvertible"); PhpString_Blob = Create("PhpString+Blob"); IntStringKey = Create("IntStringKey"); PhpHashtable = Create("PhpHashtable"); ScriptDiedException = Create("ScriptDiedException"); Context = Create("Context"); Operators = Create("Operators"); Comparison = Create("Comparison"); StrictComparison = Create("StrictComparison"); Convert = Create("Convert"); StrictConvert = Create("StrictConvert"); PhpException = Create("PhpException"); PhpCallableToDelegate = Create("PhpCallableToDelegate`1"); // Arity 1 ScriptAttribute = Create("ScriptAttribute"); PhpTraitAttribute = Create(PhpTraitAttributeName); PharAttribute = Create("PharAttribute"); PhpTypeAttribute = Create("PhpTypeAttribute"); PhpHiddenAttribute = Create("PhpHiddenAttribute"); ImportValueAttribute = Create("ImportValueAttribute"); DummyFieldsOnlyCtor = Create("DummyFieldsOnlyCtor"); PhpFieldsOnlyCtorAttribute = Create(PhpFieldsOnlyCtorAttributeName); DefaultValueAttribute = Create("DefaultValueAttribute"); PhpCustomAtribute = Create(nameof(PhpCustomAtribute)); PhpMemberVisibilityAttribute = Create(PhpMemberVisibilityAttributeName); NullableAttribute = CreateFromFullName("System.Runtime.CompilerServices.NullableAttribute"); NullableContextAttribute = CreateFromFullName("System.Runtime.CompilerServices.NullableContextAttribute"); IStaticInit = Create("IStaticInit"); RoutineInfo = Create("Reflection.RoutineInfo"); IndirectLocal = Create("IndirectLocal"); stdClass = CreateFromFullName("stdClass"); ArrayAccess = CreateFromFullName("ArrayAccess"); Closure = CreateFromFullName("Closure"); BinderFactory = Create("Dynamic.BinderFactory"); GetClassConstBinder = Create("Dynamic.GetClassConstBinder"); GetFieldBinder = Create("Dynamic.GetFieldBinder"); SetFieldBinder = Create("Dynamic.SetFieldBinder"); AccessMask = CreateFromFullName("Pchp.CodeAnalysis.Semantics.AccessMask"); Dynamic_NameParam_T = Create("Dynamic.NameParam`1"); Dynamic_TargetTypeParam = Create("Dynamic.TargetTypeParam"); Dynamic_LateStaticTypeParam = Create("Dynamic.LateStaticTypeParam"); Dynamic_CallerTypeParam = Create("Dynamic.CallerTypeParam"); Dynamic_UnpackingParam_T = Create("Dynamic.UnpackingParam`1"); RuntimeChain_ChainEnd = Create("Dynamic.RuntimeChain.ChainEnd"); RuntimeChain_Value_T = Create("Dynamic.RuntimeChain.Value`1"); RuntimeChain_Property_T = Create("Dynamic.RuntimeChain.Property`1"); RuntimeChain_ArrayItem_T = Create("Dynamic.RuntimeChain.ArrayItem`1"); RuntimeChain_ArrayNewItem_T = Create("Dynamic.RuntimeChain.ArrayNewItem`1"); PhpTypeInfoExtension = Create("Reflection.PhpTypeInfoExtension"); PhpTypeInfo = Create("Reflection.PhpTypeInfo"); CommonPhpArrayKeys = Create("CommonPhpArrayKeys"); Helpers = Create("Utilities.Helpers"); PhpValueConverter = Create(nameof(PhpValueConverter)); Iterator = CreateFromFullName("Iterator"); Traversable = CreateFromFullName("Traversable"); Stringable = CreateFromFullName("Stringable"); Generator = CreateFromFullName("Generator"); GeneratorStateMachineDelegate = CreateFromFullName("GeneratorStateMachineDelegate"); MainDelegate = Create("Context+MainDelegate"); IntPtr = CreateFromFullName("System.IntPtr"); IDictionary = CreateFromFullName("System.Collections.IDictionary"); }