Example #1
0
            public PhpStringHolder(CoreTypes ct)
            {
                ToBoolean        = ct.PhpString.Method("ToBoolean");
                ToLong           = ct.PhpString.Method("ToLong");
                ToDouble         = ct.PhpString.Method("ToDouble");
                ToString_Context = ct.PhpString.Method("ToString", ct.Context);
                ToNumber         = ct.PhpString.Method("ToNumber");
                ToBytes_Context  = ct.PhpString.Method("ToBytes", ct.Context);

                Append_String    = ct.PhpString.Method("Append", ct.String);
                Append_PhpString = ct.PhpString.Method("Append", ct.PhpString);

                DeepCopy = ct.PhpString.Method("DeepCopy");
            }
Example #2
0
            public ConstructorsHolder(CoreTypes ct)
            {
                PhpAlias_PhpValue_int   = ct.PhpAlias.Ctor(ct.PhpValue, ct.Int32);
                PhpString               = ct.PhpString.Ctor();
                PhpString_string_string = ct.PhpString.Ctor(ct.String, ct.String);
                PhpArray               = ct.PhpArray.Ctor();
                PhpArray_int           = ct.PhpArray.Ctor(ct.Int32);
                IntStringKey_int       = ct.IntStringKey.Ctor(ct.Int32);
                IntStringKey_string    = ct.IntStringKey.Ctor(ct.String);
                ScriptAttribute_string = ct.ScriptAttribute.Ctor(ct.String);

                ScriptDiedException          = ct.ScriptDiedException.Ctor();
                ScriptDiedException_Long     = ct.ScriptDiedException.Ctor(ct.Long);
                ScriptDiedException_PhpValue = ct.ScriptDiedException.Ctor(ct.PhpValue);
            }
Example #3
0
        public CoreMethods(CoreTypes types)
        {
            Contract.ThrowIfNull(types);

            PhpValue   = new PhpValueHolder(types);
            PhpAlias   = new PhpAliasHolder(types);
            PhpArray   = new PhpArrayHolder(types);
            PhpNumber  = new PhpNumberHolder(types);
            PhpString  = new PhpStringHolder(types);
            Operators  = new OperatorsHolder(types);
            Ctors      = new ConstructorsHolder(types);
            Context    = new ContextHolder(types);
            Dynamic    = new DynamicHolder(types);
            Reflection = new ReflectionHolder(types);
        }
Example #4
0
            public IPhpArrayHolder(CoreTypes ct)
            {
                var arr = ct.IPhpArray;

                RemoveKey_IntStringKey             = arr.Method("RemoveKey", ct.IntStringKey);
                GetItemValue_IntStringKey          = arr.Method("GetItemValue", ct.IntStringKey);
                SetItemValue_IntStringKey_PhpValue = arr.Method("SetItemValue", ct.IntStringKey, ct.PhpValue);
                SetItemAlias_IntStringKey_PhpAlias = arr.Method("SetItemAlias", ct.IntStringKey, ct.PhpAlias);
                AddValue_PhpValue             = arr.Method("AddValue", ct.PhpValue);
                EnsureItemObject_IntStringKey = arr.Method("EnsureItemObject", ct.IntStringKey);
                EnsureItemArray_IntStringKey  = arr.Method("EnsureItemArray", ct.IntStringKey);
                EnsureItemAlias_IntStringKey  = arr.Method("EnsureItemAlias", ct.IntStringKey);

                get_Count = arr.Method("get_Count");
            }
Example #5
0
            public PhpValueHolder(CoreTypes ct)
            {
                ToBoolean        = ct.PhpValue.Method("ToBoolean");
                ToLong           = ct.PhpValue.Method("ToLong");
                ToDouble         = ct.PhpValue.Method("ToDouble");
                ToString_Context = ct.PhpValue.Method("ToString", ct.Context);
                ToClass          = ct.PhpValue.Method("ToClass");
                EnsureObject     = ct.PhpValue.Method("EnsureObject");
                EnsureArray      = ct.PhpValue.Method("EnsureArray");
                EnsureAlias      = ct.PhpValue.Method("EnsureAlias");

                Eq_PhpValue_PhpValue = ct.PhpValue.Operator(WellKnownMemberNames.EqualityOperatorName, ct.PhpValue, ct.PhpValue);

                IsEmpty = ct.PhpValue.Property("IsEmpty");

                DeepCopy = ct.PhpValue.Method("DeepCopy");
                GetValue = ct.PhpValue.Method("GetValue");
                ToArray  = ct.PhpValue.Method("ToArray");
                AsObject = ct.PhpValue.Method("AsObject");

                get_Long    = ct.PhpValue.Method("get_Long");    // TODO: special name, property
                get_Double  = ct.PhpValue.Method("get_Double");  // TODO: special name, property
                get_Boolean = ct.PhpValue.Method("get_Boolean"); // TODO: special name, property
                get_String  = ct.PhpValue.Method("get_String");  // TODO: special name, property
                Object      = ct.PhpValue.Property("Object");
                get_Array   = ct.PhpValue.Method("get_Array");   // TODO: special name, property

                Create_Boolean      = ct.PhpValue.Method("Create", ct.Boolean);
                Create_Long         = ct.PhpValue.Method("Create", ct.Long);
                Create_Double       = ct.PhpValue.Method("Create", ct.Double);
                Create_String       = ct.PhpValue.Method("Create", ct.String);
                Create_PhpString    = ct.PhpValue.Method("Create", ct.PhpString);
                Create_PhpNumber    = ct.PhpValue.Method("Create", ct.PhpNumber);
                Create_PhpArray     = ct.PhpValue.Method("Create", ct.PhpArray);
                Create_PhpAlias     = ct.PhpValue.Method("Create", ct.PhpAlias);
                Create_IntStringKey = ct.PhpValue.Method("Create", ct.IntStringKey);

                FromClr_Object   = ct.PhpValue.Method("FromClr", ct.Object);
                FromClass_Object = ct.PhpValue.Method("FromClass", ct.Object);

                Void = ct.PhpValue.Field("Void");
                Null = ct.PhpValue.Field("Null");
            }
