forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			211 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Smarty
		
	
	
	
	
	
		
		
			
		
	
	
			211 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Smarty
		
	
	
	
	
	
|  | 
 | ||
|  | ::foreach PARAMS:: ::if (ARG>=6)::
 | ||
|  | Dynamic Dynamic::NS::operator()(::DYNAMIC_ARG_LIST::)
 | ||
|  | { | ||
|  |    CheckFPtr();
 | ||
|  |    return mPtr->__Run(Array_obj<Dynamic>::NS::__new(::ARG::)::DYNAMIC_ADDS::);
 | ||
|  | }
 | ||
|  | 
 | ||
|  | namespace cpp
 | ||
|  | { | ||
|  | ::NS::Dynamic Variant::NS::operator()(::DYNAMIC_ARG_LIST::)
 | ||
|  | { | ||
|  |    if (isNull()) Dynamic::ThrowBadFunctionError();
 | ||
|  |    return valObject->__Run(Array_obj<Dynamic>::NS::__new(::ARG::)::DYNAMIC_ADDS::);
 | ||
|  | }
 | ||
|  | }
 | ||
|  | 
 | ||
|  | 
 | ||
|  | ::else::
 | ||
|  | 
 | ||
|  | namespace hx { | ||
|  | 
 | ||
|  | struct CMemberFunction::ARG:: : public hx::Object 
 | ||
|  | {  | ||
|  |    hx::ObjectPtr<Object> mThis; 
 | ||
|  |    MemberFunction::ARG:: mFunction;
 | ||
|  |    const char *mName;
 | ||
|  | 
 | ||
|  |    HX_IS_INSTANCE_OF enum { _hx_ClassId = hx::NS::clsIdCMember::ARG:: };
 | ||
|  | 
 | ||
|  | 
 | ||
|  |    CMemberFunction::ARG::(const char *inName, hx::Object *inObj, MemberFunction::ARG:: inFunction)
 | ||
|  |    { | ||
|  |       mName = inName;
 | ||
|  |       mThis = inObj;
 | ||
|  |       mFunction = inFunction;
 | ||
|  |    }
 | ||
|  |    int __Compare(const hx::Object *inRHS) const
 | ||
|  |    { | ||
|  |       const CMemberFunction::ARG:: *other = dynamic_cast<const CMemberFunction::ARG:: *>(inRHS);
 | ||
|  |       if (!other)
 | ||
|  |          return -1;
 | ||
|  |       return (mName==other->mName && mFunction==other->mFunction && mThis.GetPtr()==other->mThis.GetPtr())? 0 : -1;
 | ||
|  |    }
 | ||
|  | 
 | ||
|  |    int __GetType() const { return vtFunction; } 
 | ||
|  |    int __ArgCount() const { return ::ARG::; } 
 | ||
|  |    ::String __ToString() const{ return String(mName); } 
 | ||
|  |    void __Mark(hx::MarkContext *__inCtx) { HX_MARK_MEMBER_NAME(mThis,"CMemberFunction::ARG::.this"); } 
 | ||
|  |    #ifdef HXCPP_VISIT_ALLOCS
 | ||
|  |    void __Visit(hx::VisitContext *__inCtx) { HX_VISIT_MEMBER(mThis); } 
 | ||
|  |    #endif
 | ||
|  |    void *__GetHandle() const { return mThis.GetPtr(); } 
 | ||
|  |    Dynamic __Run(const Array<Dynamic> &inArgs) 
 | ||
|  |    {  | ||
|  |       ::if (ARG>0)::
 | ||
|  |       return mFunction(mThis.GetPtr(), ::ARR_LIST::);
 | ||
|  |       ::else::
 | ||
|  |       return mFunction(mThis.GetPtr());
 | ||
|  |       ::end::
 | ||
|  |    } 
 | ||
|  |    Dynamic __run(::DYNAMIC_ARG_LIST::) 
 | ||
|  |    {  | ||
|  |       ::if (ARG>0)::
 | ||
|  |       return mFunction(mThis.GetPtr(), ::ARG_LIST::);
 | ||
|  |       ::else::
 | ||
|  |       return mFunction(mThis.GetPtr());
 | ||
|  |       ::end::
 | ||
|  |    } 
 | ||
|  | }; 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | struct CStaticFunction::ARG:: : public hx::Object 
 | ||
|  | {  | ||
|  |    StaticFunction::ARG:: mFunction;
 | ||
|  |    const char *mName;
 | ||
|  | 
 | ||
|  |    HX_IS_INSTANCE_OF enum { _hx_ClassId = hx::NS::clsIdCStatic::ARG:: };
 | ||
|  | 
 | ||
|  | 
 | ||
|  |    CStaticFunction::ARG::(const char *inName,StaticFunction::ARG:: inFunction)
 | ||
|  |    { | ||
|  |       mName = inName;
 | ||
|  |       mFunction = inFunction;
 | ||
|  |    }
 | ||
|  |    int __Compare(const hx::Object *inRHS) const
 | ||
|  |    { | ||
|  |       const CStaticFunction::ARG:: *other = dynamic_cast<const CStaticFunction::ARG:: *>(inRHS);
 | ||
|  |       if (!other)
 | ||
|  |          return -1;
 | ||
|  |       return mName==other->mName && mFunction==other->mFunction && mName==other->mName ? 0 : -1;
 | ||
|  |    }
 | ||
|  | 
 | ||
|  |    int __GetType() const { return vtFunction; } 
 | ||
|  |    int __ArgCount() const { return ::ARG::; } 
 | ||
|  |    ::String __ToString() const{ return String(mName); } 
 | ||
|  |    Dynamic __Run(const Array<Dynamic> &inArgs) 
 | ||
|  |    {  | ||
|  |       return mFunction(::ARR_LIST::);
 | ||
|  |    } 
 | ||
|  |    Dynamic __run(::DYNAMIC_ARG_LIST::) 
 | ||
|  |    {  | ||
|  |       return mFunction(::ARG_LIST::);
 | ||
|  |    } 
 | ||
|  | }; 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | HXCPP_EXTERN_CLASS_ATTRIBUTES
 | ||
|  | Dynamic CreateMemberFunction::ARG::(const char *inName,hx::Object *inObj, MemberFunction::ARG:: inFunc)
 | ||
|  |    { return new CMemberFunction::ARG::(inName,inObj,inFunc); }
 | ||
|  | 
 | ||
|  | HXCPP_EXTERN_CLASS_ATTRIBUTES
 | ||
|  | Dynamic CreateStaticFunction::ARG::(const char *inName,StaticFunction::ARG:: inFunc)
 | ||
|  |    { return new CStaticFunction::ARG::(inName,inFunc); }
 | ||
|  | 
 | ||
|  | }
 | ||
