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); }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 |