Example #6
0
            public PhpArrayHolder(CoreTypes ct)
            {
                ToString_Context = ct.PhpArray.Method("ToString", ct.Context);
                ToClass          = ct.PhpArray.Method("ToClass");
                ToBoolean        = ct.PhpArray.Method("ToBoolean");

                RemoveKey_IntStringKey = ct.PhpArray.Method("RemoveKey", ct.IntStringKey);

                GetItemValue_IntStringKey = ct.PhpArray.Method("GetItemValue", ct.IntStringKey);

                DeepCopy = ct.PhpArray.Method("DeepCopy");
                GetForeachEnumerator_Boolean = ct.PhpArray.Method("GetForeachEnumerator", ct.Boolean);

                SetItemValue_IntStringKey_PhpValue = ct.PhpArray.Method("SetItemValue", ct.IntStringKey, ct.PhpValue);
                SetItemAlias_IntStringKey_PhpAlias = ct.PhpArray.Method("SetItemAlias", ct.IntStringKey, ct.PhpAlias);
                AddValue_PhpValue = ct.PhpArray.Method("AddValue", ct.PhpValue);

                EnsureItemObject_IntStringKey = ct.PhpArray.Method("EnsureItemObject", ct.IntStringKey);
                EnsureItemArray_IntStringKey  = ct.PhpArray.Method("EnsureItemArray", ct.IntStringKey);
                EnsureItemAlias_IntStringKey  = ct.PhpArray.Method("EnsureItemAlias", ct.IntStringKey);
            }
Example #7
0
            public ContextHolder(CoreTypes ct)
            {
                AddScriptReference_TScript = ct.Context.Method("AddScriptReference");
                Dispose = ct.Context.Method("Dispose");

                DeclareFunction_RoutineInfo = ct.Context.Method("DeclareFunction", ct.RoutineInfo);
                DeclareType_T = ct.Context.Method("DeclareType");

                DisableErrorReporting = ct.Context.Method("DisableErrorReporting");
                EnableErrorReporting  = ct.Context.Method("EnableErrorReporting");

                CheckIncludeOnce_TScript = ct.Context.Method("CheckIncludeOnce");
                OnInclude_TScript        = ct.Context.Method("OnInclude");
                Include_string_string_PhpArray_object_bool_bool = ct.Context.Method("Include", ct.String, ct.String, ct.PhpArray, ct.Object, ct.Boolean, ct.Boolean);

                ScriptPath_TScript = ct.Context.Method("ScriptPath");

                GetConstant_string_int32 = ct.Context.Method("GetConstant", ct.String, ct.Int32);

                GetStatic_T = ct.Context.Method("GetStatic");

                get_Globals = ct.Context.Method("get_Globals"); // TODO: special name, property
                get_Server  = ct.Context.Method("get_Server");  // TODO: special name, property
            }
Example #8
0
            public ContextHolder(CoreTypes ct)
            {
                AddScriptReference_TScript = ct.Context.Method("AddScriptReference");
                Dispose = ct.Context.Method("Dispose");

                DeclareFunction_RoutineInfo = ct.Context.Method("DeclareFunction", ct.RoutineInfo);
                DeclareType_T = ct.Context.Method("DeclareType");

                DisableErrorReporting = ct.Context.Method("DisableErrorReporting");
                EnableErrorReporting  = ct.Context.Method("EnableErrorReporting");

                CheckIncludeOnce_TScript = ct.Context.Method("CheckIncludeOnce");
                OnInclude_TScript        = ct.Context.Method("OnInclude");
                Include_string_string_PhpArray_object_bool_bool = ct.Context.Method("Include", ct.String, ct.String, ct.PhpArray, ct.Object, ct.Boolean, ct.Boolean);

                AssertTypeDeclared_PhpTypeInfo_string = ct.Context.Method("AssertTypeDeclared", ct.PhpTypeInfo, ct.String);

                GetConstant_string_int32 = ct.Context.Method("GetConstant", ct.String, ct.Int32);

                GetStatic_T = ct.Context.Method("GetStatic");
                GetDeclaredType_string_bool        = ct.Context.Method("GetDeclaredType", ct.String, ct.Boolean);
                GetDeclaredTypeOrThrow_string_bool = ct.Context.Method("GetDeclaredTypeOrThrow", ct.String, ct.Boolean);

                // properties
                RootPath        = ct.Context.Property("RootPath");
                Globals         = ct.Context.Property("Globals");
                Server          = ct.Context.Property("Server");
                Request         = ct.Context.Property("Request");
                Get             = ct.Context.Property("Get");
                Post            = ct.Context.Property("Post");
                Cookie          = ct.Context.Property("Cookie");
                Env             = ct.Context.Property("Env");
                Files           = ct.Context.Property("Files");
                Session         = ct.Context.Property("Session");
                HttpRawPostData = ct.Context.Property("HttpRawPostData");
            }