|  | 
 | ||
|  | ::end::
 | ||
|  | ::end::
 | ||
|  | 
 | ||
|  | namespace hx
 | ||
|  | { | ||
|  | 
 | ||
|  | 
 | ||
|  | struct CMemberFunctionVar : public hx::Object 
 | ||
|  | {  | ||
|  |    hx::ObjectPtr<Object> mThis; 
 | ||
|  |    MemberFunctionVar mFunction;
 | ||
|  |    const char *mName;
 | ||
|  |    int N;
 | ||
|  | 
 | ||
|  | 
 | ||
|  |    HX_IS_INSTANCE_OF enum { _hx_ClassId = hx::clsIdCMemberVar };
 | ||
|  | 
 | ||
|  | 
 | ||
|  |    CMemberFunctionVar(const char *inName,hx::Object *inObj, MemberFunctionVar inFunction,int inN)
 | ||
|  |    { | ||
|  |       mThis = inObj;
 | ||
|  |       mFunction = inFunction;
 | ||
|  |       mName = inName;
 | ||
|  |       N = inN;
 | ||
|  |    }
 | ||
|  |    int __Compare(const hx::Object *inRHS) const
 | ||
|  |    { | ||
|  |       const CMemberFunctionVar *other = dynamic_cast<const CMemberFunctionVar *>(inRHS);
 | ||
|  |       if (!other)
 | ||
|  |          return -1;
 | ||
|  |       return (mFunction==other->mFunction && mName==other->mName && mThis.GetPtr()==other->mThis.GetPtr())? 0 : -1;
 | ||
|  |    }
 | ||
|  | 
 | ||
|  | 
 | ||
|  |    int __GetType() const { return vtFunction; } 
 | ||
|  |    int __ArgCount() const { return N; } 
 | ||
|  |    ::String __ToString() const{ return String(mName); } 
 | ||
|  |    void __Mark(hx::MarkContext *__inCtx) { HX_MARK_MEMBER_NAME(mThis,"CMemberFunctionVar.this"); } 
 | ||
|  |    #ifdef HXCPP_VISIT_ALLOCS
 | ||
|  |    void __Visit(hx::VisitContext *__inCtx) { HX_VISIT_MEMBER(mThis); } 
 | ||
|  |    #endif
 | ||
|  |    void *__GetHandle() const { return mThis.GetPtr(); } 
 | ||
|  |    Dynamic __Run(const Array<Dynamic> &inArgs) 
 | ||
|  |    {  | ||
|  |       return mFunction(mThis.GetPtr(), inArgs);
 | ||
|  |    } 
 | ||
|  | }; 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | struct CStaticFunctionVar : public hx::Object 
 | ||
|  | {  | ||
|  |    StaticFunctionVar mFunction;
 | ||
|  |    const char *mName;
 | ||
|  |    int N;
 | ||
|  | 
 | ||
|  |    HX_IS_INSTANCE_OF enum { _hx_ClassId = hx::clsIdCStaticVar };
 | ||
|  | 
 | ||
|  |    CStaticFunctionVar(const char *inName,StaticFunctionVar inFunction,int inN)
 | ||
|  |    { | ||
|  |       mFunction = inFunction;
 | ||
|  |       mName = inName;
 | ||
|  |       N = inN;
 | ||
|  |    }
 | ||
|  |    int __Compare(const hx::Object *inRHS) const
 | ||
|  |    { | ||
|  |       const CStaticFunctionVar *other = dynamic_cast<const CStaticFunctionVar *>(inRHS);
 | ||
|  |       if (!other)
 | ||
|  |          return -1;
 | ||
|  |       return mName==other->mName && mFunction==other->mFunction ? 0 : -1;
 | ||
|  |    }
 | ||
|  | 
 | ||
|  | 
 | ||
|  |    int __GetType() const { return vtFunction; } 
 | ||
|  |    int __ArgCount() const { return N; } 
 | ||
|  |    ::String __ToString() const { return String(mName); } 
 | ||
|  |    Dynamic __Run(const Array<Dynamic> &inArgs) 
 | ||
|  |    {  | ||
|  |       return mFunction(inArgs);
 | ||
|  |    } 
 | ||
|  | }; 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | Dynamic CreateMemberFunctionVar(const char *inName, hx::Object *inObj, MemberFunctionVar inFunc,int inN)
 | ||
|  |    { return new CMemberFunctionVar(inName, inObj,inFunc,inN); }
 | ||
|  | 
 | ||
|  | Dynamic CreateStaticFunctionVar(const char *inName,StaticFunctionVar inFunc,int inN)
 | ||
|  |    { return new CStaticFunctionVar(inName, inFunc,inN); }
 | ||
|  | 
 | ||
|  | }
 | ||
|  | 
 | ||
|  | 
 |