Example #9
0
 public ReflectionHolder(CoreTypes ct)
 {
     CreateUserRoutine_string_RuntimeMethodHandle = ct.RoutineInfo.Method("CreateUserRoutine", ct.String, ct.RuntimeMethodHandle);
 }
Example #10
0
            public PhpNumberHolder(CoreTypes ct)
            {
                ToBoolean        = ct.PhpNumber.Method("ToBoolean");
                ToLong           = ct.PhpNumber.Method("ToLong");
                ToDouble         = ct.PhpNumber.Method("ToDouble");
                ToString_Context = ct.PhpNumber.Method("ToString", ct.Context);
                ToClass          = ct.PhpNumber.Method("ToClass");

                CompareTo_number = ct.PhpNumber.Method("CompareTo", ct.PhpNumber);
                CompareTo_long   = ct.PhpNumber.Method("CompareTo", ct.Long);
                CompareTo_double = ct.PhpNumber.Method("CompareTo", ct.Double);

                Create_Long   = ct.PhpNumber.Method("Create", ct.Long);
                Create_Double = ct.PhpNumber.Method("Create", ct.Double);
                Default       = ct.PhpNumber.Field("Default");

                get_Long   = ct.PhpNumber.Method("get_Long");   // TODO: special name, property
                get_Double = ct.PhpNumber.Method("get_Double"); // TODO: special name, property

                Eq_number_number   = ct.PhpNumber.Operator(WellKnownMemberNames.EqualityOperatorName, ct.PhpNumber, ct.PhpNumber);
                Ineq_number_number = ct.PhpNumber.Operator(WellKnownMemberNames.InequalityOperatorName, ct.PhpNumber, ct.PhpNumber);
                Eq_number_long     = ct.PhpNumber.Operator(WellKnownMemberNames.EqualityOperatorName, ct.PhpNumber, ct.Long);
                Ineq_number_long   = ct.PhpNumber.Operator(WellKnownMemberNames.InequalityOperatorName, ct.PhpNumber, ct.Long);
                Eq_number_double   = ct.PhpNumber.Operator(WellKnownMemberNames.EqualityOperatorName, ct.PhpNumber, ct.Double);
                Ineq_number_double = ct.PhpNumber.Operator(WellKnownMemberNames.InequalityOperatorName, ct.PhpNumber, ct.Double);

                Add_number_number = ct.PhpNumber.Operator(WellKnownMemberNames.AdditionOperatorName, ct.PhpNumber, ct.PhpNumber);
                Add_number_long   = ct.PhpNumber.Operator(WellKnownMemberNames.AdditionOperatorName, ct.PhpNumber, ct.Long);
                Add_long_number   = ct.PhpNumber.Operator(WellKnownMemberNames.AdditionOperatorName, ct.Long, ct.PhpNumber);
                Add_double_number = ct.PhpNumber.Method("Add", ct.Double, ct.PhpNumber);
                Add_number_double = ct.PhpNumber.Method("Add", ct.PhpNumber, ct.Double);
                Add_long_long     = ct.PhpNumber.Method("Add", ct.Long, ct.Long);
                Add_long_double   = ct.PhpNumber.Method("Add", ct.Long, ct.Double);
                Add_value_long    = ct.PhpNumber.Method("Add", ct.PhpValue, ct.Long);
                Add_value_double  = ct.PhpNumber.Method("Add", ct.PhpValue, ct.Double);
                Add_value_number  = ct.PhpNumber.Method("Add", ct.PhpValue, ct.PhpNumber);
                Add_long_value    = ct.PhpNumber.Method("Add", ct.Long, ct.PhpValue);
                Add_double_value  = ct.PhpNumber.Method("Add", ct.Double, ct.PhpValue);
                Add_value_value   = ct.PhpNumber.Method("Add", ct.PhpValue, ct.PhpValue);

                Subtract_long_long     = ct.PhpNumber.Method("Sub", ct.Long, ct.Long);
                Subtract_number_double = ct.PhpNumber.Method("Sub", ct.PhpNumber, ct.Double);
                Subtract_long_double   = ct.PhpNumber.Method("Sub", ct.Long, ct.Double);
                Subtract_number_number = ct.PhpNumber.Operator(WellKnownMemberNames.SubtractionOperatorName, ct.PhpNumber, ct.PhpNumber);
                Subtract_long_number   = ct.PhpNumber.Operator(WellKnownMemberNames.SubtractionOperatorName, ct.Long, ct.PhpNumber);
                Subtract_number_long   = ct.PhpNumber.Operator(WellKnownMemberNames.SubtractionOperatorName, ct.PhpNumber, ct.Long);
                Subtract_value_value   = ct.PhpNumber.Method("Sub", ct.PhpValue, ct.PhpValue);
                Subtract_value_long    = ct.PhpNumber.Method("Sub", ct.PhpValue, ct.Long);
                Subtract_value_double  = ct.PhpNumber.Method("Sub", ct.PhpValue, ct.Double);
                Subtract_value_number  = ct.PhpNumber.Method("Sub", ct.PhpValue, ct.PhpNumber);

                Negation      = ct.PhpNumber.Operator(WellKnownMemberNames.UnaryNegationOperatorName, ct.PhpNumber);
                Negation_long = ct.PhpNumber.Method("Minus", ct.Long);

                Division_number_number = ct.PhpNumber.Operator(WellKnownMemberNames.DivisionOperatorName, ct.PhpNumber, ct.PhpNumber);
                Division_long_number   = ct.PhpNumber.Operator(WellKnownMemberNames.DivisionOperatorName, ct.Long, ct.PhpNumber);

                Mul_number_number = ct.PhpNumber.Operator(WellKnownMemberNames.MultiplyOperatorName, ct.PhpNumber, ct.PhpNumber);
                Mul_number_double = ct.PhpNumber.Operator(WellKnownMemberNames.MultiplyOperatorName, ct.PhpNumber, ct.Double);
                Mul_number_long   = ct.PhpNumber.Operator(WellKnownMemberNames.MultiplyOperatorName, ct.PhpNumber, ct.Long);
                Mul_long_number   = ct.PhpNumber.Operator(WellKnownMemberNames.MultiplyOperatorName, ct.Long, ct.PhpNumber);
                Mul_number_value  = ct.PhpNumber.Operator(WellKnownMemberNames.MultiplyOperatorName, ct.PhpNumber, ct.PhpValue);
                Mul_value_number  = ct.PhpNumber.Operator(WellKnownMemberNames.MultiplyOperatorName, ct.PhpNumber, ct.PhpValue);
                Mul_long_long     = ct.PhpNumber.Method("Multiply", ct.Long, ct.Long);
                Mul_long_double   = ct.PhpNumber.Method("Multiply", ct.Long, ct.Double);
                Mul_double_value  = ct.PhpNumber.Method("Multiply", ct.Double, ct.PhpValue);
                Mul_long_value    = ct.PhpNumber.Method("Multiply", ct.Long, ct.PhpValue);
                Mul_value_value   = ct.PhpNumber.Method("Multiply", ct.PhpValue, ct.PhpValue);
                Mul_value_long    = ct.PhpNumber.Method("Multiply", ct.PhpValue, ct.Long);
                Mul_value_double  = ct.PhpNumber.Method("Multiply", ct.PhpValue, ct.Double);

                Pow_value_value   = ct.PhpNumber.Method("Pow", ct.PhpValue, ct.PhpValue);
                Pow_number_number = ct.PhpNumber.Method("Pow", ct.PhpNumber, ct.PhpNumber);
                Pow_number_double = ct.PhpNumber.Method("Pow", ct.PhpNumber, ct.Double);
                Pow_number_value  = ct.PhpNumber.Method("Pow", ct.PhpNumber, ct.PhpValue);
                Pow_double_double = ct.PhpNumber.Method("Pow", ct.Double, ct.Double);
                Pow_double_value  = ct.PhpNumber.Method("Pow", ct.Double, ct.PhpValue);
                Pow_long_long     = ct.PhpNumber.Method("Pow", ct.Long, ct.Long);
                Pow_long_double   = ct.PhpNumber.Method("Pow", ct.Long, ct.Double);
                Pow_long_number   = ct.PhpNumber.Method("Pow", ct.Long, ct.PhpNumber);
                Pow_long_value    = ct.PhpNumber.Method("Pow", ct.Long, ct.PhpValue);

                gt_number_number = ct.PhpNumber.Operator(WellKnownMemberNames.GreaterThanOperatorName, ct.PhpNumber, ct.PhpNumber);
                gt_number_long   = ct.PhpNumber.Operator(WellKnownMemberNames.GreaterThanOperatorName, ct.PhpNumber, ct.Long);
                gt_number_double = ct.PhpNumber.Operator(WellKnownMemberNames.GreaterThanOperatorName, ct.PhpNumber, ct.Double);
                lt_number_number = ct.PhpNumber.Operator(WellKnownMemberNames.LessThanOperatorName, ct.PhpNumber, ct.PhpNumber);
                lt_number_long   = ct.PhpNumber.Operator(WellKnownMemberNames.LessThanOperatorName, ct.PhpNumber, ct.Long);
                lt_number_double = ct.PhpNumber.Operator(WellKnownMemberNames.LessThanOperatorName, ct.PhpNumber, ct.Double);
            }
Example #11
0
            public OperatorsHolder(CoreTypes ct)
            {
                SetValue_PhpValueRef_PhpValue = ct.Operators.Method("SetValue", ct.PhpValue, ct.PhpValue);
                EnsureObject_ObjectRef        = ct.Operators.Method("EnsureObject", ct.Object);
                EnsureArray_PhpArrayRef       = ct.Operators.Method("EnsureArray", ct.PhpArray);
                IsSet_PhpValue = ct.Operators.Method("IsSet", ct.PhpValue);

                ToString_Bool           = ct.Convert.Method("ToString", ct.Boolean);
                ToString_Int32          = ct.Convert.Method("ToString", ct.Int32);
                ToString_Long           = ct.Convert.Method("ToString", ct.Long);
                ToString_Double_Context = ct.Convert.Method("ToString", ct.Double, ct.Context);
                Long_ToString           = ct.Long.Method("ToString");
                ToBoolean_String        = ct.Convert.Method("ToBoolean", ct.String);
                ToBoolean_PhpValue      = new CoreExplicitCast(ct.PhpValue, ct.Boolean);
                ToBoolean_Object        = ct.Convert.Method("ToBoolean", ct.Object);
                ToLong_PhpValue         = new CoreExplicitCast(ct.PhpValue, ct.Long);
                ToDouble_PhpValue       = new CoreExplicitCast(ct.PhpValue, ct.Double);

                AsObject_PhpValue       = ct.Convert.Method("AsObject", ct.PhpValue);
                AsArray_PhpValue        = ct.Convert.Method("AsArray", ct.PhpValue);
                ToClass_PhpValue        = ct.Convert.Method("ToClass", ct.PhpValue);
                AsCallable_PhpValue     = ct.Convert.Method("AsCallable", ct.PhpValue);
                AsCallable_String       = ct.Convert.Method("AsCallable", ct.String);
                ToIntStringKey_PhpValue = ct.Convert.Method("ToIntStringKey", ct.PhpValue);

                Echo_String    = ct.Context.Method("Echo", ct.String);
                Echo_PhpString = ct.Context.Method("Echo", ct.PhpString);
                Echo_PhpNumber = ct.Context.Method("Echo", ct.PhpNumber);
                Echo_PhpValue  = ct.Context.Method("Echo", ct.PhpValue);
                Echo_Object    = ct.Context.Method("Echo", ct.Object);
                Echo_Double    = ct.Context.Method("Echo", ct.Double);
                Echo_Long      = ct.Context.Method("Echo", ct.Long);
                Echo_Int32     = ct.Context.Method("Echo", ct.Int32);

                GetForeachEnumerator_PhpValue_Bool_RuntimeTypeHandle = ct.Operators.Method("GetForeachEnumerator", ct.PhpValue, ct.Boolean, ct.RuntimeTypeHandle);

                Ceq_long_double       = ct.Comparison.Method("Ceq", ct.Long, ct.Double);
                Ceq_long_bool         = ct.Comparison.Method("Ceq", ct.Long, ct.Boolean);
                Ceq_long_string       = ct.Comparison.Method("Ceq", ct.Long, ct.String);
                Ceq_double_string     = ct.Comparison.Method("Ceq", ct.Double, ct.String);
                Ceq_string_long       = ct.Comparison.Method("Ceq", ct.String, ct.Long);
                Ceq_string_double     = ct.Comparison.Method("Ceq", ct.String, ct.Double);
                Ceq_string_bool       = ct.Comparison.Method("Ceq", ct.String, ct.Boolean);
                Clt_long_double       = ct.Comparison.Method("Clt", ct.Long, ct.Double);
                Cgt_long_double       = ct.Comparison.Method("Cgt", ct.Long, ct.Double);
                Compare_bool_bool     = ct.Comparison.Method("Compare", ct.Boolean, ct.Boolean);
                Compare_number_value  = ct.Comparison.Method("Compare", ct.PhpNumber, ct.PhpValue);
                Compare_long_value    = ct.Comparison.Method("Compare", ct.Long, ct.PhpValue);
                Compare_double_value  = ct.Comparison.Method("Compare", ct.Double, ct.PhpValue);
                Compare_bool_value    = ct.Comparison.Method("Compare", ct.Boolean, ct.PhpValue);
                Compare_value_value   = ct.Comparison.Method("Compare", ct.PhpValue, ct.PhpValue);
                Compare_string_string = ct.Comparison.Method("Compare", ct.String, ct.String);
                Compare_string_long   = ct.Comparison.Method("Compare", ct.String, ct.Long);
                Compare_string_double = ct.Comparison.Method("Compare", ct.String, ct.Double);
                Compare_string_value  = ct.Comparison.Method("Compare", ct.String, ct.PhpValue);

                StrictCeq_bool_PhpValue     = ct.StrictComparison.Method("Ceq", ct.Boolean, ct.PhpValue);
                StrictCeq_long_PhpValue     = ct.StrictComparison.Method("Ceq", ct.Long, ct.PhpValue);
                StrictCeq_double_PhpValue   = ct.StrictComparison.Method("Ceq", ct.Double, ct.PhpValue);
                StrictCeq_PhpValue_PhpValue = ct.StrictComparison.Method("Ceq", ct.PhpValue, ct.PhpValue);
                StrictCeq_PhpValue_bool     = ct.StrictComparison.Method("Ceq", ct.PhpValue, ct.Boolean);
            }
Example #12
0
            public OperatorsHolder(CoreTypes ct)
            {
                SetValue_PhpValueRef_PhpValue = ct.Operators.Method("SetValue", ct.PhpValue, ct.PhpValue);
                EnsureObject_ObjectRef        = ct.Operators.Method("EnsureObject", ct.Object);
                EnsureArray_PhpArrayRef       = ct.Operators.Method("EnsureArray", ct.PhpArray);
                EnsureArray_IPhpArrayRef      = ct.Operators.Method("EnsureArray", ct.IPhpArray);
                IsSet_PhpValue   = ct.Operators.Method("IsSet", ct.PhpValue);
                IsEmpty_PhpValue = ct.Operators.Method("IsEmpty", ct.PhpValue);

                ToString_Bool           = ct.Convert.Method("ToString", ct.Boolean);
                ToString_Int32          = ct.Convert.Method("ToString", ct.Int32);
                ToString_Long           = ct.Convert.Method("ToString", ct.Long);
                ToString_Double_Context = ct.Convert.Method("ToString", ct.Double, ct.Context);
                Long_ToString           = ct.Long.Method("ToString");
                ToBoolean_String        = ct.Convert.Method("ToBoolean", ct.String);
                ToBoolean_PhpValue      = new CoreExplicitCast(ct.PhpValue, ct.Boolean);
                ToBoolean_Object        = ct.Convert.Method("ToBoolean", ct.Object);
                ToLong_PhpValue         = new CoreExplicitCast(ct.PhpValue, ct.Long);
                ToDouble_PhpValue       = new CoreExplicitCast(ct.PhpValue, ct.Double);
                ToNumber_PhpValue       = ct.Convert.Method("ToNumber", ct.PhpValue);
                ToLong_String           = ct.Convert.Method("StringToLongInteger", ct.String);
                ToDouble_String         = ct.Convert.Method("StringToDouble", ct.String);

                AsObject_PhpValue               = ct.Convert.Method("AsObject", ct.PhpValue);
                AsArray_PhpValue                = ct.Convert.Method("AsArray", ct.PhpValue);
                ToClass_PhpValue                = ct.Convert.Method("ToClass", ct.PhpValue);
                ToClass_IPhpArray               = ct.Convert.Method("ToClass", ct.IPhpArray);
                AsCallable_PhpValue             = ct.Convert.Method("AsCallable", ct.PhpValue);
                AsCallable_String               = ct.Convert.Method("AsCallable", ct.String);
                IsInstanceOf_Object_PhpTypeInfo = ct.Convert.Method("IsInstanceOf", ct.Object, ct.PhpTypeInfo);
                ToIntStringKey_PhpValue         = ct.Convert.Method("ToIntStringKey", ct.PhpValue);

                Echo_String    = ct.Context.Method("Echo", ct.String);
                Echo_PhpString = ct.Context.Method("Echo", ct.PhpString);
                Echo_PhpNumber = ct.Context.Method("Echo", ct.PhpNumber);
                Echo_PhpValue  = ct.Context.Method("Echo", ct.PhpValue);
                Echo_Object    = ct.Context.Method("Echo", ct.Object);
                Echo_Double    = ct.Context.Method("Echo", ct.Double);
                Echo_Long      = ct.Context.Method("Echo", ct.Long);
                Echo_Int32     = ct.Context.Method("Echo", ct.Int32);

                GetForeachEnumerator_PhpValue_Bool_RuntimeTypeHandle = ct.Operators.Method("GetForeachEnumerator", ct.PhpValue, ct.Boolean, ct.RuntimeTypeHandle);

                Ceq_long_double       = ct.Comparison.Method("Ceq", ct.Long, ct.Double);
                Ceq_long_bool         = ct.Comparison.Method("Ceq", ct.Long, ct.Boolean);
                Ceq_long_string       = ct.Comparison.Method("Ceq", ct.Long, ct.String);
                Ceq_double_string     = ct.Comparison.Method("Ceq", ct.Double, ct.String);
                Ceq_string_long       = ct.Comparison.Method("Ceq", ct.String, ct.Long);
                Ceq_string_double     = ct.Comparison.Method("Ceq", ct.String, ct.Double);
                Ceq_string_bool       = ct.Comparison.Method("Ceq", ct.String, ct.Boolean);
                Clt_long_double       = ct.Comparison.Method("Clt", ct.Long, ct.Double);
                Cgt_long_double       = ct.Comparison.Method("Cgt", ct.Long, ct.Double);
                Compare_bool_bool     = ct.Comparison.Method("Compare", ct.Boolean, ct.Boolean);
                Compare_number_value  = ct.Comparison.Method("Compare", ct.PhpNumber, ct.PhpValue);
                Compare_long_value    = ct.Comparison.Method("Compare", ct.Long, ct.PhpValue);
                Compare_double_value  = ct.Comparison.Method("Compare", ct.Double, ct.PhpValue);
                Compare_bool_value    = ct.Comparison.Method("Compare", ct.Boolean, ct.PhpValue);
                Compare_value_value   = ct.Comparison.Method("Compare", ct.PhpValue, ct.PhpValue);
                Compare_string_string = ct.Comparison.Method("Compare", ct.String, ct.String);
                Compare_string_long   = ct.Comparison.Method("Compare", ct.String, ct.Long);
                Compare_string_double = ct.Comparison.Method("Compare", ct.String, ct.Double);
                Compare_string_value  = ct.Comparison.Method("Compare", ct.String, ct.PhpValue);

                StrictCeq_bool_PhpValue     = ct.StrictComparison.Method("Ceq", ct.Boolean, ct.PhpValue);
                StrictCeq_long_PhpValue     = ct.StrictComparison.Method("Ceq", ct.Long, ct.PhpValue);
                StrictCeq_double_PhpValue   = ct.StrictComparison.Method("Ceq", ct.Double, ct.PhpValue);
                StrictCeq_PhpValue_PhpValue = ct.StrictComparison.Method("Ceq", ct.PhpValue, ct.PhpValue);
                StrictCeq_PhpValue_bool     = ct.StrictComparison.Method("Ceq", ct.PhpValue, ct.Boolean);

                Div_PhpValue_PhpValue        = ct.PhpValue.Method(WellKnownMemberNames.DivisionOperatorName, ct.PhpValue, ct.PhpValue);
                Div_long_PhpValue            = ct.PhpValue.Method(WellKnownMemberNames.DivisionOperatorName, ct.Long, ct.PhpValue);
                Div_double_PhpValue          = ct.PhpNumber.Method(WellKnownMemberNames.DivisionOperatorName, ct.Double, ct.PhpValue);
                BitwiseOr_PhpValue_PhpValue  = ct.PhpValue.Method(WellKnownMemberNames.BitwiseOrOperatorName, ct.PhpValue, ct.PhpValue);
                BitwiseAnd_PhpValue_PhpValue = ct.PhpValue.Method(WellKnownMemberNames.BitwiseAndOperatorName, ct.PhpValue, ct.PhpValue);
                BitwiseNot_PhpValue          = ct.PhpValue.Method(WellKnownMemberNames.OnesComplementOperatorName, ct.PhpValue);
            }
Example #13
0
            public OperatorsHolder(CoreTypes ct)
            {
                SetValue_PhpValueRef_PhpValue              = ct.Operators.Method("SetValue", ct.PhpValue, ct.PhpValue);
                EnsureObject_ObjectRef                     = ct.Operators.Method("EnsureObject", ct.Object);
                EnsureArray_PhpArrayRef                    = ct.Operators.Method("EnsureArray", ct.PhpArray);
                EnsureArray_IPhpArrayRef                   = ct.Operators.Method("EnsureArray", ct.IPhpArray);
                EnsureArray_ArrayAccess                    = ct.Operators.Method("EnsureArray", ct.ArrayAccess);
                GetItemValue_String_IntStringKey           = ct.Operators.Method("GetItemValue", ct.String, ct.IntStringKey);
                GetItemValue_String_Int                    = ct.Operators.Method("GetItemValue", ct.String, ct.Int32);
                GetItemValue_PhpValue_IntStringKey_Bool    = ct.Operators.Method("GetItemValue", ct.PhpValue, ct.IntStringKey, ct.Boolean);
                EnsureItemAlias_PhpValue_IntStringKey_Bool = ct.Operators.Method("EnsureItemAlias", ct.PhpValue, ct.IntStringKey, ct.Boolean);
                IsSet_PhpValue       = ct.Operators.Method("IsSet", ct.PhpValue);
                IsEmpty_PhpValue     = ct.Operators.Method("IsEmpty", ct.PhpValue);
                IsNullOrEmpty_String = ct.String.Method("IsNullOrEmpty", ct.String);
                Concat_String_String = ct.String.Method("Concat", ct.String, ct.String);

                ToString_Bool             = ct.Convert.Method("ToString", ct.Boolean);
                ToString_Int32            = ct.Convert.Method("ToString", ct.Int32);
                ToString_Long             = ct.Convert.Method("ToString", ct.Long);
                ToString_Double_Context   = ct.Convert.Method("ToString", ct.Double, ct.Context);
                Long_ToString             = ct.Long.Method("ToString");
                ToBoolean_String          = ct.Convert.Method("ToBoolean", ct.String);
                ToBoolean_PhpValue        = new CoreExplicitCast(ct.PhpValue, ct.Boolean);
                ToBoolean_Object          = ct.Convert.Method("ToBoolean", ct.Object);
                ToBoolean_IPhpConvertible = ct.Convert.Method("ToBoolean", ct.IPhpConvertible);
                ToLong_PhpValue           = new CoreExplicitCast(ct.PhpValue, ct.Long);
                ToDouble_PhpValue         = new CoreExplicitCast(ct.PhpValue, ct.Double);
                ToNumber_PhpValue         = ct.Convert.Method("ToNumber", ct.PhpValue);
                ToNumber_String           = ct.Convert.Method("ToNumber", ct.String);
                ToLong_String             = ct.Convert.Method("StringToLongInteger", ct.String);
                ToDouble_String           = ct.Convert.Method("StringToDouble", ct.String);

                AsObject_PhpValue               = ct.Convert.Method("AsObject", ct.PhpValue);
                AsArray_PhpValue                = ct.Convert.Method("AsArray", ct.PhpValue);
                ToArray_PhpValue                = ct.Convert.Method("ToArray", ct.PhpValue);
                ToPhpString_PhpValue_Context    = ct.Convert.Method("ToPhpString", ct.PhpValue, ct.Context);
                ToClass_PhpValue                = ct.Convert.Method("ToClass", ct.PhpValue);
                ToClass_IPhpArray               = ct.Convert.Method("ToClass", ct.IPhpArray);
                AsCallable_PhpValue             = ct.Convert.Method("AsCallable", ct.PhpValue);
                AsCallable_String               = ct.Convert.Method("AsCallable", ct.String);
                IsInstanceOf_Object_PhpTypeInfo = ct.Convert.Method("IsInstanceOf", ct.Object, ct.PhpTypeInfo);
                ToIntStringKey_PhpValue         = ct.Convert.Method("ToIntStringKey", ct.PhpValue);

                Echo_String    = ct.Context.Method("Echo", ct.String);
                Echo_PhpString = ct.Context.Method("Echo", ct.PhpString);
                Echo_PhpNumber = ct.Context.Method("Echo", ct.PhpNumber);
                Echo_PhpValue  = ct.Context.Method("Echo", ct.PhpValue);
                Echo_Object    = ct.Context.Method("Echo", ct.Object);
                Echo_Double    = ct.Context.Method("Echo", ct.Double);
                Echo_Long      = ct.Context.Method("Echo", ct.Long);
                Echo_Int32     = ct.Context.Method("Echo", ct.Int32);

                GetForeachEnumerator_PhpValue_Bool_RuntimeTypeHandle = ct.Operators.Method("GetForeachEnumerator", ct.PhpValue, ct.Boolean, ct.RuntimeTypeHandle);

                Clone_Context_Object = ct.Operators.Method("Clone", ct.Context, ct.Object);
                BuildClosure_RoutineInfo_PhpArray_PhpArray         = ct.Operators.Method("BuildClosure", ct.RoutineInfo, ct.PhpArray, ct.PhpArray);
                Eval_Context_PhpArray_object_string_string_int_int = ct.Operators.Method("Eval", ct.Context, ct.PhpArray, ct.Object, ct.String, ct.String, ct.Int32, ct.Int32);
                GetName_PhpTypeInfo = ct.PhpTypeInfo.Property("Name");

                offsetGet_ArrayAccess_PhpValue = ct.ArrayAccess.Method("offsetGet", ct.PhpValue);

                Ceq_long_double       = ct.Comparison.Method("Ceq", ct.Long, ct.Double);
                Ceq_long_bool         = ct.Comparison.Method("Ceq", ct.Long, ct.Boolean);
                Ceq_long_string       = ct.Comparison.Method("Ceq", ct.Long, ct.String);
                Ceq_double_string     = ct.Comparison.Method("Ceq", ct.Double, ct.String);
                Ceq_string_long       = ct.Comparison.Method("Ceq", ct.String, ct.Long);
                Ceq_string_double     = ct.Comparison.Method("Ceq", ct.String, ct.Double);
                Ceq_string_bool       = ct.Comparison.Method("Ceq", ct.String, ct.Boolean);
                CeqNull_value         = ct.Comparison.Method("CeqNull", ct.PhpValue);
                Clt_long_double       = ct.Comparison.Method("Clt", ct.Long, ct.Double);
                Cgt_long_double       = ct.Comparison.Method("Cgt", ct.Long, ct.Double);
                Compare_bool_bool     = ct.Comparison.Method("Compare", ct.Boolean, ct.Boolean);
                Compare_number_value  = ct.Comparison.Method("Compare", ct.PhpNumber, ct.PhpValue);
                Compare_long_value    = ct.Comparison.Method("Compare", ct.Long, ct.PhpValue);
                Compare_double_value  = ct.Comparison.Method("Compare", ct.Double, ct.PhpValue);
                Compare_bool_value    = ct.Comparison.Method("Compare", ct.Boolean, ct.PhpValue);
                Compare_value_value   = ct.Comparison.Method("Compare", ct.PhpValue, ct.PhpValue);
                Compare_string_string = ct.Comparison.Method("Compare", ct.String, ct.String);
                Compare_string_long   = ct.Comparison.Method("Compare", ct.String, ct.Long);
                Compare_string_double = ct.Comparison.Method("Compare", ct.String, ct.Double);
                Compare_string_value  = ct.Comparison.Method("Compare", ct.String, ct.PhpValue);

                StrictCeq_bool_PhpValue     = ct.StrictComparison.Method("Ceq", ct.Boolean, ct.PhpValue);
                StrictCeq_long_PhpValue     = ct.StrictComparison.Method("Ceq", ct.Long, ct.PhpValue);
                StrictCeq_double_PhpValue   = ct.StrictComparison.Method("Ceq", ct.Double, ct.PhpValue);
                StrictCeq_PhpValue_PhpValue = ct.StrictComparison.Method("Ceq", ct.PhpValue, ct.PhpValue);
                StrictCeq_PhpValue_bool     = ct.StrictComparison.Method("Ceq", ct.PhpValue, ct.Boolean);

                Div_PhpValue_PhpValue        = ct.PhpValue.Method(WellKnownMemberNames.DivisionOperatorName, ct.PhpValue, ct.PhpValue);
                Div_long_PhpValue            = ct.PhpValue.Method(WellKnownMemberNames.DivisionOperatorName, ct.Long, ct.PhpValue);
                Div_double_PhpValue          = ct.PhpValue.Method(WellKnownMemberNames.DivisionOperatorName, ct.Double, ct.PhpValue);
                BitwiseOr_PhpValue_PhpValue  = ct.PhpValue.Method(WellKnownMemberNames.BitwiseOrOperatorName, ct.PhpValue, ct.PhpValue);
                BitwiseAnd_PhpValue_PhpValue = ct.PhpValue.Method(WellKnownMemberNames.BitwiseAndOperatorName, ct.PhpValue, ct.PhpValue);
                BitwiseXor_PhpValue_PhpValue = ct.PhpValue.Method(WellKnownMemberNames.ExclusiveOrOperatorName, ct.PhpValue, ct.PhpValue);
                BitwiseNot_PhpValue          = ct.PhpValue.Method(WellKnownMemberNames.OnesComplementOperatorName, ct.PhpValue);
            }